Sounds like it might be because of overdraw, you have a lot of pixels
that are being rendered but then they are thrown away because the
pixels from another particle overlap it.
=?Utf-8?B?R3VuaXQ2Mw==?= <Gun...@discussions.microsoft.com> spake the secret code
<7A1197A3-B027-4D74...@microsoft.com> thusly:
>I am having a performance problem when attempting to render point sprites
>scaled up. When the point sprites are small my frames per second can be
>around 30fps, as the point sprites are scaled up, the performance reduces to
>as low as 2fps. I have shader that handles coloring, rotating the texture.
What you're describing is the situation when you're fill rate limited.
As you scale up the point sprites, the shaders are executed for more
and more pixels and that causes you to be limited by the rate at which
you can execute your pixel shader.
The only way around this is to speed up the rate at which your sprites
can be colored or reduce the number of sprites that are drawn. For
the former, look for ways to simplify your shader in the case of
extreme magnification. Look for ways to replace shader execution with
texture lookups. For the latter, look for ways to identify sprites
that are completely obscured and not draw them.
--
"The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download
<http://legalizeadulthood.wordpress.com/the-direct3d-graphics-pipeline/>
Legalize Adulthood! <http://legalizeadulthood.wordpress.com>