《DirectX程序设计》期末试卷及答案

合集下载

DX期末复习题

DX期末复习题

《DirectX 游戏设计》考试样题一CABBC CBABD BDCAA CCAAB ABACA ADACB一、单选题(30题,每题1分,共30分)1.典型的windows SDK 方式的开发中,遵循这样一个过程:( C )A .创建窗口->显示窗口->注册窗口类->初始化窗口类 B. 注册窗口类->初始化窗口类->创建窗口->显示窗口 C .初始化窗口类->注册窗口类->创建窗口->显示窗口 D .创建窗口->注册窗口类->初始化窗口类->显示窗口2. Windows 编程中,退出消息循环的条件是:( A ) A . GetMessage()从消息队列中获得WM_QUIT 消息 B . 用户按下窗口关闭按钮C . 用户调用DestroyWindow()函数D . 用户利用Ctrl+Alt+Del ,在Windows 任务管理器中关闭进程3.Windows SDK 方式的开发中,响应菜单或按钮我们需要关注的消息是:( B )A .WM_CREATE B. WM_COMMAND C .WM_MENU D .WM_BUTTON4.D3D 中属于旋转函数的是:( B )A .D3DXMatrixScaling ()B .D3DXMatrixRotationX ()C .D3DXMatrixTranslation ()D .D3DXMatrixTranspose ()5.单位矩阵、矩阵转置、逆矩阵的调用函数分别是:( C )A .D3DXMatrixInverse 、D3DXMatrixIdentity 、D3DXMatrixTranspose B. D3DXMatrixIdentity 、D3DXMatrixInverse 、D3DXMatrixTranspose C .D3DXMatrixIdentity 、D3DXMatrixTranspose 、D3DXMatrixInverse D .D3DXMatrixInverse 、D3DXMatrixTranspose 、 D3DXMatrixIdentity6.逆矩阵的特点是:( C )A . 和原矩阵相乘等于原矩阵 B.和原矩阵相乘等于逆矩阵 C . 和原矩阵相乘等于单位矩阵 D .和原矩阵相乘等于全1矩阵7.初始化Direct3D 的第一步是要得到一个( B )接口。

《DirectX程序设计》19秋期末考核-0001

《DirectX程序设计》19秋期末考核-0001

《DirectX程序设计》19秋期末考核-0001------------------------1.Windows SDK方式的开发中,响应菜单或按钮我们需要关注的消息是:A.WM_CREATEB.WM_COMMANDC.WM_MENUD.WM_BUTTON正确答案:B2.()是Direct3D用来存储绘制到屏幕上的每个像素点深度信息的一块内存缓冲区A.广度缓存B.深度缓存C.深度测试D.广度测试正确答案:B3.()是图形中最基本的几何对象。

A.点C.向量D.三角形正确答案:A4.利用模板缓存来阻止对后台缓存村长哦功能某些特定区域进行绘制,判定是否将某个像素写入后台缓存的决策过程称为()A.模板测试B.深度缓存C.深度测试D.Alpha测试正确答案:A5.()对象是用来指定字体属性的。

A.LPD3DXFONTB.LPDIRECT3D9C.LPDIRECT3DDEVICE9D.RECT正确答案:A6.DirectX9中发布了高级着色器语言,是()A.GLSLC.CgD.C++正确答案:B7.()变换后的的几何体位于观察坐标系中。

A.局部变换B.取景变换C.世界变换D.空间变换正确答案:B8.()的功能是对进入管线的每一个像素点进行着色处理A.像素着色器B.着色器C.顶点着色器D.可编程着色器正确答案:A9.以下哪个释放顺序是正确的。

A.Direct3D对象、Direct3D设备对象B.Direct3D设备对象、Direct3D对象C.顺序任意D.无需释放正确答案:B10.()是一个由相互连接的线段组合成的造型,程序可用它产生不封闭的多边形。

A.点列表B.线段列表C.线段条带D.三角形列表正确答案:C------------------------1.D3D中的常见的矩阵变化( )A.旋转B.缩放C.平移D.组合变换正确答案:ABCD2.投影变换包括哪几种投影方式。

