according to your experiences with OpenGL ES and PowerVR, what is your fastest method of drawing for the following scenario:
Set of independent triangles that are completely regenerated every frame. The only thing that is semi-constant over the run of the program is the count.
My first idea to perform this task as fast as possible would be as follows:
- Preallocate vbo with glBufferData with the suspected size and usage DYNAMIC_DRAW ; keep it in memory permanently.
- Map full buffer once a frame using glMapBuffer. Keep writing triangles to mapped buffer until I’m done.
- Unmap buffer and draw using glDrawArrays.
- Occasionally allocate new buffer if space runs out.
There are of course tweaks that I can think of:
- Don’t map the full buffer but chunks of it using glMapBufferRange, although this may be a waste if most of the buffer is used.
- Store my date to a cpu-side buffer first, then map exactly the range I need or copy it directly via glBufferSubData.
Is this currently the fastest approach for my scenario or can you think of something faster?