untiy 3d ShaderLab_第8章_2_在效果和性能间进行权衡
2016-05-11 20:52
253 查看
第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选项只会影响烘焙的时间,并不会影响最终烘焙出的贴图大小。
下图为烘培后的场景:
下图为Lighting控制面板(版本5.0以上的):
在影响Altas大小的地方,我们首先可以考虑Scene(Bake)面板最下而的Resolusion选项。这是一个影响全局的选项,当前的Resolusion为50时,
生成4张光照贴图:
降低一半到25,然后烘焙一下看看。
在这里,烘焙之后的光照贴图变为两张,压缩格式下只有21.3MB图为所示。
8.2.2影响单个物体的Scale In Lightmap选项
除了Resolusion这个影响全局的选项之外,我们还可以有选择性地让某个被烘焙的物体对应的贴图部分变小,比如说我们觉得地而不重要,想让它的光照贴图部分变小。这个选项在Lighting的Object子面板上。我们将所有对象的Scale
In Lightmap数值设为0.25即只为原来的四分之一大小,如下图所示,Resolusion改回50,然后我们再烘焙看看。
结果在我们牺牲光照图比率的情况下,烘焙结果为1张光照贴图,压缩格式下大小为10.7MB,比较刚开始时的4张,少了三张贴图。
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选项只会影响烘焙的时间,并不会影响最终烘焙出的贴图大小。
下图为烘培后的场景:
下图为Lighting控制面板(版本5.0以上的):
在影响Altas大小的地方,我们首先可以考虑Scene(Bake)面板最下而的Resolusion选项。这是一个影响全局的选项,当前的Resolusion为50时,
生成4张光照贴图:
降低一半到25,然后烘焙一下看看。
在这里,烘焙之后的光照贴图变为两张,压缩格式下只有21.3MB图为所示。
8.2.2影响单个物体的Scale In Lightmap选项
除了Resolusion这个影响全局的选项之外,我们还可以有选择性地让某个被烘焙的物体对应的贴图部分变小,比如说我们觉得地而不重要,想让它的光照贴图部分变小。这个选项在Lighting的Object子面板上。我们将所有对象的Scale
In Lightmap数值设为0.25即只为原来的四分之一大小,如下图所示,Resolusion改回50,然后我们再烘焙看看。
结果在我们牺牲光照图比率的情况下,烘焙结果为1张光照贴图,压缩格式下大小为10.7MB,比较刚开始时的4张,少了三张贴图。
相关文章推荐
- volley学习笔记
- 软件测试计划
- yum安装及配置
- [转]使用 Xcode 5 和 Interface Builder创建 Hello World App
- 软考程序员随笔-----6
- Nginx代理与负载均衡
- C++ main 函数
- 华为 配置dhcp ,hybridvlan,动态rip协议实现全网互通
- (4.1.23.5)自定义控件三部曲之动画篇(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画
- C经典 进制转换
- 解决oralce10g临时表空间不断变大的问题
- Eclipse用Tomcat插件部署Java Web项目
- mysql 学习笔记4
- 一元非线性回归-多项式函数拟合
- (4.1.23.4)自定义控件三部曲之动画篇(二)——Interpolator插值器
- (4.1.23.3)自定义控件三部曲之动画篇(一)——alpha、scale、translate、rotate、set的xml属性及用法
- 第十一周实践项目9————日期时间类
- 一个把List<String>转化为以","隔开的字符串的方法
- 人月神话阅读笔记02
- B