A.平面投影B.透视投影C.正射投影D.缩放投影正确答案:BC3.DirectX主要由()和()所构成。

C语言程序设计期末考试试题(含答案)

C语言程序设计期末考试试题(含答案)

C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( )A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是( )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a'+i*f值的数据类型为( )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(〈CR>表示回车),x的值是()。

#include<stdio。

h>main(){int x;float y;scanf(”%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是()A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是()#include<stdio.h>{int i=10,j=10;printf(”%d,%d\n”,++i,j——);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是()#include〈stdio.h〉main(){char c1='A',c2='Y’;printf(”%d,%d\n”,c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。

南开24秋学期《DirectX程序设计》作业参考三

南开24秋学期《DirectX程序设计》作业参考三

24秋学期《DirectX程序设计》作业参考1.DirectX9中发布了高级着色器语言,是()选项A:GLSL选项B:HLSL选项C:Cg选项D:C++参考答案:B2.DirectX主要由硬件抽象层和硬件模拟层所构成,其中硬件模拟层的缩写为()。

选项A:HAL选项B:HCL选项C:HEL选项D:HEC参考答案:C3.Windows SDK方式的开发中,响应菜单或按钮我们需要关注的消息是:选项A:WM_CREATE选项B:WM_COMMAND选项C:WM_MENU选项D:WM_BUTTON参考答案:B4.()是由光源发出经多次散射而无法确定其方向的光。

选项A:漫反射光选项B:环境反射光选项C:镜面发射光选项D:自发光参考答案:B5.采用()时,复制与这个浮点值地址最接近的整数地址的纹理元素的颜色选项A:最近点采样选项B:线性过滤选项C:各向异性过滤选项D:mipmap过滤参考答案:A6.()的功能是对进入管线的每一个像素点进行着色处理选项A:像素着色器选项B:着色器选项C:顶点着色器选项D:可编程着色器参考答案:A7.除了进行几何信息的排序外,还将创建一个属性表,该表是()选项A:数组选项B:缓存选项C:序列选项D:线性表参考答案:A8.3D世界中最基本的图形是()。

选项A:点选项B:线选项C:向量选项D:三角形参考答案:D9.()缓存方式通常被放置在显存中,其中的数据能被有效地处理。

选项A:静态缓存选项B:动态缓存选项C:两种都可以选项D:两种都不可以。

《C语言程序设计》期末考试试卷以及答案提示(共五篇)

《C语言程序设计》期末考试试卷以及答案提示(共五篇)

《C语言程序设计》期末考试试卷以及答案提示(共五篇)第一篇:《C语言程序设计》期末考试试卷以及答案提示一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是 B。

A、C语言简洁、紧凑B、能够编制出功能复杂的程序(任何程序都可以,不算特点)C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是 DA、ABCB、abcC、a_bcD、ab.c(只能是字母,下划线,数字;另外数字不可开头)3、一个C语言程序是由B。

A、一个主程序和若干子程序组成B、函数组成 C、若干过程组成 D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是 B A、有零个或多个输入B、有零个或多个输出(有一个或多个输出)C、有穷性D、可行性5、设变数a是整型,f是实型,i是双精度型,则表达式10+…a‟+i*f值的数据类型为 C A、int B、float C、double D、不确定(低类型要转换为高类型)6、在C语言中,char型数据在内存中的存储形式是 D。

A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是B。

#include main(){ int x;float y;scanf(“%3d%f”,&x,&y);} A、12345 B、123 C、45 D、345(由scanf语句可知取三位数值给X)8、若有以下定义int a,b;float x,则正确的赋值语句是B。

A、a=1,b=2(少了分号)B、b++;C、a=b=5(句末少了分号)D、b=int(x);(右侧要是确切的值)9、以下程序的执行结果是A。

#include { int i=10,j=10;printf(“%d,%dn”,++i,j--);} A、11,10 B、9,10 C、11,9D、10,9(i是先加一再使用,j是先使用再减一)10、巳知字母A的ASCII码是65,以下程序的执行结果是D。

《DirectX程序设计》复习资料

《DirectX程序设计》复习资料

《DirectX程序设计》课程期末复习资料一、客观部分:(单项选择、多项选择、不定项选择、判断)(一)、选择部分1.D3DPRESENT_PARAMETERS参数很多,关于其中参数之一windowed的理解正确的是(ABD)A.取值FALSE则渲染全屏B.取值TRUE则渲染窗口C. int类型D.BOOL类型E.double类型★考核知识点: D3DPRESENT_PARAMETERS2.以下属于Direct 3D定义的图元类型的有(ABCD)A.点列表B.线段条带C.三角形列表D.三角形条带E.四边形列表★考核知识点: 图元3.以下属于Direct 3D提供的着色模式的是(AB )A.平面着色模式B.高洛德法着色模式C.渐变着色模式D.单颜色着色模式★考核知识点: 着色模式4.下面属于Direct3D提供的创建旋转矩阵的函数的是(ABC)A.D3DXMatrixRotarionXB. D3DXMatrixRotarionYC. D3DXMatrixRotarionZD. D3DXMatrixRotXE. D3DXMatrixRotY★考核知识点: 变换5.以下属于Direct3D提供的简化纹理过滤的过程的是(ABCD)A.最近点采样B.线性过滤C.各向异性过滤D.mipmap过滤★考核知识点: 纹理过滤6.D3DPRESENT_PARAMETERS参数很多,下面理解正确的是(ABCD)A.Windowed取值FALSE则渲染全屏B. BackBufferCount表示后备缓冲的数目。

《DirectX程序设计》全部试题及50%试题答案

《DirectX程序设计》全部试题及50%试题答案


B

1
11
3
绘制
单选题

2
调用渲染状态设置函 D3DRS_MULTISAMPLEANTIA 数SetRenderState(), LIAS##TRUE##FALSE##D3D 参数1为() RS_SAMPLEANTIALIAS 如果要对Mesh进行优 化,需要知道Mesh的 三角形的邻接信息情 况,这些信息存储在 ()中 使用 OptimizeInplace()进 行网格优化后,Mesh 的几何信息将按照属 性进行排序,这样各 个子集的顶点/索引将 组成连续的块 除了进行几何信息的 排序外,还将创建一 个 属性表,该表是 () 使用 SetAttributeTable( )方法来直接设置属性 表 已经指定了定点数和 面数,同时也分配了 适当大小的内存给顶 点缓存、索引缓存以 及属性缓存等,只是 没有填入相应的数据 称为() 在3DMAX等3D建模工具 中创建好模型,模型 转换为扩展名为.x的 文件,称() 邻接矩阵##邻接缓存##深 度缓存##邻接数组 D
判断题

2
纹理阶段混合状态用 于指定当前纹理颜色 值和Alpha值的混合方 法 ()是Direct3D用来 广度缓存##深度缓存##深 存储绘制到屏幕上的 度测试##广度测试 每个像素点深度信息 的一块内存缓冲区 通常情况下,深度缓 存用于判断三维空间 中物体的遮挡情况 设置深度缓存是指设 置深度测试成功时对 深度缓存如何操作 图形学中称由于采样 频率不足而造成的失 真为走样,反走样通 过多重采样改善图形 锯齿效果 渲染后物体模型通常 是由三角形图元组成 的,我们称它为一个 Mesh结构 若要从缓存中只读不 写数据,就不需要锁 定缓存,用完后解锁 三角形属性ID存储在 Mesh的属性缓存中, 由于每个三角形都对 应一项属性缓存,所 以属性缓存中的项目 数等于Mesh中的三角 形的个数

(精校版)C程序设计期末考试习题(含答案)

(精校版)C程序设计期末考试习题(含答案)

二、读程序写结果(每题 6 分,共 24 分)
1. 有以下程序
int f(int a)
{ int b=0;
static c=3;
b=b+1;c=c+1;
return(a+b+c);

void main()
{ int a=2,i;
for(i=0;i〈3;i++) printf(“%2d”,f(a));

执行后输出的结果是

2。 有以下程序
void f(int y,int *x)
{ y=y+*x; *x=*x+y;}
void main( )
{ int x=2,y=4;
f(y,&x);
printf(“x=%d,y=%d\n”,x,y);
}
执行后输出的结果是

3。 有以下程序
#define LETTER 1
7。 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是 ( ).
A) p=1;
B) *q=2;
C) q=p;
D) *p=5;
8. 设有定义:int a,*pa=&a; 以下 scanf 语句中能正确为变量 a 读入数据的是 ( )。
A) scanf(“%d”,pa) ;
A)字符 B 和字符 P
B) 字符串 FORTD) 字符串 BASIC 和字符串 PASCAL
10。 执行语句 for(i=1;i++〈4;);后变量 i 的值是( ).
A) 3
B)4
C) 5
D) 不定
一、填空题(每空 2 分,共 18 分)

