计算机游戏期末
一、简答题 简述图形界面的Windows框架 Windows框架是我们在Windows系统下运行的程序必须的架构,由三个函数构成 WinMain 程序入口,功能为定义一个Windows窗口的样式、大小等,并建立这个窗口; MsgProc 窗口调用函数,在整个运行周期中随时对回调的函数所定义的外部事件鼠标 移动、点击窗口变化、键盘和其他函数发出的消息做出反应; GameLoop 消息循环,利用Windows的消息机制做成的主循环函数,它被程序反复执行, 作用是侦听消息,有消息是返回Windows的消息链,没有消息时就执行0penGL的图形处 理 Render 。 2、简述OpenGL的程序框架 OpenGL的基本框架由四个函数组成 SetupPixelat HDChDC检测安装 OpenGL init int Width, int Height OpenGL 视口进行变换 Cleanup 清楚OpenGL的连接 Render OpenGL 图形处理 3、简述OpenGL的构图形式 OpenGL的构图形式为,在函数对gIBegin TYPE ,glEnd 之间给出图形的顶点坐标集。 连接定点的方式山gIBegin中的类型决定。基本形式如下 gIBegin TYPE;〃连接各顶点的方式 〃图形的定点坐标集; glEnd 4、至少列举8种OpenGL构图类型 GL_POINTS单个顶点集 GL_LINES多组双顶点线段 GL_LINE_STRIP 不闭合折线 GL_LINE_LOOP 闭合折线 GL_POLYGON单个简单填充凸多边形 GL_TRAINGLES多组独立填充二角形 GL_QUADS多组独立填充四边形 GL_TRAINGLE_STRIP线性连续填充二角形串 GL_TRANGLE_FAN扇形连续填充二角形串 GL_QUAD_STRIP连续填充四边形串 5、简述 OpenGL 中 gIPu筒Matrix和 glPopMatrix函数的应用 glPushMatrix函数使用此函数就是要让0penGL记住空间中当前的这个位置,以便经过一 些变换后还能快速方便地回到此处位置。 glPopMatrix函数此函数通知OpenGL在访问过空间的其他位置之后,返回到原先记住的 位置。 6、简述OpenGL中坐标变换的三个函数应用 平移gITranslatef (float x,float y,float z);将该函数以下的图形在三维坐标中移动(x,y,z) 旋转gIRotatef(float angle,float a,float y,float z);将该函数以下的图形在指定轴上旋转angle度 缩放glScalef(floatx,floaty,float z);x,y,z是沿三个轴向缩放的比例因了 7、OpenGL中,顶点在最终被绘制到屏幕上之前要经过哪3种类型的变换 视图变换设定视点的位置 模型变换在场景中移动物体 投影变换定义视体和裁剪平面 8、OpenGL试图通过哪4种光的组合来模拟真实世界的光照 环境光、散射光、镜面反射光、发射光 9、简述OpenGL摄像漫游的实现原理 观察点在场景中位置改变的结果 gluLookAt(视点,目标点,视点方向)。 其中视点(观察点)是一个三维坐标量。 X量的变化就像是我们在场景中横向移动. Y匿的变化就像是我们的身体高度的变化(游戏中角色的站立、卧倒) Z鼠的变化就像是我们在场景中前后移动。 目标点、视点方向也分别是三维坐标置. 视点的变化,相当于我们人在场景中的移动。 日标点的变化,相当于我们人站着不动时,头或手中的相机上下左右移动的效果- 视点方向丫1表示我们的头始终是正立的”如果你要表现在飞机里转弯看到大地倾斜的效 果,你可以试试改变视点方向的X, Z值. 10、简述OpenGL中纹理映射的技术原理 纹理映射是一项技术,其能够将3D图形从一堆有颜色的三角形变成可以像照片一样具有真 实感的场景。究其本质,纹理就是些图案。当纹理映射到一个多边形上时,纹理就随着多边 形的变换而进行相应的变换。 11、解释纹理坐标的应用 如果对一个2D纹理加上一个坐标系,那么就可以确定其上的每一个点并对其进行操作,每 一个点叫一个纹理坐标,通常以点(s,t)的形式表示。当纹理映射应用于表面时,使用参数 坐标(u,v)来定义其纹理在表面上的方向,u和v的取值在(0,1)的区间内,对于所进行 纹理映射的表面,其上的坐标U和V的最大值和最小值决定了纹理映射的范围。 12、简述OpenGL中实现天空体常用的两种方法 天空盒用一个矩形方盒作为天空远景贴图的载体 半球形天空模型 13、简述MD2关键帧动画模型的原理 MD2是一种关键帧关键帧动画模型。所谓关键帧动画模型,就是构成模型的各个结构组件, 按一定的时间序列进行位置移动、旋转,形成模型的整个动作变化序列。 14、简述MDL骨骼动画模型的原理 骨骼动画模型是形象模型为蒙皮,动作架构为骨骼而有机组成的3D动画。其优势在于用线 段代表动物的骨骼关节,动物的一切复杂动作是用数据量极小的线段在空间位置的变换来表 示。真正的优势还在于骨骼和形象模型是可以分离和重新组合的。 15、简述粒子系统的原理 基本原理是用大量的粒子对仿真对象的流体力学原理进行模拟。 粒子系统是多个独立元素或粒子的一个集合,每个粒子具有独立的属性,比如速度、颜色和 生命周期等。每个粒了主要以其自主的方式进行运动,在一个给定的粒了系统中的粒了通常 共享一组公用的属性。 16、简述基于位置框的碰撞检测的基本原理 任何一个物体在场景中都有一个确定的位置、大小,可用一个位置框来表示。当一个运行物 体的位置框与另一个物体的位置框相遇或相交时,我们就说这两个物体发生了碰撞。 17、OpenGL颜色立方体模型 OpenGL通过三个独立的分量,红色分量、绿色分量和蓝色分量的强度来定义颜色。这些强 度的取值范围从0.0无光强1.0 最大光强。 G.从 0 至 I 的 枣、*示不村颜色分屈的ma00. 10. QjO 图6.3颜色立方体 18、简述OpenGL状态机的概念 OpenGL状态机山几百个设置项组成,在要做的每一件与OpenGL有关的事件中都会发生作 用,其影响着绘制的方方面面,有众多的状态函数用以控制状态机如glGet函数用于查询 状态机当前的设置。 19、OpenGL中如何实现点画线段 可以指定一个点画模式来绘制线段。点画模式定义了一个掩膜,用以确定线段的哪些部分该 绘制而哪些部分不绘制。使用点画模式之前,需要调用带有GL_LINE_STRIPPLE参数的 glEnable函数来启用此项性能。然后,调用glLineStipple函数设置点画模式,此函数定义 如下 void glLineStippleGlint factoi;GLushort pattern;