Since PCI Express is likely to be available before OpenGL 2.0 comes around, it would be great to put in the ability to directly modify
This should allow you to run a particle system COMPLETELY in graphics memory,
which would increase the speed tremendously…
My bad if pixel shaders / vertex shaders allow this already…
What do you mean with “directly”? With memory mapping, I suppose?
And how would that help with particle systems?
By directly modify:
It would be nice if you could have say, a dynamic vertex buffer stored directly in video memory, and be able to access it directly (to modify the vertex positions, etc).
Currently, you would have a vertex buffer in local memory, which you would have to recopy into video memory each time you make a change to it (shaders aside).
It would be nice to be able to allocate a chunk of video memory for something specific (say, a vertex buffer for particle systems), and then modify it on the fly without needing to recopy it into vram…
As for particle systems: they are completely dynamic, thus each frame, it seems you have to copy them in their entirety into video memory, if you’re using a vertex buffer to contain them.
This is very expensive.
I’m not a pro (yet ), but I would think that it would be faster to just submit the particle vertices once and modify them in video memory.
Actually, the VBO doesnt specify how mapping handles internally. So if its possible to map videomemory directly, and the driverwriter knows that thats faster, i assume they will do it like that.