c程序设计期末考试试题及答案

c程序设计期末考试试题及答案

c程序设计期末考试试题及答案一、选择题(每题2分,共20分)1. 下面哪个选项是C语言中的关键字?A. intB. floatC. stringD. array答案:A2. C语言中,下列哪个运算符用于比较两个值是否相等?A. ==B. =C. !=D. %答案:A3. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoi()B. atof()C. itoa()D. sprintf()答案:B4. 下列哪个选项是正确的C语言变量声明?A. int num = 10;B. int num = "10";C. int num = '10';D. int num = 10.0;答案:A5. C语言中,以下哪个语句用于循环执行代码块?A. forB. whileC. ifD. switch答案:A6. 在C语言中,以下哪个函数用于计算数组中元素的总和?A. sum()B. count()C. average()D. max()答案:A7. 下列哪个选项是C语言中正确的注释格式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释 */D. /* 这是注释答案:A8. 在C语言中,如何定义一个指向整数的指针?A. int *p;B. int *p = 0;C. int *p = 10;D. int p = 10;答案:A9. 在C语言中,以下哪个选项是正确的函数定义?A. int function() {}B. int function() { return 0; }C. int function() { return; }D. int function() { return 1; }答案:B10. 下列哪个选项是C语言中正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, WorldD. 'Hello, World'答案:A二、填空题(每题3分,共15分)1. 在C语言中,使用________运算符可以交换两个变量的值。

南开大学智慧树知到“计算机科学与技术”《DirectX程序设计》网课测试题答案卷5

南开大学智慧树知到“计算机科学与技术”《DirectX程序设计》网课测试题答案卷5

南开大学智慧树知到“计算机科学与技术”《DirectX程序设计》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共10题)1.物体表面的颜色不仅与照射光源的属性有关,还与物体的材质属性相关。

()A.正确B.错误2.cube.x文件内容解释:“xof”标识这是()。

A.X文件B.DirectX版本C.模板D.浮点数3.D3D中的光照模型有:()A.环境光B.漫反射C.镜面反射D.全反射4.()为从无限远以特定的方向照射过来的光,光照强度随距离的增加而衰减,此光源不需要设置光源位置、衰减系数和光照作用范围。

A.漫反射光B.聚焦光源C.方向光源D.点光源5.雪特效的实现原理是绘制面片,然后给面片贴上雪花的纹理,接着控件雪花的密度和运动轨迹等就形成了雪特效。

()A.正确B.错误6.若两个向量的长度和方向相同,但起点位置不同,则两向量是不相等的。

() A.正确B.错误7.点光源没有方向,有衰减。

()A.正确B.错误8.模板定义包含哪些项()A.模板名字B.GUIDC.数据项D.用于控制模板的限制程度9.建模是指用一定的数学和物理方法建立所需3D场景的几何描述。

()A.正确B.错误10.()是用于定义构成物体的三角形单元列表的坐标系。

A.世界坐标系B.本地坐标系C.观察坐标系D.屏幕坐标系第1卷参考答案一.综合考核1.参考答案:A2.参考答案:A3.参考答案:ABC4.参考答案:C5.参考答案:A6.参考答案:B7.参考答案:A8.参考答案:ABCD9.参考答案:B10.参考答案:B。

C语言程序设计期末考试试题(含答案)

C语言程序设计期末考试试题(含答案)

C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( B)A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是(D )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由(B )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是(B )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为(C )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是(D )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( B) 。

#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是(B )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( A)#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是( D)#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( C)A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( D) 。

《DirectX程序设计》20春期末考核答案

《DirectX程序设计》20春期末考核答案

《DirectX程序设计》20春期末考核
总分:100分时间:0秒 SHOW GO
答题中
一、单选题共10题,20分
1
2分
选项:C <-> 值: 方向光源
()为从无限远以特定的方向照射过来的光,光照强度随距离的增加而衰减,此光源不需要设置光源位置、衰减系数和光照作用范围。

A漫反射光
B聚焦光源
C方向光源
D点光源
2
2分
选项:A <-> 值: 最近点采样
采用()时,复制与这个浮点值地址最接近的整数地址的纹理元素的颜色
A最近点采样
B线性过滤
C各向异性过滤
Dmipmap过滤
3
2分
选项:B <-> 值: 4×4
在使用Direct3D编程时,我们使用()矩阵表示一个变换。

A3×3
B4×4
C2×2。

DirectX程序设计

DirectX程序设计
一、单选题
共22题,44分
1
2分
在使用Direct3D编程时,我们使用( )矩阵表示一 个变换。
A
3×3 4×4 2×2 1×4
B
C
D
学生答案: B
得分:2分
2
2分
3D世界中最基本的图形是()。
A
点 线 向量 三角形
B
C
D
学生答案: D
得分:2分
3
2分
如果要对Mesh进行优化,需要知道Mesh的三角形 的邻接信息情况,这些信息存储在()中
A
数组 缓存 序列 线性表
B
C
D
学生答案: A
得分:2分
18
2分
( )为从无限远以特定的方向照射过来的光,光照 强度随距离的增加而衰减,此光源不需要设置光源 位置、衰减系数和光照作用范围。
A
漫反射光 聚焦光源 方向光源 点光源
B
C
D
学生答案: C
得分:2分
19
2分
()的功能是对进入管线的每一个像素点进行着色 处理
B
C
D
学生答案: A
得分:2分
二、多选题
共7题,14分
1
2分
纹理过滤的类型有( )
A
缩小过滤 放大过滤 多纹理过滤 双线性过滤
B
C
D
学生答案: A B C
得分:2分
2
2分
渲染管线首先要设定哪些数据信息()
A
顶点 图元 纹理 材质
B
C
D
学生答案: A B C
得分:2分
3
2分
哪些变换分别用于设定物体在世界坐标系中的位 置、方向以及模型大小。

大一c程序设计期末考试题及答案

大一c程序设计期末考试题及答案

大一c程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,错误的是:A. 变量名必须以字母开头B. 变量名中可以包含下划线C. 变量名区分大小写D. 变量名可以包含数字答案:D2. C语言中,用于定义字符常量的是:A. 单引号B. 双引号C. 反引号D. 尖括号答案:A3. 下列哪个选项不是C语言中的运算符?A. 赋值运算符B. 关系运算符C. 逻辑运算符D. 条件运算符答案:D4. 在C语言中,用于定义一个整型数组的语句是:A. int array[5];B. int array[];C. int array[5]={0};D. int array[5]={0,1,2,3,4};答案:A5. 下列关于C语言函数的描述,正确的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 所有选项都是正确的答案:D6. C语言中,用于输入输出的库函数是:A. printfB. scanfC. printf和scanfD. 以上都不是答案:C7. 下列关于C语言中指针的描述,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B8. 在C语言中,用于定义结构体的关键字是:A. structB. unionC. enumD. typedef答案:A9. 下列关于C语言中循环的描述,错误的是:A. for循环可以没有初始化部分B. while循环可以嵌套使用C. do-while循环至少执行一次D. 循环体内可以包含break语句答案:A10. C语言中,用于定义枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义整型变量的关键字是____。

答案:int2. 在C语言中,表示逻辑与的运算符是____。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题(本题共10小题,每小题3分,共30分。

单选或者多选)1.为了求平面的法向量,我们通常的方法是找到平面上相互不平行的两个向量,求他们的(C )。

A.点积B.相加C.叉积D.相减2. 为了能够用Alpha分量来描述像素的透明度,必须将源混合因子和目标混合因子分别设置为(B)。

A.D3DBLEND_ZERO和D3DBLEND_ONEB.D3DBLEND_SRCALPHA和D3DBLEND_INVSRCALPHAC.D3DBLEND_SRCCOLOR和D3DBLEND_INVSRCCOLORD.D3DBLEND_SRCALPHA和D3DBLEND_DESTALPHA3. 在Direct3D中,我们可以自由定义顶点的格式,下面哪个不是灵活顶点格式的标记(D)。

A. D3DFVF_NORMALB. D3DFVF_XYZC. D3DFVF_TEX1D. D3DFVF_TEX4.以下哪些项是对表面像素深度缓存的格式描述的枚举常量(AD)。

A.D3DFMT_D32 B.D3DFMT_DXT1C.D3DFMT_R8G8B8 D.D3DFMT_D24S85. 在进行纹理映射的时候,为了调整纹理的大小去适应屏幕三角形的大小,我们通过设置纹理过滤器来设置纹理的过滤方式,通常需要设置的过滤器有(ABC)。

A.放大过滤器B.缩小过滤器C.多级渐进纹理过滤器D.线性过滤器6.Direct3D中的三种基本的变换类型不包括下面的哪项(B)。

A.比例变换B.翻转变换C.平移变换D.旋转变换7.当需要对场景进行矩阵M的投影变换,选择下面的( A )。

A.Device->SetTransform(D3DTS_PROJECTION, &M);B.Device->SetTransform(D3DTS_WORLD, &M);C.Device->SetTransform(D3DTS_TEXTURE0, &M);D.Device->SetTransform(D3DTS_VIEW, &M);8.通过(B)技术,我们可以将2D图像数据映射到3D图元上,以增强场景的真实感。

A.模板B.纹理映射C. 光照D.混合9. 网格的属性缓存中的元素个数与(D)相等。

A. 顶点数B. 索引数C. 子集数D. 面片数10. 在D3DLIGHT9结构体中,以下的哪些成员对于方向光没有意义(ACD)。

A. PositionB. DirectionC. RangeD. Falloff二、填空题(本题共20空,每空1分,共20分。

)1、法向量是与平面垂直的向量,用于标记平面的朝向。

2、列出三个D3DXCreateTextureFromFile支持加载纹理图像的格式:BMP 、DDS 、DIB 、PNG、TGA 。

3、在进行深度测试的时候,距离摄像机近的像素颜色将替代后台缓存中对应像素的颜色值。

4、在光栅化过程中,如果每个图元的每个像素都被一致地赋予该图元的第一个顶点所指定的颜色,则可推断当前的着色模式是平面着色。

5、在Direct3D的光照模型中,光源发出的光由三种类型的光组成,它们分别是:环境光、漫反射光、镜面光。

6、我们通过指定物体的材质来模拟现实世界中物体通过吸收和反射光线来表现其颜色。

7、我们使用顶点缓存接口的Lock 和Unlock 方法来对其进行锁定和解锁。

8、常用的四种纹理寻址模式是重复、边界颜色、箝位、镜像。

9、D3DCOLOR类型共有32位,被分为四个八位项,它们从高位到低位分别表示:Alpha分量、红色分量、绿色分量、蓝色分量。

三、判断题(本题共10小题,每题1分,共10分。

请将答案以“√”、“×”形式填入题后括号中。

)1、DirectX只能应用在Windows平台上开发游戏和其他高性能的多媒体应用程序。

(√)2、实现混合效果时,Alpha信息的唯一来源就是所设定的纹理的Alpha通道。

(×)3、为简化绘制工作,近裁剪面和投影平面是合二为一的,为平面z=1。

(√)4、左手坐标系和右手坐标系的区别就是他们的三个坐标轴的方向都是相反的。

(×)5、Direct3D的观察坐标系中,默认状态下,顶点的排列顺序为逆时针的三角形单元是正面朝向的。

(×)6、光源结构D3DLIGHT9中的Direction 成员对于点光源是没有意义的。

(√)7、模板缓存的分辨率与后台缓存的分辨率完全相同。

(√)8、在Direct3D中,最多只能设置4层纹理。

(×)9、Direct3D中,灵活顶点格式标记的指定顺序可以与顶点结构中相应类型数据定义的顺序不一致。

(×)10、我们通过使用渐进网格可以获得比原始网格更加丰富的细节。

(×)四、简答题(本题共20分)1、请列出初始化Direct3D的几个步骤。

(6分)①获取IDirect3D9接口的指针;②检查设备性能(D3DCAPS9);③初始化一个D3DPRESENT_PARAMETERS结构实例;④利用已经初始化好的D3DPRESENT_PARAMETERS结构创建一个IDirect3DDevice9对象。

2、写出下面几个名词的英文单词。

(8分)(1)光照:lighting(2)矩阵:matrix(3)着色:shading(4)裁剪:clipping(5)粒子:particle(6)网格:mesh(7)材质:materials(8)视口:viewport3、请列出使用DirectInput读取键盘输入的主要步骤。

(6分)①创建IDirectInput接口对象;②创建DirectInput设备对象;③设置DirectInput设备的数据格式;④设置DirectInput设备的协调级别;⑤设置DirectInput设备的属性;⑥获取输入设备的访问权;⑦读取键盘的输入。

五、综合题(本题共20分)使用顶点缓存绘制一个如下图所示的金字塔(不绘制底面),其4个侧面都使用ice.bmp进行纹理映射,并处于白色点光源的照射下,点光源的位置在世界坐标系(-5,0,0)处,其运动方式是绕y轴不断的旋转。

请按题目要求写出相关的关键代码。

①对顶点结构体的定义(包括灵活顶点格式)(4分)struct Vertex{Vertex(){}Vertex( float x, float y, float z, float nx, float ny, float nz, float u, float v) { _x = x; _y = y; _z = z; _nx = nx; _ny = ny; _nz = nz; _u = u; _v = v;} float _x, _y, _z, _nx, _ny, _nz, _u, _v;};#define FVF_VERTEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1)②假设在主程序文件中已经定义了两个全局变量:IDirect3DDevice9* Device = 0; //设备接口(已创建好设备)IDirect3DVertexBuffer9* Pyramid; // Pyramid用于保存金字塔的顶点数据写出创建顶点缓存的代码。

(4分)Device->CreateVertexBuffer(12 * sizeof(Vertex),D3DUSAGE_WRITEONLY,FVF_VERTEX,D3DPOOL_MANAGED,&Pyramid,0);③创建题目要求的光源,设置并启用光源,写出相关的代码。

(4分)D3DLIGHT9 point;::ZeroMemory(&point, sizeof(point));point.Type = D3DLIGHT_POINT;point.Diffuse = D3DXCOLOR(1.0f,1.0f,1.0f,1.0f);point.Specular = D3DXCOLOR(1.0f,1.0f,1.0f,1.0f) * 0.3f;point.Ambient = D3DXCOLOR(1.0f,1.0f,1.0f,1.0f) * 0.6f;point.Position = D3DXVECTOR3(-5.0f, 0.0f, 0.0f);point.Range = 1000.0f;point.Attenuation0 = 1.0f;point.Attenuation1 = 0.0f;point.Attenuation2 = 0.0f;Device->SetLight(0, & point);Device->LightEnable(0, true);④假设在主程序文件中已经定义了一个全局变量Tex:IDirect3DTexture9* Tex = 0; // 存储纹理的接口对象写出加载纹理和设置相关的纹理过滤器的代码。

(4分)D3DXCreateTextureFromFile(Device, "ice.bmp", &Tex);Device->SetTexture(0, Tex);Device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);Device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);Device->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR);⑤写出绘制的代码,包括绘制的准备工作。

(4分)Device->SetStreamSource(0, Pyramid, 0, sizeof(Vertex));Device->SetFVF(FVF_VERTEX);Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 4);。

相关文档
最新文档