Unity3D技术之深入了解光照贴图详解

2016/08/23 18:22
阅读数 816

 


深入了解光照贴图
 

如果是第一次接触 Unity 中的光照贴图,本快速入门指南将对您有所帮助。

 

      光照贴图完全集成到 Unity 中,可在编辑器 (Editor) 中创建整个关卡,然后对其进行光照映射,让所有材质自动获取光照贴图,无需手动进行。对 Unity 中的光照贴图来说,所有灯光属性会直接映射到 Beast 光照烘培贴图工具中并烘培到纹理,提高性能。Unity 专业版扩展了全局照明 (Global Illumination) 功能,可烘培出真实、美观的光照,实时的相反操作则不可行。此外,Unity 专业版提供天光和发光材质,使场景照明更加有趣。 在本页中,您将看到光照贴图 (Lightmapping) 窗口中出现的所有属性的深入描述。要打开光照贴图 (Lightmapping) 窗口,请选择窗口 (Window) – 光照贴图 (Lightmapping) 选项。


204216skngd65cqdtzozao.jpg 
 

检视器顶部有三个场景筛选器 (Scene Filter) 按钮,供用户将操作应用到所有对象或限制在灯光或渲染器内。



对象 (Object)


每个对象的灯光、网格渲染器和地形烘培设置根据当前的选择而定。

单击场景筛选器 (Scene Filter) 按钮可在层级视图 (Hierarchy) 中轻松看到灯光、渲染器或地形。

网格渲染器和地形 (Mesh Renderers and Terrains):

 

   
静态光照贴图 (Lightmap Static) 网格渲染器和地形 (Mesh Renderers and Terrains) 须标为静态才能进行烘培。
光照贴图比率 (Scale In Lightmap)

(仅用于网格渲染器 (Mesh Renderers))值越大,网格渲染器的分辨率越高。最终分辨率将成比例(光照贴图缩放 (Scale))*(对象的世界坐标空间所占面积)*(全局烘培设置分辨率 (Resolution) 值)。值设置为 0 将不烘培对象(但仍会影响其他烘培对象)。

光照贴图大小 (Lightmap Size) (仅用于地形)地形实例的光照贴图大小。地形不与其他对象共用图集,而是有自己的光照贴图。
图集 (Atlas)

如果禁用锁定图集 (Lock Atlas),图集信息 – 将自动更新。如果启用锁定图集 (Lock Atlas),这些参数不会自动修改,可手动编辑。

光照贴图索引 (Lightmap Index) 光照贴图数组中的索引。
平铺 (Tiling) (仅用于网格渲染器 (Mesh Renderers))对象的光照贴图 UV 平铺。
偏移 (Offset) (仅用于网格渲染器 (Mesh Renderers))对象的光照贴图 UV 偏移。

 

灯光 (Lights):

 

   
光照贴图 (Lightmapping) 光照贴图 (Lightmapping) 模式:仅限实时 (Realtime Only)、自动 (Auto) 或仅限烘培 (Baked Only) 模式。参阅以下双重光照贴图 (Dual Lightmaps) 说明。
颜色 (Color) 灯光颜色。实时渲染采用相同属性。
强度 (Intensity) 灯光强度。实时渲染采用相同属性。
反弹强度 (Bounce Intensity) 特定光源发出的间接灯光强度的倍增值。
烘培阴影 (Baked Shadows) 控制这盏灯照明的对象是否投射阴影(在自动灯光 (Auto) 的情况下控制实时阴影)。
阴影半径 (Shadow Radius) (仅用于点光源和聚光灯)增加该值形成直接软阴影,增加该灯光投影(而非照明)的覆盖面积计算。
阴影角度 (Shadow Angle) (仅用于方向灯)增加该值形成直接软阴影,增加该灯光投影(而非照明)的角度覆盖面积计算。
阴影采样 (Shadow Samples) 如果将阴影半径 (Shadow Radius) 或角度 (Angle) 值设为大于零的数,将相应增加阴影采样 (Shadow Samples) 的数量。高采样值将消除半影中的噪点,但会增加渲染次数。


烘培 (Bake)

