1. SER332
Introduction to Graphics and
Game Development
Lecture 26:
Final Review
Javier Gonzalez-Sanchez
javiergs@asu.edu
PERALTA 230U
Office Hours: By appointment
2. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 1
Disclaimer
These slides provide examples of common questions
They are NOT comprehensive
3. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 2
Viewports
• Divide the screen in two vertical view ports
• Or, add a second viewport to show the score of a
game
4. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 3
OpenGL
• Write a short programming segment that draws the
triangle fan shown below.
• You do not have to worry about setting projections,
opening windows, setting the camera,
transformations, …. Just the code to draw the
triangle fan. Make sure triangles are in
counterclockwise order
(0,1)
(-3,3)
(-1,5)
(1,4)
(3,2)
5. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 4
OpenGL
glLoadIdentiy();
glTranslatef(10, 0, 0);
glRotatef(45, 0, 0, 1);
// draw a square from 0,0 to 10,10.
6. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 5
Vector Programming
• Given the arrays
vec3f vertices[NUM_VERTICES]; // float
vec3i indices[NUM_TRIANGLES]; // integer
• Write a procedure that returns the per-vertex
normal vector for a vertex with number index
vec3 computeVertexNormal(int index) {
}
7. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 6
Vector Programming
• Given the arrays
vec3f vertices[NUM_VERTICES]; // float
vec3i indices[NUM_TRIANGLES]; // integer
• Write a procedure that returns the per-face normal
vector for a face with number index
vec3 computeFaceNormal(int index) {
}
8. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 7
Mesh Data Structure
Define a mesh data structure able to store:
• vertex/faces,
• normals per face, and
• texture coordinates.
You worked with one like this in your project 4.
9. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 8
Mesh Data Structure
• Store values in the mesh data structure to define a
right-angled triangle at coordinates [0, 0, 0]. Legs
are aligned to axis X and Y, respectively. Its length is
50.
10. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 9
Textures
• Given the BMP image shown below. Store values in
the mesh data structure to apply a texture to the
triangle defined above and make it looks like shown
in the second image below
BMP file Model
11. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 10
Textures
Create a display list for a cylinder using triangles with a
texture as done in the previous question.
12. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 11
Materials
• Write the code to create a triangle that has the
highest emissive values. It should be the brightest
object in any scenario.
13. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 12
Materials
• Write the code to create a triangle and apply
Emerald material
14. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 13
Materials
a) Is the shininess value for chrome greater than or
lower than rubber? __________________
b) Are the diffuse constants for pearls greater than or
lower than plastic (black)? __________
c) Are the specular constants for metals greater than
or lower than pearl? ________________
15. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 14
Procedural Textures
Which of the next equations is useful for (a) clouds, (b) marble, (c) fire
16. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 15
Navigation (Assignment 4)
• Make the camera move autonomously from point
A to point B. Given that the method scenario()
return a display list with the four buildings described
below. Buildings are 100x100x100 units
17. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 16
Display List
Create a display list for: spaceship, ufo, asteroid
18. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 17
Animation
• Move the spaceship using the keyboard
• Move asteroids randomly
• Move ufo around the screen
19. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 18
OpenGL
• What does OpenGL stand for?
• What does GLU stand for?
• What does GLUT stand for?
• Give three OpenGL commands as example?
20. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 19
Hardware
Define the following terms:
• refresh rate,
• resolution,
• frame buffer,
• pixel,
• aspect ratio,
• depth of the frame buffer
21. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 20
Lines
• Give an example of a line equation?
• Give a line equation for the line l1. The line l1
contains the points (5,5) and (15,10).
22. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 21
Linear Algebra
• Given three vertices of a triangle (v1, v2, v3), how
can you compute the normal vector for v2?
23. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 22
Coordinate Systems
• What is a right handed coordinate system?
• What is a left handed coordinate system?
• What is the difference between a right handed and
a left handed coordinate system?
24. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 23
Fonts
• Give one advantage and one disadvantage of a
bitmap font.
• Give one advantage and one disadvantage of an
outline font.
25. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 24
Frame Buffer
1) How many bits does a frame buffer need for:
o 1024 x 768 resolution
o RGB values and alpha values and 8 bit z- buffer
2) How many bytes does a frame buffer need for:
o 1000 x 1000 resolution
o RGBA values
o Double buffering
26. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 25
OpenGL
• Write the glut command to request a display mode
that has: double buffering and RGBA color values.
• Write the glut command to request a display mode
that has: single buffering and RGB color values
27. Javier Gonzalez-Sanchez | SER332 | Spring 2017 | 26
Projection
• Camera Point (3,4,5)
• Look at Point (6,3,2)
• “up” vector (0,1,0)
29. SER332 Introduction to Graphics
Javier Gonzalez-Sanchez
javiergs@asu.edu
Spring 2017
Disclaimer. These slides can only be used as study material for the class SER332 at ASU. They cannot be distributed or used for another purpose.