PDA

View Full Version : MODIFY vertices in hardware



game_cy
05-14-2003, 05:01 AM
is it possible to actualy modify the vertices in video memory?
I dont mean change them prior to rendering.
I want to deform them and then save the changes in the vertex array


Is it possible?

Rgds
Soteris

V-man
05-14-2003, 06:00 AM
Nope.

If you want to make changes, reserve some AGP memory (I guess with VBO you need to flag it as DYNAMIC) and then you write it with the CPU.

What are you tryig to do exactly?

game_cy
05-14-2003, 11:33 PM
I want to... say deform a 3d model and keep the deformation, then on the next frame i deform it a bit more etc etc... i.e. rather than recalculating on the cpu and sending over the bus to the video card, I thought I could do everything on the gpu and save bus bandwidth.

so AGP memory is also on the video card? can someone point to a link that says abit about the videocard memory types or tell me a bit about it? http://www.opengl.org/discussion_boards/ubb/smile.gif
thnx

knackered
05-15-2003, 01:11 AM
AGP memory is uncached system memory. This basically means that the CPU cannot use it's onboard cache when accessing data residing in AGP memory - so using data in AGP memory is slow for the CPU. The plus side of this though, is that the data in AGP memory is always up-to-date (the CPU hasn't got a modified local copy of any of it in its cache), and because it's up to date, a video card can read from it directly, without having to inform the CPU of what it is doing (I believe it's called DMA? Direct Memory Access?). That's what makes AGP memory fast for graphics cards.
Video memory, on the other hand, is physically on the graphics card, managed by the graphics card, with no interference at all from the CPU. It's faster than AGP memory because the data doesn't have very far to travel to be used by the GPU - no buses to cross, no slow protocols to follow etc.
I think what I say is true. Someone correct me if I'm wrong.

roffe
05-15-2003, 01:36 AM
Originally posted by game_cy:
is it possible to actualy modify the vertices in video memory?
I dont mean change them prior to rendering.
I want to deform them and then save the changes in the vertex array


Maybe not modify but "update".

If you store vertices in floating point textures you could modify them using fragment programs and later render to a vertex array using NVIDIA's PIXEL DATA RANGE extension. Check out the Shader Tricks slide by Simon Green from GDC2003 here at opengl.org.