文档库 最新最全的文档下载
当前位置:文档库 › Unity3D自带功能:灯光及光照烘焙

Unity3D自带功能:灯光及光照烘焙

Unity3D自带功能:灯光及光照烘焙
Unity3D自带功能:灯光及光照烘焙

这一篇比较偏重于功能介绍,具体的实例操作请参考其他文章:未完成

游戏场景中灯光照明的构成

现实生活中的光线是有反射、折射、衍射等特性的。对这些基本特性的模拟一直以来都是计算机图形图像学的重要研究方向。

在CG中,默认的照明方式都是不考虑这些光线特性的,因此出来的效果与现实生活区别很大。最早期的时候,人们利用各种方式来模拟真实光照的效果,比如手动在贴图上画上柔和阴影,或者用一盏微弱的面积光源去照明物体的暗部以模拟漫反射现象等等。

然后出现了所谓的高级渲染器,用计算机的计算来代替我们的手工劳动来进行这个“模拟”的工作。在漫长的发展过程中,出现过很多很多计算方案,总体上分为这样几类:

直接模拟光线从被光源发出到最终被物体完全吸收的正向过程,也就是常说的GI(Global Illumination);

不直接模拟光线,而是反向搜集物体表面特定点的受光照强度来模拟现实照明效果,也就是常说的FG(Final

Gathering);

完全不考虑光线的行为,单纯基于“物体上与其他物体越接近的区域,受到反射光线的照明越弱”这一现象来模拟模拟现实照明(的一部分)效果,也就是常说的AO(Ambient Occlusion);

将场景光照结果完全烘焙到模型贴图上,从而完完全全的假冒现实光照效果,也就是我们所说的Lightmap。

不论是GI还是FG,计算量都是非常大的,一帧图片需要几十分钟甚至几十小时来渲染,所以很难被应用在游戏设计领域。

因此在游戏设计领域,光照贴图技术依然是目前的主流方式。

由于光照贴图需要事先烘焙(baking)出来,且仅支持静态物体(Static Object),而我们的游戏场景中几乎不可能全都是静态物体,所以通常游戏场景中的灯光照明是多种照明方式的混合作用。

对于静态物体来说,大多使用光照贴图来模拟间接光的照明效果,然后加上直接光源的动态照明效果;

对于运动物体来说,则仅用直接光源的动态照明效果,或者使用光照探针来模拟间接光的照明效果。

随着技术的发展以及计算机计算能力的提高,也许在未来,我们能够直接在游戏场景中进行动态的全局光照模拟也说

不定呢。新版Unity3D中就已经出现了Realtime Global Illumination,虽然这个技术还处于雏形阶段,所需要的计算量依然庞大,但确实为我们展示了一个令人激动的前景。

当然,技术是技术,产品是产品。技术是为产品服务的,再先进的实时全局光照系统,对于像素风格的游戏场景的提升也是几近于0。

“选择合适的技术来完善我们的产品和制作流程”,以及“根据现有技术来设计产品和制作流程”,说的其实是同一个意思。

1. 直接照明(Direct Lighting)

Unity3D中的直接照明主要来源于各种灯光物体,而灯光物体本质上是空物体加上灯光组件。直接照明可以产生阴影,但光线不会反射、也不会折射,但可以穿透半透明材质物体。灯光类型(Lights)

Unity3D中默认可以创建这么几种灯光:聚光灯、点光源、平行光、面积光,另外还可以创建两种探针(Probe):反射

探针(Reflection Probe)和光照探针组(Light Probe Group)。Unity中可以创建的灯光类型物体

平行光

平行光通常用来做阳光,Unity3D新建场景后会默认在场景中放置一盏平行光。平行光不会衰减。:灯光类型,所有类型的灯光都其实共用一个组件,本质上是一样的。

Color:灯光颜色

Mode:灯光照明模式,每种模式对应Lighting面板中一组设定

Realtime:对应Realtime Lighting

Mixed:对应Mixed Lighting

Baked:对应Lightmapping SettingRealtime Lighting是新出现的一种烘焙光照技术,它并不像传统的烘焙技术一样直接烘焙间接光照颜色和亮度信息到光照贴图上,而是烘焙物体和物体之间的关系信息,比如A面对B面有漫反射效果,

B面对C面有漫反射效果等等。这样一来,只要物体之间的关系不变(也就是所有的静态物体都不移动位置),就不需要重新烘焙,从而使得我们可以在场景中随意运用动态光源(dynamic lights)。而传统的Lightmapping光照贴图方式则不支持动态光源效果(改变光源不会改变场景光照)。Realtime Lighting比Lightmapping要更耗费系统资源,所以手游上就不要考虑了。Intensity:灯光强度

Indirect Multiplier:在计算该灯光所产生的间接光照时的强度倍乘

Shadow Type:阴影贴图的类型

No Shadows:无阴影贴图

Hard Shadows:硬阴影贴图

Soft Shadows:光滑阴影边缘(也就是阴影模糊效果)Baked Shadow Angle:烘焙阴影的角度

Realtime Shadows Strength:实时阴影强度

Resolution:阴影贴图分辨率

Bias:阴影偏移,通常适当增加这个值来修正一些阴影的artifact

Normal Bias:法线偏移,通常适当减少这个值来修正一些阴影的artifact(不同于Bias的使用场合)

Near Plane:阴影剪切平面,对于与摄影机距离小于这个距离的场景物体不产生阴影

Cookie:Cookie相当于在灯光上贴黑白图,用来模拟一些阴影效果,比如贴上网格图模拟窗户栅格效果

Cookie Size:调整Cookie贴图大小

Draw Halo:灯光是否显示辉光,不显示辉光的灯本身是看不见的

Flare:Flare可以使用一张黑白贴图来模拟灯光在镜头中的“星状辉光”效果

Render Mode:渲染模式

Culling Mask:

点光源

点光源模拟一个小灯泡向四周发出光线的效果,点光源在其照亮范围内随距离增加而亮度衰减:光线射出的范围,超出这个范围则不会照亮物体

聚光灯

聚光灯模拟一个点光源仅沿着一个圆锥体方向发出光线的效果,聚光灯在其照亮范围内随距离增加而亮度衰减Angle:灯光射出的张角范围

面积光

面积光模拟一个较大的发光表面对周围环境的照明效果,通常面积光的灯光亮度衰减很快,阴影非常柔和。

Unity3D的面积光仅在烘焙光照贴图时有效,并不像Maya的Area Lights一样能动态照亮场景。:面积光宽度

Height:面积光的高度

总的来说,Unity3D中自带灯光比较简单,根据我们在Maya 中使用灯光的经验,可以很快熟悉这些灯光类型的使用。

阴影类型(Shadow)

Unity3D的灯光可以设置不同的阴影类型,分别是:无阴影、硬阴影、软阴影。要注意的是,不论是硬阴影还是软阴影,本质上都是用阴影贴图模拟的阴影效果,而不是真实光照而自然形成的暗色区域。unity_lighting05..png

灯光上阴影设置部分会随着Mode参数的不同而变化,Realtime Lighting Mode对应的选项很多,而Baked Mode 仅对应Baked Shadow Angle一项。

无阴影

灯光不产生阴影,新建场景后默认生成的平行光就是无阴影的。

硬阴影

阴影边缘清晰

软阴影

阴影边缘柔和,有过渡效果

阴影质量设置

虽然我们在灯光的阴影设置中可以调节Resolution以提高阴影质量,但真正的阴影质量调节应该在Quality面板中来进行,灯光中的阴影Resolution参数默认设置是Use Quality Settings,就是从Quality面板的设定中来选择。

从菜单Edit > Project Settings > Quality打开Quality 面板,这里可以针对不同质量等级设置不同的参数。

