正在阅读:从COD11说起 浅谈近年3D渲染技术的演变从COD11说起 浅谈近年3D渲染技术的演变

2014-05-16 00:15 出处:PConline原创 作者:Fison 责任编辑:chenzhangwu
1从使命召唤11说起回顶部

  【PConline 应用】时也命也,如果当年3dfx开诚布公,Glide API早就一统天下了,更不会出现现在游戏选项中只有DirectX以及OpenGL的状况了。为了通过Windows的统治强制捆绑Direct3D,微软退出OpenGL组织。之后,Direct3D也以迅雷不及掩耳之势成为3D接口的绝对主流。对于显示芯片厂商和游戏厂商而言,遵循DirectX API已经成为默认的一道死命令,而如今我们更即将进入了DirectX 12时代。

画质的变化

  目前,我们还能接触到DirectX 9.0c,为什么一个04年出现的API版本能够活到14年的今天。下面就一起回顾下,着年来从9.0C到12,看看3D显示技术有什么变化。同时,NVIDIA的LOGO含义在现实何时才能实现?

 

从使命召唤11说起

  今年3月的GDC大会上,负责打造新一代《使命召唤》的Sledgehammer工作室便高调宣称新作品将成为系列之最,其中一条就包括更强的画面表现。

DirectX

  其中一张《使命召唤11》的游戏截图格外引人注意,其中主体是一张黑人士兵的面部特写,包括皮肤表面光照和质感表现令人惊叹,美中不足的是眼球的描绘,少了点精气神儿。目前,我们还不知道在这出色的画质表现背后是否有新引擎来撑腰,难道是传说中的DirectX 12?

 

DirectX 9.0c:十年光阴

背景

DirectX

  首先我们来回顾下DirectX 9.0c。事实上,DirectX版本的变化也体现了一种垄断的弊端。在与OpenGL的竞争中,DirectX在5.0到8.0的版本迭代基本上以月份来计算。失去对手后的发展速度明显慢了许多。直到现在,我们玩的主流游戏依然还有9.0c版本的 API选择。

  日新月异的IT发展,DirectX 9.0c能坚持那么长时间也不是没有原因的。

变革

DirectX
SM3.0与2.0的区别

  作为3D显示的一个重要转折点,Shader Model 3.0就是DirectX 9.0c得以长期流行的唯一功臣。Shader Model 3.0除了取消指令数限制和加入位移贴图等新特性之外,更多的特性都是在解决游戏的执行效率和品质上下功夫。

DirectX

DirectX
实际画质区别

  其中Pixel Shader、TMU以及ROP支持的数量上限远远超越了一个时代,如Shader长度由2.0的64指令到3.0的65536+指令,更长的着色器程序指令让多个像素渲染管线有了用武之地。更支持ATI的3Dc纹理压缩技术和NVIDIA主导的HDR技术,达到无缝结合的效果。

DirectX
XP如此长寿也带起了DX9.0c的节奏

  此外,DirectX 9.0c是最后一个支持WindowsXP的版本。所以,DirectX 9.0c如此长寿,还得跪谢XP吧。

结果

  Shader Model 3.0诞生之后,人们对待游戏的态度也开始从过去单纯地追求速度,转变到游戏画质和运行速度两者兼顾。因此,Shader Model 3.0对游戏产业的影响可谓深远,直到今天,追求画质速度均衡的3D网游大多还基于9.0c,因为对于体验来说,已经足够了。

2DirectX 10:统一渲染回顶部

DirectX 10:统一渲染

背景

  DirectX 9.0c的优势在于API超前于显卡的发展,但是当显卡性能提升到API成为瓶颈时,玩家对画质要求更高。于是另一场巨变来临了,那就是DirectX 10,以及它带来的统一渲染架构。

DirectX
没有DX10在渲染原理的变革,显卡危机也不会出现

  DirectX 9中引入的了2.0/2.X/3.0三个版本的Vertex Shader(顶点着色引擎)以及Pixel Shader(像素着色引擎)。这看似是技术的推进,其实是微软在为nVIDIA和ATI两强搭建竞争舞台,而且其中的内耗直接导致技术普及速度减缓,并且利用率降低,更令软件开发商畏首畏尾。而进入DirectX 10时代之后,微软渴望使用统一渲染架构来引领群雄。

