Fast rendering of static vertexlists

Started by
0 comments, last by ManDark 22 years, 5 months ago
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?
Advertisement
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

This topic is closed to new replies.

Advertisement