DirectX 11核心技术Tessellation浅析

互联网 | 编辑: 耿佳 2009-10-27 00:00:00原创 返回原文

我们利用Unigine Engine-Heaven的画面,简单的说明下未来DirectX 11究竟能为玩家带来什么样的画面效果。

DirectX 11正式来临

上周五,Microsoft终于正式发布了Windows 7的正式版,除去为我们带来更好的电脑操作体验之外,也标志着最新一代的Microsoft图形API标准DirectX 11正式进入市场。不只是巧合还是故意为之,Windows 7发布的第二天,虚拟现实引擎(Unigine Engine)发布了全球首个支持DirectX 11的技术演示Demo和Benchmark——Heaven(天堂)。

Unigine Engine-Heaven主要特性 支持DirectX 9/10/11;OpenGL
大量使用Hardware Tessellation技术
高级SSAO(屏幕空间环境光遮蔽)
物理学精准算法生成的容积云
动态天空和光线散射
支持ATI Eyefinity多屏显示技术
行走、飞行交互式体验模式
基准测试模式

在Unigine Engine-Heaven这个演示Demo中,可以说将DirectX 11最为重要的特性之一Hardware Tessellation(硬件细分曲面,以下简称Tessellation)表现得淋漓尽致。夸张的视觉效果相信让不少“画面党”小小的震惊了一把。要真正开启Tessellation,那么Windows 7操作系统(RC版本以后的才携带DirectX 11)和一块支持DirectX 11的ATI HD5000系列显卡都必不可少。目前也仅有这个组合能够对DirectX 11提供完善的支持。当然如果仅仅是想要运行这个Demo,那么ATi Radeon HD 2000或者Nvidia GeForce 7000系列以上的显卡就可以了,当然这样你只能看到DirectX 9或者DirectX 10的画面效果。

DirectX 11 5大关键特性 Compute Shaders:计算着色器
New Instruction Set:新指令集
HDR Compression:高动态范围纹理压缩
Multi-Threading:多线程
Tessellation:拆嵌式细分曲面技术

但对于我们大多数消费者而言,软硬件方面的缺失,让DirectX 11以及Tessellation还只是一个相当空泛的概念。我们这里就利用Unigine Engine-Heaven所提供的画面,来简单的说明下未来DirectX 11究竟能为玩家带来什么样的画面效果。

首先我们先来看三张对比图片吧。这三张图片分别是DirectX 9/10/11,基本截取自同一场景,仔细观察画面,你看出什么来了么?(图片摘自bbs.chiphell.com论坛,特此鸣谢)

Tessellation效果对比

很明显,DirectX 9和10的区别更多的来自于光线效果方面。而明显DirectX 11在画面效果上要比前两者好上不少。墙壁上明显更为突出的石块和窗户,地面也变得更为崎岖不平,更为夸张地变化来自于房顶。原本在DirectX 9/10中是一张贴图的屋顶,居然在DirectX 11中变成了一片片起伏的瓦片。如果大图里面看得不清楚的话,那我们将其单独的提出来进行对比。

上面的三张图片想必已经非常清楚的显示了DirectX 11中Tessellation技术所带来的革命性的画面提升。从平面的贴图到鳞次栉比的瓦片,让人很难相信这是来自同一个模型。其实这三张图片在模型方面绝对是同出一处,只是在DirectX 11下,Tessellation技术自动丰富了模型内的多变形数量。我想下面的两张图片能够更为直观的为大家说明这一点。

没有采用Tessellation技术时的多边形线框图

采用Tessellation技术后,多边形数量明显大幅提升

Tessellation技术浅析

出去让画面变得更加细致,立体感更为凸显以外,Tessellation技术的应用还让阴影效果变得更为真实。我们先来看下面三张图片的对比:

很明显,DirectX 11中的Tessellation让地面和墙壁的凹凸感更为明显,远胜于DirectX 10里所采用的视差映射贴图技术。虽然后者在较远距离观看的时候也能提供一定的视觉欺骗性,但和 Tessellation技术塑造出来的真实感觉还相差太远。不过这些效果其实我们在上一页已经见识过了,这三张图片里还有更多的内容么?