我们现在先不在这里对Quality面板做全面介绍,仅介绍关于阴影的那一部分设置内容:

Shadows:在当前质量下是不渲染阴影,还是只渲染硬阴影,还是软硬阴影都渲染

Shadow Resolution:在当前质量下阴影贴图分辨率,这就对应了灯光面板中的Resolution参数。

Shadow Projection:阴影贴图的投影方式,Close Fit方式会优化近处的阴影质量,缺点是运动状态下可能会出现一些波动,Stable Fit方式不会有波动,但质量比较差

有的时候阴影贴图会出错,比如无缘无故多出一条亮缝之类,通常可以选择切换到Close Fit方式来解决,如果不想切换的Close Fit方式,可以适当降低灯光阴影参数中的Normal Bias参数,或者将对应场景物体设置成双面显示。Shadow Near Plane Offset:很近处不渲染阴影

Shadow Cascades:阴影贴图叠加方式,可以是单层、2层或者4层

Cascade Splits:不同层所对应场景区域的比例分配划分Shadow Cascades是一种阴影贴图算法,比如我们选择4层叠加,那么实际上会计算4次阴影贴图,每次对应距离摄影机一定距离范围以内的场景物体,而这个距离范围的划分就通过Cascade Splits中所显示的紫、绿、黄、红四种颜色区域所占比例来区分。紫色代表最近处的区域,而红色代表最远处的区域。紫色条越窄代表其对应的那一层阴影贴图所对应的场景区域越小,这样一来该区域的阴影贴图精度就很高了。

我们可以看到这里的Shadow Resolution就对应了灯光面板

中的Resolution参数。

渲染路径(Rendering Path)

Unity3D提供两种渲染路径(Rendering Path),对于初学者来说,渲染路径这个概念不是很好理解,大家可以理解成是两种不同的渲染器,分别有利弊就好了。

Forward

在Forward渲染路径下,每个物体会被每个光源渲染成一个“通道”,因此物体受到越多灯光的影响,其渲染次数就会越多。

Forward渲染路径的优势在于,在灯光比较少的情况下,Forward方式的渲染速度会非常快,处理透明贴图也非常快,还可以使用诸如“多重取样抗锯齿(MSAA)”这样的硬件处理技术技术。

但Forward渲染路径的渲染速度会随着灯光的增多而迅速变慢,在一些有很多灯光照明的特定场景中(比如高科技室内环境)并不适合使用Forward渲染路径。

Deferred

使用Deffered渲染路径,渲染时间不会随着灯光的增多而提高,而是会随着受整体光照影响区域的扩大而提高(也就是说,场景中越多像素被照亮,渲染速度就越慢,但全屏被照亮的情况下,灯光设置复杂度不会进一步影响渲染速度

了)。

Deffered渲染路径在整体上需要更多的计算量,对于一些移动设备,Deffered渲染路径还不能支持。

新版Unity3D的默认渲染路径是Deffered渲染,如果场景非常简单,或者希望使用MSAA,可以自行修改成Forward渲染路径。

2. 间接照明

天光,也就是环境光(Ambient Light),特指来自于天空的漫反射。在Unity3D中可以继承“天空球”的颜色作用环境光颜色,也可以自行指定环境光颜色。

反射光,特指天空漫反射之外的所有环境漫反射。在Unity3D 中主要通过光照贴图或灯光探针来模拟。

自发光物体。在Unity3D中自发光物体本身的亮度仅使用颜色来模拟,自发光物体对于环境的影响则通过光照贴图或灯光探针来模拟。

天空盒(Skybox)与环境光(Ambient)

Unity3D的天空盒类似于Maya中的天空球的概念,都是在场

景外围生成一个封闭并正面向内的环境,用来模拟天空的颜色和照明效果。但Unity3D的天空盒采用的是Box形状的天空环境而非球形,用6张不同的贴图而非1张全景贴图来作为天空贴图。

我们可以将Maya中常用的全景HDR环境贴图转换为适用于Skybox的方形贴图,来创建我们自己的Skybox。这种转换可以在贴图设置中完成:将Default类型的贴图的Texture Shape从2D改为Cube,然后修改Mapping为6 Frames Layout (Cubic Environment),点击Apply就可以了。

Skybox的贴图都是高动态颜色深度的.exr图片格式(也就是俗称的HDR图片)。最好不要使用.jpg或者.png这种传统8位色深的图片来做Skybox,除非我们确认不需要对场景进行贴图烘焙(这样的话天空盒就只起到环境贴图的作用了)。简单的场景(或者刻意追求一种纯粹的效果)可以不使用Skybox而使用纯色天空,甚至游戏不需要看到天空的,可以直接设置成None。

天空盒对于场景的照明影响主要来源于其对于环境光的影响。天空盒贴图所产生的环境光肯定比纯色环境光要更为丰富,也更为契合天空颜色一些。

环境光所需要的计算量很小,所以是很有效的照明手段,大

家不要忽视了。

光照贴图(Lightmap)与烘焙(Baking)

简单来说,Lightmap就是用贴图来模拟全局照明的效果,但当今游戏引擎的Lightmap的功能却远远不是一张贴图那么简单。按照官方的说法,Lightmap中不仅可以包括物体表面的光照颜色信息(传统的Lightmap功能),还可以包括物体和物体之间的光线渗透关系信息(新版中的Realtime Lighting功能),也就是说,动态光源也可以对于烘焙了光照贴图的静态场景物体产生正确的光照。

光照贴图需要将所有参与的场景物体的UV重新排列组合成互不重叠且尽量少形变的方形结构,然后再把光照信息烘焙到一张或几张较大尺寸(最大到4K)的贴图中。这些烘焙好的贴图会被储存在场景文件所在目录下与场景文件同名的子目录中,所以烘焙光照贴图之前需要保存场景。

光照贴图烘焙参数设置

Environment:关于环境的参数设置

Skybox Material:设置天空盒材质

Sun Source:设置太阳,可以指定一个平行光作为太阳,然

后该平行光的旋转角度会影响其亮度和颜色Environment Lighting:关于环境光照的设置

Source:环境光照来源

- Skybox:来源于天空盒

- Gradient:来源于一个从地平线到穹顶的颜色渐变

- Color:来源于单色

Intensity Multiplier:环境光照明强度强化

Ambient Mode:环境光照明模式

- Baked:烘焙在光照贴图中

- Realtime:实时

Environment Reflections:关于环境反射的设置

Source:环境反射来源

- Skybox:来源于天空盒

- Custom:来源于一个自定义的Cubemap(方盒贴图)Resolution:环境反射贴图分辨率

Compression:是否压缩环境反射贴图

Intensity Multiplier:环境反射强度强化

Bounces:环境反射计算次数

Realtime Lighting:关于实时光照烘焙的设置

Realtime Global Illumination:是否进行实时光照烘焙Mixed Lighting:关于混合光照烘焙的设置

Baked Global Illumination:是否进行混合光照烘焙

Lighting Mode:光照模式

Baked Indirect

Distance Shadowmask

Shadowmask

SubtractiveLightmapping Settings:关于光照烘焙的通用设定

Lightmapper:选择光照烘焙器

Enlighten:这是常用的一种烘焙器

Progressive (Preview):这是新版的一种烘焙器,还处于预览状态,它会先烘焙摄影机可见区域,再烘焙其他区域,所以预览较快Indirect Resolution:间接光照分辨率(每单位长度多少体素(texel)),数值越高,光照细节越高

Lightmap Resolution:光照贴图分辨率(每单位长度多少体素),通常设置为Indirect Resolution的10倍左右

Lightmap Padding:修正两个物体的Lightmap之间的距离,以避免颜色渗透

Lightmap Size:光照贴图大小(最大4096)

Compress Lightmaps:是否压缩光照贴图

