当前位置: 首页 > 工具软件 > cg-docs > 使用案例 >

Cg FAQ

单于庆
2023-12-01

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嵌入数字艺术家的工作流。

 类似资料:

相关阅读

相关文章

相关问答