What to use now? (shaders)

I am starting to do vertex & pixel shaders now, and looks like the OpenGL shading language is not an option for at least 1-2 years since only few cards will support this.

Next option is use Cg, while this looks OK, I am concerned about the performance in a high action game.

This leaves using ARB_vertex_program & ARB_fragment_program since I am pretty sure most cards above a ATI 9500 and Nvidia 5200 will support this.

I was wondering if people use something like Ashli (from ATI) to write the vertex/fragment code then just import that into their programs, or do most people just hand code everything?

Is there something better to use, or is there another option I am not seeing?

TIA!

GLslang can at least be partially supported by -any- video card that supports ARB_fp and ARB_vp. As such, any GeforceFX or Radeon 9500 or greater can support it.

The Cg compiler (cgc) supports multiple
targets (arbfp1, arbvp1, fp30, vp30, fp20,
vp20). You could write your shaders in Cg
and compile to assembly. Using the assembly
as a starting point, you could hand optimize
the more important shaders.

Originally posted by Clancy101:
I am starting to do vertex & pixel shaders now, and looks like the OpenGL shading language is not an option for at least 1-2 years since only few cards will support this.

??? What are you talking about? Every card that supports shaders will support GLSlang(that means, GeForceFX and ATI9500 +).

Head on over to 3dlabs.com, and you can check it out. I know most cards made this year ati 9500+ & nvidia 5200+ will soon if not now support ARB_vertex_shader, ARB_fragment_shader, but I am not sure they will support ARB_shader_objects yet. I think ATI newest drivers support the above, but not 100% sure. I don’t know about Nvidias drivers, but they should also support those also.

Guess it is time to get a better vid card so I can test this out.