计算机动画与游戏技术调研.docx_第1页
计算机动画与游戏技术调研.docx_第2页
计算机动画与游戏技术调研.docx_第3页
计算机动画与游戏技术调研.docx_第4页
计算机动画与游戏技术调研.docx_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机动画与游戏技术调研1214042904 张哲峰1 三维游戏技术调研1.1视频游戏的历史1952年剑桥大学的A.S. Douglas为益智游戏Tic-Tac-Toe在EDSAC(延迟存储电子自动计算机)上编写了一个图形游戏版本Noughts and Crosses。这是视频游戏的雏形,游戏画面用阴极射线管显示。这个游戏只能实现图形的显示,还不能完全称为视频游戏。图 1 A.S. Douglas的Noughts and Crosses第一个具有里程碑意义的视频游戏为1958年William Higinbotham在Brookhaven国家实验室的一台示波器上实现的双人网球游戏Tennis for Two。图 2 Tennis for Two有趣的是,芬兰程序员Pekka Vnnen使用通过修改的Darkplaces 引擎来渲染游戏,成功的将雷神之锤移植到示波器上2,并可以流畅运行。早期的游戏背景是不变的,玩家在一个固定的背景中进行游戏。雅达利1978年发售的体育游戏Football引入了一种新的画面显示方式,背景会随着玩家角色的移动而改变,这种显示技术被称作卷轴。卷轴很快成为了主流技术,80年代许多成功的游戏如日本任天堂公司的Mario系列都采用的这种技术。图 3 football1975年矢量绘图也由Larry Rosenthal引入到了游戏设计领域。借助这种技术,游戏设计者可以精确地绘制图形,并且三维线框模型也成为可能。第一款3D游戏是1973年在加里福利亚的美国宇航局Ames研究中心的一台Imlac PDS-1上诞生的,它的创造者是Steve Colley。这款叫Maze War的游戏在接下来的几十年里有着数以千计的模仿者。图 4 Maze war早期3D游戏使用的是Flat-Shaded图形学和简单的材质贴图。直到1996年,Voodoo公司推出第一块面向个人电脑的3D图形加速卡,它的出现使更精细的3D图形出现在视频游戏中成为可能。视频游戏的不断发展在一定意义上也推动着计算机图形学的不断进步,如今完美的影像效果已成为视频游戏必不可少的组成部分。1.2游戏常用图形技术1.2.1 纹理映射传统的几何造型技术只能表示景物的宏观形状,而无法有效地描述景物表面的微观细节,但恰恰是这些细微特征极大地影响着景物的视觉效果。纹理映射技术以纹理图像作为输入,通过定义纹理与物体之间的映射关系,将图像映射到简单景物几何形态上合成出具有真实感的表面花纹、图案和细微结构。在纹理映射中,除了在相机距离物体很远时产生走样外(可采用MIPMAP技术解决),当相机非常靠近物体时也会发生问题。一个很直观的办法是使用更精细、尺寸更大的纹理。这既带来了显存的负担,也没有从根本上解决问题,即当视点更靠近物体时,方法仍将失效。凹凸纹理记录了物体表面小尺度的高度场变化,即物体表面相邻点的高度的差分。每个点的差分在绘制时改变了曲面的法向,采用多步纹理映射模式进行光照明计算。凹凸映射通常在每个像素层次上扰动法向向量,并用纹理作为输入,记录扰动值。在图形引擎中,出于对效率的考虑,也可以在顶点基础上扰动法向量。包括浮雕型凹凸映射、环境凹凸纹理映射、法向映射。与凹凸纹理映射不同的是,位移纹理映射既能模拟凹凸的表面细节,还能模拟微观的几何扰动,缺点是图形硬件不支持逐像素的位移映射,因而只能采用自适应网格剖分的折衷方案。与凹凸纹理映射和位移纹理映射不同,环境纹理映射的目标是模拟某个物体的周围环境。球面环境映射是一个非均匀映射,因而会导致图像扭曲变形现象,这在两极尤为严重。此外,球面投影缺乏一种适合于计算机存储的表示方法。尽管立方体环境映射克服了球面环境映射的一些缺陷,但对非计算机生成的图像,实拍获得立方体环境映射是非常困难的。这是因为立方体环境映射是由6幅广角为90的画面构成,它们之间的拼接要求精确的摄像机定位技术。由于平面投影也是非均匀的,在立方体的边界和角点处仍存在采样过多的问题。光照映射则模拟光源对物体表面光亮度的影响,极大地节省了在线的光照明计 算,是三维游戏图形引擎中不可或缺的技术。下表比较了上述几类高级纹理映射技术的异同。阴影遮挡改变几何反射图形硬件实现实用性常规纹理映射无无无无直接支持强凹凸纹理映射可以无无无方便强位移映射无可以可以无困难弱球面环境映射无无无可以可以中等立方体环境映射无无无可以直接支持强光照映射可以可以无可以方便强表格 1 几种高级纹理映射技术的比较图 5 常规纹理映射、凹凸映射、位移映射比较1.2.2 混合式图像和几何绘制传统的图形绘制技术是面向场景几何的,涉及到场景的建模、消隐和光亮度计算,面对对高度复杂的场景,现有的图形硬件仍无法实时绘制简化后的游戏场景。基于图像的建模与绘制技术(Image based modeling and rendering,IBMR)就是为实现这一目标而设计的一系列方法。IBMR基 于一些预置的图像来生成不同视点处的场景画面,有着鲜明的特点: 图形绘制的计算量不取决于场景复杂性,而与所需屏幕分辨率有关。 预先存储的图像既可以是计算机合成的,也可以是实际拍摄的画面,两者可以混合使用,从而可能获取很高的真实感。在三维游戏引擎中,最为实用的IBMR技术当属混合式图像和几何绘制技术,它综合利用简化的场景几何和图像模拟复杂场景物体的外观与形状。与纯粹基于图像的建模与绘制技术(如全景图、同心拼图、光场函数等)相比,混合式图像和几何绘制技术存在两个优点: 利用图像快速模拟出物体的表面细节和外观,从而比纯几何绘制更高效。 利用简化的几何方式模拟不同视点下的物体形状,从而避免纯图像方法的大数据量。1. 光晕光晕是相机在亮光的直接照射下所引起的现象,通常它由一个光环和淡淡的日冕组成。由于各种光的波长不同,当它们照到透镜上时会发生折射,产生光环。日光的光环看起来像一枚戒指,它的外边缘是红色的,内边缘是紫色的。日冕在透镜中分布不均匀,从中心点向四周辐射。此外,由于光线在透镜的内部发生反射和折射,所以会产生二次效应。例如,照相机的隔膜片可以生成六边形的图案。根据光学原理计算多个透镜的光晕效果显然得不偿失。游戏中通常采用一种简单的二维图像技巧,它的基本思路是把光晕分解为两类组成元素,其一是光晕的主要部分,它控制光晕的形状,可大致分为4类,如图6-18所示。 图 6 光晕形状的构成2. Billboard技术利用简单的纹理映射几何绘制手段替代复杂的几何绘制能增加场景真实感和效率。Billboard技术采用一个带有纹理的四边形,其纹理图像为该Billboard所代表的物体的图像,即用带有该物体图像的长方形,代替该物体生成该物体的图形画面。Billboard放置于所代表物体的位置中心,并随相机的运动而变化,始终面对用户。将Billboard技术与alpha纹理和动画技术结合,可以模拟很多自然界现象,如树、烟、火、爆炸、云等。4种最常用的Billboard几何表示方法如下图所示。第13种方法允许视点在与物体高度相同的区域内变化。当视点改变时,Billboard四边形绕对称轴旋转,如果存在多个四边形(第2、3种方法),需要融合它们的绘制结果。第4种方法额外生成了顶部和底部的四边形,允许视点位于物体上方或下方,这在 飞行器模拟类游戏中广泛使用。除这4种表示方 法外,对于对称 性不强的物体,可以使用视点依赖的Billboard技术,分为两步进行:第一步是预处理阶 段,对于每个可能的视线方向计算一个物体的图 像;第二步是绘制阶段,当视线方向给定时,选择最近的两个视点,取出它们对应的纹理并它进行插值和纹理融合。图 7 4种常用的Billboard几何表示1.2.3 过程式建模技术1. 粒子系统粒子系统(particlesystem)是一系列独立个体的集合,这些独立个体就称为粒子,它们以一定的物理规律和生命周期在场景中运动。从物理上看,粒子可以抽象为空间中的一个点,这个点拥有某些属性,并随时间运动。基于粒子系统的建模方法的基本思想是采用许多形状简单的微小粒子(如点、小立方体、小球等)作为基本元素,来表示自然界中不规则的模糊景物,如火、雪、烟,如草和树。游戏场景中的很多现象和物体都可以用粒子系统来模拟,包括烟、火焰、爆炸、血溅等。游戏引擎中,通常都设计一个专门的模块,即粒子系统,以完成对它们的模拟。在著名的星际迷航游戏中,就设计了将近400个粒子系统,总计75万个。由于粒子系统包含大量的运动的小粒子,出于对效率的考虑,必须综合平衡粒子系统的效率、速度和可扩充性。在设计粒子系统时,必须避免粒子系统生成大量的多边形。粒子系统的绘制有不同的方式。例如,在游戏场景中存在多个血迹系统,因此需要绘制的粒子状态有血的喷射、血的溅射、血流和血喷溅到镜头等4种,每种都需要不同的粒子绘制方式。血的喷射模拟的是血在空气中飞散的过程,当血碰到墙壁和地板时,粒子变成血的溅射效果。当游戏的角色躺在地板上气绝时,地板上的血的粒子系统就采用血流的模式。粒子系统所绘制的森林是早期计算机绘制自然景物的代表,它用圆台状粒子组成植物的枝条,用小球状或小立方体粒子组成树叶,只要建立了这些粒子组合或排列的模型,就可以实现对植物形态结构的模拟,粒子在生命周期中的变化就会反映出植物生长、发育到最终消亡的过程。同时在粒子系统中引入随机变量以产生必要的变化,并选取一些决定性的参数来表达植物的大致形态。为了模拟一棵树,通常需要数十个参数控制分枝的角度和枝干的长度。粒子系统的一个主要优点是由于其基本组成元素是点、线等易于变换和绘制的图元。但是,粒子系统的设计是一个反复试验和修改的过程,而且粒子系统的树木造型有比较明显的人工痕迹,可提供的真实感有限。2. L-系统与植被的模拟植被以树枝为基本元素,植被模型的空间结构分为拓扑结构和几何描述两部分,拓扑结构表示树枝之间的层次关系。通过层次关系把树枝组织在一起形成一棵完整的植物,其中每一树枝都可以有多个子树枝,也可以没有子树枝。除根树枝外,每一树枝都有唯一的母树枝。植物的几何结构则定义树枝的空间形状。从宏观上看,植物在其形态结构的组成上有一个共同点,即植物都是由主干、分枝、树叶这些基元组成的。每个基元的形成又遵守着一个同样的方式,即由主干上分出第一层分枝,再由第一层分枝上生出第二层分枝,这样一层层地分下去,直至树叶。对植被的生长模拟可提供母树枝生长子树枝的方法,由参数控制植物子树枝的生长,这些参数包括子树枝与母树枝的夹角、子树枝长度收缩比例、子树枝半径收缩比例、子树枝相对母树枝的空间旋转角以及子树枝的生长模式。对子树枝的生长还需要引入随机控制变量,使子树枝不显得呆板。一个很有趣的分型网站:/dzjc/rengongzn/web-2004630/web/index.htm1.2.4 场景光影特效模拟1. 阴影 平面投影法平面投影法是最简单的阴影生成算法,其主要思想是将遮挡物体沿光源方向投影变形到被遮挡的平面上,在平面上作为二维物体绘制,绘制结果直接产生了遮挡物体的阴影。图 8 平面投影法示意(左);平面投影法效果图 (右)平面投影法存在两个严重的局限性。首先,它无法在非平坦曲面上生成阴影,也不能在凹平面上生成阴影。第二个问题是无法正确地计算阴影的颜色。 阴影图算法阴影图是一个预计算的纹理,它保留了光源的各发射方向上与场景物体的最近 距离。在绘制时,计算当前视点下的可见部分与光源的距离,并与相应方向上阴影图保留的距离进行比较,如果前者大于后者,则说明可见点与光源之间存在一个遮 挡点,因而位于阴影之中。下图显示了阴影图算法的大致思想,其中 遮挡物体A比被遮挡物体B更靠近光源,因此在阴影图上保留的是A到光源的距离。在场景绘制时,比较B到光源的距离与阴影图保留的值,从而判断出B位于A的阴影区域。图 9 阴影图算法示意 阴影体算法阴影体方法的核心思想是将阴影看成阴影体与场景中被遮挡物体的交集。所谓阴影体,是一个虚拟的物体,即连接光源与遮挡物体的顶点向场景延伸所生成的有限或半无穷锥体。图 10 阴影体算法示意图(左)、茶壶生成的阴影体(右)2. 雾雾化效果的基本原理是随着距离的变远,逐渐地体现雾的颜色,直到物体完全被雾所掩盖。雾化效果的画面颜色生成的公式为Cfinal=f(d)Ccurrent+(1-f(d)Cfog,其中d是雾的厚度,f(d)是雾的计算函数,Ccurrent、Cfinal分别是雾化前和雾化后的颜色,fogdensity为雾的浓度。描述雾的衰减快慢的4种模式如下表所示。无f(d)=0指数与距离成指数关系平方指数与距离的平方成指数关系线性衰减雾化效果在指定的起点和终点之间成线性关系。比起点更近的地方没有雾化效果,比终点更远的地方完全被雾化图 11 加雾前后效果对比3. 运动模糊和域深运动模糊模拟了相机在场景中快速运动时朦胧的效果,它可以在一个高速的动画序列中极大地提高真实感。运动模糊的模拟非常简单,采用的方法是多次绘制欲产生运动模糊效果的物体,每次绘制时递增改变它的位置或旋转角度,并在累积缓冲器中加权平均每次的绘制结果。朦胧的程度与绘制的次数和累积方式有关。图 12 运动模糊效果游戏引擎中采用的相机模型是针孔模型,即透视投影模型。由于真实世界的透镜的成像面积有限,因此只能聚焦场景中有限深度范围的物体。在这个范围之外的物体会逐渐变得模糊,这就是域深效果。域深能用来提示玩家与物体的远近关系,因此在第一人称视角游戏中经常会用到。为了模拟域深效果,可以将相机的位置和视角方向进行多次微小的抖动,每次绘制的结果在累积缓冲器中加权平均。两者的抖动保持步调一致,使得相机的聚焦点保持不变。图 13 域深效果1.3 DirectX中的图形技术1 运动模糊为什么每秒24帧的速度对于电影来说已经足以获得很流畅的视觉效果,而对于游戏来说却会显得磕磕碰碰呢?原因很简单,摄像机在工作的时候并非一帧一帧绝对静止的拍摄,它所摄下的每一帧图像已经包含了1/24秒以内的所有视觉信息,包括物体在这1/24秒内的位移。如果在看电影的时候按下暂停键,我们所得到的并不是一幅清晰的静止画面,而是一张模糊的图像。传统的电脑3D图像做不到这一点,游戏里的每一帧就是一幅静止画面,如果你在运动的过程中截一张图片下来,得到的肯定是一幅清晰的静态图。运动模糊技术并不是在两帧之间插入更多的位移信息,而是将当前帧同前一帧混合在一起所获得的一种效果。之前已经有很多DX9游戏采用了运动模糊技术,效果最显著、最夸张的非极品飞车系列莫属,很多玩家表示不太适应这种效果,原因就在于打开特效之后画面模糊的太夸张了,时间一长容易头晕。而在DX10模式下,有了全新的几何着色技术,这样就可以使用流处理器资源来计算运动物体的几何坐标变换,然后配合高精度的顶点纹理拾取技术,达到了完美监控整个运动过程的目的。如此一来进行模糊处理的话,就杜绝了不分青红皂白的现象该模糊的依然模糊,该清晰的照样清晰!图 14 运动模糊2 景深游戏为了模拟真实,更接近镜头/人眼的成像原理,也将景深引入渲染过程之中。由于3D游戏只是将图像投影在了平面的显示器上,不会有深度,因此想要实现景深效果必须在图像输出之前就进行预处理,把游戏主角以外的远景全部虚化。DX9时代,是通过投机取巧的方式来实现景深效果的,它自动判定距离,将远处景物的纹理、阴影、光照等特效全面缩水,然后再辅以模糊处理,而只对近景做正常渲染输出,这样就会让玩家注意到主角而忽视远景。而DX10则没有任何的偷工减料,它通过几何着色器,将深度帖图中的纹理信息按照距离拆分到缓冲,然后分为几个不同的视角进行渲染,最后合成完整的图像。因此最终实现的景深效果在特效方面不会有任何缩水,远景完全符合正常的虚化模式,如果仔细观察的话,光影等细节依然得到保留。图 15 景深3. 环境光遮蔽在GPU和CPU有能力进行实时光线追踪(Ray Tracing,按照真实世界光线投射原理反向渲染的技术)之前,环境光遮蔽是当今光栅化渲染模式中最好、最高效的替代方案。环境光遮蔽通过计算光线在物体上的折射、衍射、散射和吸收,在受影响位置上渲染出适当的阴影,进一步丰富标准光照渲染器的效果。屏幕空间环境光遮蔽(Screen Space Ambient Occlusion,SSAO)是AO的一个变种。SSAO的工作原理是:通过采样象素周围的信息,进行简单的深度值对比来计算物体身上环境光照无法到达的范围,从而可以近似的表现出物体身上在环境光照下产生的轮廓阴影。虽然只是模拟实现,但确实能增强场景的层次感,让画面更细腻,让场景细节更加明显。DX10模式下开启SSAO性能损失非常大,因此SSAO技术多出现在DX10.1游戏中。通过实际测试来看,DX10.1显卡在DX10.1模式下(如果该游戏支持的话)的性能相比DX10会提升20%-30%之多,从而使得SSAO成为真正实用的技术,而不再是花瓶。在DX11中,SSAO被进一步升级至HDAO(高清晰),因为DX11中的Gather4函数更加强大,它可针对特定的颜色分别采样,自动识别能做阴影映射的值,从而实现更快更好的阴影过滤。图 16 环境光遮蔽4 镶嵌细分曲面3D游戏考虑到家用电脑的机能,模型不可能设计得太复杂,否则就不具备可玩性。但为了让游戏变得更加逼真、达到更高画质,太简单的模型的确拿不出手,那么有什么方法既能大幅提升模型复杂度、又不至于给显卡造成太大负担呢?Tessellation技术就是为此而生的。简单来说,Tessellation是一种能够在图形芯片内部自动创造顶点,使模型细化,从而获得更好画面效果的技术。Tessellation能自动创造出数百倍与原始模型的顶点,这些不是虚拟的顶点,而是实实在在的顶点,效果是等同于建模的时候直接设计出来的。图 17 镶嵌细分曲面除了大幅提升模型细节和画质外,Tessellation最吸引程序员的地方就是:他们无需手动设计上百万个三角形的复杂模型,只需简单勾绘一个轮廓,剩下的就可以交给Tessellation技术自动镶嵌,大大提高开发效率;而且简单的模型在GPU处理时也能大幅节约显存开销,同时大幅提升渲染速度。X11代表作DiRT2就大量使用了Tessellation技术,它用Tessellation构建了动态水面、动态布料旗帜和观众人物模型,其中加强人物模型不难理解,而动态水面和布料效果足以媲美物理加速,让人惊讶不已!图 18 布料效果5. 视差贴图纹理贴图就是往建好的3D模型上“贴”一些二维的画面,让人物显得更真实一些,比如常见的砖墙、凹凸不平的地面等,这些如果全部用三角形来实现的话,那么模型就会非常复杂,GPU将会不堪重负,但如果用“一张已经画好砖纹的纸”贴上去的话,那么渲染起来就会轻松好多。但是这么做也有很大的缺点,贴图毕竟是2D的,如果在游戏中换个角度看的话,很容易就会发现墙面没有任何立体感!为了让2D贴图看上去也有3D立体效果,就诞生了多种贴图技术,比如凹凸贴图、法线贴图、位移贴图、视察映射贴图等。为了解决法线贴图在处理较深内凹之时不能够达到的弊端,诞生了新的视差映射贴图技术。该技术其实称之为视差遮蔽贴图似乎更容易理解一些,因为它会对纹理的坐标做变换,一些凸出的纹理会遮蔽到其他的纹理,这样就会看起来具备更好的凹凸的感觉了。图 19视差映射贴图正如我们在上图看到的情况一样,地面上石块的凹凸感觉非常好,前面的石块已经对后面的石块进行了局部的遮蔽。虽然这个Demo中的砖块依然很假,但砖块之间凹凸的效果已经得到了完美体现,非常遗憾的是,没有任何一款DX9游戏使用过这种视差贴图技术。直到DX10时代才大量使用视差映射贴图技术。2.电影CG技术调研2.1 “换头术”我们先从创:战纪来讲。视效公司给杰夫布里吉斯做面部扫描,生成面部的CG模型,在他的脸上贴了一百多个数据捕捉点用来捕捉表情细节。图 20 面部CG模型还有一个数据捕捉头盔,头盔里有从各个方向能从拍摄到人和角度的摄像机用于捕捉他的脸部运动信息。图 21 数据捕捉头盔先是在3D软件里建成角色的模型,再把从动作捕捉仪捕捉到的演员的动作数据导入三维软件,进行绑定。最后在细节处进行调整,人物就完美的被采集到模型里了。这里使用的数据捕捉头盔主要是为了后面绑定模型合成时,跟踪面部,帮助替身表演做头部定位。当采集好数据后,由替身演员表演布里吉斯的戏分,演员带着便于跟踪抠像的头套,再用模型替换替身演员的头部。由于人的面部肌肉和身体肌肉比较复杂,每个人的运动方式包括呼吸节奏都不一样,所以,在替换完成后,还得在细节处手动调整。不然画面可能就会有抖动不贴合或者头和身体运动不协调。图 22替身演员图 23 生成画面最后还得模拟现场的灯光,影片里的人物一直在运动,光也随时在变化,所以还得需要正确的光线数据给模型,才能完美的替换。图 24 灯光模拟2.2 复仇者联盟幕后制作复仇者联盟中的大部分纽约镜头都是数码制作的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论