游戏设计--5游戏制作技术介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章 游戏制作技术介绍
概述: 概述: 游戏制作技术要完成的工作,主要就是建造引擎、编制游戏的应 用程序和制作素材。游戏开发所用的集成工具环境及各种语言,图形图 像处理API,主要都是为了建造游戏引擎。而角色、场景和道具等的建模、 贴图,动画的制作,音效的创作等则是素材制作的范围。 重点: 重点: 了解常用软件功能及程序语言 目的: 目的: 了解游戏制作技术实现的着眼点
建立角色骨骼
创建骨骼
骨骼和人物模型对好位置
在Modify(修改面板)中选择Physique(蒙皮命令),通过相应调整 操作,将模型与骨骼系统连接起来。有了骨骼就能制作骨骼关键帧动 画,只要对骨骼进行操作,完成动作的动画设定操作后,Mesh模型 这张“皮”将跟随骨骼动作,形成蒙皮骨骼动画。
封套: 连接骨骼与模型 骨骼与模型
顶点 (Vertex) 所谓顶点,是指表示二维空间或者三维空间上某一位置(Position)的 点。在游戏编程中多使用顶点来表达。另外,在屏幕图面上实际显示出来 的物理学中的点称为像素。 多边形 (Polygon) 三点可以组成一个面(Face),三个点组成的三角形称为多边形 (Polygon)。另外,几个多边形也可以组成一个面,这里假定面和多边形都 是由三角形组成的。 边 (Edge) 多边形中,连接顶点和顶点的直线称为边(Edge),存储数据的方式 中,存在half-edge模式等方式。在Direct3D一类的实时3D情况下,主要采 用“顶点+索引”的方式。 网格 (Mesh) 多边形在最小的三维空间上可以组成面,用一些多边形可以组成一 个三维物体,称为网格。
Phong着色 如同Gouraud着色,通过纹理工作,但不对每个顶点颜 着色: 着色 色进行插值决定像素颜色值,而是对每个顶点的法向量进行插值,Phong着 色可以得到更加平滑的效果,因为每个像素都需要进行光照计算,其绘制 非常耗费时间。 Phong着色比Gouraud着色计算更昂贵,但效果最好,可以达到镜面 高光效果。而这些都需要在游戏开发中折衷权衡。
4)MIP映射 多纹理映射 ) 映射(多纹理映射 映射 多纹理映射) 游戏引擎用来减少纹理内存和带宽需求的另外一个技术就是MIP映 射。MIP映射技术通过预先处理纹理,产生它的多个拷贝纹理,每个相 继的拷贝是上一个拷贝的一半大小使用MIP映射,可以在显示卡应用纹 理之前,自己缩放图像,当3D显卡用纹理绘制多边形时,它检测到缩放 因子,但只是要使用小一些的纹理,而不是缩小最大的纹理,这样看起 来会更好一些 5)多重纹理与凹凸映射 ) 具有多流水线的3D加速卡,多重纹理可以在一遍渲染过程中完成。 产生多重纹理效果时,先用一个纹理绘制多边形,然后再用另外一个纹 理透明地绘制在多边形上面。这可以使纹理看上去在移动,或脉动,甚 至产生阴影效果
着色(Shading) 着色 所谓着色,是指在多边形中填充阴影和颜色的操作。多边形 是由具有三维坐标值的顶点构成的.它们必须经过着色才能表现 为各种物体。着色技巧的方法多种多样,有代表性的着色方法分 别为: 平面着色(Flat Shading), 高洛德着色或高氏渲染(Gouraud Shading), 补色着色(Phong Shading), 辐射着色(Radiosity), 光线跟踪(Raytracing)等。 其中,在大部分显卡中,支持硬件加速的方法有平面着色和 高洛德着色两种。其他着色方法的运算量较大,支持显卡硬件加 速比较困难,不太常用。 有一些方法可以通过着色编程直接实现。
2
变换(Transform) 变换 最基本的变换包括移动(Transition)、旋转(Rotation)和缩放(scale), 这些变换都是通过矩阵来实现的。仅通过移动和旋转构成的矩阵称为仿 射变换(Affine Transform), 矩阵(matrix) 矩阵 高中数学课程已经有过移动矩阵和旋转矩阵的讲解,矩阵这一工具 非常有用,特别是在三维图形中,数据量越多,矩阵就越有用。
拆分UV 拆分
5.2.3贴图绘制 贴图绘制 一个游戏角 色贴图的好坏可 以说对角色的形 象塑造起了70% 的作用。对于面 数比较低的角色 而言,游戏角色 的大部分细节都 是靠贴图来表现 的。
贴图绘制 把模型拆分UV后,经过细心的调整,就可把这种二维UV图导入到诸如 Photoshop类的绘图软件中,对UV图进行精心的绘制,成为游戏贴图。游戏 贴图的长宽尺寸都必须是2的倍数的组合
动画
5.3 游戏效果实现
5. 3. 1 声音系统 1)OpenAL ) OpenAL是一个声音系统的API, 是由创新公司创立的开放音频库 OpenAL(Open Audio Library),OpenAL是对音频硬件的一个软件接口 2)声音术语 ) 闭塞-—意味着一个声音在播放时听者在他们之间有一些闭合的障碍物 闭塞 障碍—是听者和声音之间的障碍物并不是闭合的 障碍 3)声音的位置 ) 4)游戏中的音轨 ) 5. 3. 2 视觉效果的实现 1)光照与着色 ) 游戏运行中,引擎要进行一系列变换运算,通常在观察空间的坐标空 间中,最重要的运算之一就是光照计算。 顶点光照:要决定一个顶点被多少个多边形共享,并计算出共享该顶 顶点光照 点的所有多边形法向量的均值(称为法向量),并将该法向量赋予顶点 。用 硬件转换与光照(T&L)来帮助快速完成,不足之处是它不能产生阴影 。 &
三角形图元渲染方式 一个图元是系统将处理的效果的最低级别的物理表现。更进一 步解释,一个三角形就是一个图元。物体模型是由许多三角形组成的, 它们具有空间拓扑结构。而任何数据在计算机中都是以线性模式来存储 的,在Direct3D数据流中三角形的存储组织方式有以下几种。
4 2 1)Triangle Lists 1 2 2)Triangle Strips 1 5 3 2 3)Triangle Fans 4 5 1 6 1 4 3 3 7 6 3 4 6 5
Poly建模 Poly建模
LOD系统 系统需要建立模型的多个版本,并将依据模型离观察者的远近程度来 系统 改变屏幕上的LOD级别
Polygon建模
5.2.2拆分 拆分UV 拆分
三维游戏的世界 里,各种角色模型几 乎都是三维的,然而 贴图则是二维的,因 此要想给三维模型贴 上美丽的“外衣”, 就需要把三维的模型 “展平”为二维的平 面,然后给这个平面 进行“浓妆重彩”, 最后再把这种绘制过 的平面贴回到三维模 型上,模型就变得栩 栩如生了。而所谓“ 展平”的工作,在三 维软件中就叫做“拆 分UV”,或“展UV”
5. 3. 3 粒子系统 粒子系统可实现的效果 火把上的火苗 汽车排出的尾气 一群发怒的异型生物攻击时编队 成群或者成串的物体 (例) 运动效果,如激起的草皮、树叶、碎片 粒子制作工具 一个具体的游戏如何处理粒子系统数据和粒子资源,是引擎的任务。 也可在游戏中采用自己的粒子制作工具,但不见得效果好。 在游戏引擎中,支持标准工具的系统,如3DS max、Maya等。 5. 3. 4 游戏物理学 作为游戏开发者来说,必须正确地处理地心引力,速度变化,惯性以 及放置在世界里面的其它对象的碰撞,力和反作用力,力在重量点周围作 用等等。这都被看作是游戏物理学,是现代游戏引擎的必备因素。在已经 存入计算机内存中的游戏世界结构中,必须防止角色从里面掉出去,并且 要处理地板,斜坡,墙壁,门,以及移动平台等引起的物理现象。
2)不同的灯光 ) 照明映射:用第二个纹理映射(照明映射)与已有的纹理混合来产生照 照明映射 明效果 动态照明: 动态照明:例如灯光移动,或者没有程序的干预而打开和关闭灯光, 就必须在每一帧重新生成照明映射,按照动态灯光的运动方式修改这些照 明映射。灯光映射能够快速地渲染,但对存储这些灯光纹理所需的内存消 耗非常多 混合照明:例如场景使用照明映射,动画模型使用顶点照明。预先处 混合照明 理的灯光不会对动画模型产生正确的效果,只是整个多边形模型得到灯光 的全部光照值,而动态照明被用来产生正确的效果 3)纹理压缩 ) 纹理在使3D场景看起来真实方面异常重要,它们是应用到场景区域 或对象的一些分解成多边形的小图片。纹理压缩是在保持图片信息的情况 下,让纹理数据量更小些的一种方法。占用较少的游戏存储空间和3D显 卡存储空间。
魔兽角色贴图
5.2.4 游戏动画 除了游戏片头和一些过渡场合会有动画外,制作好的角色在游 戏环境中要做移动、跳跃等各种动作,玩家在屏幕上所见到的并不是 一幅静止的画,而是动画。在3D游戏中形成动画有两种方式,一种是 Morphing动画,另一种是蒙皮骨骼动画。 Morphing动画 动画 Morphing动画过程,是从基于网格型的关键帧Mesh1过渡到 Mesh2,再从Mesh2过渡到Mesh3,以至meshN的一个渐变过程。在 文件中存储了这些关键帧Meshl,Mesh2,……MeshN,接下来的工 作就是对关键帧之间的不存在的帧进行插值,从而创造连续的动画。 蒙皮骨骼动画(Skin Mesh)建立角色骨骼 蒙皮骨骼动画 建立角色骨骼 蒙皮骨骼动画的起源思想很简单,自然界的大多数动物都拥有一 套骨骼,骨骼是身体的框架,身体的皮毛血肉都是依附于骨骼。当骨 骼开始运动的时候,依附于对应骨骼的皮毛血肉都随骨骼一起运动。
5.4 VC++ 编程
编程最主要解决的是游戏引擎的编写和使用问题 5.4.1 游戏引擎架构 1)系统 系统:系统是引擎与机器本身作通信交互的部件。一个系统可以分 系统 为若干子系统,这些子系统有图形、输入、声音、计时器(Timer)、配置 等。主系统负责初始化、更新以及关闭所有的子系统。 2)图形子系统 图形子系统:用于在屏幕上画出画面,大多数是利用OpenGL,D3D 图形子系统 或是软件渲染(Software rendering)实现。在最理想的情况下,可以支持 所有这些API,然后抽象出一个“图形层”,并将它置于API实现之上,这 将给客户开发人员或是玩家更多的选择,以获取更好的兼容性和表现效果。 3)输入子系统:需要把来自各种不同的输入装置的输入触发做统一的 输入子系统: 输入子系统 输入控制处理。在游戏中,系统要检测玩家角色的位置是否有所变动,而 各种输入装置都是向输入子系统发出请求信息,由输入子系统来检测并作 出正确响应。 4)声音子系统 声音子系统:负责载入、播放声音。 声音子系统 5)计时器系统:游戏里任何物体的移动都是通过时间触发器来做变化 计时器系统: 计时器系统 的,3D引擎中很多出色的表现都是基于“时间系统”。
ห้องสมุดไป่ตู้
纹理(Lexture) 纹理 仅仅依靠三维顶点在画面中构成物体受到的制约因素很多,特别是 表现一些细微物体的时候,需要很多顶点,这在存储器和CPU受到限制 的PC系统中无疑是一个大难题。所谓纹理,就是给三维物体填充上二维 图形(jpg、bmp、gif),可以实现仅用顶点难以表现的多样效果,这种给 三维顶点填充二维图形的操作称为贴图(mapping),因此,为三维物体进 行纹理填充的操作就是纹理贴图,用作贴图的二维图形称为纹理或者纹 理图。
平面光照: 平面光照:绘制一个多边形时,让渲染引擎把整个多边形都着上一种 指定的颜色。该方法中,多边形均对应同一个光强度,表面上所有点都用 相同的强度值显示,渲染绘制时得到一种平面效果,多边形的边缘就不会 精确的显示出来,使得表面看起来比较平滑。
顶点着色(Gouraud着色):让渲染引擎给每个顶点赋予特定的颜色。在 顶点着色 绘制多边形上各点投影所对应的像素时,根据它们与各顶点的距离,对这 些顶点的颜色进行插值计算。
5. 1 基础用语
三维坐标系(3D Coordinate System) 三维坐标系
Y Y
Z
X 0 Z
X 0
左手系
右手系
向量(Vector) 向量 在三维图形中,向量主要使用于隐面消除(Backface culling)和着色 (Shading),有时候也用于需要进行物理学运算的直线及平面的方程式。
5.2 角色、场景、道具制作 角色、场景、
5. 2. 1 建模 游戏3D美术是一种低多边形的艺术 3DS max中可以使用 Mesh、Poly、Patch和 NURBS等建模工具,但 由于游戏用到的角色模 型是以低面数模型为基 础,因此几乎没有使用 NURBS方法的,而是使 用多边形Poly建模, Maya同样具有Poly建模 方式。 在3D软件中制作游 戏模型的时候,通常都 是用四边形面,只有在 计算面数的时候才转换 为三角面来计算。
相关文档
最新文档