学3D编程为什么选择OpenGL?

2005-6-17 9:23:00   Count:

学 3D 编程是选 Direct3D 还是 OpenGL 好

  谈到 3D 编程序一直有个问题困扰着初学者,学 3D 编程是选 Direct3D 还是 OpenGL 好。甚至有人认为 OpenGL 是一种过时的技术。

  我们首先了解什么是 3D API ? API 是英语 “ 应用程序接口( Application Programming Interface ) ” 的缩写, 3D API 就是 3 维图形应用程序接口了。

● Direct3D ( D3D )

  Direct3D 是基于微软的通用对象模式 COM ( Common Object Mode )的 3D 图形 API 。它是微软( Microsoft )树立的 3D API 规范,它所有的语法定义包含在微软提供的程序开发组件的帮助文件、源代码中。 Direct3D 是微软公司 DirectX SDK 集成开发包中的重要部分,适合多媒体、娱乐、即时 3D 动画等广泛和实用的 3D 图形计算。自 1996 年发布以来, Direct3D 以其良好的硬件兼容性和友好的编程方式很快得到了广泛的认可,现在几乎所有的具有 3D 图形加速的主流显示卡都对 Direct3D 提供良好的支持。但它也有缺陷,由于是以 COM 接口形式提供的,所以较为复杂,稳定性差,另外,目前只在 Windows 平台上可用。

● OpenGL

  OpenGL 也是一个 3D API ,它是开放的图形程序接口,英文全称是 “Open Graphics Library” , OpenGL 是跨平台的国际计算机工业标准应用程序接口,主要应用于专业设计领域。 OpenGL 是与硬件无关的软件接口,只要操作系统使用了 OpenGL 适配器就可以达到相同的效果,它是一个开放图形库,目前在 Windows 、 MacOS 、 OS/2 、 Unix/X-Windows 等系统下均可使用,具有良好的可移植性,同时调用方法简洁明了,深受好评,应用广泛。 OpenGL 能在网络环境下以客户机 / 服务器模式工作,充分发挥集群运算的威力,是专业图形处理、科学计算等高端应用领域的标准图形库。

  目前 3D 图形领域,专业用户 (CAD/CAM 等 ) 3D 绘图大部分利用 OpenGL ,而微软致力于推广家庭与个人市场的多媒体娱乐平台, DirectX 几乎就是 Game 、 CAI 等应用软件的绘图标准接口。但是因为 OpenGL 较早完成,且技术层次洗练深受开发者和用户喜爱,甚至包含许多游戏开发者。但 DirectX 不只有绘图处理,还包含 Video 、 Sound 等多媒体影音处理,因此其涵盖面超过 OpenGL ,可以说是各有所长。

  现在多数商业游戏都选择了 D3D 和 OpenGL 双 API 方式。设计两个 API 的作用在于,你的显卡运行某个 API 出现贴图错误或者运行速度跟不上时,可以试着切换另一个 API 来运行。这已经是许多游戏玩家都知道的。

选择 Direct3D 还是 OpenGL ?

  现在的计算机的显示卡普遍具有的 3D 性能都很强大了,对 OpenGL 和 Direct3D 都能很好的支持。所以建议:可能的情况下 ,“Direct3D 和 OpenGL 一个都不要少 ” 。作为 3 维图形的初学者 OpenGL 的 API 调用方法简洁明了,似乎更好理解一些。 Direct3D 的 API 由于是以 COM 接口形式提供的,对初学者来说使用较为复杂。重要的是我们不是在学 OpenGL 或 Direct3D ,是学习 3 维图形的处理方法, OpenGL 或 Direct3D 只是一种 3 维图形的描述方法。

 


浏览该文章的用户为您推荐了该信息: 
       
   
   
 
站内检索:
栏目导航
本月授课安排
阅读排行