Cg FAQ
Cg语言
Cg是什么?
C for Graphics。Cg是对GPU编程的高级语言,由NVIDIA在Microsoft的密切协作下开发。
是谁在维护Cg语言规范?
NVIDIA在维护Cg语言规范,而且会继续和Microsoft合作维护它和DirectX High Level Shading Language (HLSL)之间的兼容性。
Cg是私有的吗?
Cg语言规范是公开和开放的,所以其他厂商可以用它来实现产品。为了鼓励这个,NVIDIA开放了Cg编译器技术的源代码,使用无限制的、免费的许可证。
厂商实现的Cg编译器是私有的,而且由开发者拥有。NVIDIA已经开发和拥有NVIDIA Cg Compiler,并期望和鼓励其他厂商开发他们自己的Cg编译器产品。
Cg取代了OpenGL吗?
不,Cg是OpenGL上面的一层。Cg编译器输出的汇编代码是用OpenGL扩展——比如ARB_vertex_program、ARB_fragment_program和NV_vertex_program——和OpenGL 1.4定义的格式。
Cg取代了DirectX吗?
不,这个语言是DirectX顶点和像素着色器API上面的一层,而且要运行在DirectX 8.0和DirectX 9.0的标准顶点和像素着色的基础上,建立着色器代码也是必要的。
它和Microsoft HLSL比较起来怎么样?
Cg语言规范是和Microsoft的High Level Shading Language兼容的。Cg着色器遵循Microsoft的最新的D3DX Effects格式标准集,也完全兼容Microsoft的HLSL。
Cg语言和Cg编译器有什么区别?
Cg语言是句法和语法,适合实时可编程GPU的语言。
Cg编译器是一个应用程序,它接受Cg语言输入,而且产生可以被现代可编程GPU接受的多种标准汇编语言格式之一的输出。
NVIDIA为OpenGL的未来作了什么?
NVIDIA忠于OpenGL的发展,而且将会积极地工作在OpenGL发展的前沿。NVIDIA被提议而且领导了OpenGL 1.4的开发,它的主要组件是可编程GPU顶点硬件的汇编语言界面。在已经成功地完成了这个OpenGL版本的情况下,NVIDIA现在和ARB合作定义和开发下一个版本的OpenGL,把片元/像素可编程性作为它的核心功能。
平台
NVIDIA Cg编译器支持哪些平台?
Windows (DirectX 8,DirectX 9,OpenGL)
Linux (OpenGL)
Mac OS X (OpenGL——ARB_vertex_program支持)
Xbox (通过离线编译的DirectX 8顶点和像素着色程序)
其它平台怎么样?
NVIDIA提供了NVIDIA Cg编译器前端关键部分的源代码,使其它平台的快速移植成为可能。
Cg怎么支持未来的GPU?
Cg被设计为可以为很多可编程GPU提供支持,而且NVIDIA希望Cg成为一个关键技术,允许开发者可以访问和使用未来日益增加的可编程GPU架构。
NVIDIA Cg工具箱
NVIDIA提供给开发者什么?
NVIDIA目前提供给开发者NVIDIA Cg工具箱,由以下几部分组成:
NVIDIA Cg编译器:
DirectX 8:顶点和像素着色器
DirectX 9:顶点和像素着色器
OpenGL ARB_vertex_program,OpenGL ARB_fragment_program
NV_vertex_program[2],NV_fragment_program
Cg语言规格书
Cg标准库
Cg运行库(支持DirectX 8,DirectX 9和OpenGL)
Cg用户手册
NVIDIA Cg浏览器(带有很多着色例子和demo)
GeForce FX着色例子
将会有其他版本的工具包吗?
是的,新版本的NVIDIA Cg工具包将会支持和包含:
增加编译器的优化
广泛的可见和例子
进一步支持.fx运行期编译
NVIDIA Cg编译器会对针对某个平台特殊优化吗?
是的,NVIDIA Cg编译器会为多种目标GPU架构进行着色优化。
为什么Cg不能在我的旧显卡TNT/Voodoo/Matrox上运行?
NVIDIA Cg工具包现在需要一个可编程GPU——最好是DirectX 8级别的GPU,比如GeForce3或GeForce4 Ti,或Radeon 8500。
什么时候增加对Mac OS X/Xbox/TNT的支持?
Mac OS X——在开发中,Xbox [通过现在已经支持的DX8],TNT [不会增加支持]。
谁在使用Cg?
成百上千的开发商认可了Cg:
成百上千的开发商在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嵌入数字艺术家的工作流。