剔除(逐对象确定是否可见):距离剔除——》视锥体剔除——》预计算可视性(在每个单元格记录可以看到的内容)——》遮挡剔除;(性能损耗越大,计算顺序越后)
DrawCalls(通知GPU进行图形绘制):
每次渲染1个物体的1种材质
PC端2000~3000次比较合理;手机端1000左右(控制台stat RHI)
由于每次调用结束后都要停顿(询问),次数对性能的影响比较大。
绘制调用会有一个最低的性能损耗
在这一阶段,三角形面数对性能的影响远远低于DrawCalls
当场景确定不会改动时,可以选择合并在同一空间,使用同一模型,碰撞体简单,或者远处的网格体。
如果场景中存在几十和几百个相同的网格体,可以使用
静态网格实例化:即场景只保存1个该网格体的实例,然后渲染多次。(例如草地)
HISMs(Hierarchical Instanced Static Meshes)
可以通过减少模型和材质的个数来减少绘制调用。但是单独1个大而复杂的模型会对后面的碰撞查询,光照贴图产生严重的负担。
LOD:根据距离的不同改变细节层次(每个LOD为了抵消损耗,需要减少面数50%以上)
HLOD:优点在于距离比较远的时候,用1个单一模型代替多个模型,在减少面数的同时会减少DrawCalls的次数
网友评论