在Unity3D中的渲染优化-减少需要处理的顶点数目

1.优化几何体

3D游戏制作通常都是由模型制作开始的。我们应该尽可能减少模型中三角面片的数目,一些对于模型没有影响,或者是肉眼很难察觉到区别的顶点都要尽可能去掉。为了尽可能减少模型中的顶点数目,美工人员往往需要优化网格结构。在很多三维建模软件忠,都有相应的优化选项,可以自动优化网格结构

2.对于模型使用LOD技术

LOD技术的原理是物体离摄像机很远时,模型上的很多细节是无法被察觉到的。因此,LOD允许当对象逐渐远离摄像机时,减少模型上的面片数量,从而提高性能。

在Unity中,我们可以使用LOD Group组件来为一个物体构建一个LOD。我们需要为同一个对象准备多个包含不同细节程度的模型,然后把它们赋给LOD Group组件中的不同等级,Unity就会自动判断当前位置上需要使用哪个等级的模型。

3.遮挡剔除技术

遮挡剔除技术用来消除那些在其它物体后面看不到的物体,这意味着资源不会浪费在计算那些看不到的顶点上,进而提升性能。

我们需要把遮挡剔除(Occlus culling)和摄像机的视椎体剔除(Frustum culling)区分开来。视椎体剔除只会剔除掉那些不在摄像机视野范围内的对象,但不会判断视野中是否有物体被其他物体挡住。而遮挡剔除会使用一个虚拟的摄像机来遍历场景,从而构建一个潜在的对象集合的层级结构。在运行时刻,每个摄像机将会使用这个数据来识别哪些物体是可见的,而哪些被其他物体挡住不可见。使用遮挡剔除技术,不仅可以减少处理顶点的数目,还可以减少overdraw,提高游戏性能。

4.总结

模型的LOD技术和遮挡剔除技术可以同时减少CPU和GPU的负荷。CPU可以提交更少的draw call,而GPU需要处理的顶点和片元数目也减少了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注