What is a shader?

I am always hearing about DX and it’s shaders. What are they?

Are they just some fancy name for some OGL equivilent stuff? if then, what are the equivilants? I am not talking about extensions from NVIDIA. I don’t like them because I don’t just want to develop for Nvidia or ATI.

Another question, why is the OpenGL committee so slow on upgrading the API?

Another thing, since I have Mesa-3.5 can I just use OpenGL 1.2 functions??

Shaders, aka Pixel Shaders, are a way of doing perpixel operations, such as shading and other things. Shaders are part of Nvidia’s api I beleive, but I have never used them. As far as an ogl equalivent, you will have to look at nvidias site for their api.

Mesa 3.5 is OpenGL 1.2 compatible now, and yes you can just use the extensions.

Hope these help.

opengl1.3 will be out next month. imguessing there will be some sort of vertex program + pixel shader stuff in it, but thats only a guess

I do not think that will be in OpenGL 1.3. It seems like a common standard may take some time. Read this from the advanced forum http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/003677.html

ATI:s white paper has a lot of sell talk but can also be used as an introduction http://www.ati.com/na/pages/technology/hardware/smartshader/smartshader_white_paper.html

They also has some Macromedia flash animations of some effects http://www.ati.com/na/pages/technology/hardware/smartshader/smartshader.html

DX vertex shader == (OpenGL) NV_vertex_program == (OpenGL) ATI_vertex_transform

DX pixel shader == (OpenGL) NV_texture_shader + NV_register_combiners == (OpenGL) ATI_fragment_shader

More or less, anyway.

Hope that helps.