阿赵UE学习笔记目录
大家好,我是阿赵。
继续学习虚幻引擎的使用。上一篇说了灯光的移动性问题,这一篇来看看怎样去辨别灯光性能的好坏。
虚幻引擎里面有一组显示模式是专门用来看场景当前的灯光和网格渲染的,叫做优化试图模式:
1、光照复杂度
打开一个打了灯光的场景,找一个场景的角落,然后选择光照复杂度:
可以看到场景变成了各种颜色的叠加:
这些颜色代表的含义,在下面有一个颜色参考条,最左边的颜色,是最好的,最右边的颜色,是最差的。刚好我这个截图里面,好的和差的情况,都有出现,说明了这个局部里面打的灯光比较复杂。
如果换一个角度看,情况就会不一样了:
这一边的光照比较简单,所以一片还是保持在比较好的范围。
如果觉得上面的场景很复杂,也可以自己建一个小场景去测试一下:
这个场景有直射灯、聚光灯和点光源,可以看到不同的光源会产生一个自己的范围,然后互相叠加。
通过光照复杂度,我们想做的事情事检查一下场景里面哪些地方的光照复杂,在不太影响整体效果的情况下,尽量降低光照的复杂程度。
2、光照贴图密度
同样的打开一个场景然后进入光照复杂密度显示模式:
这个时候,就看到了场景里面的模型变成了不同深浅的蓝色或者绿色的情况,然后模型上面显示着格子,有点类似于我们在三维软件里面展UV时的UV格子的感觉。
由于这个场景还是太复杂了,为了简单观察,还是回到简易场景看看:
这个时候可以看出,地面的面片和上面的立方体,他们的格子大小不一样,显示的颜色也不一样。这个代表的是他们展了第二套用于Lightmap的UV,在实际的Lightmap里面占的大小。
这个概念对于做展UV和模型贴图的朋友会比较熟悉。在使用同一张贴图的情况下,两个模型如果展UV时大小差别很大,那么出来的效果就是两个模型显示贴图的精度会有差别,一个模型清晰一个模型模糊。如果是这样两个模型摆在同一个场景里面,效果会很奇怪。
同样的,如果在同一个场景里面烘焙Lightmap的两个模型,一个UV占得多一个UV占得少,就会导致模型上的阴影显示精度不一致,也会很奇怪。
所以我们需要根据这个光照贴图密度来调整,调整的方式有2种:
1.静态网格导入修改
打开静态网格模型的导入编辑窗口
这里搜索lightmap,会看到一个光照贴图分辨率。修改这里的数值,会让所有用到同一个静态网格的模型对象身上的光照贴图分辨率变化。
2.在细节面板修改
在场景里面选择某个物体对象,然后在细节面板搜索lightmap
会找到一个覆盖的光照贴图分辨率。把前面的勾勾上,这个时候,这个对象会忽略了静态网格设置里面的光照贴图分辨率,而使用这个细节面板选项的值。
两种方法各有好处,根据自己的实际情况来调整就可以。
经过了微调之后,现在面片和立方体身上的格子大小已经比较的接近,显示的颜色也差别不是很大了。这个时候就证明了我们烘焙Lightmap后,这两个模型的显示精度差别不大。
3、固定光源重叠
这个选项是针对光源的移动性为“固定”的情况,固定类型光源本身是可以烘焙光源,又可以使用动态影子的,但固定光源的重叠本身是有上限的,上限是4个。
比如下图这个简易场景,我打了很多灯光,有点光源也有聚光灯,它们的类型全部都是固定。
可以从场景上看到,有几个灯光的图标上面出现了红色的叉,这几个有叉的光源,代表的意思是,固定光源重叠超过了4个,当前的光源被改为了可移动的。
如果构建灯光,也可以在消息日志里面看到这部分的说明。
不过阿赵我没搞懂的是,我进入固定光源重叠模式看,却没有看到说明文档里面提到的可以直观看到哪些灯光会由于叠加而颜色。有知道的朋友麻烦告诉一下我,谢谢。
4、着色器复杂度
我觉得这是一个挺牛的功能。我在Unity里面也写了好多年Shader了,但实际上在整个场景里面,有哪些地方使用了比较复杂的Shader计算,我一直都只能是凭感觉来猜。但UE却直接有这样的功能可以显示:
在整个场景变了颜色之后,下面有一个颜色条,说明了对应颜色Shader的复杂度
这样,就可以很快的找出复杂的Shader,然后进行优化了。
4、着色器复杂度和四边形
这个模式是在着色器复杂度的基础上,加上了四边形过度绘制的显示:
可以看到,除了刚才的Shader复杂度颜色,场景里面还显示出了线框
5、四边形过度绘制
这个模式显示的是网格模型绘制的情况
场景里面的物体颜色改变了,然后显示了线框。下面有一个颜色条作为好坏对比。
这个其实挺有意思的,我经常告诉美术同事,模型不是做得面数越高就越好,首先要看模型在场景里面的显示的大小,是否真的需要做那么精细的模型网格结构,然后看是不是细节的部位一定要用模型网格表达,是否可以用贴图来表现。
这个四边形过度绘制模型,可以让我们看到哪些地方的网格模型是做得过于密集的。