LOD,中文名多层次细节,是游戏中最常用的技术,它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。今天我们来实现使用它来做一个简单的优化例子。
我们没有模型(程序员的悲哀)就用Particle粒子特效来做试验吧。在场景中建立一个空物体,取名LODEffects,在空物体下面建立一个Particle并复制两份都做为子物体。这们用这三个Particle可以当作不同细节的模型,分别调整它们的ParticleSystem组件下Emission的Rate属性为10,5,2,依次代表从近到远显示的三个不同模型。
关键点来啦,在LODEffects对象上添加LODGroup组件,主要关注中间的层次条:
它依次代表四个不同的距离层次(百分比是按色像机的可视范围算的哦,鼠标放在两块儿之间可以拖动调整百分比)。点击LOD0,下面会出现LODBias层次偏好对象列表,我们可以将要显示的模型放到这里,在LOD0下,我们放最精细的Particle(Emission
Rate为10),然后点击LOD1,设置为中等的粒子对象,最后的LOD2放设置最粗糙的,我们可以拖动层次条上面的小色像头查看在场景中的效果。
这样,我们的操作就完成了,现在运行游戏,拖动场景中色像头的位置,可以看到不同距离下,显示不同的Particle特效咯。同时对比下面两张图可以看到游戏GPU开销明显降低。