注意观察上面对比图中椅子的阴影部分。由于Tessellation塑造出来的地面是由真实的多边形来构成的定点和曲面,所以阴影投射在上面的时候会发生更为真实的反映。而DirectX 9/10中所采用的视差映射贴图,即使在某些环境下能够模仿出凸凹不平的效果,但毕竟还只是平面贴图,因此阴影投射在上面是也只能是一个平面的效果,不会在石块的缝隙间产生真实的阴影。此为Tessellation技术的又一大功劳。

那么Tessellation技术究竟是什么呢?如果是一直关注GPU发展的网友,可能对Tessellation还多少有些印象。其实这是ATI早在其第一代DirectX 10图形核心R600,即HD2900XT上就引入的一个特殊的计算模块。从HD2000系列开始,直到最新的HD5000系列,整整4代显卡全部支持这一技术。即使目前也仍然没有游戏能够支持这一技术,ATI也依然没有放弃在这项技术上的努力——从名字上也可以看出ATI在这项技术上的心血:Tessell-ATI-on。

Tessellation主要是靠GPU内部的一个模块Programmable Tessellator(可编程拆嵌器)来实现的。能够根据3D模型中已经有的顶点,根据不同的需求,按照不同的规则,进行插值,将一个多边形拆分成为多个多边形。而这个过程都是可以由编程来控制的,这样就很好的解决了效率和效果的矛盾。TessellATIon能自动创造出数百倍与原始模型的顶点,这些不是虚拟的顶点,而是实实在在的顶点,效果是等同于建模的时候直接设计出来的。

只需绘制简单模型,复杂模型可以经由Tessellation自动生成

除了大幅提升模型细节和画质外,Tessellation最吸引程序员的地方就是:他们无需手动设计上百万个三角形的复杂模型,只需简单勾绘一个轮廓,剩下的就可以交给Tessellation技术自动拆嵌,大大提高了开发效率;而且简单的模型在GPU处理时也能大幅节约显存开销,令渲染速度大幅提升。

这里要说明的是,Tessellation模块属于专有实现方案(Proprietary Implementation),因此虽然HD2000/3000/4000都具备了Tessellation模块,但都无法直接兼容DirectX 11。当然,DirectX 11也不仅仅只有一个Tessellation技术,实际上AMD-ATI刚刚发布的两个HD5000系列的技术演示Demo “Mecha”和“Ladybug”就分别针对了Order-Independent Transparency(透明顺序排序)技术和“景深”。而Unigine Engine-Heaven本身也包含了诸如全局光照和景深等特效。只是这些效果在DirectX 10上也能够实现,只是效果和效率相比DirectX 11相差不少,我们这里也就不再多做介绍了。

DirectX 11中还包含大量复杂的特效

目前桌面平台已经有ATI的HD5000系列显卡率先对DirectX 11进行了完整的支持,未来相信Nvidia的G300也将迎头赶上。笔记本平台方面,目前ATI的Mobility Radeon HD5000系列移动版图形芯片已经开始出货,NV虽然还没有消息(G300令人恐怖得规模和功耗让人很难想象其能够很快的应用在笔记本平台之上),但有Microsoft坐镇,相信也是迟早的事情。因此软硬件的普及必将极大地加速DirectX 11的普及速度,未来能够支持DirectX 11的游戏也将也来越多。我们也将在今后一段时间,逐步地为大家介绍和普及更多DirectX 11的相关知识。

附:

Unigine Engine-Heaven下载地址:127MB

http://mail.pdaxrom.org/unigine.com/Unigine_Heaven-1.0.msi

AMD Mecha Demo下载地址:199 MB

http://developer.amd.com/downloads/AMD-Demo-Mecha-v1.0.msi

AMD Ladybug Demo下载地址:192 MB

http://developer.amd.com/downloads/AMD-Demo-Ladybug-v1.0.msi

返回原文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