变革

  所谓统一渲染架构,就是将Vertex Shader、Pixel Shader以及DirectX 10所引入的Geometry Shader统一封装。此时,显卡中的GPU将不会开辟独立的管线,而是所有的运算单元都可以任意处理任何一种Shader运算。

DirectX

DirectX
双引擎带来的低效促使统一渲染架构的出现

  譬如,在《上古卷轴4》游戏中,对于Vertex Shader的要求非常高,而此时大量显卡的Pixel Shader处于闲置状态,Vertex Shader又不堪重负。在微软的统一渲染架构下,既然所有的运算单元都可以处理任何一种运算,那么就能有效避免这种不合理的分配现象。

  与此同时,DirectX 10的可编程语法结构,令各种特效的运用更加简易实现,这对于提高3D游戏画面效果将会有巨大的共享。除此以外,Direct X10还支持Shader Model 4.0,意味著它的渲染效果将会进一步提升。

DirectX
画质的提升只是细节的提升,更多的是基于性能的提升,而本质的提升是没有的

  事实上,DirectX 10对于画质方面的其它贡献也有不少,其中“Geometry Shader”(几何着色)便是最显著的一点。通过引入新的渲染模型,开发人员可以利用整体多边形渲染加速图形运算,新着色模式将大幅提高很多3D立体作图功能效率,还将允许GPU独立于CPU外完成数据循环工作,使系统完全脱离CPU束缚。

观点

DirectX
统一渲染架构奠定了未来显卡设计基础

  一统天下,就是DirectX 10的最大功劳。这个时代开始,我们谈论显卡性能,不再是管线,而是流处理器。优化渲染效率,3D开发更易用,《孤岛危机》带来的震撼在今天依然难以令人忘怀。同时,DirectX 10让AMD与NVIDIA的性能擂台摆在一个真正公平的环境(当然,微软是限制不了游戏开发者收赞助费的)

3DirectX 11:细节决定成败回顶部

DirectX 11:细节决定成败

背景

对比
不对比看不出差距,非全动态的细节对比也看不出明显差距,侧面看出DX9为何长寿

  人的需求是无尽的,在一层需求满足之后,另一层需求就会上来。如果说DX9画面让人一眼就能辨别游戏与现实的话,DX11就大大增添了这一辨别难度,DX11画面的景深效果、反射效果,让游戏看上去更像是真实的拍摄镜头,日益临近“电影级”渲染效果,DirectX 11就是应画质的需求而诞生。其实,DX11就是为细节而生。

变革

  本质上,DirectX 11的一面是DirectX 10的改良,只对性能和扩展性进行优化,主要改进在提供Shader Model 5.0,加入对MSAA的直接采样控制。大幅改进多线程性能,提供三个独立的接口。

  另一面,进一步提高纹理压缩,就是大名鼎鼎的曲面细分。并加入了Compute Shader(DirectCompute)来支持GPGPU,提供新版HLSL语言,与 nVidiaCUDA 功能类似。

 水面效果
水面效果的进步

 对比
动态模糊,说实话除了更模糊外差距真不大

对比
局部阴影,差距的确明显,也更有层次感

  此外,DX11还为游戏带来了实时局部反射、景深、水面特效、动态模糊等画面特效,展现了今年最前沿PC游戏的画质成就。相对于DX9特效,DX11在细微之处更显精益求精,在诸多细节上的持续革新,为DX11游戏画面累积了显著的进步。

对比
本质上,画质的提升还是要靠显卡性能的进步

  曲面细分技术所代表的GPU几何性能是新一代显卡最重要的功能,也是DirectX 11最重要的组成部分。GPU的发展从Geforce FX5800时代发展到Geforce GTX285,五代时间内像素处理能力增长了1500%,而几何性能只增长了300%。几何性能已经成为制约画质的瓶颈,所以目前GPU已经专门加强几何处理能力,曲面细分作为几何处理的典范便首当其冲得到了加强。