Ambient Occlusion:是否烘焙环境光遮罩

Final Gather:是否对最后一次GI光线反射后的光照结果再进行一次FG计算,勾选上会有较好的质量表现,但烘焙时间会增加

Directional Mode

Indirect Intensity:间接光照的强度

Albedo Boost

Lightmap Parameters:设置详细的光照贴图参数(可以使用几个默认值,或者创建新设置,应该是给熟手用的吧)

Other Settings:其他设置

Fog:添加场景雾效

Color:雾效颜色

Mode:雾效衰减模式

Density:雾效密度设置完成后别忘了点击Generate Lighting按钮烘焙光照贴图!

光照贴图的烘焙(baking)是很需要时间的,新版Unity3D 提供了自动烘焙的功能:Auto Generate选项,可以让我们在调试场景的时候无需频繁手动点击Bake按钮,但自动烘焙的结果并不会被储存起来,所以最终发布前还是需要手动烘焙光照贴图的。

注意,从名字上,很容易将“自动烘焙”和“实时全局光照”这两个设置等同起来,这是非常大的误解。

定义光照贴图比例

既然所有的场景物体都被Pack成一个大的贴图,那么一个

多边形面片上的光照信息精度就受限于这个多边形面片所

对应的UV在贴图中所占据的面积大小了。出于场景优化考虑,我们当然希望将有限的光照贴图面积尽量多的分配给更需要的物体咯,所以Unity3D在Mesh Render组件中提供了修改物体所占光照贴图比例的参数: In Lightmap就是控制该物体的UV在Lightmap的重排中比例缩放的,数字越小占比越少。

怎么决定哪些物体的UV占比低哪些物体的UV占比高呢?通常远景物体占比比近景物体低,表面很平滑的物体占比比表面细节丰富的物体占比低,处于内部不太可见的模型占比通常要尽量低,地面或者地形这种很大面积的物体,占比中等就好了,否则就挤占了其他物体的灯光贴图细节了。

灯光探针(Light Probes)

光照烘焙对于动态物体(Dynamic Object),也就是没有被设置成Lightmap Static的物体来说都是不起作用的,如果希望动态物体也能被正确的照明,则需要创建Light Probe Group。

Light Probe可以被认为是在场景中的一个小“光源”,而多个Light Probe组成的网络,就是Light Probe Group。这

法线贴图的创建和烘培

1.介绍 在这个教程中我将讲解一些烘培和创建法线贴图技术,这个技术现在使用非常普遍,特别是游戏制作中。 我将使用的软件 ZBrush2:可以从高模烘培法线贴图,虽然现在有ZBrush3.1可以使用,但是在烘培法线的功能上是和 2.0版本相同的,我将使用ZMapper插件来烘培贴图,这插件你可以从Pixologic站点免费下载。 3D studio max:我将使用这个程序制作低模和展UV,并且将低模以obj导出。Photoshop CS2:我将使用它创建和编辑烘培的法线贴图。 2.什么是法线贴图 法线贴图可以创建出比真正的模型更多几何体的假像,和置换贴图一样法线贴图并不能真的影响低模的几何网格。所以,如果我们的低模非常的简单和尖利,那么法线贴图将起不了作用。下图是一个高模平面模型和一个赋予了法线贴图低模平面模型的区别。 这个简单的例子显示了法线贴图是怎么作用的。 下图显示了法线贴图的通道构成

法线贴图的整体效果就在它的RGB通道,特别是在R和G通道,这两个通道往往定义了X和Y的烘培参数。如果在3Dmax或是其它3D软件(或是实时)的引擎中不能正常显示法线贴图,往往是因为引擎在解释R和G通道的错误造成的。这时你需要在烘培贴图之前交换两个通道(你也可以在Photoshp交换烘培后的法线贴图的通道) 我们将使用ZMapper来烘培法线贴图,这是一个免费的ZBrush插件有大量的预设参数供我们正确选择使用。 3.一个好的开始 在我们开始创建一个拥有大量细节的高模之前,为模型进行一些规划是非常好的主意,举例来说:如果模型有一些比较大元素象是大口袋,大块肌肉或是更大的皱痕我们就要增加一些多边形在低模。因为正如我前面所说法线贴图不会改变我们的低模,如果不为比较大的元素增加多边形,从某些摄象机角度看这些元素将看上去非常的平。这就是为什么我们要在雕刻高模之前规划模型。 而最好的办法是:在开始之前绘制详细的概念设计图,或者至少绘制一个简单的素描。在下图你可以看到,低模虽然只是一个很简单的几何体,但是已经拥有一些高模的特征。

Unity3D自带功能:灯光及光照烘焙

Unity3D自带功能:灯光及光照烘焙 这一篇比较偏重于功能介绍,具体的实例操作请参考其他文章:未完成 游戏场景中灯光照明的构成 现实生活中的光线是有反射、折射、衍射等特性的。对这些基本特性的模拟一直以来都是计算机图形图像学的重要研 究方向。 在CG中,默认的照明方式都是不考虑这些光线特性的,因此出来的效果与现实生活区别很大。最早期的时候,人们利用各种方式来模拟真实光照的效果,比如手动在贴图上画上柔和阴影,或者用一盏微弱的面积光源去照明物体的暗部以模拟漫反射现象等等。 然后出现了所谓的高级渲染器,用计算机的计算来代替我们的手工劳动来进行这个“模拟”的工作。在漫长的发展过程中,出现过很多很多计算方案,总体上分为这样几类: 直接模拟光线从被光源发出到最终被物体完全吸收的正向 过程,也就是常说的GI(Global Illumination); 不直接模拟光线,而是反向搜集物体表面特定点的受光照强

度来模拟现实照明效果,也就是常说的FG(Final Gathering); 完全不考虑光线的行为,单纯基于“物体上与其他物体越接近的区域,受到反射光线的照明越弱”这一现象来模拟模拟现实照明(的一部分)效果,也就是常说的AO(Ambient Occlusion); 将场景光照结果完全烘焙到模型贴图上,从而完完全全的假冒现实光照效果,也就是我们所说的Lightmap。 不论是GI还是FG,计算量都是非常大的,一帧图片需要几十分钟甚至几十小时来渲染,所以很难被应用在游戏设计领域。 因此在游戏设计领域,光照贴图技术依然是目前的主流方式。 由于光照贴图需要事先烘焙(baking)出来,且仅支持静态物体(Static Object),而我们的游戏场景中几乎不可能全都是静态物体,所以通常游戏场景中的灯光照明是多种照明方式的混合作用。 对于静态物体来说,大多使用光照贴图来模拟间接光的照明效果,然后加上直接光源的动态照明效果; 对于运动物体来说,则仅用直接光源的动态照明效果,或者使用光照探针来模拟间接光的照明效果。

Vray烘焙实例教程

VRP 支持Vray 1.46.14版本的烘焙。在此为您介绍如何在VRay 1.46.14版本中进行贴图烘焙,并导出至VRPlatform 。 目录 软件平台及电脑硬件的要求 场景在max 中的操作 解决Vray 渲染烘焙后的黑面问题 Vray 面板参数设置 烘焙方式的设定原则与两种方式的优缺点 Vray 两种烘焙方式 在VRP 中制作其它效果 软件平台及电脑硬件的要求 本场景使用的软件平台和对电脑硬件的要求。 本教程场景最终max 渲染效果(没有加反射)、VRP 效果。 如下图所示 场景在max 、VRP 中最终效果 场景在max 中的操作

步骤一、打开本教程所提供的max场景文件。本场景模型来自网上论坛CMckinley,表示感谢!渲染器使用Vray渲染器。 如下图所示 渲染器选择Vray渲染器 步骤二、材质为VRAY材质,这样渲染速度相对会快一些;因原场景用了HDR照明,在这里取消了HDR照明,所以灯光做了调整,加上了阴影选项,这样会使物体产生阴影。 如下图所示

