Opengl和D3D的区别

最近论坛经常有人问起D3D和opengl的区别,其实cs中用opengl的效果比D3D要好。OpenGL是OpenGraphicLibraly 的缩写,即开放式图形库,是SiliconGraPhics公司在其推出的IRISGL图形库基础上发展起来的,可以广泛使用于PC、工作站和超级计算机 上的开放式三维图形应用和程序接口。(所谓"开放式”即指其可以适用各种计算机环境)主要针对专业CAD/CAM设计领域,适用于WindowsNT、 Willdows95、Mac0S、0S/2、Unix等平台,具有非常强的可移植性。

  OpenGL现由业界著名的OpenGL体系结构评审委员会(ARB)控制。该委员会包括英特尔(Intel)、IBM、微软 (Microsoft)、DEC、康柏(Compag)、SGI、Intergraph、Evans和Suther—land等九个成员,主要负责评审 OpenGl的功能扩展和制定相关的技术规范。

  3DAPI的源程序通常分为两种模式:立即模式和保留模式。立即模式是一种低层的、直接面向图形硬件的接口模式;保留模式则通过统一的接口与图形硬件联系,是一种可控性更强的高级模式。

  OpenGl是一种立即模式的3DAPl,在实时3D处理中性能突出,它可以省略将图形预先储存于数据结构的步骤,直接提取图形的像素,按照编程人员 的指令进行着色渲染,大大节省了3D图形的处理时间。美中不足的是立即模式不允许0PenGI将本帧画面的图形信息传送给下一帧画面,必须进行实时重绘, 这在一定程度上造成了系统资源的浪费,因此,SGI在OpenGL之上建立了一个新的标准,即OPenGL++,它兼具保留模式的优点,允许开发人员对帧 与帧之间的像素进行复制,并应用于新的画面中。在OPenGL十十之后,SGI还制定了专门面向机械CAD领域的高级三维图形程序接口— OPenGLOptimizer,它拥有更完善的性能和更强的可操作性。


  在游戏领域,OpenGL的应用时间还比较短,且仅提供立即模式接口,但凭借出色的性能和简易的操作,迅速得到那些对3D处理要求特别高的游戏的垂青。

  由于OPenGL开发的很早,因此性能非常完善,包含了大量功能强大的图形函数,可以实现从渲染一个点,到采用Phong光源,MIP纹理映射,以及 消除锯齿等复杂操作的全部3D处理方案。因此,游戏领域应用的虽然只它的子集,就已经可以比DirectX更好的发挥图形芯片的潜力。微软曾经多次试图排 挤OpenGL在游戏领域的地位,但始终未能如愿以偿。反而越来越多的游戏公司(包括Id在内)联名要求微软在其操作系统中加入对OpenGL的支持。这 导致了微软最终的妥协—在其与SGI联合发表的一份声明中,表示将就OpenGL在Windows中的应用与后者进行更广泛的合作,在以后的 DirectX体系中,OpenGL将会获得和D3D一样的重视程度。他们将联合在一起,在一种新的、命名为DDl(Dev6ceDiverKit)架构 中出现。一种专门为WINDOWS作过优化,叫做OpenGLICD(InstalallableClientDriver)的驱动将会使大多数3D卡更 容易为OpenGL所识别,从而实现更广的适用范围。

  其实,说Direct3D不如OpenGL已经是旧话,随着DirectX6.0的推出,二者.的性能差距已经微乎其微。究竞谁能在以后获得更广泛的 支持,还要拭目以待。不过无论如何,游戏处理对于OPenGL来说只能算是"邪门歪道”,它在专业3D设计领域的应用才是最佳的价值体现。

你可能感兴趣的:(Opengl和D3D的区别)