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


文章图片
它就带来了SM3.0的支持
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
加入了如:置换贴图、次表面反射、柔和阴影、还有最重要的全局光照这些特别棒的特效 。
所以你会发现2004年之后的游戏画质突然就好起来了 。
再比如directx11给我们带来了曲面细分的特性 , 让我们游戏中的物体细节更加丰富 。
同时也帮助开发者节省了建模的时间 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
最近的一次更新是directx12 , directx12很有意思 , 它的游戏画面相比directx11没有任何的进步 , 因为directx12的升级完全是效率上的 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
那么directx12是怎么样提高效率的呢?
还记得我们刚刚这张流程图吧 , 我们把这个理解为directx11的流程 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
那么directx12的流程就是这个样子的 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
在directx11时代呢 , 驱动和系统层会代替开发者来管理硬件资源 , 但是斗地主的时候选托管肯定没有你自己打的好 , 所欲驱动不一定完全理解软件的需求 , 只有开发者自己才最明白自己的软件 。
在directx12这里 , 开发者的这个梦想就成真了 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
我们把directx12称为底层api , 因为它赋予了开发者更多的管理权限 , 更加接近底层硬件 , 可以让开发者更自由的和硬件直接交流 。 这样一来 , 开发者就有了更大的调整空间 , 可以给游戏做出优化 。
这种剔除冗余 , 消除官僚主义作风 , 在directx12的方方面面都有所体现 。 比如说通过减少api带来的cpu开销 , 支持更多的Drawcall , 这样就可以更好的利用上多核处理器了 。
可是很有意思的一个现象发生了 , directx12的游戏 , 尽管也有表现不错 , 性能进步的 , 但同样也出现了性能倒退的游戏 。
这是怎么回事呢?不是说好的directx12可以提升效率的吗?怎么有些游戏反而开倒车 , 不如directx11代呢?这我就得给你好好分析一下了 。
你看这底层api的意义就在于放权给开发者 , 因为我们觉得开发者是最了解游戏的 , 可是你给了开发者自由 , 不代表它们愿意去干 。
本来应该驱动层干的事情 , 你现在扔给开发者来做 , 首先人家不一定乐意加班 , 其次游戏公司也不一定愿意掏这笔钱 , 最后也不是每个开发者都有这么强的技术能优化好游戏 , 这就是所谓的自由不等于繁荣 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?
文章图片
底层api把游戏的命运全权交给了开发者 , 而开发者的表现参差不齐 , 这才导致了directx12的游戏表现参差不齐 。
【游戏迷】什么是OpenGL?什么是direct x?单机游戏运行为什么与它们有关?】比如单机游戏“方舟生存:进化”directx12模式的表现就很糟糕 , 因为这个游戏的开发商是一个小工作室 , 没什么开发经验 , 用的又是虚幻4引擎 , 是别人家的东西 , 它们是没有足够的技术和精力来驯服directx12模式的 。