Unity光照与渲染设置学习笔记

学习了一下unity中有关光照和渲染的一些设置,现在才明白之前遇到的一些问题只是没有正确设置而已。

unity不同版本的光照设置会有一些差异,而且可以调节的参数非常多,这里只记录一些重要的参数和使用方法,具体使用时再查阅文档即可。

调节这些参数的主要目的就是在性能和画面效果上达到平衡,所以具体怎么调还是看游戏需求。

作为一个还不懂图形学的萌新,只是从效果出发学习这些设置,并不了解原理,如果写的不好,请见谅。

unity版本:2018.3.2f1

1.色彩空间

打开项目首先要设置的就是色彩空间,unity中有Linear和Gamma两种色彩空间可供选择,这两种色彩空间的效果如下图所示,很明显Gamma空间在表现上不如Linear空间自然、真实,很容易曝光过度,所以如果想要更好的画面效果,建议选择Linear空间,如果追求性能,比如移动平台游戏可以考虑选择Gamma空间。

 unity2018.3.2f1中可以在Edit->Project Settings->Player->Other Settings下选择色彩空间。

2.天空盒

天空盒的本质其实是一个材质,要自定义天空盒,只需创建一个材质,将shader选择为Skybox下的一种,赋予对应的图片,然后将材质拖入场景,就能使用自己的天空盒了!

3.环境光

接下来就是最重要的Lighting面板的设置了,unity2018.3.2可以在Window->Rendering->Light Settings打开,这个面板包含了大量与光照和渲染相关的设置,直接影响到游戏的画面效果。

咱们一点一点来,先从Environment选项开始,这里包含了一些与环境光照相关的设置。

Skybox Material用于指定天空盒,跟直接把天空盒材质拖进场景没有区别。

Sun Source不需要设置,unity会默认把场景中最强的平行光作为太阳,这样当你旋转平行光时,天空盒上的太阳也随之移动,并且场景会有白天黑夜的变化。

Environment Lighting用于设置环境光源,选择skybox则环境光来自天空盒,如果将Source设置成color就可以自定义环境光的颜色。

下图为使用天空盒作为环境光和自定义环境光为红色的效果,很多游戏为了营造气氛,都会使用自定义的环境光。

                                 

Environment Reflections决定环境反射,如果你的场景中有镜子或其他带有反射性的物体,这个选项决定它们反射什么对象,你可以使用天空盒,或者自定义的CubeMap,值得注意的是,如果你发现反射的内容很模糊,可以调节Resolution参数, 提高反射的分辨率。

4.灯光参数

简单说一说unity里的灯光,unity有四种灯光类型,分别是聚光灯、平行光、点光源、区域光,每种光源有一些特殊的参数可以调节。

光源模式可以选择Realtime(实时)、Mixed(混合)、Baked(烘焙)三种,实时灯光对性能消耗最大,烘焙模式可以将预先将灯光烘焙成光照贴图所以性能最优,而Mixed介于两者之间。

Shadow Type决定了光源对阴影的影响,可以选择无阴影、硬阴影或软阴影,还可以调节阴影的强度、分辨率、偏移等,软阴影最耗性能,硬阴影其次。

5.全局光照(Global illumination)

接下来是两个全局光照选项,分别是实时全局光照和烘焙全局光照,通常这两个只要开一个就行,取决于你的游戏使用实时光照还是烘焙光照。

Mixed Lighting下可以选择Lighting Mode,有Baked Indirect,Subtractive,Shadowmask三种

其中Subtractive效果最差,性能最好,Baked Indirect效果最好,性能最差,Shadowmask居中。

6.烘焙光照参数

下面来看看烘焙光照相关的参数,这决定了你烘焙出的光照贴图是什么样的。

这里只说一些重要的参数。

LightMapper可以选择烘焙方案,一般默认就行。

Lightmap Resolution光照贴图分辨率,这直接影响烘焙的时间长短。

Lightmap Size决定光照贴图大小。

Compress Lightmaps决定是否压缩光照贴图,如果追求更好的画面请取消压缩。

Ambient Occlusion决定是否开启环境光遮蔽,想要更真实的效果请开启。

Indirect Intensity决定间接光的强度,可以调整场景的整体亮度。

设置好这些参数之后记得将场景中的静态物体设置为Lightmap Static,这样才会受到烘焙光照的影响,然后点击Lighting面板最下方的Generate Lighting,即可开始烘焙光照贴图。

烘焙完之后相当于把光照贴到了物体身上,即使把场景中的灯光删除,光照也依然存在,不过此时移动灯光或物体,物体的阴影并不会改变,所以只有不移动的物体才适合烘焙光照。

7.后处理

最后简单说说屏幕后处理,这是一种快速提升游戏画面效果的“黑科技”,在unity asset store上可以免费下载unity官方的后处理插件Post Processing Stack。

使用方法如下:

在project面板中右键Create->Post-Processing Profile创建一个后处理配置文件

后处理配置文件中有很多效果选项,点击前面的勾即可启用,每个选项有各种参数可以调节,感兴趣可以自己尝试,我个人认为Bloom真的非常好用,它能使画面亮部产生光晕效果,让你的游戏瞬间变得如梦似幻,还有Color Grading,可以改变画面的色调、饱和度、对比度等等,非常实用,可以帮助你快速营造出特定的场景氛围。

设置好配置文件之后之后,在摄像机上挂载Post Processing Behaviour这个脚本,并把我们刚配置的文件拖上去,然后就大功告成了!

下面是不使用后处理和使用后处理的对比,我没有对物体和灯光做任何改变,只随手调了一些参数,可见后处理的强大。

 

关于光照和渲染,其实还有太多的知识,但普通的开发者使用这些设置已经能达到不错的效果了。

最近其实还是挺迷茫的,写博客的时候反而能静下心来,倒也是意料之外的收获。

接下来的规划准备学习一些编程模式和算法,时间充裕的话想把游戏美术搞起来,加油!

猜你喜欢

转载自www.cnblogs.com/LiveForGame/p/10539273.html