1

I used point sprites to make particles in direct3d9 with a dynamic vertex buffer for batching. But I can only create 2500 particles at 30fps. I've seen on internet that they could create millions of particles. How do i make millions of particles in Direct3D ?

Dilhan Geeth
  • 187
  • 2
  • 11
  • This million particle-demos are usually computed completely on the gpu without any data transfer from the cpu-side. If you want to compute particles on the cpu and therefore must send the data to the gpu, 10k particles are a normal value. – Gnietschow May 10 '13 at 18:39
  • How do i do it in GPU ? – Dilhan Geeth May 11 '13 at 02:13
  • This is too complex to explain it here, but there are many sources in the internet, where it's desribed, e.g. http://www.2ld.de/gdc2004/MegaParticlesPaper.pdf (haven't read it, only picked some random link for the topic) – Gnietschow May 11 '13 at 10:01

1 Answers1

0

2500 particles is VERY low. Are you drawing them each with their own Draw(Indexed)Primitive call? If so this is the wrong way to do things. With DirectX you want to keep your draw calls to a minimum. You should fill a dynamic vertex buffer up with all the coordinate positions and then render them all with a single Draw(Indexed)Primitive call.

Goz
  • 61,365
  • 24
  • 124
  • 204