PDA

View Full Version : A couple of extensions questions



Jaen_
03-27-2010, 03:58 AM
I'm learning myself OpenGL for my second semester C project (yes, I know it's an overkill) and found the most limiting factor to be my graphics card (Radeon 9100) - it lacks the most basic GL extensions as GL_ARB_shadow, GL_ARB_depth_texture, GL_ARB_fragment_shader, GL_ARB_point_sprite (though curiously has GL_ARB_point_parameters), GL_ARB_pixel_buffer_object or GL_ARB_frame_buffer_object and none of them are in EXT either. That severely limits me in what effects I can achieve and I would have liked to try to have glow or shadow mapping.

And looking through the supported extensions I came across those:
WGL_ARB_pbuffer, WGL_ARB_pixel_format, WGL_ARB_render_texture and GL_ATI_fragment_shader.
Would that enable me to do the effects I wanted?
Like for example render the scene into a pbuffer texture substituting the textures for glow intensity textures, run a fragment shader that would draw glow on the framebuffer basing the intensity on the pbuffer texture? That's just hypothetical process, I'm not sure if it's possible with such extensions.
As for shadow mapping - is it somehow possible to go around the lack of the shadowmapping extensions and somehow render the light-perspective depth buffer to the pbuffer and use it in a fragment program (or in other way) to do the shadow mapping by hand, or am I overthinking it and should just give it up on such a card?

And also would those extensions work on newer cards, since I don't think that even our university has as outdated cards as mine. And is the GL_ATI_fragment_shader extension somehow aliased on nVidia cards, so it works on them too?

Cheers, hope I'm making sense.

V-man
03-27-2010, 07:08 AM
GL_ATI_fragment_shader is ancient history. It was ATI's own answer to register combiners. It is quite limited since that card (9100) is before shader model 2.

Yes, you can do render to texture if you want with those extensions.

aqnuep
03-27-2010, 08:51 AM
GL_ATI_fragment_shader, in fact, is the most flexible fragment shader extension for pre-SM2 cards, unfortunately, as V-man said, it is ATI specific and is not supported on other cards.

PBuffers will do the job of framebuffer objects in your case, however, you'll have to deal with multiple render contexts.

It is still quite unfortunate that depth textures and shadow mapping is not supported on your target hardware, but you can still go with stencil shadows (either with simple planar mapping or shadow volumes).

For point sprites, well, you'll have to put together your billboards manually.

Still, you have vertex shaders on Radeon 9100 (at least GL_ARB_vertex_program) so you should take advantage of that when it's possible.

Jaen_
03-29-2010, 09:08 AM
Thanks for the replies.
So I guess that for the pixel shaders I'd have to write them for my extension first and if that works get ahold of someone with an nVidia card and port them? Or would be less problematic to just scrap them?