C for Graphics。Cg是对GPU编程的高级语言,由NVIDIA在Microsoft的密切协作下开发。
NVIDIA在维护Cg语言规范,而且会继续和Microsoft合作维护它和DirectX High Level Shading Language (HLSL)之间的兼容性。
Cg语言规范是公开和开放的,所以其他厂商可以用它来实现产品。为了鼓励这个,NVIDIA开放了Cg编译器技术的源代码,使用无限制的、免费的许可证。
厂商实现的Cg编译器是私有的,而且由开发者拥有。NVIDIA已经开发和拥有NVIDIA Cg Compiler,并期望和鼓励其他厂商开发他们自己的Cg编译器产品。
不,Cg是OpenGL上面的一层。Cg编译器输出的汇编代码是用OpenGL扩展——比如ARB_vertex_program、ARB_fragment_program和NV_vertex_program——和OpenGL 1.4定义的格式。
不,这个语言是DirectX顶点和像素着色器API上面的一层,而且要运行在DirectX 8.0和DirectX 9.0的标准顶点和像素着色的基础上,建立着色器代码也是必要的。
Cg语言规范是和Microsoft的High Level Shading Language兼容的。Cg着色器遵循Microsoft的最新的D3DX Effects格式标准集,也完全兼容Microsoft的HLSL。
Cg语言是句法和语法,适合实时可编程GPU的语言。
Cg编译器是一个应用程序,它接受Cg语言输入,而且产生可以被现代可编程GPU接受的多种标准汇编语言格式之一的输出。
NVIDIA忠于OpenGL的发展,而且将会积极地工作在OpenGL发展的前沿。NVIDIA被提议而且领导了OpenGL 1.4的开发,它的主要组件是可编程GPU顶点硬件的汇编语言界面。在已经成功地完成了这个OpenGL版本的情况下,NVIDIA现在和ARB合作定义和开发下一个版本的OpenGL,把片元/像素可编程性作为它的核心功能。
NVIDIA提供了NVIDIA Cg编译器前端关键部分的源代码,使其它平台的快速移植成为可能。
Cg被设计为可以为很多可编程GPU提供支持,而且NVIDIA希望Cg成为一个关键技术,允许开发者可以访问和使用未来日益增加的可编程GPU架构。
NVIDIA目前提供给开发者NVIDIA Cg工具箱,由以下几部分组成:
是的,新版本的NVIDIA Cg工具包将会支持和包含:
是的,NVIDIA Cg编译器会为多种目标GPU架构进行着色优化。
NVIDIA Cg工具包现在需要一个可编程GPU——最好是DirectX 8级别的GPU,比如GeForce3或GeForce4 Ti,或Radeon 8500。
Mac OS X——在开发中,Xbox [通过现在已经支持的DX8],TNT [不会增加支持]。
成百上千的开发商在2001后期就开始在刚开始成形的Cg上训练了,为这个语言的发展做出了很多贡献。
支持Cg的一些开发商包括:Auran、Bethesda Softworks、Beyond Games、Bioware、Blizzard Entertainment、Cat Daddy、CodeCult、Codemasters、Contraband、Core Design、Croteam、Cryptic Studios、Crytek、Dark Black、Destineer、Electronic Arts、Elixir、EMG、Ensemble Studios、Fox Interactive、Grin、Headgate、High Voltage、Inevitable、Ion Storm、Kaboom、Kuju、Lego Media、Lionhead、Lithtech、Massive、Maxis、Nadeo、NAMCO、NemoSoft、Novalogic、Pivotal、Rage Sheffield、Relic Entertainment、Ritual、Sega-AM2 Co. Ltd.、Sony Online Entertainment、SpinVector、Steel Monkeys、Valve、Vupine等等。
中间件开发商也认可了Cg:NDL、Criterion、Intrinsic Graphics DCC应用程序和工具,比如Alias|Wavefront Maya、Discreet 3ds max、Softimage|XSI和Right Hemisphere的Deep Exploration把Cg嵌入数字艺术家的工作流。