DX11在次世代环境下的游戏建模
近日,CGDC 2010 图像专家演讲人倪天云接受国内著名设计类杂志《数码设计/CGW》采访,并针对DX 11在次世代环境下游戏建模进行讨论。
倪天云
介绍:倪天芸博士现任NVIDIA资深图形技术研发专家,负责向北美地区的游戏及应用软件开发商提供图形技术方面的咨询、培训和支持,包括参与销量逾千万的顶尖游戏作品制作。在加盟NVIDIA公司之前,她在美国的弗罗里达大学获得博士学位并在有影响力的国际刊物上发表了多篇有关高维曲面实时渲染以及图形计算等方向的论文。她还经常在各种国际会议上(SIGGRAPH、GDC等)做演讲和技术讲解。她也是SIGGRAPH评审团成员,参与SIGGRAPH的审稿,主持报告等工作。她目前的兴趣主要在于开发研究新的图形算法,并帮助运用这些新的技术到实际的游戏开发上。她的近期工作包括研究Direct3D 11的实时渲染技巧与技术,尤其是在硬件细分曲面方向。
CGW:模型的细化一方面也增加了贴图绘制的工作量,而数字娱乐产业的效率要求很高,游戏制作也是如此,你觉得建模人员应该如何和贴图组一起把握精度和效率?
答:贴图绘制最好是建立在精度尽可能低的模型上,这样可以充分使用DX11 Tessellation 的优势,在GPU上根据实际游戏场景需要进行自适应细分(Adaptive Tessellation)。
对于以四边形为主的建模,建模人员应尽量减少创建如下内容:
(1) extraordinary quads (四边形的四个顶点中,至少有一个顶点与大于或小于4条边相连的情况);
(2)三角形的数量;
(3)连接类型 (patch connection type)。
如此可以简化在DX11 GPU上实施曲面细分的复杂度,从而提高运行速度。
简化网格
创建贴图时, 应尽量减少材质连接线(Texture Seams)。Texture seam 会在贴图时产生伪像(artifacts)。消除伪像需要一些额外的处理,这会降低运行速度。
减少材质连接线(Texture Seams)图中红线部分
CGW:多边形的数量是实现游戏画面精度的关键,而就你的体验来说,你觉得当建模清晰到什么程度的时候就足以让玩家感觉到真实了?在我看来,游戏的画面逼真程度还会发展,但是肯定是有极限的。
答:一般来说,多变形的数量越大,就可以体现出来越多的细节。当一个多边形小到用一个像素渲染时,游戏玩家可以体验到极限的真实感。然而对于硬件来说,这样小的多边形光栅化(rasterization)效率不高。为了提高效率,一个多边形需要产生8个以上的像素。
CGW:高精度的模型同时也会导致UV的展开变得复杂化,同时也出现了更多的贴图之间的间隙、褶皱和边角。可否谈谈您是怎样处理这些因为贴图出现的新问题的?
答:使用DX11 Tessellation,可以让低精度的模型在GPU上产生高精度模型。一个低模的Primitive(线段、 三角形或四边形)会被拆分成多个更细小的Primitives。UV的展开应是在低精度模型之上,而TESSELLATOR所产生的新的Primitive的UV 是一般通过线性内插(linear interpolation) 产生的。
DX11 Tessellation 通常用到两种贴图:置换贴图 (Displacement Map)和法线贴图(Normal Map)。 多个置换贴图之间的间隙、褶皱和边角会产生网格上的洞;多个Normal Map之间的间隙、褶皱和边角会产生像素颜色的不连续性——这些问题主要是由于GPU采用大量浮点数的并行计算:由于浮点数精度的限制,加法的交换律在浮点数表达中会失效。而相邻的两个Patch在共享的边上的点,必须要产生相同的顶点位置、法线和UV。一个简单而有效的解决方法是:定义共享顶点和边的属性,确保在共享的点和边的计算时采用完全相同的计算顺序,从而实现精确的渲染效果。
CGW:模型的精度也会导致即时渲染难度的增加,您是如何考虑游戏的画面质量和运行的效率的平衡的?
答:使用ADPATIVE TESSELLATION 来避免不必要的细分。可以通过以下标准来控制细分:
1. 物体的远近程度:近的物体精度高些,远的物体精度低些
2.轮廓:轮廓边缘的精度高些,非轮廓附近的精度低些
3.置换贴图: 分析置换贴图里的数据的Gradient。Gradient 大的精度高些,反之,精度低些
4.屏幕空间(screen space):控制三角形在屏幕空间的大小大致相等,以期达到最优的光栅化
倪天芸博士还将出席将于7月30日-8月1日在上海国际会议中心举办的第三届中国游戏开发者大会,并将以Direct3D 11细分曲面技术实用教程演讲。
2010年全球瞩目的世博会在上海举办,国际盛会必将吸引来自全球的嘉宾莅临。中国游戏商务大会(CGBC)、中国游戏开发大会(CGDC)和中国游戏外包大会(CGOC)将于世博举办期间的7月28日-8月1日在上海国际会议中心举行,必将吸引全球游戏产业人士的广泛参与使其在沟通中外游戏产业商务和技术活动平台的商务中心作用更加强化和提升。