翻译自:https://www.extremetech.com/computing/54604-top-tip-what-are-opengl-direct3d-directx-etc
首先一点澄清:DX包含D3D,D3D是DX的主要图形处理部分,OpenGl从某方面来说是一个API。
一个游戏开发者,或者任何图形学程序员,都能选择是否去使用DX或者OpenGl的API。如果他们想要能完全控制内部实现,可以自己编写需要的模块来使用。
在补丁v226f之后的最终版本,虚幻游戏允许你的游戏来选择自己的API,一些API已经过时或者集成到DX或OpenGl中。
#1 DirectX(包含Direct3D) 和 OpenGl 都是 API
API = Application Program Interface 应用程序编程接口
API允许开发者(游戏开发者或者视频CAD开发者等)使用预定义的函数调用让开发游戏或者使用CAD更方便。DX和OpenGL定义了多种方式去渲染图片,而且他们提供了中间层去控制硬件和软件,(译者注:某著名学者说过,任何计算机的问题都可以通过添加中间层的方式解决)。这些预定义的控制层简化了视频软件开发如游戏。
当使用特定功能的API时,开发者会在开发写代码的时候会更简单快捷,否则开发者必须自己去写所有的图形渲染。
#2 默认情况下,Win95以上的Windows系统在某种程度上已经包含了所有早期版本的API
所以他们不必去安装早期的版本,不过需要实时更新。
#3下面是我们一定要知道的DX和OpenGL的差异
OpenGl单纯是一个图形渲染API,所以它只能处理图像
DirectX包含图形(Direct3D)、声音甚至网络API,他们全都在一个package里
#4 DX和OpenGl的背景
D3D(现在包含在DX)是由微软发明用来对抗OpenGL的,微软发明的D3D会更简单,微软希望D3D未来会比OpenGL更强大,并取代他。(译者注:D3D的API源码真的比OpenGL的简洁太多)
OpenGL是SGI公司在1980年发明的一门语言,开始SGI公司只是内部使用其强大的图形渲染能力,慢慢的,他们意识到如果想让其成为行业标准,必须开源允许其他公司来一起定义规范。
通过上面几条,你应该大致了解了这几个的区别