
| 出版日期:2002-07-01 总期号:474 本年期号:24 |
|
NVIDIA也来玩编程
NVIDIA CG语言 添元 NVIDIA最近发布了一个全新的图形编程语言:C for Graphics,简称CG,很显然从这个技术的字面上来看,就会知道CG是使用C语言作为蓝本,面向显示卡的语言。那么这种技术会对我们有什么影响,以及可以给我们带来什么好处呢? 为什么需要CG 目前NVIDIA已经发布的GeForce 3/4以及ATi的Radeon 8500这几款图形芯片都具备了DirectX 8级别的可编程特性。但是,由于没有合适的工具,因此大多数3D图形开发者没有办法发挥它们的全部潜能。而造成这个现象的主要原因就是,以上的显示卡如果要实现硬件的像素渲染和顶点渲染编程就必须要使用低级的汇编语言来进行。我们知道汇编编程的工作量,以及难度是非常高的,对于显示卡要达到的特效显然要求应该更高。因此众多的3D图像程序员都很难完全发挥这些显示卡硬件渲染方面的可编程性。
图1 CG语言的特点 CG语言是全新的类C高级编程语言,在微软的帮助下我们看到了它的雏形,有意思的是CG语言不但支持普通的DirectX图形接口,对OpenGL图形接口也提供了完备的支持。CG语言主要包括两个部分,CG语言特征、CG编译器,而且这种编译器可以使用高级语言数据类型。 CG具备很高的效率,因为CG其实就是提供了应用程序同硬件加速规范的中间层,应用程序通过CG来调用DX和OpenGL,这样开发者再也不用去直接接触图形核心的细节了(见图1)。 CG语言的实际意义 NVIDIA宣称在未来的一年中CG将可以给我们带来电影品质的3D图像(见图2)。而现在的显示卡都只能实现普通的帧渲染。CG可以更好地使用图形核心的可编程特性,可以提高开发速度,使开发者可以共享和重用代码,NVIDIA称CG为“工业标准言语”。 与统一驱动体系(Unified Driver Architecture)类似,在CG上NVIDIA也采用了统一编译体系,这使得CG可以向后兼容。
图2 NVIDIA非常希望CG可以成为一个图像上的标准,这样在不远的未来就创造出漂亮的令人惊讶和真实的3D场景。而目前的游戏世界还深陷在帧渲染以及固定渲染的泥潭中。 我们不难看出3D显卡现在正逐步走出单纯追求速度、填充率的怪圈。或者说直到今天,我们才逐渐开始走出3dfx这个辉煌巨人的阴影。我们可以看到,像NVIDIA、3DLabs等厂商一样,大家纷纷关注芯片的可编程性。各个厂商正在充分发掘来自硬件的潜力。通过CG语言的出现我们不难看出NVIDIA的狼子野心。因为无论D3D也好,OpenGL也好,全部被阻挡在了CG后面。游戏开发者只要面对CG就好了。因此,从某种程度上来说,CG几乎就是一个大型API,也许这是另一场3D标准之争的导火索。但不管怎么说,CG的出现还是能够很大程度上解放编程人员,为3D领域带来一道亮丽的风景。 |
|||||||||||||||||||||||