全局烘培设置
 

   
模式 (Mode) 控制脱机光照贴图烘培和运行时的光照贴图渲染模式。在双重光照贴图 (Dual Lightmaps) 模式中,近端和远端的光照贴图都会烘培;只有延迟渲染路径支持渲染双重光照贴图。单光照贴图 (Single Lightmaps) 模式只会使远端的光照贴图被烘培;延迟渲染路径中也可强制使用单光照贴图 (Single Lightmaps) 模式。
使用向前渲染 (Use in forward rendering) (仅用于双重光照贴图 (Dual lightmaps))在向前渲染中启用双重光照贴图。注意,在该选项中要求创建自己的着色器用于操作。
质量 (Quality) 高质量(效果好)和低质量(速度快)烘培的预设值。它们会影响最终聚集光线的数量、对比度阈值及部分其他最终聚集和抗锯齿设置。
反弹 (Bounces) 全局照明 (Global Illumination) 模拟中光线反弹的次数。至少要有一次反弹才能形成真实柔和的间接光线。设置为 0 时只会计算直接光线。
天光颜色 (Sky Light Color) 天光模拟天空各个方向放射出的光线,很适合室外场景。
天光强度 (Sky Light Intensity) 天光的强度,值设置为 0 将禁用天光。
反弹增强 (Bounce Boost) 允许增强黑暗场景中的光线反弹。如果场景中包含黑暗材质,可用直接强光补充。间接照明将非常微弱,因为反弹光线会快速消失。将反弹增强的值设置为大于 1 可通过将反射率颜色值推向 1 用于 GI 计算,对此进行补偿。请注意,0 至 1 之间的值会减少光线反弹。实际计算按照每个组件的 pow(colorComponent, (1.0/bounceBoost)) 进行。
反弹强度 (Bounce Intensity) 间接光线强度的倍增值。
最终聚集光线 (Final Gather Rays) 每个最终聚集点发射出的光线数量,值越高,质量越好。
对比度阈值 (Contrast Threshold) 颜色对比阈值,据此,新的最终聚集点采用适当的采样算法进行创建。值越高,Beast 允许的表面照明变化越多,从而产生较平滑、不太详细的光照贴图。最终聚集光线数量越少,需要的对比度阈值越高,从而不迫使创建其他最终聚集点。
插值 (Interpolation) 控制最终聚集点颜色的插值。0 表示线性插值,1 表示基于梯度的高级插值。在某些情况下推荐使用后者。
插值点 (Interpolation Points) 插入最终聚集点之间的数值。数值越高,效果越平滑,但也会消除照明中的细节。
环境光遮挡 (Ambient Occlusion) 烘培至光照贴图中的环境光遮挡量。环境光遮挡指集成了本地半球大小最大距离 (Max Distance) 的可见性函数,因此不考虑任何照明信息。
锁定图集 (Lock Atlas) 启用锁定图集 (Lock Atlas) 时,自动图集不会运行,对象的光照贴图索引、平铺和偏移不能修改。
分辨率 (Resolution) 每世界单位的光照贴图分辨率大小,将分辨率设置为 50 的 10×10 单位平面将产生一张 500×500 纹素的光照贴图。

填充 (Padding)

图集上单个项目之间剩余的空白区,以纹素单位 (0..1) 表示。



贴图 (Maps)

所有光照贴图的可编辑数组。
 

   
压缩 (Compressed) 控制是否压缩场景中所有光照贴图资源。
数组大小 (Array Size) 光照贴图数组的大小(0 至 254)。
光照贴图数组 (Lightmaps Array) 当前场景中所有光照贴图的可编辑数组。未指定的通道处理为黑色光照贴图。索引相当于网格渲染器和地形 (Mesh Renderers and Terrains) 中的光照贴图索引 (Lightmaps Index) 值。除非启用锁定图集 (Lock Atlas),否则该数组将自动调整大小并在烘培光照贴图时进行填充。


光照贴图显示 (Lightmap Display)

控制光照贴图如何在编辑器中显示的工具。光照贴图显示 (Lightmap Display) 是场景视图 (Scene View) 的一个子窗口。只要光照贴图 (Lightmapping) 可见,就显示该子窗口。
 

   
使用光照贴图 (Use Lightmaps) 控制是否在渲染时使用光照贴图。
阴影距离 (Shadow Distance) 自动 (Auto) 模式灯光与近端 (Close By) 光照贴图淡出为远端 (Far Away) 光照贴图之间的距离。该设置重写 QualitySettings.shadowDistance 设置但不会覆盖。
显示分辨率 (Show Resolution) 控制场景视图中的光照贴图分辨率 (Lightmap Resolution) 模式,开启该模式可预览静态对象的光照贴图纹素大小。
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部