Is it possible to mix VBO and immediate rendering in OpenGL ES?
I'm developing an OpenGL ES application and I need to visualize very large meshes (around 700000 triangles). The problem is that I don't have enough VBO space for these meshes and if I use immediate rendering the FPS falls like the 60% or more (projected from experiments with less triangles). Is there an intermediate solution, where I can use the maximum size of the VBO for part of the mesh and then, for the rest o开发者_如何学运维f it, use immediate rendering?
You can't possibly see ALL of the 700000 vertexes at the same time. Try pruning the ones you can't see and stick the rest in a VBO.
It doesn't even have to be precise, just figure out a quick way to get rid of most of the triangles outside of your view (or behind the object or too close together to matter or otherwise invisible).
Is this on some kind of embedded or handheld platform? 700,000 verts is a big model, but it isn't that much memory... maybe 22 MB depending on what your verts contain. Are you perhaps hitting the max size of a single VBO rather than running out of memory for the VBO?
You can split your model into multiple VBOs and render the pieces using one draw call for each chunk. If you're using indexed/stripped triangles, then you'll need to duplicate some verts between the chunks.
精彩评论