I've recently been reading some documentation about the Cg shader language. Cg is basically the same as HLSL, although is multi-platform so it can be used with OpenGL and other API's that support the programmable graphics pipeline. You can find the awesome Cg book by nVidia
here.