原灯光做了调整,加上了阴影 解决Vray渲染器烘焙后黑面问题 因为Vray在计算光的特点是只计算相机看得到的面,其它面的光不做计算,所以只有相机照得到的地方是亮的,照不到的地方是黑的,如图1.4所示,这也是好多用户在烘焙后导入到VRP中有的面是亮的,有的面是黑的或者花边的错误原因。解决方法是在max中多打一些相机(相机个数由场景而定),使所有面的光都在计算之内,然后在Vray参数面板中把所有光子累加起来(后面小节中有介绍),再进行烘焙,这样物体导入到VRP中就不会出现黑面或花边了。

Render to texture渲染到贴图(即贴图烘焙)

贴图烘焙技术也叫Render To Textures,简单地说就是一种把max光照信息渲染成贴图的方式,而后把这个烘焙后的贴图再贴回到场景中去的技术。这样的话光照信息变成了贴图,不需要CPU再去费时的计算了,只要算普通的贴图就可以了,所以速度极快。由于在烘焙前需要对场景进行渲染,所以贴图烘焙技术对于静帧来讲意义不大,这种技术主要应用于游戏和建筑漫游动画里面,这种技术实现了我们把费时的光能传递计算应用到动画中去的实用性,而且也能省去讨厌的光能传递时动画抖动的麻烦。贴图烘焙技术是在max5时加入进来的技术,在max6中界面稍作了改动。下面就让我们来看一下max6的贴图烘焙技术吧! 首先我们建立了一个简单的场景,设置了max的高级灯光中的Light Tracer天光照明,具体的设置不在这儿罗嗦了,我们在这儿就来说贴图烘焙。先来渲染场景,如图,这是加了材质灯光和Light Tracer后的效果,渲染时间15秒。 现在来做贴图烘焙,快捷键0,或者在渲染菜单里打开,如图 以下是贴图烘焙的基本操作界面, Output Path是用来设置存放烘焙出来贴图的路径的,必须在这儿进行设置; 而后可以选中场景里的所有物体,在Output卷帘下面,点击Add按钮,这时大家可以看到烘焙的很多种方式,有高光、有固有色等等,我们选择CompleteMap方式,即包含下面所有的方式,是完整烘焙。而后在下图位置选择Diffuse Color方式,这儿是于max5不同的地方,需要注意

在下图位置选择烘焙贴图的分辨率大小,这和max的渲染输出是一样的,不去细说了 按下Render To Textures面板里的Render渲染钮进行渲染,得到如图的烘焙贴图

unity灯光-烘焙光照贴图讲解

灯光-Light 对于每一个场景灯光是非常重要的部分。网格和纹理定义了场景的形状和外观,而灯光定义了场景的颜色和氛围。 可以通过从菜单中选择 GameObject->Light并将其添加到你的场景中。有3种类型的灯光。一旦添加了一个灯光你就可以像操作其他物体一样操作它。 相关属性介绍 ◆Type:灯光的类型 ?Directional:平行灯,类似太; ?Point:点光源,类似灯泡; ?Spot:聚光灯,类似舞台聚光灯; ◆Baking:该选项有三个选择 ?Realtime:即光源不参与烘焙,只作用于实时光照;

?Baked:表示光源只在烘焙时使用 ?Mixed:该光源会在不同的情况下做不同的响应;在烘焙时,该光源会作 用于所有参与烘焙的物体;在实际游戏运行中,该光源会作为实时光源 作用于那些不参与烘焙的物体或者动态的物体(不作用于静态的物体, 就是勾选了Static); ◆Color:光源的颜色,根据不同的环境设置不同的颜色,营造出不同的氛围; ◆Intensity:光线强度; ◆Bounce Intensity:光线的反射强度; ◆Shadow Type:设置是否显示光源作用在的物体的阴影, ?No Shadows不显示阴影,阴影不存在; ?Hard Shadows:硬阴影(无过滤),效果不是很自然比较生硬; ?Soft shadows:柔化阴影,更加贴近实际生活中的阴影显示,但比较消耗 资源; ◆Strength:阴影黑暗程度,取值围0~1 ◆Resolution:阴影的清晰度,细化度,越高消耗越大; ◆Bias:阴影的偏移量,越小,物体表面会有来自它自身的阴影,太大光源就 会脱离了接收器; ◆Cookie:灯光投射的纹理,如果灯光是聚光灯和方向灯就必定是一个2D纹理, 如果是点光源必须是一个Cubemap(立体贴图); ◆Cookie Size:缩放Cookie的投影,只适用于方向光 ◆Draw Halo:如果勾选,那光源带有一定半径围的球形光源 ◆Flare:在选中的光源的位置出现镜头光晕; ◆Render Mode:此项决定了选中的光源的重要性,影响照明的保真度和性能; ?Auto:渲染的方法根据附近灯光的亮度和当前的质量设置在运行时由系 统确定; ?important灯光是逐个像素渲染的; ?Not Important灯光总是以最快速度渲染; Culling Mask:剔除遮罩,类似摄像机的遮罩,选中指定的层收到光照影响,未选中的不受到光照影响;

unity渲染篇

渲染流程简单介绍 1.模型导入设置,这个步骤主要是烘培贴图UV的设置 导入模型,在unity中设置烘培贴图UV,烘培UV也可以在max中使用第二套UV制作成烘培UV,烘培UV不能有任何UV重叠。 Unity设置如下 2.接下来把模型拖入Hierarchy视图中,勾选Static GONG 1

3.接下来要设置渲染参数 在Edit-> Project Settings ->Player 找到Other Settings 这里就不说“向前渲染”和“延迟渲染”了,不了解就可以百度下。 4.接下来灯光设置,平行光的设置 如果我们场景要使用实时光照,那么我们的灯光Baking选项就选择Realtime。 ShadowType:Soft Shadows Intensity 可以根据需求调整 Bounce Intensity 是反弹光照的强度,值越大场景就越亮。 5.打开烘培渲染面板 GONG 2

GONG 3

这是Lighting中Object选项,这是设置渲染灯光,被渲染物体的设置,上图中需要经常被用到的参数就是Scale in lightmap后的参数,这个参数是被渲染物体的lightmap 面积的缩放,值越大,lightmap越大,像素越多,阴影越清晰,但是这样会增加场景lightmap的数量和大小。适度修改即可。 6.接下来技术调整参数去渲染场景了。下图是使用实时光照的渲染参数, GONG 4

Skybox:旋转当前场景的天空盒子 Sun:旋转当前场景的平行光 Ambient Source:这个环境源选择有几个选项,可以选择天空盒子,渐变色,颜色,可以更具需求去选择,我比较爱用颜色设置,这样可以很好调整环境色彩和亮度。 Reflection Source:反射源,这个就是反射球的设置,如果场景中有需要去反射环境,就GONG 5

Unity3D自带功能:灯光及光照烘焙

