【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?

大家好 , 欢迎来到霍夫日记 , 我是霍夫 。 今天我来说说什么是directx?什么是OpenGL?为什么玩单机游戏的时候 , 经常弹窗提示缺少这些程序组件无法运行游戏呢?
某天 , 你刚下好的三A大作正版游戏终于下载完毕了 , 心里想着可以开玩了 , 赶紧点击EXE程序运行 。
于是出现以下画面
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
怎么打不开不了啊?计算机中提示缺少d3directx9.dll是怎么回事?
我们玩游戏天天都得接触directx和OpenGL , 没有这些程序游戏就玩不了了 。 可是你有没有想过它们究竟是干嘛用的呢?这个OpenGL又是什么鬼呢?
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
在很早很早以前 , 软件开发缺乏标准编程 , 可以说是一对一的 。 我这串代码就对应着一种硬件一种系统 , 这样一来呢 , 开发的过程就极其的繁琐 , 毕竟你这软件可是一对一高端定制 , 你想让全世界的设备都用上你的软件 , 那对不起 , 你得一个个去找软硬件厂商 , 一个个去做适配吧 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
那这个时候我们就需要一个中间层 , 在不同的软件 , 不同的硬件之间进行沟通 , 这就是api应用编程接口 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
api就相当于是一系列函数的集合,程序可以直接通过这些函数进行构建 , 不需要访问更底层的东西 。 这样一来 , 软件开发的门槛就降低了 。
api的意义在于简化编程的操作 。
打个比方 , 你现在想和法国人交流 , 如果没有翻译的话 , 你就只能自学法语 。 可这也太麻烦了吧 , 我就想搭个话 , 喝两口法国红酒 , 我还得再学一门外语才行吗?
当然不必这么麻烦 , 你找个翻译不就行了吧 。 这api就是你的翻译 , 尽管翻译会造成延迟 , 会降低一点交流的效率 , 你得额外花点时间等翻译说完 , 但至少你可以听懂法国佬说话了 , 可以正常交流正常喝酒了 , 这才是最重要的 。
说到这里你也应该猜到了 , 我们亲爱的directx和OpenGL正是api 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
确切的说呢 , OpenGL是一种图形api , 而directx则是许多各种各样api的集合体 。 其中当然也包括图形api--direct3D 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
图形api , 猜猜这个名字都知道这是为图形计算设计的 , 那么玩游戏说的最多也是图形api , 这里我们用direct3D来举例子 , 在游戏中它的作用差不多是这个样子 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
承上启下嘛 , 它就相当于是游戏引擎和显卡驱动、系统层之间的桥梁 , 是同时精通上层下层各种语言的翻译官 。
OpenGL其实也是类似的一个工作流程 , 但是它相比direct3D更加开放一些 。 因为OpenGL是由非盈利性的行业联盟khronosgroup牵头的 , 它是跨平台的 , 对于系统没有限制 , 你不仅可以在windows上用 , 也可以在macos、linux上使用 , 甚至还可以在安卓和ios上使用它们的阉割版本OpenGLes 。
相比之下呢 , direct3D就只允许在微软自家的windows和xbox上使用了 。 此外 , OpenGL的学习门槛也更低 , 开发人员更容易上手 。 但是它的缺点就是效率往往不如direct3D , 新特性的更新往往也比较慢一些 。 说白了就是不如direct3D先进吧 。 但这两种图形api地位是一样重要的 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
OpenGL在所有的领域都很吃香 , 包括许多的专业领域 。 而direct3D对于我们这些玩游戏的玩家来说是最熟悉 。
除了direct3D之外呢 , directx家族还有很多小兄弟 。 比如说direct2D是负责2d图形的 , directcompute , 是负责通用计算的 , xaudio负责音频 , 而xinput这个名字听着是不是很耳熟啊 , 它是负责xbox手柄输入的 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
随着windows版本的更新 , directx也在不断的更新换代 , 每一次版本升级都会加入一些新的特性 , 带来画面上的突破 , 或者效率上的改进 。
比如directx史上非常大的一次进步 , directx9.0c
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?