Point sprites are good because you don’t have to calculate the vertex coords relative to the camera angle. Now only do you save time by not calculating the vertex coords, but you can make copies of the same emitter, and place them in different spots.
How do I specify texture coords for point sprites? I want to have the texture spread across the sprite, like…well, you know, like a normal particle.
I know I can use quads or whatever, but that means updating the entire buffer to face the camera every frame, and you can’t render extra copies of the emitter without updating it.
It would be nice if I could rotate the texture per sprite, but if that is impossible, I can live with just having fast particles.
Because it is a point, it can’t have anything but a solid color.
Is there any way to make quads automatically face the camera, but still stay in their same world position? The really slow part is updating the coordinates of the quads.
Dang, my GEForce 4 will only render a point sprite that is 64x64.
It seems kind of weird that we have to manually set the vertex coordinates of a quad to do particles? Isn’t that kind of innefficient?
if you need bigger sprites you can use quads without updating them when the camera moves by using a vertex program and some additional vertex data… for example you can pass the same vertex position to all four points of the quads and then something like (-1,-1) (1,-1) (1,1) (-1,1) as another vertex attribute. then simply add this attribute to the eye space vertex position in the vertex program. then do the final perspective transformation.
It seems that ATI have fixed all their problems with Point Sprites in Catalyst 4.11.
Since ARB_point_sprite is part of 2.0, everybody is going to get on board with it pretty quick.
But my GEForce 4 MX won’t draw sprites bigger than 64x64. And if I remember right, it is the most common card in some survey I saw somewhere.
Yeah, it’s glGetIntegerv(GL_POINT_SIZE_RANGE,params*)
Mine is 63. So I guess have one sprite system for quads, and another for good gfx cards.