untiy 3d ShaderLab_第8章_2_在效果和性能间进行权衡

第8章 基于光照贴图的烘焙照明
    Lightmap即光照贴图,是游戏中应用很广泛的、便宜而且很出效果的一种模拟光照的方法。这种光照贴图需要提前渲染,因此可以应用在静态效果图中,是应用很广泛的全局照明技术。但是,这种方法一般只适用于静态物体。当然,Unity做了很多工作,可以让我们混合使用静态的光照贴图和动态的实时光源,无缝地照亮场景中静态或动态的物体。

    光照贴图不只可以在Unity中被创建,事实上,我们可以使用任何可渲染软件来创建,但这里只提及使用已经整合到Unity中的Beast。

Resolution 分辨率: 每世界单位中光照图分辨率的大小。因此当设置分辨率为50的一个10单位乘以10单位的平面将产生一张500*500像素的光照贴图。
Scale In Lightmap 光照图比率: (只作用于可渲染网格)特别大的数值将分配给可渲染网格更大的分辨率。最终分辨率比例(光照图缩放)*(物体世界坐标空间所占面积)*全局分辨率烘培设置)如果设置为0物体将不被烘培。(但是它依旧对其他的物体有影响)

Quality 质量: 高质量(比较好的效果)和低质量(计算速度快)的预设值。它们将影响最终聚集光线数量和对比度的数值以及其他有关最终聚集和抗锯齿的设置。

8.2在效果和性能间进行权衡
8.2.1影响全局的Resolution i选项

       首先打开Lab 2文件夹下的场景,这里有1个烘焙过的场景,打开Lighting(5.0以后版本是Lighting,以前的版本是:Lightmapping)面板,然后 选择Scene,当然,可以考虑降低光照贴图的质量,怎么降低呢?Bake面板下的Quality(质量)以及Bounces选项只会影响烘焙的时间,并不会影响最终烘焙出的贴图大小。

下图为烘培后的场景:

untiy 3d ShaderLab_第8章_2_在效果和性能间进行权衡_第1张图片

下图为Lighting控制面板(版本5.0以上的):

untiy 3d ShaderLab_第8章_2_在效果和性能间进行权衡_第2张图片       


    在影响Altas大小的地方,我们首先可以考虑Scene(Bake)面板最下而的Resolusion选项这是一个影响全局的选项,当前的Resolusion为50时,

untiy 3d ShaderLab_第8章_2_在效果和性能间进行权衡_第3张图片

生成4张光照贴图

untiy 3d ShaderLab_第8章_2_在效果和性能间进行权衡_第4张图片

降低一半到25,然后烘焙一下看看。

untiy 3d ShaderLab_第8章_2_在效果和性能间进行权衡_第5张图片

在这里,烘焙之后的光照贴图变为两张,压缩格式下只有21.3MB图为所示。

untiy 3d ShaderLab_第8章_2_在效果和性能间进行权衡_第6张图片



8.2.2影响单个物体的Scale In Lightmap选项
    除了Resolusion这个影响全局的选项之外,我们还可以有选择性地 让某个被烘焙的物体对应的贴图部分变小,比如说我们觉得地而不重 要,想让它的光照贴图部分变小。这个选项在Lighting的Object 子面板上。我们将所有对象的Scale In Lightmap数值设为0.25 即只为原来的四分之一大小,如下图所示,Resolusion改回50,然后 我们再烘焙看看。
untiy 3d ShaderLab_第8章_2_在效果和性能间进行权衡_第7张图片



    结果在我们牺牲光照图比率的情况下,烘焙结果为1张光照贴图,压缩格式下大小为10.7MB,比较 刚开始时的4张,少了三张贴图。untiy 3d ShaderLab_第8章_2_在效果和性能间进行权衡_第8张图片

你可能感兴趣的:(3D,shaderlab,untiy,在效果和性能间进行权衡)