Jump to content
  • Advertisement
Sign in to follow this  

[SOLVED] XNA Point Sprite woes

This topic is 3056 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Solved - Apparently you have to set scaling parameters for point sprites in the shader ie: pass P0 { VertexShader = compile vs_1_1 VertexShader(); PixelShader = compile ps_2_0 RotatingPixelShader(); POINTSCALEENABLE= TRUE; POINTSCALE_A = 0.0f; POINTSCALE_B = 0.0f; POINTSCALE_C = 1.0f; POINTSIZE_MIN = 10.0f; POINTSIZE_MAX = 100.0f; } So I finished my point sprite particle system but I have a weird issue. As the point sprites get closer to the camera they shrink, and as they get further away, they grow. Obviously this is reverse behavior, but I have no idea what would cause this. I calculate the final point size in my shader using this function:

// Vertex shader helper for computing the size of a particle.
float ComputeParticleSize(float4 projectedPosition, float randomValue, 
                          float normalizedAge)
    // Apply a random factor to make each particle a slightly different size.
    float startSize = lerp(StartSize.x, StartSize.y, randomValue);
    float endSize = lerp(EndSize.x, EndSize.y, randomValue);
    // Compute the actual size based on the age of the particle.
    float size = lerp(startSize, endSize, normalizedAge);
    // Project the size into screen coordinates.
    return size * Projection._m11 / projectedPosition.w * ViewportHeight / 2;

Normalized age is just the particles currentAge / timeSinceCreation randomValue is just a way to keep the particle sizes a little unique I really would like to stick with point sprites because they're nice and simple, so if anyone has any ideas for why this would happen, I would love to hear them. Thanks Diginerd [Edited by - diginerd on February 9, 2010 3:19:44 PM]

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!