在用开发一个游戏时,很多游戏建模时都可能会要去创建一个3D森林。但对于Unity开发程序员,创建3D森林还是很有难度的,首先要面对的就是3D森林的性能优化问题。今天千锋Unity讲师就分享一下,创建3D森林时的优化技巧。
解决森林优化的方法有很多,但是关于如何创建资源的通用指南却不多。不过关于森林优化有一样事情是共通的,即头号敌人都会是绘制调用(Draw Call)。虽然多边形数量也很重要,但是问题并没有那么复杂,你只需要知道一个合理的目标值。
下面是一些我所制作的植物资源以及它们的多边形数量,可作为对应合理数字的参考。如果发现需要大量的Alpha Card才能获得所需的树冠丰茂程度,你可以在纹理中增加树叶的覆盖量。
还有过度绘制(Overdraw),当在Alpha Card和对象之间存在大量重叠时会发生过度绘制。我没有考虑或关注过它,我不打算修改树的轮廓以减少重叠。实际上,我不会为除了使它们看上去更美之外的任何原因去修改树木的轮廓。我也不打算修改森林的布局,以避免植物重叠。让森林真实而又不必操心过度绘制太难了。所以我把精力主要集中到了降低多边形数量和绘制调用上。
要解决这个问题,我们需要一个计划。大多数的计划要求在开始创建森林的时候,就考虑到优化策略。如果森林由来自不同来源的资源组成,可能很难做到这一点。减少绘制调用的策略有很多。
我们的目标是将LOD1网格(第二个LOD阶段)组合为巨型网格,这样当玩家移动到远处时就可以整合绘制调用。我计划中的第一步是让森林里的所有东西,或者可能接近的东西都使用同一个材质。森林中所使用到的资源都共享同一种材质。因此我需要所有的植被从同一个材质采样。
看完上面这些,相信你也学到了很多知识。如果你是还没有入门的Unity 游戏开发初学者,可以来千锋教育Unity游戏开发培训班免费试听两周。千锋Unity游戏开发培训课程深入教学的图形技术,讲解包括OpenGL渲染管线,着色器,高光计算、菲尼尔色散、雾方程式等高阶课程。