大型合并网格的低 FPS
Low FPS for large merged mesh
我尝试渲染一组 3d 模型。我将网格合并为一个具有 200k 个顶点的网格。具有位置、法线和纹理坐标属性。我使用 VBO
但不使用索引缓冲区对象。我只进行了 2 次渲染调用(一次用于阴影)。我用 libgdx
.
我希望在我的 Galaxy j3 (2016)
上从合并的网格中获得良好的 FPS,但我得到了 13 FPS。
在 galaxy s8 和 nexus 5 上,我得到了 60 FPS。
那么问题是什么?
Galaxy j3 对于 200k 顶点来说是不是太弱了?
或者 200k 顶点网格太大?
银河J3特点:
CPU:展讯 SC9830I 四核,1.5 ΓΓц。
内存:1.5 Gb。
GPU:ARM Mali-400 MP2。
Mali-400 是一种旧设计,只有一个非常单一的顶点处理器,不会随着内核数量的增加而扩展,因此它肯定会与顶点复杂度作斗争,复杂度为 shader cost * vertex count
。
值得注意的是,将所有内容合并到一次抽奖中通常会适得其反。您希望将绘制调用次数减少到 CPU 可以处理的程度,但是一旦您的绘制调用次数少于几百次,它就不太可能给您带来太多好处,您会错失很多机会。例如,您失去了在 CPU 上剔除视锥体外对象的能力,即使在更现代的 GPU 上也是强烈推荐的最佳实践。
我尝试渲染一组 3d 模型。我将网格合并为一个具有 200k 个顶点的网格。具有位置、法线和纹理坐标属性。我使用 VBO
但不使用索引缓冲区对象。我只进行了 2 次渲染调用(一次用于阴影)。我用 libgdx
.
我希望在我的 Galaxy j3 (2016)
上从合并的网格中获得良好的 FPS,但我得到了 13 FPS。
在 galaxy s8 和 nexus 5 上,我得到了 60 FPS。
那么问题是什么?
Galaxy j3 对于 200k 顶点来说是不是太弱了?
或者 200k 顶点网格太大?
银河J3特点:
CPU:展讯 SC9830I 四核,1.5 ΓΓц。
内存:1.5 Gb。
GPU:ARM Mali-400 MP2。
Mali-400 是一种旧设计,只有一个非常单一的顶点处理器,不会随着内核数量的增加而扩展,因此它肯定会与顶点复杂度作斗争,复杂度为 shader cost * vertex count
。
值得注意的是,将所有内容合并到一次抽奖中通常会适得其反。您希望将绘制调用次数减少到 CPU 可以处理的程度,但是一旦您的绘制调用次数少于几百次,它就不太可能给您带来太多好处,您会错失很多机会。例如,您失去了在 CPU 上剔除视锥体外对象的能力,即使在更现代的 GPU 上也是强烈推荐的最佳实践。