这一篇比较偏重于功能介绍,具体的实例操作请参考其他文章:未完成 游戏场景中灯光照明的构成 现实生活中的光线是有反射、折射、衍射等特性的。对这些基本特性的模拟一直以来都是计算机图形图像学的重要研究方向。 在CG中,默认的照明方式都是不考虑这些光线特性的,因此出来的效果与现实生活区别很大。最早期的时候,人们利用各种方式来模拟真实光照的效果,比如手动在贴图上画上柔和阴影,或者用一盏微弱的面积光源去照明物体的暗部以模拟漫反射现象等等。 然后出现了所谓的高级渲染器,用计算机的计算来代替我们的手工劳动来进行这个“模拟”的工作。在漫长的发展过程中,出现过很多很多计算方案,总体上分为这样几类: 直接模拟光线从被光源发出到最终被物体完全吸收的正向过程,也就是常说的GI(Global Illumination); 不直接模拟光线,而是反向搜集物体表面特定点的受光照强度来模拟现实照明效果,也就是常说的FG(Final

Gathering); 完全不考虑光线的行为,单纯基于“物体上与其他物体越接近的区域,受到反射光线的照明越弱”这一现象来模拟模拟现实照明(的一部分)效果,也就是常说的AO(Ambient Occlusion); 将场景光照结果完全烘焙到模型贴图上,从而完完全全的假冒现实光照效果,也就是我们所说的Lightmap。 不论是GI还是FG,计算量都是非常大的,一帧图片需要几十分钟甚至几十小时来渲染,所以很难被应用在游戏设计领域。 因此在游戏设计领域,光照贴图技术依然是目前的主流方式。 由于光照贴图需要事先烘焙(baking)出来,且仅支持静态物体(Static Object),而我们的游戏场景中几乎不可能全都是静态物体,所以通常游戏场景中的灯光照明是多种照明方式的混合作用。 对于静态物体来说,大多使用光照贴图来模拟间接光的照明效果,然后加上直接光源的动态照明效果; 对于运动物体来说,则仅用直接光源的动态照明效果,或者使用光照探针来模拟间接光的照明效果。

3DMAX贴图制作教程-高级贴图的应用

6.3.4 高级贴图的应用 在3D Studio MAX系统中除了BitMap贴图方式外还有多种的贴图方式。其中一些高级贴图如自动反射贴图可以使物体产生真实的反射效果,自动计算反射场景中其它物体。蒙板贴图可以将两种贴图进行组合通过相互遮挡产生特殊效果。通过这些高级贴图的使用可以使场景中的对象更具真实感。 Reflect/Refract自动反射与折射贴图: 在Bitmap的使用中我们曾经介绍过使用Bitmap模拟自动反射与折射的效果。但是这种方法制作出的反射、折射效果并不真实。在某些时候我们须要精确的反射与折射效果时就必须要使用Reflect/Refract贴图。 下面我们在场景中建立四个球体与一个立方体,如图6-59所示。 图6-59 场景 我们将使用自动反射、折射贴图使场景中的球体相互映射。 使用前面介绍过的方法为场景中的对象赋材质。单击工具栏中的按钮,在材质编辑器中选择不同材质分别赋予场景中的不同物体。 1)选择第一个示例窗,参照如图6-60所示的参数,将材质编辑为无色透明玻璃,并将材质赋予顶上的球体。

图6-60 环境色/漫反射色 2)在Map卷展栏中选择Reflection选项,单击None按钮在弹出的贴图浏览器中选择Reflect/Refract自动反射与折射贴图。 3)单击工具栏中按钮回到上一层级,降低反射强度。 4)选择Rafrection折射,单击None按钮,在贴图浏览器中选择Reflect/Refract 自动反射与折射贴图。为材质增加折射效果回到上一层极,降低折射强度设定Refract值为80。 使用相同方法分别编辑红、黄、蓝色玻璃材质,并将材质赋予底下的三个球体。1)在视窗中选择立方体,进入材质编辑对话框

Unity3d游戏场景优化

Unity3d游戏场景优化 涉及到Lod技术 (Levels of Detail,多细节层次),选择剔除(Culling),光照贴图(Lightmap) (一) 光照贴图 动态实时灯光相比静态灯光,非常耗费资源。所以除了能动的角色和物体静态的 地形和建筑,通通使用Lightmap。 强大的Unity内置了一个强大的光照图烘焙工具Beast,这个东东是Autodesk公司的产品(可怕的垄断,感觉和3d沾边的软件丫都要插一手)。 据说用来制作过杀戮地带和镜之边缘。

镜之边缘建筑场景漂亮干净的光影,Lightmap的效果。 在Unity中制作Lightmap很方便,调节几个参数后直接烘焙即可。支持GI, Skylight, 效果一流!!!当然你需要一台好点的机器,不然漫长的烘焙过程你就有的等了。 内置的光照图烘焙工具Beast P场景准备和光照图烘焙点选Window --> Lightmapping 打开光照图烘焙面板: 1.确认所有将要被用来烘焙光照贴图的网格体 UVs正确无误. 最简单的办法是在mesh import settings中选择 Generate Lightmap UVs选项(由Beast自动分uv) 2.在Object面板中将所有网格体或地形标注为 static –这将告诉 Unity, 这些物体将不会被移动 和改变并且可以被赋予光照贴图。 3.为了控制光照贴图的精度, 进入Bake 面板并调整Resolution 的值. (为了更好的了解你的

lightmap texels使用情况, 在Scene 视窗中找到Lightmap Display 小窗口并且选择Show Resolution). 1. 点击 Bake 按钮。 2. Unity Editor's 会出现一个进度条,位置处于右下角. 3. 当烘焙结束, Lightmap Editor窗口会显示已经烘焙好的光照图. Scene 和 game 视图会同时自动更新–现在你的场景已经有了光照图的效果! Unity Lightmap的设置还有更详细和更高端的内容,请参考自带的文档!

3dMax贴图动画建模实验

1.实验4 3ds Max建模 1实验目的 通过本实验的学习,使学生掌握利用软件开发工具3d max进行三维模型的创 建,以及掌握3d Max软件的基本操作方法。 2实验环境 Windows10操作系统、3ds Max2014 3实验内容 (1) 利用 3DSMAX三维创建命令创建三维模型。 (2) 在 3DSMAX利用二维平面图创建三维模型。 (3)导入其他三维软件工具创建的三维模型。 4实验步骤 (1)创建地面 创建→标准基本体→平面,长度240,宽度160。如图 4-1、图 4-2所示: 图1-1 地面 图1-2 地面参数

(2)创建墙 创建→扩展基本体→ L-Ext (参数如右图),效果图及参数如 图 1-3 所示 (3)创建天花板 步骤同创建地板,参数只是将地板参数的z 改为100,如图 1-4所示: (4)创建床板 创建→扩展基本体→切角长方体,参数如图 4-5所示。 图 1-3 效果图及参数 图 1-4 天花板示意图及参数

(5)创建床头 创建→扩展基本体→切角圆柱体,(边数 24 以上),如图 4-6所示: ①点击圆柱体→旋转→ y 轴旋转90度,如图 4-7所示: 图 1-7 参数 图 1-5 床板示意图及参数 图 1-6 床头示意图和参数

②点击圆柱体,按Alt+A 将床板与床头对其(鼠标选中床头,按Alt+A 再选中床板),分别依次选择x 轴方向最小对最大,y 和z 轴方向中心对中心如图 4-9、图 1-8所示 (6)创建床头柜 ①创建→扩展基本体→切角长方体,参数如图 4-10所示: ②床头柜与床板进行对齐: X 轴最大对最大, Y 轴最大对最小,Z 轴最小对最小,如图 1-11 所示: 图 1-9 床头示意图及参数 图 1-11 对齐图 图 1-8 图 1-10 切角长方体及参数

Unity烘焙材质到单一贴图的脚本

