|
2022年秋季学期(高起本1709-1803、全层次1809-2103)《3D游戏软件设计》在线作业-00003; U p' |: x Q* |+ @( A% D
试卷总分:100 得分:100$ o8 j; j9 S+ Q, X4 E: Q, ^, c6 h
一、单选题 (共 20 道试题,共 40 分)
, O1 Z2 f Q x5 _: W H6 {1 a1.进行点选操作后,假设当前的选择缓冲区为pSelectBuff,那么其中的pSelectBuff[0]的值得含义是0 c8 Z( v4 s A8 D
A.名字堆栈中压入的名字数# c- C/ Z$ \( H: U
B.自上一个点击记录之后,与视景体相交的图元的所有顶点的最小窗口坐标的z值% f1 z+ R, X+ q0 c$ L8 K1 k" Q4 o
C.自上一个点击记录之后,与视景体相交的图元的所有顶点的最大窗口坐标的z值) u0 A. @) w& E3 o! K
D.点击发生时名字堆栈的内容( @( X! {% {" \2 p) m4 @3 u
资料:2 ^% t. z" ]) a
" o$ N. P- a, V2.函数glAlpaFunc用于设置alpha测试的参考值和比较函数的参数中,哪个参数的意义表示"绝不接受这个片段"
- h `5 f8 \+ b' z) ?3 WA.GL_NERVER) t) J% @( ~% O& T4 ]% Q
B.GL_ALWAYS
/ }" v7 X, F- X- \7 ^, m* iC.GL_LESS0 Z: b) E* S4 D
D.GL_EQUAL
g' b0 Z+ z+ g7 D5 z资料:5 J* r. b6 f d
# h( N7 H; Y, }6 q3.两个矢量之间的点乘结果为' G, f: Y* @+ h9 u
A.一个矢量
; n, _% u6 ]' k* ]4 ~& |B.一个标量9 S0 K2 {' h) p5 Z0 a) K; P
C.如果为零则不是矢量,其它情况下皆为矢量
: d, n* w2 B2 R# O+ E" RD.以上说法都不对/ S1 t8 n0 g. u! [! S6 }
资料:5 q- |; t8 z6 a1 m! \+ j
: B& a9 p! x: i9 f5 k$ _
4.OpenGL中如何判断一个点接收了光源的多少光线6 V3 P2 A/ }/ L3 E: Z
A.通过距离光源的距离进行计算
, }$ S0 e( p4 I3 E3 M( ^B.通过法线相对光源的方向进行计算
; b! T. H, k6 HC.通过物体的颜色值进行计算/ Y7 ]& f# k% |2 P6 R- A' {) ]3 V
D.通过物体和光源的颜色值的综合考虑进行计算; Z" @ ^- c3 ~) D% h3 i: Z+ [$ j
资料:: H& Y/ [" v; q) |* m# D8 [9 z
2 C0 l! j( ^- G" l' E5.在利用矩阵进行图形三维变换时,我们只用3×3矩阵无法完成的变换操作是
: r9 t5 M; P0 y7 ~1 FA.平移
. O- W8 h+ @: p; @: HB.旋转0 c, M2 W" n( e8 C
C.错切
( R6 N" c1 @/ W! o, ?D.以上说法都不对
/ V; ?) h1 E# K6 F2 S" ~3 i. V资料: ?/ X% m7 W; i) Y7 _4 u3 D
9 H7 ~- Z! B \9 @, J. y
6.OpenGL中在颜色索引模式下使用的用于选择单值索引的函数是
4 v/ t2 a5 [( R: Z: z& ^5 hA.glIndex** [. }2 t+ P, @
B.glClampColor5 l4 c* q" N9 J' ]4 f2 H- C: F# Z
C.glClear1 B- x3 M: T% H2 p* Q9 i* w+ P
D.glColor3f
' Q% c& [0 Q( ~, A6 u资料:
$ N7 H8 h9 B7 r6 ~5 O1 G+ }: m- j+ o, b j7 u+ Q- e: D* b, H
7.一个矢量加上一个矢量结果为
4 j) u/ R5 d1 B# k5 |0 aA.一个矢量; }) g" x2 Q+ a% A
B.一个标量
8 O" ]* R6 [! h; AC.如果为零则不是矢量,其它情况下皆为矢量# ?/ b2 n( _8 [( d5 _5 U3 f, i; E
D.以上说法都不对( N0 ~4 L Z3 L/ N) k3 T1 b
资料:* [7 J) }+ u& m( u n
+ @4 V7 {/ S8 c8 d( W6 N8.将一条不经过原点的直线进行简单的缩放变换,缩放后直线和原来直线相比; b i% ^8 {/ V( _* |
A.位置变化长度不变
* s9 P, ~$ i7 [& Q7 o: b( CB.长度变化位置不变
7 O7 p2 B: ^, a6 J; R# |C.位置和长度都会变化0 w% ~9 B7 ~& D/ X! E4 U
D.以上说法都不对$ e! e6 o# U% q5 o6 T% {# C6 x
资料:8 F1 d! i0 B3 M& v; W
, X, m* a0 {% I C* M2 I1 X/ Q
9.OpenGL中,四种独立的光照模型中哪种光线在环境中经过了充分的散射,无法辨识出它的方向4 y% a% q# o( o: f: ]7 e2 r
A.环境光# `/ z2 p# i& l" s
B.散射光
; U* @/ m7 u: [% p9 G( [. V4 B' h( ~C.镜面光
! o4 L0 Y/ y! d# h, o' {D.发射光/ y x5 a2 x; C6 N- L
资料:- e; s0 w& f- W( h5 E, S- v
6 p, \. q" {) t6 B8 X, g' P* r5 k10.OpenGL中复杂的图形绘制一般都是如何实现的/ I( k6 L4 ?3 H* a8 e" V
A.用曲线模拟
0 n$ v7 V5 O. N4 xB.用四边形拼接
0 Z/ v. @6 p! ~$ y, m1 TC.用三角形拼接0 W( S) u5 l/ \& a2 P. F
D.只要是凸多边形拼接就可以8 a2 O; S/ \* L6 N- b6 ?# w
资料:
; ]2 N7 {# R0 ~( @: z. s9 u' J* h9 l4 r4 E6 i9 ^
11.利用3×3矩阵进行二维点集变化时,我们使用的矩阵为[1,0,0;0,-1,0;0,0,1],那么变化后的效果为, H( |2 Q6 r* X: G$ k- m, G l
A.沿着X轴对称变换$ t8 Q4 E5 y. E9 N* e& |5 B
B.沿着Y轴对称变换
@: C o. E' x: x3 QC.沿着原点对称变换
: c* e5 N' V5 fD.沿着直线y=x对称变换
8 a. M' |, B; J2 P5 X$ w2 ~资料:% [% l5 o \5 p/ G
3 L7 X" B1 N( _- l' g12.两个矢量之间的叉乘结果为5 z, A: d' R, H: c# x3 Z
A.一个矢量. [5 S" [: r" x9 \. o0 j0 F+ h
B.一个标量% Z( B) Z4 ~' `1 T9 @6 W8 M2 j
C.如果为零则不是矢量,其它情况下皆为矢量
. r. {6 R- N8 x# nD.以上说法都不对- H* J' j% I* b0 y; u' I N; N
资料:
8 D& q- [6 n) H/ ^' G3 v
$ B; A8 e7 k! O. Q# F# Y1 U, d$ `13.如果有两束光进入人眼,他们的成分为(R1,G1,B1)和(R2,G2,B2)那么叠加在一起的时候,如果红色分量超出1了,那么最后的叠加结果为 h- I( E! T& B, Z
A.R1+R2
1 G3 Z: R0 l2 ?7 m+ ?1 AB.1-R1-R29 x8 E7 Z& f) m! C$ h
C.1
$ }, x/ e7 ^9 ?1 LD.R1+R2-1( [( \2 \2 H4 Q+ J$ [
资料:
! b7 m* E/ C# A: F; P+ u
, C3 r' _0 }- K2 Z4 Z6 k- b14.glLoadIdentity()函数对于4×4矩阵操作结果为
8 \0 S! { @/ U. U) E/ J$ iA.[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1]
; g p& F$ r) F3 zB.[0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0]7 x- {# B" S# P# \) r4 o
C.[1,1,1,1;1,1,1,1;1,1,1,1;1,1,1,1]
8 G4 X) Z* e6 o2 UD.[1,0,0,1;0,1,0,1;0,0,1,1;0,0,0,1]
) K* Y; N) k+ G7 B资料:! o% D" h' [. S) k$ w" w7 e
1 _ p( H7 n+ D
15.OpenGL提供了最大数目为N的模型变换矩阵堆栈,N为( {$ z( o7 v* t J4 w1 m# v
A.80 m6 T I) {7 \. x
B.16
6 k+ q! F" O4 {C.32) S0 n, ]/ u6 `, Z E
D.64
3 n4 Y( m- _ n! j) o: l资料:
3 P& n3 l7 M+ y2 { c2 V2 X
" v2 s G' R# N$ z( y16.函数void glBlendEquation(Glenum mode)函数中的mode对取值为GL_FUNC_SUBSTRACT描述正确的是4 F8 H1 c' b- C7 I2 [& n: p# C
A.CsS+CdD
+ |. r- d. h9 G8 }3 ?* H W1 v$ q2 ^B.CsS-CdD& T! G! ]# }5 ^ K2 m( W
C.CdD-CsS
- [3 |: z$ J$ K. MD.CsopCd- C: v' k. H" t2 A9 B( p' W* [
资料:
3 o; L% E: O7 t# y B, s* W8 N! A4 M7 w) }. S' q8 |+ J8 m
17.我们使用函数gluLookAt(0,1,0, 0,0,-3,0,1,0)观察物体,那么,我们的视点起始处为" S) m/ Z, D+ S; r5 p; X
A.(0,1,0)( D) V6 j! C* @) ], d O
B.(0,0,-3)
; c% R6 G! Z b" X H# xC.(-3,0,1)' i: Q: p7 A+ K* t
D.(1,0,0)
5 X9 Y- p( @2 m5 o. W! A. x0 P资料:& ?2 g! B3 p9 C; j/ j0 s7 t, M% P
) p5 w" S% p$ B9 m6 Y1 F+ b# F- d18.glEnd()函数的意义7 N+ o [, X( Q! r7 g. Z
A.标志着一个顶点数据列表的结束" _- W4 K3 f: o
B.标志着程序的执行结束& H# |( c& A/ {! w( R, b; U9 G; {
C.标志着OpenGL的绘制操作结束
5 k5 G7 J; a4 c4 } y" oD.标志着当前函数的结束3 O/ d+ Y9 u- d; E @% B
资料:
. W* g+ t& X/ }, T; e' e5 H9 ]
8 r# v# R. ?* M19.现有三组逆时针环绕的轮廓线,依次包含。现在,如果把区域的环绕属性设置为奇数类型,那么最终绘制出的区域描述正确的是6 R4 D, ~& U: q
A.一个环形
8 R4 M" a5 |. h! M+ FB.实体块$ D/ n# d5 C- U6 G5 V, ?
C.一个环形加一个实体块
; f K+ I5 n! u% SD.无法确定具体填充区域0 @7 d5 b8 x" b0 b
资料:+ R# t, X- ]& l: F9 X* n
) B B+ q% z; ^# g# C) E7 j% M20.下列哪个几何图元的基本名称和含义"一系列的直线连接"对应7 J' \3 @! x* ]) ~3 a
A.GL_POINTS) z2 [" u* g/ a+ z8 z5 a
B.GL_LINES5 _" u9 \. n2 C% o5 g1 W
C.矩形8 w+ J* [: m0 I; V( |% N! F4 M% f& b
D.GL_LINE_STRIP# [* c% r1 G2 ]* k7 L
E.GL_QUADS
8 C0 \; }! ? h& [资料:
& e. R7 D$ c5 ?# z
! L; d5 }5 M! F8 {二、多选题 (共 10 道试题,共 20 分)
4 r# i' S- `$ Z3 P21.我们可以通过函数glLightfv设置光源的哪些属性
" f! q5 {- {+ R# Y0 S9 P3 a; x8 o6 ^A.环境光强度
, F9 R1 l1 T) qB.散射光强度
0 \* ~+ o) N: p4 ~/ V0 JC.镜面光属性0 f; m8 F) H' p, S
D.光源位置/ w4 W7 A0 T) b- {" Z+ ~7 a7 U
资料:CD
6 _# d) O0 i1 A) K7 K* o/ S
" C& t" P1 S) O% ]* M: z( o22.以下是描述glBindTexture函数功能的是
- p, P7 f! _) b: Z) ?9 F( pA.将生成的纹理的名称绑定到指定的纹理上
+ p% y) z0 }3 j g. sB.创建纹理并加载
! b6 t# Z- P5 P$ @$ |' CC.选择已经加载的纹理进行贴纹理操作; `' Z0 Q9 q2 d( m
D.以上都对
* u" g7 H4 g8 d& |" n资料:C
! {! H6 M8 R: H( n# W
3 Y* `! q8 P- q9 Y& }6 _: P: q23.下列哪些是OpenGL的对多边形绘制的限制+ i& t& g5 Y- [0 n5 N
A.各条边不能相交
7 n }" t% O# T7 l6 U$ u" _( ~/ qB.必须是凸多边形0 c" F7 x6 y* P- U: L5 ?1 Q% a, i+ D
C.中间无孔洞的多边形
- W" p: a: ?* w5 p% G$ YD.边数不可以超过10
/ Z/ z0 `. q8 N( e6 R资料:C
9 E' ]/ X4 D9 S5 A Y$ Q1 \6 S+ |9 ~; q4 N! J$ s) M
24.glVertex3f函数的参数的意义描述正确的有哪些
/ f) ]; T* ~- B# F- T$ `A.第一个参数为点的X坐标值5 e7 f$ n6 u+ }% T* Q
B.第二个参数为点的Y坐标值
4 Z2 a4 h: R8 K. [. R3 XC.第三个参数为点的Y坐标值
9 F6 B O {( d2 j5 B C, Z9 J$ cD.第三个参数为点的W值
8 F; t9 E/ ^: C( S6 H% q资料:
+ p; G2 ]6 S- p& u/ c: ~# r9 X7 Z4 Q
1 Q0 Z+ @% ]: D* a25.在如下哪些模式下,不会产生任何绘图像素,并且屏幕被"冻结". X. A5 r; G ?7 Y0 u
A.反馈模式
. N3 P5 X( n' W+ g5 `B.选择模式! ?- ]: B# \! P) ]/ B
C.渲染模式
$ U3 j L$ f* g0 R" y# eD.都不是% C4 X9 H, D _# F: a0 m
资料:, U2 g2 d& m* N' w- S/ q+ J
% n& }2 K( Z0 v$ t- x
26.glCopyPixels的像素路径包括1 y, T, G2 Q' W( C) b: _" y
A.像素传输操作
7 r5 S( r% C7 n! k5 O/ o( LB.光栅化操作& R3 U Q7 T4 o' {+ p: e4 H
C.基于片断的操作
+ ]. |% ~7 q8 n2 u. OD.在帧缓冲区暂存
" M. h9 N; W1 N0 f# \# [( L; E* w0 X% d资料:CD; f: f0 d% C& o# C
: R5 Q/ K: l1 P/ {
27.从物体坐标到屏幕坐标的显示流程中我们所经过的经典的变换流水包括& M) i9 h: V* m' Z/ O2 @) j% L
A.世界坐标系内地变换/ `& @9 Y/ ?+ p$ e$ j
B.对窗口的裁剪操作
- O0 ? U; a4 @/ aC.窗口到视口的变换1 `" r8 j) R( L6 F* a
D.对设备坐标进行变换1 ]/ t, R0 [ i8 f
资料:CD' V( z0 m1 X! b3 g
' n, Y8 z- i. c" C# J28.OpenGL允许把与颜色相关的哪三个不同参数和光源相关联
+ P, E6 x% ], G/ j+ ?* u% uA.GL_AMBIENT
* e( w$ r" w( I! }) [+ P2 ?: @B.GL_DIFFUSE
2 `# h' S3 G0 K- Z: fC.GL_SPECULAR" A8 v: h0 }; x$ b3 x3 _
D.GL_AMBIENT( o! Z; ~1 F# a' |$ r+ Q
资料:C
/ N! E5 v% W5 E
, }. _% n& D# b/ q+ p1 }29.通过矩阵[sx,0;0,sy]对二维的不经过原点的图元进行缩放变换,有可能得到的结果为8 J: ?0 u8 H# t K. n: @' `
A.图元相对原点的位置变化了
9 j# |. s" Z Y! E+ {5 ~B.图元自身尺寸变化了' R# |4 n2 D* A! E* q
C.图元自身发生了旋转
; i# I0 G/ J, f8 q' jD.图元可以完全不发生变化5 C( z8 Q; e8 a$ q$ E2 D" R
资料:) ^ U: u, z, y O8 q: t2 `, I
0 z5 M! V9 k5 N3 n* Q, A
30.实现物体坐标到达屏幕坐标的处理管线中,包括的处理步骤有- u- Y4 l2 E# o
A.视图模型矩阵操作3 I% U' F+ ~9 _' e
B.投影操作) ?+ q0 P+ K Q" Q i- W- S
C.透视除法进行规范化
& u3 e7 M+ A: ^D.视口变换% i* a Y( w& ]0 O% b7 e
资料:CD1 D- z& x+ L7 r9 i* Z! v" j% M0 \
) Z; v/ y' I& n三、资料来源:谋学网(www.mouxue.com) (共 20 道试题,共 40 分)
) u; C0 ^# i$ S& U/ m31.OpenGL至少可以在场景中包含1个光源& G4 g) }2 `/ g
资料:错误: i4 y8 ~3 G1 e k+ f
- P+ @( i) H8 U3 Y9 K
32.函数glPerspective(GLdouble fogy,GLdouble aspect, GLdouble near,GLdouble far)所定义的视体仅限于和X和Y轴对称的平截头体
$ g w9 o; R$ t* {) l3 s资料:正确7 x* B( V& B O7 a5 S3 t7 d$ l4 O
$ u! j9 I- ]$ ?" n1 Q& H33.位图是由0和1组成的矩形数组" T* ]! r) l0 Q1 A. F _5 {7 E$ n
资料:正确2 }, W: u4 M# G' r
. b1 I/ |: t6 g" R2 ]34.纹理坐标必须在RGBA模式下才能使用! g. H# O1 m' b$ A9 Z9 P3 u
资料:正确
& T, w6 ]$ ?0 j3 Q
9 t/ K1 u5 @( O. J0 }2 i8 h35.在OpenGL中一次只有一个纹理图像能够处于有效状态
3 V( P+ ~) K& \5 R1 m* `2 U% L9 o; X资料:正确
7 N( K3 z! d; E' W( U" D2 B; |2 Q& ]6 N. F( j8 Y! o ~
36.无论是在反馈模式下还是选择模式下,物体的信息总是在任何片断测试之前返回7 U# f9 G; ~9 X( k+ r
资料:正确
0 ^* P: i" d9 }& X7 z" ]" i0 y
8 ]0 _- c5 k3 N4 g# p37.假设一面砖墙高度只有宽度的2/3,但是只要开启纹理过滤函数glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);然后进行纹理坐标映射就不会出现纹理扭曲
. a. R* @7 S0 s' @7 U1 f; \4 h9 m4 L资料:错误$ H5 \ [& T1 b* `0 L
0 E+ n; {, z0 l0 s9 }38.glBlendFunc(Glenum srcfac,Glenum Destfac)参数Destfac表示已经存储在帧缓冲区中的像素的混合因子
3 j' V7 ^' Q; H1 U' Q" s资料:正确0 k$ L( I0 O y' B. K; o2 G
! e1 M# G2 F1 Z4 `' ?. [$ _' ^: x
39.OpenGL的1.5版本中加入了OpenGLShadingLanguage
l) {! i1 \2 U {资料:错误
1 J1 g; C! R2 {( X
. ~. i+ j, A) f& L40.位图字体无法进行旋转
6 }: |; K" `+ C# m, \资料:正确. Z" m( n M% J' @( F/ a5 g3 r
: B* L, t: \# T5 B* `
41.过滤函数中的参数GL_LINER它会对一小块区域的纹理单元值进行加权平均,用于放大或者缩小9 m3 j& B. a7 O% G3 g1 Y( g
资料:正确9 A4 }: y. F1 w' \- O: v
9 J& Q4 ^ n! h42.glRotatef(fRot,0.0f,1.0f,0.0f)函数可以让图形绕着X轴偏转fRot角度: y5 {/ P2 _3 A2 k" ]: s; u. u
资料:错误
5 }. W7 m1 e2 C- m
" q3 z# w* Y/ F5 H# m# |43.颜色混合操作在颜色索引模式下是非法的
y, @6 t! g, P% Z资料:正确
. ?+ A8 K, J# Z# Z) B" w1 K6 m l/ o7 V- y- J2 Z2 f
44.设置光源位置时,当我们的光源坐标位置(x,y,z,w)中的w为0时代表我们的光为局部光源! T) D; e( \3 N1 u4 k3 {
资料:错误/ B* k1 i6 V! O$ L/ A P. G
6 ~0 P: H) Y2 _1 S, y4 K3 V2 G& i
45.OpenGL坐标系统和Windows程序的坐标系统方向完全一致
9 |+ ~6 @6 C% g: W4 n资料:错误
( P+ h5 t6 m& j) b4 b/ ?' ~. [9 v2 o% A
$ ]5 u' l5 C0 A6 D7 W9 A46.为了使用mipmap,必须提供全系列的大小为2的整数次方的纹理图像,其范围从2*2到纹理的最大单元
( f0 U, a# r' \资料:错误
. \7 y4 u" Q0 z, h. g2 \ c6 j7 O; L t K( B
47.已知两个向量,可以通过运算V1^.V^2获得它们所在平面的法线5 I+ J( h, ^/ O
资料:错误' z) a K' _& ~
* W# ^: ~; x$ U' F+ w9 d
48.矩阵[cosA,-sinA;sinA,cosA]实现对二维空间上的图元的的逆时针旋转" t, M9 s+ T) \. b6 J, D h# {/ t( j
资料:正确
, T) g5 r( m* P( M3 J. r2 l, G% a( m8 W6 n6 V6 m8 y0 ]
49.在光栅屏幕中,我们的锯齿效果可以通过各种优化技术完全消除
* A& F3 a+ o: \0 @: Z资料:错误6 W* H" C% n9 r5 [
$ _6 L' |! x" |: m* m50.glDrawPixels函数被调用时,数据首先根据当前生效的像素存储模式从内存进行解包,接着执行像素传输操作。
e: l; O8 u, n资料:正确* i& C1 X2 K# s5 z+ F$ D
1 }- R) i, ~; U" G' q
: P0 H; a4 v+ D. A6 d- o s
5 K5 H: A5 T2 }# K
* u# _0 r W1 B( t8 s+ z3 [! z$ D3 ^: N' x; y, H
" ^1 g1 K1 E1 ~9 r
1 p s. Y" ~$ f* s6 P
/ }0 e8 J+ D8 G1 ^ c
+ ?; ^1 X% K; R' G4 ?
, c* O7 [( e) u) F. x; d, m! h+ e* E! i- F1 W2 ]3 |
4 A/ w$ j$ z3 Z2 L' E |
|