Archived

This topic is now archived and is closed to further replies.

Fast rendering of static vertexlists

This topic is 5892 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am currently doing a project, where I''ve got a large static vertexlist, that i draw EVERY frame using glDrawArrays,the vertexlist is created and filled with data at the init part Is there som way that I can optimize this, as it is the same data that I push to the videocard each frame, isn''t it a waste?? can it be pushed to the videocard memory once, and then be reused?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Depends on the videocard. If you have an nVidia card, there are some guidelines:

a) Don''t use glDrawArray, use glDrawElements or glDrawRangeElements, this is faster.

b) Don''t use CVAs, use VARs (vertex_array_range extension), they are faster. With VARs you can choose if you want to put them in normal system RAM (slow), AGP memory (fast) or video memory (a bit faster than AGP, but it''s not worth wasting precious video memory). If you put them into AGP memory, the 3D GPU will automatically fetch them every frame via DMA, the CPU isn''t needed, and if you have AGP2x or better, this is *very* fast (you can even improve the throughput by using the nv_fence extension). You can also put them into video memory, but keep in mind that this will eat up your texture space.

c) use tristrips, they take less AGP / video memory.

- AH

Share this post


Link to post
Share on other sites