计算机图形学在游戏领域上的应用.docx
《计算机图形学在游戏领域上的应用.docx》由会员分享,可在线阅读,更多相关《计算机图形学在游戏领域上的应用.docx(6页珍藏版)》请在冰豆网上搜索。
计算机图形学在游戏领域上的应用
计算机图形学在游戏领域上的应用
————————————————————————————————作者:
————————————————————————————————日期:
计算机图形学课程设计
综述
姓名:
刘景新
学号:
1
专业:
信息软件10-1
计算机图形学在游戏领域上的应用2
一.计算机图形学的定义 2
二.视频游戏的历史3
三.图形学在游戏中的应用4
1.几何学4
2动画5
3.绘制6
四.总结8
计算机图形学在游戏领域上的应用
计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。
它的研究分为两部分:
一部分研究几何作图,包括平面线条作图和三维立体建模等;另一部分研究图形表面渲染(Rendering)包括表面色调、光照、阴影和纹理等表面属性的研究。
目前,计算机图形学的应用已深入到真实感图形、科学计算可视化、虚拟环境、多媒体技术、计算机动画、计算机辅助工程制图等领域。
综观计算机图形学的发展,我们发现图形学的发展迅速,而且仍在快速的向前发展。
并且已经成为一门独立的学科,有着广泛的发展前景。
一.计算机图形学的定义
计算机图形学:
(Computer Graphics。
简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。
计算机图形学的主要研究内容就是研究如何在汁算机t{I表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。
图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。
从处理技术上来看,图形主要分为两类,一类是基于线条信息表示的。
如工程图、等高线地图、曲面的线框图等,另一类是明暗图,也就是通常所说的真实感图形。
计算机图形学一个主要目的就是要利用计算机产生令人赏心悦目的真实感图形。
为此,必须建立图形所描述场景的几何表示,再用某种光照模型,计算在假想的光源、纹理、材质属性下的光照明效果。
同时,真实感图形计算的结果是以数字图像的方式提供的,计算机图形学也就和图像处理有着密切的关系。
计算机图形学的研究内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法、非真实感绘制,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。
二.视频游戏的历史
视频游戏一直以来都是计算机图形学的一个重要应用方向,在介绍图形技术的具体应用前先简短介绍一下视频游戏的发展历史。
1952年剑桥大学的A.S.Douglas为益智游戏Tic-Tac-Toe在EDSAC(延迟存储电子自动计算机)上编写了一个图形游戏版本NoughtsandCrosses。
这是视频游戏的雏形,游戏画面用阴极射线管显示。
这个游戏只能实现图形的显示,还不能完全称为视频游戏。
第一个具有里程碑意义的视频游戏为1958年WilliamHiginbotham在Brookhaven国家实验室的一台示波器上实现的双人网球游戏——TennisforTwo。
时间到了1962年,第一个面向电脑的视频游戏Spacewar由SteveRussell在MITPDP-1上发明。
早期的视频游戏都不过是研究人员在实验室里自娱自乐的产物。
直到1971年NolanBushnell和TedDabney制作了第一台投币式的游戏机,大众才开始接触这个新奇的玩意。
随着Pong、Breakout和SpaceInvader等游戏的成功,越来越多的人开始关注计算机的娱乐应用。
个人电脑和游戏机的普及对此也起了一定的推动作用。
早期的游戏背景是不变的,玩家在一个固定的背景中进行游戏。
雅达利1978年发售的体育游戏Football引入了一种新的画面显示方式,背景会随着玩家角色的移动而改变,这种显示技术被称作卷轴。
卷轴很快成为了主流技术,80年代许多成功的游戏如日本任天堂公司的Mario系列都采用的这种技术。
1975年矢量绘图也由LarryRosenthal引入到了游戏设计领域。
借助这种技术,游戏设计者可以精确地绘制图形,并且三维线框模型也成为可能。
3D游戏发端的历史要早些,第一款3D游戏是1973年在加里福利亚的美国宇航局Ames研究中心的一台ImlacPDS-1上诞生的,它的创造者是SteveColley。
这款叫MazeWar的游戏在接下来的几十年里有着数以千计的模仿者。
早期3D游戏使用的是Flat-Shaded图形学和简单的材质贴图。
直到1996年,Voodoo公司推出第一块面向个人电脑的3D图形加速卡,它的出现使更精细的3D图形出现在视频游戏中成为可能。
视频游戏的不断发展在一定意义上也推动着计算机图形学的不断进步,现如今,完美的影像效果已成为视频游戏必不可少的组成部分。
三.图形学在游戏中的应用
尽管有使用纯文本界面的游戏,可那毕竟是早期电脑机能有限下的产物,现如今所有的游戏或多或少地都会有图形界面。
本文这一部分将在一下三个方面对图形学的具体应用作介绍。
1.几何学:
表示和处理曲面的方法。
2.动画:
表示和操作运动的方法。
3.绘制:
生成光影变换的算法。
1.几何学
几何学研究的重点是物体在三维空间内用一组离散数据集表示的方法。
视频游戏着成百上千的物体,他们之间的互动是靠着外边缘的碰撞进行的。
鉴于此,边界表示法(boundaryrepresentation)是常见的一种表示方法。
边界里有三个主要部件:
面(face),边(edge),顶点(vertice)。
面是表面的一部分,边是曲线的一部分,顶点代表一个点。
边界表示法不仅可以对于实体进行很好的表示也可以表示非复合造型(nonmanifold)。
非复合造型是一条边由多于两个面共享的图形。
可是边界表示法有一个缺点就是不灵活,每一个物体都要重新制作模型,模型数量多了以后是个相当繁重的工作。
一种新的表示方法应运而生——CSG(Constructivesolidgeometry)。
CSG使用一些被称作原始部件(primitives)的基本图形,对他们进行基本的布尔运算如交集,并集等生成复杂的图形。
众多的游戏引擎如UnrealEngine,Hammer,Torque,Quake等都使用了这项技术。
由面组成的图形并不能很好地表现光滑的曲面。
人们发现用一个个的三角形或者四边形可以近似地表现曲面,于是多边形网状表示法(polygonmesh)诞生了。
为了取得更好的光滑表面,同时也为了节约人力。
细分表面法(subdivisionsurface)被广泛使用,这种递归的算法可以有比较粗的网状面计算出较细的网状面。
近年来,一种把物体表示为一组点集的point-based[1]方法开始流行起来。
这种建模方式的好处显而易见,在视频游戏的动态计算、碰撞检测、可见性处理这些需要精确性的领域都可以得到很好的效果。
当然对于标准矩形的物体还是用以前的方法好。
对于树木,云这些形态不固定的物体用point-based方法乃上上之选。
云雾和树叶在虚拟的风中可以进行更加自然的形态变换。
2动画
动画的原理是骗过人的眼睛和大脑,使观看着认为自己看到的是连续的画面。
传统的方法是以至少每秒12帧的速度放映差别不大的图片,这种方法比较复杂,若想表现精细的画面十分地困难。
3D模型的发明给了动画更大的发展空间。
动作捕捉(motioncapture)技术应运而生。
技术最早是二十世纪七十年代和八十年代生物力学实验室里用来分析照片的,近年来已广泛应用在视频游戏中。
动作捕捉通过记录运动物体的位置、角度、速度、加速度和冲量得到精确的数字移动。
然后把得到的数据应用于模型骨胳(skeleton),得到精确的移动。
动作捕捉技术主要分为光学和非光学两大类。
系统通过运动对象上所设置的标记点(marker)的三角度位移来计算出对象的运动范围。
无源标记点(passivemarker)点通过其表层的反射物质反射回摄像头光来捕捉,摄像头只对反射光敏感,会忽略人的皮肤和织物。
有源标记点(activemarker)并不反射光,由于其自身的LED可以发光,通过捕捉其发射的光进行记录。
还有一种半自动细微标记点(semi-passiveimperceptiblemarker),主要用于自然光源下高速物体的捕捉。
非光学系统主要有三种:
通过生物机械模型和传感器结合算法进行测量的惯性系统(inertialsystem);通过直接跟踪身体接合处角度变化的机械系统(mechanicalmotion);通过磁通量计算方位的磁力系统(magneticsystem)。
主流的捕捉方法还是光学形式,现今流行的游戏中都可以找到动作捕捉技术的身影。
物理仿真(phisicalsimulation)是动画领域近年来研究的重点,由于其属于物理方面,本文就不做介绍了。
3.绘制
频游戏之中最重要的部分也是最复杂的部分,相关技术层出不穷。
简单地说,绘制是把模型生成图像的过程,生成的图像带有几何学、视点(viewpoint)、材质(texture)、光照(lighting)、阴影(shading)的信息。
在视频游戏中有两种绘制方法:
事先绘制(pre-rendering)和实时(realtime)。
事先绘制的图像一般用于游戏场景等不会改变的模型上,实时方法用的较为普遍,大多数游戏都采用这种方法。
下面依次对绘制各个方面相关的技术做下介绍。
1.阴影;不同,多了一个维度让观察者有了立体的感觉。
现实世界中物体与光源的角度,距离的不同会有不同的明暗变化,阴影技术就是为了体现这种变化而产生的。
早期阴影技术采用的是平面方法(flatshading),这种方法对每个多边形进行渐变处理,可以很快速地得到图像。
可随着硬件的发展,平面法的速度优势已荡然无存,更好的图像效果才是追求的目标。
以发明者HenniGouraud命名的Gouraudshading[2]方法和BuiTuongPhong命名的Phongshading[3]方法成为主流的方法。
2.材质贴图;予模型更加精细的表面,就像是给一个白色的盒子包上五颜六色的包装纸一样。
层材质并不能很好地完成任务。
这时便需要多层材质(multitexture),多层材质最广泛的应用是凸凹贴图(bumpmapping[4]),通过这种方法。
可以很容易地得到粗糙表面的视觉效果,Playstation、Xbox和大多数PC显卡都支持这项技术。
计算几层材质叠加后最后屏幕显示的像素的算法有很多,如最接近原则插值(NearestNeighborInterpolation),双线性插值(BilinearInterpolation),三次插值(TrilinearInterpolation)。
其中最接近原则插值最快,但后两个算法使用最为普遍。
由于硬件把多边形分成一个个三角形进行绘制,所以确保不同视角下贴图的正确性十分必要。
视频游戏运用不同的方法来避免错误。
如Doom使用限制游戏世界的物体都为水平或者垂直,避免斜面的方法;Quake牺牲性能用一种折中的方法每过一定像素计算一次透视的正确性。
3.雾;拟出来的雾可以很好的表示物体距离观察者的远近程度。
由于光的散射,距离远的物体会变得朦胧。
这种吸引人的效果在游戏中应用地十分广泛。
4.影子:
在视频游戏的世界中如何生成更好的影子一直是研究的一个热点。
最流行的做法主要有两种:
影子贴图(shadowmapping)和阴影锥(shadowvolume)。
影子贴图的原理是以光源的视角出发,用可视表面的深度创建shadowmap,渲染画面时把每个点都与shadowmap进行比较,绘制出带有影子的图像。
这种方法的缺点是在实时绘制的时候不如阴影锥[5]精确。
提到阴影锥就不得不提到idSoftware的游戏Doom3,该游戏采用了这种方法并取得了不小的成功而使之广为流行起来的,由于游戏设计者JohnCarmack的影响力,这种方法又被称为Carmack’sReverse。
阴影锥的原理是通过光源和遮挡物的位置关系计算出会产生阴影的区域,然后对所有物体进行检测,确定其受否受到了阴影的影响。
这种实现方法虽然较好也有其不足之处,对处理器的依赖较为严重。
6.球星照明:
个锥形的标准光源,大多数都是把光发射到四面八方的。
球形照明便是一组实现这种真实光源算法的集合。
常用的算法有:
radiosity,raytracing,beamtracing,conetracing,pathtracing,metropolislighttransport,ambientocclusion,photonmapping和imagebasedlighting。
7.非现实绘制:
n-photorealisticrendering,简称NPR)是为了拓展图像表现的多样性,采用各种各样的技术使图像显示出与现实生活不相同的特性。
最常见的一种NPR技术是被称作卡通渲染的cel-shading或toonshading的技术。
这种技术通常用来模仿漫画或者卡通中的平面风格,它通过在绘制中只选择物体色彩的少数深浅变化来使模型表现出平面化的视觉效果。
第一个使用这种技术的3D游戏是JetSetRadio(2000),之后游戏业界渐渐开始关注这种新技术对游戏表现形式的扩充,越来越多的作品采用了toonshading技术。
8.光栅化:
现实而且相当消耗时间,在绘制的过程中可以事先确定哪些像素被修改过的,只绘制被改变的像素,这种方法被称作光栅化。
这种技术在3D实时绘制中相当流行,因为实时3D至少需要达到20帧每秒的绘制速度才会让人画面流畅。
9.Raycasting于实时模拟。
这个方法最早是由ScottRoth在1982年一篇关于CSG模型渲染的论文中使用的。
这种方法把模型通过模型外的一个观察点一个一个像素地进行处理,就像沿着从观察点射出的光线进行处理的一样。
早期游戏如Wolfenstein3D和Comanche系列都使用过RayCasting技术。
10.Rayricing:
Casting的扩展,对处理复杂的物体具有很好的效果。
它通过假象一个观察点,追踪虚拟屏幕上每一个像素物体映射过来的颜色得到模型最后显示的结果,
由于RayTracing技术效率不是很高,商用游戏基本上没有采用它,但DanielPohl和他的学生们对一些游戏加入了RayTracing技术进行研究,相信不久的将来,RayTracing技术会在游戏领域得到广泛应用。
四.总结
从最早实验室里研究人员的消遣娱乐到产值上亿推动图形技术发展的重要支柱,视频游戏已变得越来越重要,和人们的生活已变得密不可分。
今后图形学发展的重点应该是在现有计算机功能的限制下绘制出更加逼真的画面,使人类的社会生活虚拟化变为一个不再遥远的梦想。