什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?( 二 )

文章图片
OpenGL在所有的领域都很吃香 , 包括许多的专业领域 。 而direct3D对于我们这些玩游戏的玩家来说是最熟悉 。
除了direct3D之外呢 , directx家族还有很多小兄弟 。 比如说direct2D是负责2d图形的 , directcompute , 是负责通用计算的 , xaudio负责音频 , 而xinput这个名字听着是不是很耳熟啊 , 它是负责xbox手柄输入的 。

文章图片
随着windows版本的更新 , directx也在不断的更新换代 , 每一次版本升级都会加入一些新的特性 , 带来画面上的突破 , 或者效率上的改进 。
比如directx史上非常大的一次进步 , directx9.0c

文章图片
它就带来了SM3.0的支持

文章图片
加入了如:置换贴图、次表面反射、柔和阴影、还有最重要的全局光照这些特别棒的特效 。
所以你会发现2004年之后的游戏画质突然就好起来了 。
再比如directx11给我们带来了曲面细分的特性 , 让我们游戏中的物体细节更加丰富 。
同时也帮助开发者节省了建模的时间 。

文章图片
最近的一次更新是directx12 , directx12很有意思 , 它的游戏画面相比directx11没有任何的进步 , 因为directx12的升级完全是效率上的 。

文章图片

文章图片
那么directx12是怎么样提高效率的呢?
还记得我们刚刚这张流程图吧 , 我们把这个理解为directx11的流程 。

文章图片
那么directx12的流程就是这个样子的 。

文章图片
在directx11时代呢 , 驱动和系统层会代替开发者来管理硬件资源 , 但是斗地主的时候选托管肯定没有你自己打的好 , 所欲驱动不一定完全理解软件的需求 , 只有开发者自己才最明白自己的软件 。
在directx12这里 , 开发者的这个梦想就成真了 。

文章图片
我们把directx12称为底层api , 因为它赋予了开发者更多的管理权限 , 更加接近底层硬件 , 可以让开发者更自由的和硬件直接交流 。 这样一来 , 开发者就有了更大的调整空间 , 可以给游戏做出优化 。
这种剔除冗余 , 消除官僚主义作风 , 在directx12的方方面面都有所体现 。 比如说通过减少api带来的cpu开销 , 支持更多的Drawcall , 这样就可以更好的利用上多核处理器了 。
可是很有意思的一个现象发生了 , directx12的游戏 , 尽管也有表现不错 , 性能进步的 , 但同样也出现了性能倒退的游戏 。
这是怎么回事呢?不是说好的directx12可以提升效率的吗?怎么有些游戏反而开倒车 , 不如directx11代呢?这我就得给你好好分析一下了 。
你看这底层api的意义就在于放权给开发者 , 因为我们觉得开发者是最了解游戏的 , 可是你给了开发者自由 , 不代表它们愿意去干 。
本来应该驱动层干的事情 , 你现在扔给开发者来做 , 首先人家不一定乐意加班 , 其次游戏公司也不一定愿意掏这笔钱 , 最后也不是每个开发者都有这么强的技术能优化好游戏 , 这就是所谓的自由不等于繁荣 。
相关经验推荐
- 原神: 4星主C为什么没落了, 除了“国家队”还有谁能打通深渊
- PCLP:“爹”来了,长龙开摆GYF或将解散,Longskr这下是破大防了
- 特战荣耀:燕破岳为什么执着于“内卷”?市场需要个人英雄主义!
- 赵云和猴子两大门面英雄,胜率却常年垫底,策划为什么无动于衷?
- EDG冠军皮肤即将亮相?Meiko:快了!应该是在5月初
- 创造与魔法海景佛跳墙大包配方是什么?创造与魔法海景佛跳墙食谱获取攻略
- 绝地求生未来之役2022灵敏度分享码是什么?绝地求生未来之役灵敏度最稳分享码
- 怨憎会游戏第四章通关方法是什么?怨憎会游戏第四章通关攻略技巧
- 王者荣耀:赛季初是最容易拿到英雄排名的时间段
- 创造与魔法永久坐骑兑换码是什么?创造与魔法兑换码2022永久坐骑一览最新
