Skip to main content
gamedev.net
🔒 Locked

Point Sprites

Started by _the_phantom_ 19 replies 4.1k views
Original Post
_the_phantom_
_the_phantom_
Nvidia based cards have a nice extension to use these in OpenGL, however it appears that ATI havent provided an extension to do this and non of the standard ARB or EXT look like likely candidates for it. So, have i missed something? Is there an extesnion? Googling turned up plenty of Nvidia examples but none for ATI edit: ok, search is back on the forums so i just had a search, found a few things on it which is making me rethink my idea, however they seem to imply that the ATI cards DO support the extension while OpenGL viewer isnt finding the token for it :o [edited by - _the_phantom_ on April 27, 2003 2:45:18 PM]
Mihail121
Mihail121
Sorry i''ll have to dissapoint you but only NVidia supports point sprites for now.But there is hope.They are new and if they proof to be usefull it is sure that they will be generalized or other vendors will support it...

The PAIN is coming...this summer!!!In cinemas everywhere.
blizzard999
blizzard999
What is precisely a ''Point Sprite'' ? Is it a facing image or a point...?
Mihail121
Mihail121
May sound a little weird but the point sprites are textured point primitives that are always facing the viewer.They are textured just like a quad and can be blended,colored,litten(i''m not sure) and all other stuff.So in fact you are saving the drawing of number_of_points * 4 primitives.Very usefull indeed!

The PAIN is coming...this summer!!!In cinemas everywhere.
blizzard999
blizzard999
They should be very useful to speed-up particles...(like in Quake2...)
Mihail121
Mihail121
Good example can be found here:

http://www.codesampler.com/oglsrc.htm

A more proffesional one can be found also on the NVidia''s site.

Take care!

The PAIN is coming...this summer!!!In cinemas everywhere.
bakery2k1
bakery2k1
ATI haven''t provided an extension as they support the NV one, with a few limitations.
_the_phantom_
_the_phantom_
hmmmmm well, i''ve tried an example and (unsurprisingly) it complains about a lack of the extension (not shocking as teh extension viewer i have installed doesnt show up the extension token either).

These are the DellOEM (kinda) Cat3.3 drivers (installed coz they have the ARB_VBO ), any more light on the subject would be usefull
DannerGL
DannerGL
ATI does not currently support the NV_point_sprite extension although is a mention of it being supported in the NV spec. >8500 HW supports point sprites for DX but there were some issues preventing it from working in certain situations for OpenGL

deadalive
deadalive
Think they will make ARB_Point_Sprites anytime soon?
this place is lame
Raduprv
Raduprv
Why do you actually need such an extension, when you can always use a quad, and manually turn it so that it always faces the camera? That''s how my particles are done, and they look good, and are fast too.
Isn''t that extension more like a hack that does the very same thing?
I mean, rotating the entire scene once, before drawing your points doesn''t cost that much, you know?

Height Map Editor | Eternal Lands | Fast User Directory
_the_phantom_
_the_phantom_
I wanted to look into using it thats all, its not a life or death thing, just wondering how it would compare later with sending all the verts. to the card already transformed via the cpu and done via the gpu , it might not make any difference but its nice to compare these things to learn, thus i was enquiring about it
_the_phantom_
_the_phantom_
thus why i wanted to test
Anyways, given the scale of what i want to do anything pre-gf4 might have issues running it anyways (well, maybe gf3 as i have a m8 with one howeverI''m not planning to be done anytime soon with my engine plans), and tbh, there is only so much backwards compatiblity you can do anyways, i know there are still TNT2 owners out there, but its getting around to the stage where i''m seeing alot of ppl i know with poor systems upgrading to the latest kit to last ''em a few years again (many many Radeon 9500 and 9700''s have been brought recently in the IRC channels i lurk in).

btw, compatiblity was the reason i was stalling any work until i could get my hands on the VBO extension in an ATI driver so i wouldnt have to write 2 sections of vertex pipelining code
DannerGL
DannerGL
quote:
Original post by deadalive
Think they will make ARB_Point_Sprites anytime soon?
The ARB has formed a working group for this. There are a lot of issues though so I don''t think it''ll make it into the GL core this summer.
DannerGL
DannerGL
quote:
Original post by Raduprv
Why do you actually need such an extension, when you can always use a quad, and manually turn it so that it always faces the camera? That''s how my particles are done, and they look good, and are fast too.


It''s true that you can accomplish the same effect with billborded Quads, and perhaps it works pretty well most cases. However, you are tranforming 4X the number of verticies and have to rotate the scene to bilboard them, so there are probably some cases where point sprites will be faster.

quote:
Isn''t that extension more like a hack that does the very same thing?

It''s not really a hack because there is specific hardware support for this. It''s not as if GL takes your point and expands it into a Quad. The hardware actually takes the point, transforms the single vertex, and sends expanded, along with the texture coordinates to the raster engine.
DannerGL
DannerGL
quote:
Original post by Roof Top Pew Wee
Just curious, as I have never used point sprites. Is there any kind of performance gain over using textured quads for sprites, or is it simply a management issue?

Theoretically there would be a gain. You''re transforming 1 vertex for each billboard rather than 4.

In practice, however, point sprites may not be any faster. Because you''d draw the same number of pixel in both methods, if you''re bound by the number pixels drawn rather than the number of verticies transormed, you wouldn''t see any gain.

Most games today are bound by the number pixels drawn (i.e. fill rate bound), not the number of vertices.

blizzard999
blizzard999
Probably they are HW optimized...(like passing the same poly with 2xGL_STRIP instead of 1xGL_QUAD)

Something like glPointParameterfEXT vs quads

http://www.opengl.org/developers/code/features/OGLextensions/OGLextensions.html

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.