Zitat von Alex_Kfür was braucht man nvidias CG-compiler eigentlich, was ist der unterschied zu der opengl shading language?
Cg ist eine Shadersprache, die in verschiedene andere Shaderassemblercodes compiliert werden kann. Das heisst, man kann einen Cg-Code schreiben, und diesen für Direct3D Vertex/Pixel shader sowie OpenGL ARB vertex/fragment programs, NV texture / vertex shader etc.
Der Vorteil ist klar: man muss den Code nur 1x schreiben, und man hat es schon für alle verschiedenen Shader-APIs geschrieben. Allerdings hat nvidia Cg für nvidia-karten optimiert, ausserdem fehlt ein ATI-pfad, somit kann Cg auf einer ATI-karte nur ARB vertex/fragment programs sowie d3d vertex/pixel shader erstellen. Nichtsdestotrotz verwende ichs gern, zumindest als Fallback.