比较DirectX和OpenGL的区别

2025-04-03 12:36:12
推荐回答(3个)
回答1:

1、两者的应用不同

DirectX可让以windows为平台的游戏或多媒体程序获得更高的执行效率,DirectX已被广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE电子游戏开发。

OpenGL用来绘制从简单的图形比特到复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。

2、两者的所属不同

DirectX(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。

OpenGL规范由1992年成立的OpenGL架构评审委员会(ARB)维护。ARB由一些对创建一个统一的、普遍可用的API特别感兴趣的公司组成。

3、两者的包括分类不同

DirectX包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多个组件,它提供了一整套的多媒体接口方案。

OpenGL 上下文(英语:OpenGL context)其中包括SDL、Allegro、SFML、FLTK、Qt等。也有一些库是专门用来创建 OpenGL 窗口的,其中最早的便是GLUT,比较新的也有GLFW可以使用。

参考资料来源:百度百科-DirectX

参考资料来源:百度百科-OpenGL

回答2:

一、意思不同

DirectX是一种应用程序接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计 人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。

OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。

二、应用范围

在OpenGL的基础上还有Open Inventor、Cosmo3D、Optimizer等多种高级图形库,适应不同应用。其中,Open Inventor应用最为广泛。该软件是基于OpenGL面向对象的工具包,提供创建交互式3D图形应用程序的对象和方法,提供了预定义的对象和用于交互 的事件处理模块,创建和编辑3D场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。

三、组成

DirectX是由很多API组成的,按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和网络部分。显示部分担任图形处理的关键,分为DirectDraw(DDraw)和Direct3D(D3D),前者主要负责2D图像加速。

回答3:

OpenGL是较老式的一种三维显卡,通常是显卡上面有自己的显频处理器,类似于系统的CPU,专门处理三维的加速用的,而不是用系统的CPU。以前这种显卡较贵,而且是专门给做三维尤其是AutoCAD等软件用的一种显卡。OpenGL有单核也有双核的,显卡的显存也是普通显卡的两倍左右。DirectX里面有所谓的Direct 3D的支持,就是假如显卡里面的芯片(普通的三维显卡的芯片,如nVidia的关于三维的处理模式是预设的,而且是硬件支持,假如三维软件需要的三维指令不再显卡的芯片里面,那么CPU就会自动接过来做运算,而OpenGL的显卡的处理器可以自己做运算,不需要用到系统的CPU)有支持三维的指令,那么微软的DirectX中介就会让显卡做计算,假如显卡没有,那么就会是系统的CPU做计算。现在比较高级的显卡都有很多硬件内崁式的指令在显卡的芯片里面。OpenGL是最好的三维,但是价钱较贵。DirectX里面的Direct 3D是最普遍的,但是因为三维的指令市场的更新,而芯片里面的指令是属于硬件,无法更新,所以要用到新的三维指令就要另买一个新的三维卡。这也就是为什么nVidia的9800要比9300好,好比8500好,因为越高的型号就有越新的三维指令。Google Earth是一款使用三维的模式计算和画出图像的软件,是利用非常微小的三角形和多角形来完成不同层次的图像,就像一个三维游戏一样。假如你的显卡支持OpenGL模式,那么Google Earth的绘画功能要较简单,以为大多数的计算过程你的显卡办得到。假如你的显卡不支持OpenGL模式,而是DirectX模式,那么Google Earth运行就较慢些,因为软件的更新和三维指令不一定是每一个三维显卡都支持的。所以就要变成较简单的模式了。nVidia的GeFore 9300GE应该是以DirectX模式运行的。