预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

从曲面细分看GPU图形和游戏的发展 你无法用好莱坞大片中的场景去对比电脑游戏的画面,因为它们的差距确实太大。即使它们都叫做《阿凡达》,但极为明显的画面差异还是可以让你一眼就看出来谁是电脑游戏,谁是电影。电影大量应用了光线追踪等更为逼近真实的计算算法,并对每一个模型和对象做出了极尽细腻的计算。反观电脑,只是在有限的成本下取得性能和画质的平衡而已。 说到底,还是成本的问题。没错,谁也不可能要求制作成本在一万元左右的计算机画质能和几亿美元制作成本的大片相媲美。不过我们依旧需要思考,究竟是什么原因让它们的差别看起来如此之大?在“影院级渲染”呐喊了多少年之后,游戏画质还有哪些差距尚需弥补?换句话来说,电脑游戏和电影的画质差距,除了光线效果、材质细腻程度以及一些物理场景和抗锯齿、甚至还有光线追踪等算法方面大相径庭之外,在基础部分还有什么差异?3D游戏和图形处理的发展,下一步的方向是什么? 计算机的三步走—从数据到3D游戏 下面,我们先来看看游戏中的3D图像是如何生成的,然后来一步步看看目前游戏和图形的发展究竟遇到了什么瓶颈,未来应该朝什么方向去发展。对计算机而言,它必须根据程序员的需求,真正“想象(或计算)”出真实的、带有x、y、z三坐标的空间场景,才能进一步处理并根据用户的视角和需求,将图形展示在显示器上。 为了清晰了解计算机在3D处理中的方法,我们不妨仔细观察一下雕塑家的工作。一般说来,很多雕塑家会在雕塑开始之前,用支架建立起一个简单的结构,尽可能模拟最终目标的形态,然后在这些支架上用各种各样的材料填充、并制作出栩栩如生的表面。在展示整个雕塑灵魂或者特别需要关注的地方,雕塑家还会用特殊的材质和手法进行雕刻,以达到最终的目的。 “框线世界”构成了所有场景的基础,没有这些框线,我们将无法看到3D立体的几何图形。图为3DMax生成的3D模型示意图。 在计算机的处理过程中,我们将第一部分,也就是雕塑家搭建的支架,叫做建模。这部分内容由CPU和GPU共同完成(CPU为主、GPU为辅)。在这个步骤,计算机会将整个3D模型完全建立起来,并根据计算能力和计算需求,使用一定数量的三角形和框线来搭建一个“框线世界”。并将这些框线内容传递给GPU的顶点处理单元。 第二步,顶点处理单元收到了由CPU传来的数据后,会根据最终显示的图形需求,将图形由3D的模型转换成屏幕可以直接显示的2D图形。顶点处理单元输入原始3D模型的每一个顶点,再根据实际情况处理并输出2D画面的顶点。在这个过程中,那些被遮挡起来的、在屏幕上无法显示的场景,往往会根据Z轴也就是画面深度的数据,予以剔除或保留(如果是透明图形的话)。这个步骤被称作“平面化”。 第三步,计算机会利用各种手段,尽可能地让这个模型在场景中看起来足够真实。比如为物体加上阴影,对表面进行贴图处理,给予各种各样的光照效果等等。此阶段需要大量的像素和纹理操作,基本上全部交由GPU的像素处理引擎和纹理处理单元完成。我们称此步骤为“像素化”。 处理好的图像再经过一些后端处理(RenderBack-Ends,游戏中常见的景深、动态模糊、色调映射、边缘侦测、平滑和锐化处理都是由后端处理来完成),就能转化为我们在屏幕上看到的内容。需要说明的是,我们在本文对图形处理的描述非常简单,但实际情况远比上文描述的内容更为复杂。但总的来说,上述三个步骤:建模、平面化和像素化,覆盖了计算机处理图形的大部分重要内容。 为什么看起来很假?—模型决定结果 下面我们来看看电影制作人是如何处理图像的,和传统游戏有何不同?当然,我们这里的考察仅仅针对图像处理而言,不考虑物理处理、碰撞等问题。 在电影中,建模是整个图形的根本。没有好的、逼近真实的模型,就不会有接下来足够拟真的场景出现。就像雕塑家一样,如果不能在一开始就确定雕塑的大致姿势,最终结果肯定不够令人满意。因此电影制作人员在强悍性能的支撑下,可以对电影中的各种目标、物体使用尽可能精细的模型。比如树木、草叶这种平凡无奇的“配角”动用几万甚至几十万个三角形的情况都非常常见。而对那些关乎电影主题的主角人物而言,采用几十万个三角形的精细建模很常见。一些表现力夸张的场景甚至需要十亿级别的三角形才能做到精细、逼真的建模。 《阿凡达》电影带来的震撼还未远去,高达几十亿三角形的模型带来的场景依旧让人难忘。 采用更多三角形处理的好处很明显,但首先你要记住一点:电脑不会画曲线。你在屏幕中看到的所有曲线,如果将其放大,都最终会成为一节一节以整数坐标为端点的线段。在这种情况下,电脑只能依靠足够小的显示单位(比如一个像素)和更多的图形(比如三角形)数量来逼近最终结果。 我们假设现在要画一段曲线,如果你对精度要求不高,电脑会先在曲线上以一定的规律取出多个顶点,然后把它们用直线连接起来—取出的点越多,最终绘制成的曲线就越平滑;如果目标