我创建了一个简单的项目。在场景中创建了7000个立方体(用虚拟现实相机),但问题是当我移动相机看到所有立方体时,FPS变得非常糟糕,类似于5-6帧。我的PC是i7与GTX 1070,我认为它必须绘制十万立方体没有任何问题。真的,我看过“我的经验之谈”,看上去没有问题要画方块))
那么问题是,是否有可能优化场景,使所有的多维数据集都被绘制成一个调用,或者提供一个良好的性能?
实际上,我所有的立方体都是静态的,没有纹理,只有标准材料.
现在的情况如下:

我是使用默认的方向光,这将是好的不改变标准着色器,因为它伟大的工作与光。
下面是我生成立方体的方法:
private void AddCube(Vector3 coords)
{
var particle = (Transform)MonoBehaviour.Instantiate(prototype.transform, holder.transform);
SetScale(particle);
SetPosition(particle, coords);
cubes.Add(particle.gameObject);
particle.gameObject.isStatic = true;
}
private void SetScale(Transform particle)
{
particle.localScale = new Vector3(Scale, Scale, Scale);
}
private void SetPosition(Transform particle, Vector3 coords)
{
particle.position = coords;
}这是Stats的截图:

我这里有41个fps,因为我把相机从立方体移开,以便为统计面板提供干净的背景。实际上,在我使立方体“静态”之后,FPS所依赖的是屏幕上是否可见的多维数据集。
发布于 2017-02-15 14:38:51
这个问题很可能是由您正在实例化的单个对象的数量造成的。如果多维数据集在生成后不改变它们的转换,那么您应该能够使用StaticBatchingUtility将它们组合成一个批。
在生成多维数据集之后调用它。
StaticBatchingUtility.Combine(GameObject cubesRoot);https://stackoverflow.com/questions/42246828
复制相似问题