PDA

View Full Version : Old graphics cards/fragment shaders



jas511
06-03-2011, 07:55 AM
Hi, I'm developing an application that uses fragment shaders and I'm now finding that some of our users have old hardware that don't support them. Are there any similar alternatives in older versions of openGL (1.2?)?

thanks,
Jeff

BionicBytes
06-03-2011, 09:09 AM
There are alternatives depending upon GL version and h/w age.
First, and the oldest, is the register combiners which can allow textures to be combined in some fancy ways (although nothing like a GLSL shader). This was made core in GL 1.3 but nVidia exposed this and more flexability with it's own extensions, eg NV_register_combiners2 and the like.

EXT_texture_env_combine - provided a programmable method of combining textures.
NV_register_combiners - GeForce 256
NV_vertex_program - GeForce 3
NV_texture_shader - GeForce 3
NV_texture_shader3 - GeForce 4
NV_vertex_program2 - GeForce FX
NV_fragment_program - GeForce FX



More advanced texturing requires progamability; this came with the ARB fragment and vertex program extensions. This is like assembly language pixel shaders - quite programable just not a very nice language.
Some features, such as loops and conditionals, are not available in ARB assembly, and using them requires to adopt either the NV_gpu_program4 extension, or the GLSL shading language.

A good explaination of all of this can be found here:
GPU assemby language (http://en.wikipedia.org/wiki/ARB_(GPU_assembly_language))

jas511
06-03-2011, 09:53 PM
Thanks, appreciate the explanation.