Cg語言 Cg语言C for Graphics是为GPU编程设计的高級著色器語言由NVIDIA公司开发Cg极力保留C语言的大部分语义并让开发者从硬件细节中解脱出来Cg同时也有一个高级语言的其他好处如代码的易重用性可读性得到提高编译器代码优化 Cg语言主要参照ANSI C建模但也从C和Java以及早期的绘制语言如RenderMan and the Stanford shading language中吸取了一些思想这些使得很容易写程序然后由编译器进行优化提高了可读性而且Cg的设计考虑了GPU的体系结构如可编程多处理器单元顶点处理器像素处理器外加不可编程单元这些部分和应用都是通过数据流连接起来Cg语言允许分别为顶点和像素写程序Cg API引入了profiles的概念以处理顶点和像素编程所缺乏的通用性一个Cg profile就定义了一套整个Cg语言的子集以适应不同的硬件平台和APICg程序可以根据运行时的需要或者事先编译成GPU汇编代码这样可以很容易地将一个Cg像素程序和手写的顶点程序结合起来或者甚至采用不可编程的OpenGL或者DirectX顶点流水线反之亦然 由于Nvidia和微软合作紧密Cg语言和HLSL的共通之处很多在早期的官方文档里这两者被解释成贴了两个牌的同一门语言