游戏程序开发 试题

游戏程序开发 试题
游戏程序开发 试题

游戏开发基础试题

一、填空题(20分)

1.DirectX是由很多API组成的,按照性质分类,可以分为四大部分,__显示部分___、___声音部分___、___输入部分____和网络部分。

2.Microsoft.DirectX.Direct 3D是用于开发____3D图形____和____3D游戏____。

3.Windows应用程序的执行总是从____main()____方法开始。

4.3D笛卡儿坐标系分为___左手_____和____右手____笛卡儿坐标系;DirectX使用___左手坐标____系统,但XNA采用右手坐标系统。

5.物体移动需考虑的问题有____位置____、____速度___、___碰撞____。

6.物体旋转需考虑的问题是__旋转轴____和局部旋转-世界旋转。

7.3D程序设计的目的是根据_透视_原理把3D场景中的所有3D物体在2D显示器上显示出来,这个过程称为:__渲染__。

8.观察变换有两个目的:一是__从场景的世界空间中取得感兴趣的部分场景_________,另一个是为投影变换做好准备。

9.Direct 3D中有4种类型的光源:__环境光___、___定向光源__、点光源、__聚光灯__。

10.在Direct 3D中,纹理图案是存储在2D图片中的,图片一般是bmp或__jpg___格式的矩形图片。

二、选择题(20分)

1.下面选项中哪个不是TransformedColored结构包括的字段?(B)

A.x,y,z,Rhw B.PointList C.Color D.Position

2.以下哪项不属于2D动画框架(D)

A.Sprite“精灵”

B.Texture“贴图”

C.动画时间及HighResolutionTimer类

D.Draw

3.“Sprite”类中‘LocalDevice.BeginScene()’语句的作用是(C)

A.启动计时

B.交换显示,上屏

C.开始绘制后备缓冲区

D.清屏

4.在Direct3D程序设计中,灯光照射到设计的所照射的3D图形上,使之显示在屏幕上。其中,光线为等强度的平行光线,所照射的物体表面每一点的光线强度和方向都相同的一种灯光是(A)

A.定向光源

B.点光源

C.环境光

D.聚光灯

5.在Direct3D中,用什么类来定义纹理(C)

A.Material

B.Position

C.Texture

D.Device

6.在投影变换中视场角通常为(B)

A.40度

B.45度

C.50度

D.55度

7.Direct 3D中反射光不包括(A)

A.定向光

B.环境光

C.漫反射光

D.镜面高光

8.Lights 灯光的属性Diffuse表示什么(B)

A.光源类型

B.灯光发出的颜色

C.光线的方向

D.光线的位置

9.在点光源中衰减系数为(C)表示不衰减

A. 0

B.2

C.1

D.0.5

10.下列说法错误的是(B)

A.物体移动需考虑的问题有位置,速度,碰撞等

B.在投影变幻中,纵横比的数值通常为1.00

C.绘制旋转三角形时,旋转方法有两种,一种观察者不动,物体旋转,一种物体不

动,观察者绕物体旋转。

D.Mesh类预定义了一些3D模型,如立方体、圆柱等

三、简答题(30分)

1.默认设置材质的镜面高光是关闭的,所以如果希望增加镜面高光的效果,必须按照怎样的步骤进行设置?(6分)

答:(1)用以下语句开启材质镜面高光功能:

device.RenderState.SpeccularEnable=true;

(2)设定材质的属性Specular为指定颜色,即设定反射镜面高光颜色。还要设定材质的属性SpecularSharpness表示反射光锐度,值越小,反射光越分散。

(3)设定光源的属性Specular为指定颜色,即光源发射镜面高光的颜色。

2.写出点光源衰减系数公式,并解释各参数含义。(6分)

答:衰减系数=1/(Attenuation0+Attenuation1*d+Attenuation2*d2)

d表示物体与点光源的距离;

属性Attenuation0、Attenuation1、Attenuation2为float类型数值,用来表示点光源的衰减规律。

3.Material结构是对材质的描述,为了使用材质,必须首先创建Material结构对象,其常用属性有哪些?(6分)

答:Ambient 设置或得到材质反射环境光的颜色,一般设置为白色;

Specular 设置或得到材质反射镜面高光的颜色,一般设定为白色;

Diffuse 设置或得到材质反射漫反射光的颜色,这个颜色一般代表物体的颜色;

Emissive 物体自己发光的颜色,即使没有光源,也能看到这个物体的颜色;

SpecularSharpness 反射光锐度,值越小,反射光越分散,可看到的高亮圆形区域直径越大。

4.解释定向光源。(6分)

答:定向光源也叫平行光源,用来模拟无限远处的光源,例如太阳。再观察者看来,在无限远处的光源照射到物体上的光线是等强度的平行光线。由于定向光源照射到物体表面每一点的光线强度和方向都相同,所以用于计算物体表面反射光的数学运算比较简单。

5.写出Light类中属性Update()方法的作用。(6分)

答:Update()方法是更新当前Light对象的设置。只有调用方法Update()和属性Enabled设置为true。Light类对象所定义的灯光新属性才能生效。没有设置属性的其他数组元素所代表的灯光不可用。

四、程序题(30分)

1.编写完整绘制三角形的顶点缓存代码,顶点分别为(0,1,0)、(-1,0,0)、(1,0,0),颜色自定。(10分)

LocalDevice.RenderState.CullMode=Cull.None

Vertextbuff=New VertexBuffer(GetType(CustomVertex.PositionColored),

3,LocalDevice,0,CustomVertex.PositionColored.Format,Pool.Default) verts=vertexbuff.Lock(0, 0)

verts(0). Position=New Vector3(0,1,0)

verts(0).Color=Color. Red. ToArgb

verts(1). Position=New Vector3(-1,0,0)

verts(1).Color=Color. Green. ToArgb

verts(2). Position=New Vector3(0,1,0)

verts(2).Color=Color. LightPink . ToArgb

vertexbuff.Unlock()

2.写出在显示三角形中世界变换(绕Y轴旋转,变换参数为ag)、观察变换(观察点自定)、投影变换程序。(10分)

3.编写完整点光源照亮三角形的代码。(10分)

LocalDevice.Lights[0].Type = LightType.Point ; //点光源

LocalDevice.Lights[0]. Diffuse = Color. White ; //光源颜色

LocalDevice.Lights[0]. Range = 20.0f ; //照射范围

LocalDevice.Lights[0]. Position = new V ector3(0,0,-4) ; //设置灯光位置,注意

光线照射的方向LocalDevice.Lights[0]. Attenuation1= 0.2f; //衰减系数为:1/(0.2d)

LocalDevice.Lights[0]. Enabled=true; //使设置有效

LocalDevice.Lights[0]. Update(); //更新灯光设置,创建

第一盏灯

LocalDevice.RenderState.Ambient = Color.FromArgb(&H808080)

相关主题
相关文档
最新文档