课程名称︰游戏设计
课程性质︰选修
课程教师︰陈炳宇
开课学院:电资学院、管理学院
开课系所︰资工系、资管系
考试日期(年月日)︰2014.11.10 ~ 2014.11.17
考试时限(分钟):2014.11.10 公布考题, 2014.11.17 上课结束前email回助教信箱
是否需发放奖励金:是
(如未明确表示,则不予发放)
试题 :
Game Programming Midterm Exam
2014 Fall
Deadline: 11/17 (Mon.) 17:20
1. As shown in the right figure, define four corner points (0, 0), ↑
(1, 0), (0, 1), (1, 1) on the xy-coordinate system, and the ├─┐
corresponding real values A, B, C, and D at these points, │ │
respectively. Suppose that we compute the interpolated value at └─┴→
a point (x,y) (where 0 < x,y < 1) by applying bilinear
interpolation over the square region. Note that the bilinear interpolation
is to compute an interpolated value by applying linear interpolation along
the x-coordinate axis first and then along the y-coordinate axis. Answer
the following questions.
(1) Let f(x,y) be the interpolated value at (x,y), where 0 < x,y < 1.
Express the value of f(x,y) using x, y, A, B, C, and D.
(2) Find A, B, C, and D if f(0, 0) = 0, f(3/4, 1/4) = 2, f(1/4, 3/4) = -1,
and f(3/4, 3/4) = 3.
Let us now consider the isolines defined by f(x,y) = H for some fixed real
value H.
(3) When the isolines defined by f(x,y) = H intersect with the square
region, the equation f(x,y) = H represents a hyperbola (except for some
degenerate cases). Express the equations of the two asymptotes of the
hyperbola, and the interpolated value at the intersection point of
these two asymptotes, using A, B, C, and D.
2. According to triangular area coordinate system of a 3D triangle with
vertices, p0(x0, y0, z0), p1(x1, y1, z1), and p2(x2, y2, z2), (a0, a1, a2)
is the coordinate of any point on the plane of the triangle. If the point
on the plane locates within the triangle, the sign of the coordinate is
(+, +, +). Please mark the sign of the zone I, II, III, IV, V, VI in the
figure.
图:http://i.imgur.com/PhBAswv.png
3. Please explain the differences between continuous and discrete Level of
Details (LOD), and design an algorithm to achieve LOD.
4. Please describe the characteristics of game control using keyboard in
PC games.
5. In separating axis algorithm, how can we identify that there're existing an
axis (2D) or a plane (3D) can separate these two convex objects?
图:http://i.imgur.com/LkQiB3K.png
6. Please describe the sub-system of a combat system for a 3D action game.
7. Gimbal lock is a strong reason that we apply rotation mechanism by equation
instead of Euler angles. Please describe the situation of gimbal lock and
give a series of configuration of Euler angles to cause it.
8. Please use the following data structure to write C/C++ code to search the
triangles (faces) with a vertex, v0:
struct HalfEdge {
Vert *vert; // vertex at the end of the half-edge
HalfEdge *pair; // oppositely oriented adjacent half-edge
Face *face; // face the half-edge borders
HalfEdge *next; // next half-edge around the face
};
struct Vert {
float x;
float y;
float z;
HalfEdge *edge; // one of the half-edges emanating from the vertex
};
struct Face {
HalfEdge *edge; // one of the half-edges bordering the face
};