Glsl!
Finally, we got it in hardware.
Now there's no excuses people.... Show us your shiny bits!
Now there's no excuses people.... Show us your shiny bits!
Chopper, iSight Screensavers, DuckDuckDuck: http://majicjungle.com
So it is. I think I will continue using shader assembly, though, since it's better supported and will be backwards compatible.
Great news! Exactly when did this happen? What update?
Yes, it was just introduced today.
That's fresh news! And about time!
the assembly-language shaders may be "better supported" (though don't talk to me about ARB_vertex_program bugs), but they don't give you access to the full power of the graphics cards. GLSL will be the only way to break the restrictions of the 9xxx/Xxxx/FX series of cards... at least for ATI. NVidia has some extensions to the assembly shaders that expose the power of the 6xxx/7xxx series... haven't checked yet if they're available.
And finally can finish shader support in dim3. It is indeed a happy day.
[>] Brian
[>] Brian
10.4.3 does export the NV-specific program extensions:
NV_fragment_program_option (gf5200+)
NV_vertex_program2_option (gf5200+)
NV_fragment_program2 (gf6800+)
NV_vertex_program3 (gf6800+)
You might also notice that the programmability limits on gf6800+ cards have been raised, this directly affects existing apps like WoW, as well as enables much larger GLSL shaders to run in hardware.
I'll try to update my glinfo table sometime next week.
NV_fragment_program_option (gf5200+)
NV_vertex_program2_option (gf5200+)
NV_fragment_program2 (gf6800+)
NV_vertex_program3 (gf6800+)
You might also notice that the programmability limits on gf6800+ cards have been raised, this directly affects existing apps like WoW, as well as enables much larger GLSL shaders to run in hardware.
I'll try to update my glinfo table sometime next week.
I never cared to learn assembly-langauge shaders. GLSL is so neat and tidy, it is almost too easy.
@ arekkusu: Your GLinfo page shows that every card supports GL_ARB_fragment_shader, GL_ARB_shader_objects, and GL_ARB_vertex_shader (required extensions for GLSL) but surely this isn't the case? My GeForce3 doesn't return GL_ARB_fragment_shader for example.
BTW: For those of you with hardware that does support this, the OpenGL Extensions Viewer app has been up dated with a GLSL test: http://www.realtech-vr.com/glview/
BTW: For those of you with hardware that does support this, the OpenGL Extensions Viewer app has been up dated with a GLSL test: http://www.realtech-vr.com/glview/
All cards certainly did report those since about 10.3.5. Maybe that's finally been made more helpful 
Anyway, four extensions are required for GLSL -- ARB_shader_objects, ARB_vertex_shader, ARB_fragment_shader and ARB_shading_language_100. Without all four, you don't have GLSL support.

Anyway, four extensions are required for GLSL -- ARB_shader_objects, ARB_vertex_shader, ARB_fragment_shader and ARB_shading_language_100. Without all four, you don't have GLSL support.
Is there a good reference on using the GLSL shaders?
http://www.lighthouse3d.com/opengl/glsl -> good tutorial
http://www.3dshaders.com/ -> good book
The latest GPU Gems has some good stuff, but is definitely not for beginners
If you have a PC look at ATI's RenderMonkey: http://www.ati.com/developer/rendermonkey/ there are plenty of examples in there
And for the official documentation: http://www.opengl.org/documentation/oglsl.html
http://www.3dshaders.com/ -> good book
The latest GPU Gems has some good stuff, but is definitely not for beginners
If you have a PC look at ATI's RenderMonkey: http://www.ati.com/developer/rendermonkey/ there are plenty of examples in there
And for the official documentation: http://www.opengl.org/documentation/oglsl.html
Chopper, iSight Screensavers, DuckDuckDuck: http://majicjungle.com
OneSadCookie Wrote:Anyway, four extensions are required for GLSL -- ARB_shader_objects, ARB_vertex_shader, ARB_fragment_shader and ARB_shading_language_100. Without all four, you don't have GLSL support.
This is not quite true. You need either OpenGL 2.0, or
ARB_shader_objects
ARB_shading_language_100
and
ARB_vertex_shader (if you want to use vertex shaders)
ARB_fragment_shader (if you want to use fragment shaders)
But note that you do not have to have both vertex and fragment shaders to use GLSL... you could use only vertex shaders and fixed function fragment processing.
As of 10.4.3, we export ARB_shader_objects and ARB_shading_language_100 on all renderers. We also export ARB_vertex_shader on all renderers, even on Rage128. If the hardware can not support vertex programmability, it will be emulated in software, just like ARB_vertex_program.
However, only renderers that can support ARB fragment programming will have ARB_fragment_shader exported. That means r9550+ and gf5200+. This is a change from 10.4.2 and earlier, where we exported ARB_fragment_shader on all hardware (even though you couldn't use it, because ARB_shading_language_100 was missing.)

