New instancing demo

How many particles do you need? In this demo I exaggerated the particle spawn rate a lot. Normally I'm using a spawn rate of like 20-50 particles per second, and that's usually enough for my effects anyway. In this demo I'm using a spawn rate of 6000, and still getting several hundred fps.
Anyway, the problem is not that particles as such are slow. I'm getting 25 million vertices/s, which isn't all that bad for dynamic data. The problem is that you end up being very CPU dependent with even simple math. That's what limits the performance most on the first three paths.

Anyway, I added the ability to change the particle spawn rate in the demo by request on another forum. You can use the + and - keys to change it.
 
Humus said:
Normally I'm using a spawn rate of like 20-50 particles per second, and that's usually enough for my effects anyway.
Bolds and italics are mine. That's the key isn't it? Decisions, decisions. decisions for game designers... :)

Nice demo btw Humus!
 
Humus said:
Point sprites could be used if particles never are going to be larger than a certain implementation specific size. If point sprites didn't have that limitation, I'd be using it in all my demos with particle systems.

I usually say "screw it" and use them anyway. But it looks kinda odd at times (especially at higher resolutions). Sigh!
 
Why does this limit exist at all? I can't see this save a significant amount of transistors. Does anyone know what's the limit on NV40/R420?
 
I did another small update to the demo. The demo will now work fine even after resizing the window.
 
rocket demo

Resolution: 1280x1024
w/ instancing: 73 fps
wo/ instancing: 31 fps

R360 @ 480/400
K7 @ 235x11.5

My results differ a little from those already presented, i have a smaller hit whilst running without instancing.

mong
 
Ostsol said:
Xmas said:
Does anyone know what's the limit on NV40/R420?
According to Delphi3D.net it's 64 for the R420 and 63.375 (*shrugs*) for the NV40.
Point sprite size can be a superset of antialiased point size. But there's no way to query that in OpenGL.
 
Back
Top