Cg is NVIDIA real time shading language for OpenGL and Direct3D applications. Cg is available for Windows, MacOSX, Linux and Solaris.
You can download Cg 2.2 Toolkit from this page.
Complete changelog of Cg 2.2:
- Allow compiler options in effect compile statements, e.g. VertexProgram = compile vp40 “-po PosInv=1” shader();
- Better performance when running on multicore CPUs
- Choosing the “latest” profile is now deferred until effect validation
- Improved the inverse matrix computation in cgGLSetStateMatrixParameter
- Better memory behavior when a program is repeatedly recompiled
- Fixed an issue when using PSIZE semantic with ps_3_0 and ps_4_0 profiles
- cgCombinePrograms now works with CG_OBJECT programs
- cgGetNextProgram was always returning 0
- Fixed a problem with effect parameters and cgGLGetTextureEnum
- Allow comments prior to the shader version in D3D asm blocks of an effect
- HLSL10: Mark globally scoped temporaries ‘static’ to keep them out of constant buffers
- HLSL10: Allow any semantic for varyings provided the semantics match between stages
- HLSL10: Fix handling of TEXUNITn semantic
- HLSL10: Added support for arrays of samplers
- HLSL10: Empty structs for uniform parameters crashed the D3D compiler
- Fixed a problem when connecting parameters of type string
- Corrected issues in the fp20 profile on Solaris
- Now using MesaGLUT-7.5 for GLUT on Windows
- DirectX10 and GLSL geometry profiles (gs_4_0 AND glslg)
- Support for “latest” profile keyword in CgFX compile statements
- Additional API routines (see New API for a complete list)
- Support for pack_matrix() pragma
- Arrays of shaders can now be used in CgFX files
- Libraries for 64 bit Solaris development
- Migrated the OpenGL examples onto GLEW
- New examples including: examples/Direct3D10/advanced (combine_programs, gs_shrinky, gs_simple), xamples/OpenGL/advanced (cgfx_latest), examples/Tools (cgfxcat, cginfo)
- New documentation
- Updated reference manual pages for new profiles and entry points
- Bug fixes