Unity烘焙材质到单一贴图的脚本 这个脚本由 CocoaChina 版主“四角钱” 分享,可以将复杂的材质(比如有法线贴图的材质)进行"烘焙",转变为单一的贴图。可用来将Unity 的游戏移植到移动平台时候使用。请将脚本放 Editor 文件夹里,使用时选择一个 Material 材质,然后在菜单种"Custom/Bake Material"打开并调整照明和其他参数,点击Bake按钮就会生成一个单一的贴图。 class BakeMaterialSettings { private static var kEditorPrefsName = "BakeMaterialSettings"; static var kBakingLayerShouldBeUnusedInScene = 30; static var kStandardTexNames = new Array ("_MainTex", "_BumpMap", "_Detail", "_ParallaxMap", "_Parallax"); var bakeAlpha = false; var bakeMainTexAsWhite = false; var minTextureResolution = 8; var maxTextureResolution = 2048; var emptyScene = false; var useCustomLights = false;

var ambient = Color.black; static var kLights = 3; var enableLight = new boolean[kLights]; var colorLight = new Color[kLights]; var dirLight = new Vector2[kLights]; function BakeMaterialSettings () { Load (); } function Load () { bakeAlpha = EditorPrefs.GetBool(kEditorPrefsName + ".bakeAlpha"); bakeMainTexAsWhite = EditorPrefs.GetBool(kEditorPrefsName + ".bakeMainTexAsWhite"); minTextureResolution = EditorPrefs.GetInt(kEditorPrefsName + ".minTextureResolution", 8); maxTextureResolution = EditorPrefs.GetInt(kEditorPrefsName + ".maxTextureResolution", 2048);

Unity LightMapping参数

一.简易烘焙教程: 1.准备需要烘培的光照贴图的场景,在物体面板中将所有要烘培光照贴图的物体设置为LightingStatic 2.从菜单中Window – Lightmapping打开Lightmapping窗口。在Bake面板下调整相关参数,(第一次默认参数即可)

3.点击BakeScene(烘培) 4.等待右下角进度条完成即可 二.Lightmapping窗口参数: 1.Object网格渲染器和地形: 物体的烘培设置:灯光、网格渲染和地形- 取决于当前的选择。 ·Static 静态 可渲染网格和地形必须标记为静态才能被烘培。 ·Scale In Lightmap 光照图比率 (只作用于可渲染网格)特别大的数值将分配给可渲染网格更大的分辨率。最终分辨率比例(光照图缩放)*(物体世界坐标空间所占面积)*全局分辨率烘培设置)如果设置为0物体将不被烘培。(但是它依旧对其他的物体有影响) ·Atlas 图集 图集信息-如果Lock Atlas(锁定图集)选项没有开启那么这些参数将自动更新。如果Lock Atlas(锁定图集)选项开启,这些参数将不会自动编辑。但是你可以手动设置他们。·Lightmap Index 光照图索引 光照贴图序列中的索引。 ·Tiling 平铺 (只作用于可渲染网格)物体光照贴图UVs平铺。 ·Offset 偏移 (只作用于可渲染网格)物体UVs的偏移。 Lights 灯光: ·Lightmapping 光照贴图 光照图模式:仅实时模式,自动模式和仅烘培模式。查看下面Dual Lightmaps的描述。·Color 颜色 灯光颜色。一些属性只作用于实时光照。 ·Intensity 光强度 灯光照明强度。一些属性只作用于实时光照。 ·Bounce Intensity 反弹强度 特定光源间接光照强度的倍增值。 ·Baked Shadows 烘焙阴影 控制当前灯光是否产生阴影。(当选择自动选项时同时影响实施阴影的产生)

3d max的贴图烘焙技术简易流程

C:\Users\G\Documents\3dsmax\sceneasse 原理:贴图烘焙技术也叫render to textures,简单地说就是一种把max光照信息渲染成贴图的方式,而后把这个烘焙后的贴图再贴回到场景中去的技术 优点:光照信息变成了贴图,不需要cpu再去费时的计算了,只要算普通的贴图就可以了,所以速度极快。由于在烘焙前需要对场景进行渲染,所以贴图烘焙技术对于静帧来讲意义不大,这种技术主要应用于游戏和建筑漫游动画里面,这种技术实现了我们把费时的光能传递计算应用到动画中去的实用性,而且也能省去讨厌的光能传递时动画抖动的麻烦。 制作步骤:1.首先我们建立了一个简单的场景,设置了max的高级灯光中的light tracer天光照明 现在来做贴图烘焙,快捷键0,或者在渲染菜单里打开,如图: 以下是贴图烘焙的基本操作界面, output path是用来设置存放烘焙出来贴图的路径的,必须在这儿进行设置; 而后可以选中场景里的所有物体,在output卷帘下面,点击add按钮,这时大家可以看到烘焙的很多种方式,有高光、有固有色等等,我们选择completemap方式,即包含下面所有的方式,是完整烘焙。

而后在下图位置选择diffuse color方式,这儿是于max5不同的地方,需要注意; 在下图位置选择烘焙贴图的分辨率大小,这和max的渲染输出是一样的,不去细说了。

按下render to textures面板里的render渲染钮进行渲染,得到如图的烘焙贴图

这时大家会发现视图里场景发生了变化,出现了近似渲染后的光照效果,哈哈,不要以为你的显卡变好了,而是烘焙后的贴图被自动贴到场景中去了,如图。(ps:估计万元级的专业卡也未必有这效果呀~~~)

3dmax的烘焙贴图技术——简易流程教程

3dmax的烘焙贴图技术——简易流程教程 贴图烘焙技术也叫Render To Textures,简单地说就是一种把max光照信息渲染成贴图的方式,而后把这个烘焙后的贴图再贴回到场景中去的技术。这样的话光照信息变成了贴图,不需要CPU再去费时的计算了,只要算普通的贴图就可以了,所以速度极快。由于在烘焙前需要对场景进行渲染,所以贴图烘焙技术对于静帧来讲意义不大,这种技术主要应用于游戏和建筑漫游动画里面,这种技术实现了我们把费时的光能传递计算应用到动画中去的实用性,而且也能省去讨厌的光能传递时动画抖动的麻烦。贴图烘焙技术是在max5时加入进来的技术,在max6中界面稍作了改动。下面就让我们来看一下max6的贴图烘焙技术吧! 首先我们建立了一个简单的场景,设置了max的高级灯光中的Light Tracer天光照明,具体的设置不在这儿罗嗦了,我们在这儿就来说贴图烘焙。先来渲染场景,如图,这是加了材质灯光和Light Tracer后的效果,渲染时间15秒。 现在来做贴图烘焙,快捷键0,或者在渲染菜单里打开,如图:

以下是贴图烘焙的基本操作界面, Output Path是用来设置存放烘焙出来贴图的路径的,必须在这儿进行设置;而后可以选中场景里的所有物体,在Output卷帘下面,点击Add按钮,这时大家可以看到烘焙的很多种方式,有高光、有固有色等等,我们选择CompleteMap 方式,即包含下面所有的方式,是完整烘焙。 而后在下图位置选择Diffuse Color方式,这儿是于max5不同的地方,需要注意;

在下图位置选择烘焙贴图的分辨率大小,这和max的渲染输出是一样的,不去细说了。

Unity3D光照贴图的Lightmapping技术教程

学IT技能上我学院网https://www.wendangku.net/doc/0f12197727.html, Unity3D光照贴图的Lightmapping技术教程今天我们来讲解Unity3d中光照贴图Lightmapping技术,Lightmapping光照贴图技术是一种增强静态场景光照效果的技术,其优点是可以通过较少的性能消耗使静态场景看上去更加真实,丰富,更加具有立体感;缺点是不能用来实时地处理动态光照。当游戏场景包含了大量的多边形时,实时光源和阴影对游戏的性能的影响会很大。 这时使用Lightmapping技术,将光线效果预渲染成贴图使用到多边形上模拟光影效果。 烘焙参数 Object选项卡 “All”组中的参数 Lightmap Static:选中则表示该物体将参与烘焙。 Scale In Lightmap:分辨率缩放,可以使不同的物体具有不同的光照精度。这样可以根据实际场景,令远景中的物体采用较低的分辨率,节省光照贴图的存储空间。而较近的物体采用较高的分辨率,使贴图更加逼真。

学IT技能上我学院网https://www.wendangku.net/doc/0f12197727.html, Lightmap Index:渲染时所使用的光照贴图索引。值为0,表示渲染时使用烘焙出来的第一张光照图;值为255,表示渲染时不使用光照图。 Tiling X/Y和Offset X/Y共同决定了一个游戏对象的光照信息在整张光照图中的位置,区域。 “Lights”中的参数 Lightmapping:有3种类型可选 1)RelatimeOnly:光源不参与烘焙,只作用于实时光照。 2)Auto:表示光源在不同的情况下作不同的响应。在烘焙时,该光源会作用于所有参与烘焙的物体;在实际游戏运行中,该光源会作为实时光源作用于那些动态的或者没有参与过烘焙的物体,而不作用于烘焙过的静态物体。在使用Dual Lightmaps的情况下,对于小于阴影距离(shadow Distance,Unity中用于实时生成阴影的范围,范围之外将不进行实时生成阴影)的物体,该光源将作为实时光源作用于这些物体,不管是静态还是动态。 3)表示光源只在烘焙时使用,其他时间将不作用于任何物体。

3d max烘焙纹理

看过入门教程后,相信您对VRP一定有了些初步的概念。在粗略地从三维模型建立到实时交互场景生成演示的全过程中,您可能已经意识到:有了VRP,制作虚拟现实场景已经不再是个难题,画面效果好坏的关键也不再是实时软件,仍然取决于传统的三维造型和渲染软件,又回到了您早已熟知的3ds max,而重点就是烘焙工具。 接下来我们着重介绍烘焙工具的使用,以及提高烘焙质量等相关问题。如我们所知,3ds max的烘焙工具或插件有很多,有从5.0版本开始加入的烘焙工具Render To Texture,有插件FinalRender提供的tBaker,还有VRay带来的Bake3D等等。这些都可以完成纹理烘焙的工作并被高效地应用到VRP中间去。 在下面的教程里我们就来进一步讲讲3ds max 5版本自带的Render To Texture。这里我们只挑选了其中比较重要的参数进行讲解,对于其它参数您可以参看3ds max的手册或其它相关书籍。3ds max 6版中的Render To Texture在一定程度上有所改变,如果您使用的是3ds max 6,就可以参阅我们提供的另一篇教程:《3ds max 6烘焙优化教程》。 【目录】 ?烘焙纹理并导出 ?调试烘焙参数 ?其它注意事项 ?总结 ·1.打开场景 ·打开本教程所提供的max场景angel-max5.max。灯光、材质、相机、渲染参数等已经设置好。如下图。 ·2. 使用默认参数烘焙并导出

·接下来的工作就是烘焙,烘焙步骤完全按照入门教程里介绍的进行,在此不再重复。本例使用CompleteMap 作为烘焙类型,烘焙类型Light Map的使用方法跟CompleteMap是完全一样的,唯一要注意的是Light Map 纹理对应的Target Map Slot必须是Self-Illumination。烘焙完毕并导出至VRP-Builder,结果如下图。默认参数如被更改,请参照入门教程中的参数进行调整。 我们看到导出的效果并不理想。小天使的脸上、鼻翼、翅膀等部位出现了不同程度的黑斑。这是因为在烘焙时没有对一些参数作调整造成的。原因之一是:当物体被烘焙时首先会被烘焙工具进行UV平铺,而平铺的质量会直接影响到烘焙的质量。 ·调试烘焙参数 ·1. 调节参数 ·回到3ds max,打开Render To Texture面板,确保刚才的物体仍被选择。修改General Settings全局设置栏里的第二项Automatic Unwrap Mapping。将Threshold Angle的值改为60。 这个参数可以调节自动平铺UV纹理的角度域,提高它可以让更多的多边形片面放置在同一个簇里。增大平铺的簇从而减少平铺簇的碎片。由于渲染精度有限,过小的碎片渲染时会被忽略掉,这样就会出现黑斑。但Threshold Angle也不能过高,过高会造成多边形过度扭曲引起失真,出现图像拉伸的情况,具体介绍和其它参数大家可以参看3ds max的手册或其它相关书籍。 改完后再次烘焙。

Unity3D技术之Graphics Features线性照明(仅限专业版)浅析

线性照明(仅限专业版)概述线性照明指在所有输入呈线性的情况下照亮场景的过程。通常,存在将伽玛预先应用到其中的纹理,这表示,纹理在材质中进行采样时,呈非线性。如果这些纹理用于标准照明方程式,将导致方程式结果不正确,因为预计所有输入在使用前都呈线性。 线性照明指确保着色器的输入和输出都使用正确的色彩空间的过程,它可提高照明的准确性。 现有(伽玛)管道在现有渲染管道中,所有颜色和纹理都在伽玛空间中采样,也就是说,在着色器使用图像或颜色之前,伽玛校正不会从其中移除。由于这一原因,着色器中的输入位于伽玛空间,但在照明方程式使用这些输入时,均视其位于线性空间中,最终未将伽玛校正应用到最终像素。大部分时候,上述现象看似合理,因为两种错误从某种程度相互抵消。但这是不正确的。 线性照明管道如果启用线性照明,则会提供着色器工程的输入,其中的伽玛校正已移除。如果您位于线性空间中,则会以隐性方式将此转换应用到颜色。使用硬件sRGB 读取进行纹理采样,依次向伽玛空间和图形硬件的样本上提供源纹理,然后自动转换结果。然后向着色器提供这些输入,照明会照常运行。然后,程序会将所得的值写入到帧缓冲区。此值将进行伽玛校正并写入到帧缓冲区,或留在线性空间中以备将来进行伽玛校正;这取决于当前的渲染配置。 线性照明与伽玛照明之间的区别使用线性照明时,照明方程式的输入值不同于伽玛空间中的值。这表示,光线到达表面时形成的感应曲线不同于现有Unity 渲染管道形成的感应曲线。 灯光衰减远距离和普通基于照明的衰减有两种变化方式。首先,在线性模式中渲染时,执行的额外伽玛校正将扩大灯光半径。其次,这也将导致照明边缘更加锐化。这可更准确地模仿表面的照明亮度衰减。 线性亮度感应使用伽玛空间照明时,向着色器提供的颜色和纹理含有其中应用的伽玛校正。将其用于着色器时,高亮度的颜色实际上比线性照明的亮度更大。这表示,随着光线亮度增加,表面会以非线性方式变亮。这将导致许多位置的光线过亮,还会使得模型和场景呈褪色状。使用线性照明时,随着照明亮度的增加,但表面的感应仍呈线性。这可令表面的着色更具真实感,并极大地美化表面的色感应效果。

详解Unity 5中的全局光照

详解Unity 5中的全局光照 Unity5在图形仿真和光照特效方面做了重大改变。自从3.0版本开始,Unity的光照效果一直局限于烘焙好的光照贴图。但后续的时间里,我们在全局光照领域有了很大的提升与改进,现在,是时候将其中部分美好的特性从Unity的沙盒中开放出来了。其中之一的新图形特性就是基于新的和极大改善的光照流程基础上的全局实时光照。这也是本文的重点。 什么是全局光照?GI算法是基于光传输的物理特性的一种模拟。他是一种模拟光在3D场景中各表面之间的传输的有效方式,他会极大的改善你游戏的仿真度。不仅如此,他还可以传达一种意境,如果巧妙的使用,可以有效得改善你的游戏体验。GI算法不仅考虑光源的直射光,而且还考虑场景中其他材质表面的反射光。传统上,在游戏中,由于实时性的约束,间接光照的模拟因性能消耗过大而被弃置一旁。这些都是源于下面这个浅显的方程: 这个很简单。从某一观察点看到的光是从场景中物体表面点入射的光(Le)与从观察点上方的半球入射的光的叠加。Li描

述的是从半球上某一角度w’入射的光。反射项p描述的是光线如何反射到观察点,这项的取值依赖于入射角w’和观察者的角度w。细心的读者可能已经发现L(x,w)在方程的两边,而且有一个还在在积分式中。如果不是这种情形,我们也许已经计算出全局光照的结果。由于物理规律是不太可能去修改的,研究协会提出了一套解决方案。其中最流行(最古老的)的是光线跟踪算法。这个算法从根本上改善了GI 算法,在算法最困难的部分使用了一些比较耗时的技巧。光线跟踪在电影或者电视的CGI上使用了很多。尽管该领域涌现了大量的研究成果,但是一张图像的渲染还是要花费数秒的时间(哪怕使用非常先进的GPU)。光线跟踪通常使用的是屏幕空间,所以,一张图像每一帧都需要重新渲染。这意味着,他完全支持完全动态的场景:灯光、材料、几何形状自由变换的动画。这也是一个缺点,因为每当摄像机移动的时候,一张新的图片需要被渲染,而这张新图像的收敛融合需要花费数秒钟的时间。这也导致他无法适用于游戏场景。一张没有完全收敛融合的图像会有很多噪点,而且他是时间不相干的,所以,图像在完全收敛融合之前会有严重的闪烁。可以使用滤波来降低这种影响,但是不能彻底消除。下面是一些在不同收敛融合程度的图像。

3DMAX贴图制作教程-贴图的坐标

3DMAX贴图制作教程 6.3.2 贴图的坐标 如果赋予物体的材质中包含任何一种二维贴图时,物体就必须具有贴图坐标。这个坐标就是确定二维的贴图以何种方式映射在物体上。它不同于场景中的XYZ 坐标系,而使用的是UV或UVW坐标系。每个物体自身属性中都有Generate Mapping Coordiantes生成贴图坐标。此选项可使物体在渲染效果中看到贴图。 我们可以通过UVW Map修改器为物体调整二维贴图坐标。不同的对象要选择不同的贴图投影方式。在UVW MAP修改器的参数卷栏中可以选择以下几种坐标。 · P lanar平面:平面映射方式,贴图从一个平面被投下,这种贴图方式在物体只需要一个面有贴图时使用,如图6-45所示。 图6-45 平面贴图坐标 · Cyl indrical柱面:柱面坐标,贴图是投射在一个柱面上,环绕在圆柱的侧面。这种坐标在物体造型近似柱体时非常有用。在缺省状态下柱面坐标系会处理顶面与底面的贴图如图6-46所示。只有在选择了Cap选项后才会在顶面与底面分别以平面式进行投景如图6-47所示。

图6-46 缺省柱面贴图坐标图6-47 打开Cap设置后柱面贴图坐标 注意:顶面与侧面不呈直角,封顶贴图将和侧面融合。 · Spherical球面:贴图坐标以球面方式环绕在物体表面,这种方式用于造型类似球体的物体,如图6-48所示。 图6-48 球面贴图坐标 · Shrink Wrap收紧包裹:这种坐标方式也是球形的,但收紧了贴图的四角,使贴图的所有边聚集在球的一点。可以使贴图不出现接缝,如图6-49所示。

图6-49 收紧包裹贴图坐标 · Box立方体:立方体坐标是将贴图分别投射在六个面上,每个面是一个平面贴图,如图6-50所示。 图6-50 立方体坐标 · Face面:以物体自身的面为单位进行投射贴图,两个共边的面会投射为一个完整贴图,单个面会投射为一个三角形,如图6-51所示。 图6-51 面坐标 · XYZ to UVW:贴图坐标的XYZ轴会自动适配物体造型表面的UVW方向。 这种贴图坐标可以自动选择适配物体造型的最佳贴图形式,不规则物体适合选择此种贴图方式,如图6-52所示。

附四:模型烘焙方法

模型烘焙方法 一.烘焙贴图尺寸 1.根据烘焙物体重要性及光影效果选择体图尺寸,一般使用256×256,细节较多可是少量使用512×512,及个别情况用1024×1024。 二.烘焙贴图坐标 1.自动生成烘焙贴图坐标打开菜单栏Rendering下的Render to Texture..烘焙面板。 (下面未涉及到的参数均按默认值处理)在Mapping Coordinates下,Object:选择 Use Automatic,Channel=3。Output下添加LightingMap烘焙方式,Target Map Slot 选 择Self-llluminationn。 2.半人工展开烘焙贴图坐标选择需烘焙物体添加Unwrap UVW命令,Channel=3,打开Edit UVWs编辑器。在编辑器中选择全部,然后在菜单栏中的Mapping下选择 Flatten Mapping,Spacing值在0.001到.0.02之间(根据贴图尺寸而定,尺寸越大值 约大)。再打开菜单栏Rendering下的Render to Texture..烘焙面板。(下面未涉及到 的参数均按默认值处理)在Mapping Coordinates下,Object:选择Use Existing, Channel=3。Output下添加LightingMap烘焙方式,Target Map Slot 选择 Self-llluminationn。 三.暂时不支持VRay。 四.效果检查 1.当烘焙完毕后,打开材质面板,吸取物体上的材质。在材质的Baked Materiat下点开Defualt在Self-llluminationn后点开M,然后点击现实该贴图。这时观察模型上的光影贴图是否正确。 五.关于正常贴图尺寸的建议:一般情况下电脑显示器的显示为1024×768象素,我们在虚拟现实场景中漫游的时候,很少让一个建筑的某张贴图占面整个画面,也就是高度768象素,所以一般情况下贴图使用1024是没有意义的,还有,当多个部分共用一张1024贴图时,之间的白色空隙请加以利用。请在保证质量的情况下尽量降低贴图数据量。

3Dmax光影烘培总结

3Dmax烘培 通过对烘培的学习和对高管局的烘培实验和对烘培问题的解决,我对光影烘培有了一定的了解,对烘培流程和烘培过程中遇到的一些问题有了一些体会。 这里我将两天烘培学习中对烘培的认识和体会作了一个简单的总结:一.烘培流程 我将烘培分为八个部分,分别为以下几个环节: 1.数据分析及处理; 2.拆分UV; 3.打摄像机; 4.灯光测试; 5.调整灯光与贴图; 6.烘培; 7.烘培贴图调整。 数据分析及处理——拿到数据后首现分析数据,是只需打室外还是室内室外结合烘培、小物件的数据、烘培范围的大小。将模型的数量做调整,分离较大的物体,尽量把大物体和大物体合并,小物体和小物体合并,然后过插件保证多余的材质节点被删除。模型处理后尽量使模型的面数在一到两千之间,因为面分得越多,烘培出来的效果越好。在拆完后检测物体的是否封闭,有没有漏光的可能。 拆分UV——拆分UV之前,首现要确保物体多余的材质节点已经删除。拆分UV可以使用UVWmap修改器,在展开前选择3DGIS支持的通道,这里的通道为2。在编辑过程中选择展平贴图,面角阀值设为60,间距为0.002。拆分时尽量利用UV编辑器的空间,对于没有充分利用的地方可以单独选择分布较密集的UV再次拆分,然后整体缩放并移动到UV框中没有利用到的空白地方。 打摄像机——场景中有的地方分布很密集,空间较狭窄镜头很难较好的显示物体全貌,则需要单独打上摄像机来观察场景。在灯光测试过程中可以挪动这个摄像机来调整视角,配合灯光的调整。 灯光测试——常见打灯方法有两种:三点光源和主光天光。三点光源适合与Vary来渲染,其因渲染速度慢,效果不明显而不被大量使用在项目中。主光天光的配合使用有渲染速度快,易掌握,易调整等优势而被应用于批量烘培。 灯光测试包括外景灯的测试和内景灯的测试。在需要同时烘培外景和内景时

相关文档
相关文档 最新文档