生成和显示数千个多边形的最佳实践

时间:2018-05-24 22:34:45

标签: unity3d

我目前正致力于在任何一个点上在屏幕上生成和显示数千个多边形,我目前通过定义顶点并使用顶点列表创建网格,将其应用于网格渲染器并让它实例化对象

这个...在我的开发者PC上很好,但是在慢速的电脑或手机上,它只是不起作用。

我大多希望是否有任何方法可以渲染大量的小多边形,而无需使用网格实例化对象?我在考虑使用着色器,但我不是最好写它们的!他们需要都是静态的,并且能够改变颜色等吗?

如果最好的方法是使用着色器......你会怎么做。

非常感谢!

1 个答案:

答案 0 :(得分:3)

在找到如何编写着色器之前,我找到了一个很好的解决方案。

因为我动态生成网格而不是使用网格渲染器创建游戏对象并实例化它。我正在做的是找到所有具有相同材质的网格,并使用单位网格组合器制作单个网格,然后使用unitys drawmesh函数来避免实例化对象。

使用这种方法,我现在可以在手机上以60FPS渲染260万个三角形。

编辑: 的比较

原始方法: 260万tris,19,000个对象单独网格。 50%的CPU使用率,3FPS。

第二种方法: 260万个tris,0个对象,19,000个实例网格,使用DrawMeshInstanced来批处理它们。 100%cpu使用率0.4FPS。试图利用gpu实例化。

第三种方法: 260万个tris,0个对象,10个组合网格和使用DrawMesh方法渲染。 13%的CPU使用率60 + FPS