请输入您要查询的百科知识:

 

词条 Cg语言
释义

在历史上,图形硬件都是从非常低层上进行开发的。通过设置状态,例如贴图合并(Texture-combining)模式,来设定固定功能的管线(pipelines)。更近一些的时候,程序员可以通过使用汇编语言层的编程接口来设置可编程管线。理论上来说,这些低层的编程语言提供了极大的灵活性。在实际应用中,它们在使用起来却是很痛苦并且在有效使用硬件上设置了极大的障碍。

使用高级编程语言,而不是使用以前的低层编程语言,有以下几个优势:当着色器(shader)被开发出来的时候,高级语言可以加速运行周期。对于着色器的最终测试就变成了"它看起来对吗?"。到最后,快速原型和修改着色器在高质量效果的快速开发上就变得至关重要。 编译器可以自动优化代码并执行低层任务,例如注册地址分配,那是很容易出错并且乏味的操作。 着色代码用高级语言编写更容易被阅读和理解。这样也允许通过修改以前编写的着色器,从而轻松的创建新的着色器。从最好的艺术家和程序员哪儿学习他们编写的着色器是多么好的方式啊。 用高级语言编写的着色器要比用汇编代码更能够适用于广泛的平台。

Cg(C for Graphics),为GPU编程特别设计的新的高级语言。Cg提供了刚才提到的所有优点,它最终使程序员使用这个语言轻松的进行GPU编程并发挥了GPU固有的强大动力。

Cg语言

Cg基于C,但是经过增强和调整使它可以轻松的编程并编译成为高度优化的GPU代码。Cg代码看起来和C代码非常像,使用相同的声明语法,函数调用和大多数的数据类型。

Cg语言基础问答:

Cg是什么?

C for Graphics。Cg是对GPU编程的高级语言,由NVIDIA在Microsoft的密切协作下开发。

是谁在维护Cg语言规范?

NVIDIA在维护Cg语言规范,而且会继续和Microsoft合作维护它和DirectX High Level Shading Lan guage (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。

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

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/31 18:18:47