Particle System implemented on Direct3D 10 and running entirely on GPU. All what CPU does is switching render targets and setting shader variables. Particle data is stored in two textures: one for position, one for velocity. Additional pair of them is created to perform double buffering.
256x256 texture handles 65536 particles without any visible load on CPU, all job is done on GPU. Particle vertices are generated by Vertex Shader, expanded to two triangles in Geometry Shader and rendered in Pixel Shader.
Application was created just for educational purposes, to learn how to drive Direct3D 10.
Checkout my youtube profile to checkout anwer to your question. I think you will got quite good image.
thedmd86 1 year ago
do u make video games or particle simulations or medical research, etc?
abbed8 1 year ago
yes
thedmd86 1 year ago
oh ok then another question, did u code it in c++
abbed8 1 year ago
I'm afraid it was lost after last system reinstallation.
thedmd86 1 year ago
can u send me the source code? if u still have it
abbed8 1 year ago
I read documentation of DX10. It has different interface that DX9 but the idea is same.
Idea of particles is just most basic application of newly introduced geometry shaders. This was quite obvious : )
Some time learning how to use DX, shaders, a few BSOD during developing time and you can see the results above. Yes BSOD, drivers were very poor that time.
thedmd86 1 year ago
how did u learn how to do this and do know how to use dx 11
abbed8 1 year ago
this is a result of my experimients with new features of DX10
thedmd86 1 year ago
did u make that or did u download it
abbed8 1 year ago