【问题标题】:How many maximum triangles can be drawn on ipad using opengl es in 1 frame?在 ipad 上使用 opengl es 在 1 帧中最多可以绘制多少个三角形?
【发布时间】:2011-09-04 17:23:20
【问题描述】:

ipad 上单帧最多可以绘制多少个三角形。另外,用于绘制这些三角形的 gl 调用的数量是否有限制?

【问题讨论】:

  • 这在很大程度上取决于您如何绘制它们。你使用 VBO 吗?你使用什么数据类型?你有模板和深度缓冲区吗?你需要绑定多少纹理?这些纹理有多大?你在你的顶点和片段着色器中做什么?还是您使用 OpenGL ES 1.1?
  • 1) 我使用 vbos 2)GLfloat ,GLushort 3)depth 4)50 5)1024*1024 6)no shaders 7)1.1

标签: iphone ipad opengl-es


【解决方案1】:

您在 iPad 上遇到的总三角形的唯一限制是内存大小以及您希望它以多快的速度呈现。您发送的顶点越多,您的应用程序将使用的内存越多,渲染速度就越慢。

例如,在我的基准测试中,我能够在 iPad 1 上使用 OpenGL ES 1.1 平滑着色、单个光源、存储在顶点缓冲区对象 (VBO) 中的几何图形以及由 GLshorts 表示的顶点每秒推送超过 1,800,000 个三角形为了最小化总尺寸。 iPad 2 比这要快得多,尤其是当您开始在片段着色器中执行更复杂的操作时。根据这个数字,我可以估计,如果我想在 iPad 1 上以 60 FPS 的速度进行渲染,我的场景几何图形中的三角形应该少于 30,000 个。

OpenGL ES 2.0 着色器因其复杂性不同而使事情变得更加复杂,但它们启用了新的效果,并且可能允许您使用更少的三角形来实现与固定功能管道相同的图像质量。

再举一个例子,在this question Davido 有一个包含大约 900,000 个三角形的模型,他能够在 iPad 2 上以接近 10 FPS 的速度进行渲染。我还在my answer there 中介绍了一些我发现的几何优化技术当您在设备上为maxing out tiler utilization 时,会对 OpenGL ES 1.1 渲染产生重大影响。

【讨论】:

  • 我尝试使用 GLshort 作为我的顶点,但是我没有让我的场景正确渲染(对象丢失了它们的形状)所以,我求助于削减我的几何体并将其划分为零件,因此它们仅在可见时被绘制
  • 我的渲染利用率是 100%,但瓷砖利用率是 62%
  • @kd3D - 您确实需要考虑 GLshort 范围从 -32768 到 32768 的事实,并在使用它时适当地调整您的渲染。但是,我不再推荐在 OpenGL ES 2.0 中使用它,因为在 PowerVR SGX 系列上,需要进行转换才能将其转换为 GPU 中的浮点格式。在您的情况下,您看起来受到填充率的限制,因此您在渲染三角形方面并没有真正的问题。相反,您需要减少渲染的片段数量和每个片段完成的工作。
猜你喜欢
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-21
相关资源
最近更新 更多