在纯粹的细分曲面渲染中我们可以从感官上看到DX11
在纯粹的细分曲面渲染中我们可以从感官上看到DX11画质的改变

  细分曲面把游戏画面切割成更小的三角形,这样使得整个画面更加逼真细腻,而细分曲面的实现则需要用到多形体引擎,多形体引擎的数量也直接关系到显卡在DX11游戏中的表现。多边形越多,那么曲面就会展现的更为真实。曲面细分技术,便是一种化繁为简的手段,简单的理解,便是在一个简单的多边形模型中,利用专门的硬件,专门的算法镶嵌入若干多边形,以达到在不耗费CPU资源的情况下,真实展现离题曲面的目的。

观点

 对比
曲面细分是这么多年来比较给力的画质改革

  DirectX 11就是画质真实化到立体化的革命。DirectX 11的带动下,画面的渲染不再给人一种动态而又“静止”的壁纸,而是更具真实立体的感觉:视觉与触觉的合体。简单来说,这就是家里壁画到家里变成壁画的环境的区别。这一切都是DirectX 11以及曲面细分、动态模糊等技术带来的革命。

4DirectX 12:展望未来回顶部

DirectX 12:展望未来

背景

DirectX 12正式发布
DirectX 12

  时隔了整整4年半,微软终于推出了新版的API DirectX 12,与DirectX 11内置与WIN7中相似,想使用新API必须通过安装最新的WIN8系统才可以使用,而Windows 7则需要独立安装。DirectX 11已带来画面立体动态化的革命,DX12还会让画质渲染带来何种高度?

失望:只是改进版

  DirectX 12不是新的图形显示硬件技术,而是更偏向软件上的改良与优化。DirectX 12将更好支持多核心、多线程的优化,降低GPU处理瓶颈,并强化跨平台功能,可有效支持微软各式平台,并提升硬件功耗表现。所以,我们只能以失望形容。不过还是看看有哪些具体表现吧。

DirectX 12正式发布

DirectX 12正式发布
降低CPU占用

  DX除了会调用显卡之外,还会在物理运算时调用大量CPU资源,之前的DX经常会出现因为CPU太弱导致显卡性能无法完整发挥的情况,这次DX12大幅度优化了多核心协同工作时的负载,基本可以做到多个核心的负载均衡,整体的负载均衡的分配到每个核心上之后,每个核心的负载将会有所下降,对CPU的需求也有所下降。 

DirectX 12正式发布
DX12更专注移动平台

  作为DX12最大的噱头之一,移动领域的高通也将将和微软联手合作,DX12是否能进一步提升目前移动设备的能效比,从而提高移动设备性能还不好说。但如果能实现PC端与移动端在程序开发上的互联,那将是一个巨大的飞跃。

Mantle

mantle
AMD的馒头让微软枕食难安?

  说到DX12不得不提AMD的Mantle——“馒头”,是AMD自主创建的一款新型的图形编程模式,其充分利用现代化GPU性能,允许游戏开发者利用GCN架构的原生语言进行开发,带来了更深层次的硬件优化。用地球来说明架构,核心GCN,中层mantle驱动和API,外层图形应用程序。并且,兼容DX HLSL语言。可减小CPU开销,性能提升9倍,底层直接访问GPU资源。

观点

  由于可以绕过DX API直达硬件底层,微软可能也是感觉到了Mantle带来的挑战,加速了DX12发布的流程。但按正常的思路,Mantle应用在A卡上可能会获得比DX12更好的效率和表现,但是对于习惯了DX的开发者来说是个挑战。

 

PConline总结:

总结
DirectX

  可以看到,从9.0c到12,就是一个缓慢发展的过程,可见没有API的竞争,3D画质基本上没有本质上的进步,更不可能实现眼前所见的就是电脑游戏中的所见。无论是SM3.0、统一渲染、曲面细分等,都是性能上的优化以及DX9.0c支持下的画面的小修小补。希望在Mantle的攻势下,3D API能够重新获得爆发式发展。

  最后,我们当然不希望,每次游戏出来前的截图逆天,实际效果却一塌糊涂。比如,大家可自行百度当年那款发誓要成为《最终幻想》中国版的游戏:《最初幻想》。

为您推荐

加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
热门排行

DIY论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品