跳转到路径导航栏
跳转到正文内容

让游戏更逼真流畅 A卡曲面细分驱动解析(2)

http://www.sina.com.cn  2011年03月02日 09:42  中关村在线 官方微博

  “曲面细分”是如何来改变画面精细度

  “曲面细分”的来源

  Tessellation源来已久,它是由ATI在2001年开发的,一直以来都是AMD-ATI的专属技术。最早应用在微软XBOX 360游戏机上,在PC上没有广泛采用。从ATI R600(Radeon HD2000系列)核心以来,曲面细分单元一直集成在AMD-ATI的GPU内部,不过并没有引起广发关注,直到微软将其采纳后开始大力推广,成为 DirectX 11的组成部分之一。目前“曲面细分”这种技术广泛的应用在曲面的几何处理,所以因此得名。

  “曲面细分”的意义

  因为计算机不能直接生成曲线,当然更不能直接生成曲面。我们在计算机屏幕上看到的曲线、曲面实际上是由无数个多边形构成的。当然多边形越多,那 么曲面就会展现的更为真实。在之前,这项工作都是由CPU完成的,但是CPU是通用处理器,几何运算性能有限,不能无限制的增加多边形数量。这也是我们在 一些游戏中看到人的脸“棱角分明”的缘故。“曲面细分”Tessellation技术,便是一种化繁为简的手段,简单的理解,便是在一个简单的多边形模型 中,利用专门的硬件,专门的算法镶嵌入若干多边形,以达到在不耗费CPU资源的情况下,真实的展现曲面的目的。

  “曲面细分”的实现原理

让游戏更逼真流畅 A卡曲面细分驱动解析
曲面细分工作流程三部曲

  曲面细分就是在顶点与顶点之间自动嵌入新的顶点,在自动插入大量新的顶点之后,模型的曲面会被分得非常细腻,看上去更加平滑致密。它是一种能够 在图形芯片内部自动创造顶点,使模型细化,从而获得更好画面效果的技术。 曲面细分能自动创造出数百倍与原始模型的顶点,这些不是虚拟的顶点,而是实实在在的顶点,效果是等同于建模的时候直接设计出来的。

  曲面细分技术是完全可编程的,它提供了多种插值顶点位置的方法来创造各种曲面:

  1. N-Patch曲面,就是和当年TruForm技术一样,根据基础三角形顶点的法线决定曲面;  

    2. 贝塞尔曲面,根据贝塞尔曲线的公式计算顶点的位置;

  3. B-Spline、NURBs、NUBs曲线(这三种曲线均为CAD领域常用曲线,在Maya中均有相应工具可以生成)

  4. 通过递归算法接近Catmull-Clark极限曲面。 “曲面细分”技术最初主要被用以“细分曲面”,随着该技术被纳入DirectX11范畴,得到大范围推广之后,插值顶点的算法也越来越多,因此用途也越来越广,产生了很多非常有创意的应用。

让游戏更逼真流畅 A卡曲面细分驱动解析
nVIDIA的“曲面细分”DEMO展示

  例如nVIDIA的一个DEOM演示了利用“曲面细分”技术生产的“头发”,这些头发都是真实存在的,当然并不是为每一根头发建立一个模型,而是利用“曲面细分”技术在有限的头发模型中,镶嵌入更多的头发模型。

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

上一页 1 2 3 4 5 下一页

分享到:

新浪简介About Sina广告服务联系我们招聘信息网站律师SINA English会员注册产品答疑┊Copyright © 1996-2011 SINA Corporation, All Rights Reserved

新浪公司 版权所有