是否可以在OpenGL ES中混合使用VBO和立即渲染?

时间:2011-05-06 17:06:57

标签: graphics mobile opengl-es

我正在开发一个OpenGL ES应用程序,我需要可视化非常大的网格(大约700000个三角形)。问题是我没有足够的VBO空间用于这些网格,如果我使用立即渲染,FPS会下降到60%或更多(使用较少三角形的实验投射)。是否有一个中间解决方案,我可以使用VBO的最大大小作为网格的一部分,然后,对于其余部分,使用立即渲染?

2 个答案:

答案 0 :(得分:2)

您不可能同时看到所有700000个顶点。尝试修剪那些你看不到的东西,把剩下的东西放在VBO中。

它甚至不必是精确的,只需找出一种快速的方法来摆脱视图之外的大多数三角形(或在对象后面或者太靠近在一起以至于无关紧要或不可见)。

答案 1 :(得分:0)

这是在某种嵌入式或手持式平台上吗? 700,000个顶点是一个很大的模型,但它的内存并不多......可能是22 MB,具体取决于你的顶点包含的内容。您是否可能达到单个VBO的最大大小而不是为VBO耗尽内存?

您可以将模型拆分为多个VBO,并使用每个块的一个绘制调用渲染这些块。如果你使用索引/剥离三角形,那么你需要在块之间复制一些顶点。