Is there anyway to do local update display in opengl?

I’m working on an animation. I need to redraw a mesh which is consisted of 62,500 triangles. I’m using GL_TRIANGLE_STRIP to draw those triangles. But I can only get 5 fps update rate. It is a really poor performance.

Here is the idea. Each loop only less than 10 triangles are changed. Instead of redrawing all the 62,500 each loop, is there any way I can only update those 10 triangles changed and keep the rest triangles? If I can do this, it will help me a lot to improve the update rate.

I don’t know if I make the question clear. Can anyone give me any suggestion? Thanks a lot.

take a look at ARB_buffer_region.
this extension is an ARB version of KTX_buffer_region, which was desinged to accelerate 3DStudio(MAX) in exact the same way, your are trying to do.

with this extension you can save color/depth informations wich can be restored in an other frame.

an other suggestions:

  • don’t draw your mesh as one primitive. split it up in clusters with approx.2K tris pro cluster, and draw them.(HW like this size)
    btw. if your model does not fit completely in your screen, you should consider to cull this clusters before sending them to GL.
  • use vertex arrays (VertexArrayRange on nvidia is a must for acceleration)
  • on ATI use the VertexArrayObject extension.

Originally posted by AdrianD:
[b]

  • use vertex arrays (VertexArrayRange on nvidia is a must for acceleration)
  • on ATI use the VertexArrayObject extension.
    [/b]

I hope the Vertex Array Object working group will propose some specs for approval this month… Hurry, ARB, hurry !

Julien.

yes, im waiting also

AdrianD, Thanks. Where can I find the information about ARB_buffer_region? What do you mean by clusters?

Originally posted by Space:
AdrianD, Thanks. Where can I find the information about ARB_buffer_region? What do you mean by clusters?

cluster, chunks or however you want to call the smaller meshes generated form a bigger one.

try the nvidia openGL Extensions documemation.
unfortunatley there are not so much tutorials about it, but the implementation is very simple, once you understad the specs…