180

# SER332 Lecture 25

Introduction to Graphics and Game Development
Final Review
(201804)

April 26, 2018

## Transcript

1. jgs
SER332
Introduction to Graphics and Game
Development
Lecture 25: Final Review
Javier Gonzalez-Sanchez
[email protected]
PERALTA 230U
Office Hours: By appointment

2. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 1
jgs
Disclaimer
These slides provide examples of common questions
They are NOT comprehensive

3. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 2
jgs
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 2018 | 3
jgs
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 2018 | 4
jgs
OpenGL
glTranslatef(10, 0, 0);
glRotatef(45, 0, 0, 1);
// draw a square from 0,0 to 10,10.

6. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 5
jgs
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) {
}

7. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 6
jgs
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) {
}

8. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 7
jgs
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 2018 | 8
jgs
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 2018 | 9
jgs
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 2018 | 10
jgs
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 2018 | 11
jgs
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 2018 | 12
jgs
Materials
§ Write the code to create a triangle and apply Emerald material

14. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 13
jgs
Materials
§ Is the shininess value for chrome greater than or lower than rubber?
__________________
§ Are the diffuse constants for pearls greater than or lower than plastic
(black)? __________
§ Are the specular constants for metals greater than or lower than pearl?
________________

15. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 14
jgs
§ 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

16. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 15
jgs
Display List
§ Create a display list for: spaceship, ufo, asteroid

17. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 16
jgs
Animation
§ Move the spaceship using the keyboard
§ Move asteroids randomly
§ Move ufo around the screen

18. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 17
jgs
OpenGL
§ What does OpenGL stand for?
§ What does GLU stand for?
§ What does GLUT stand for?
§ Give three OpenGL commands as example?

19. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 18
jgs
Hardware
Define the following terms:
§ refresh rate,
§ resolution,
§ frame buffer,
§ pixel,
§ aspect ratio,
§ depth of the frame buffer

20. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 19
jgs
Linear Algebra
§ Given three vertices of a triangle (v1, v2, v3), how can you compute the
normal vector for v2?

21. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 20
jgs
Matrix
§ Subtract
§ Dot Product
§ Cross Product
§ Multiply

22. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 21
jgs
Fonts

23. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 22
jgs
Frame Buffer
How many bits does a frame buffer need for:
§ 1024 x 768 resolution
§ RGB values and alpha values and 8 bit z- buffer
How many bytes does a frame buffer need for:
§ 1000 x 1000 resolution
§ RGBA values
§ Double buffering

24. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 23
jgs
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

25. Javier Gonzalez-Sanchez | SER332 | Spring 2018 | 24
jgs
Projection
§ Camera Point (3,4,5)
§ Look at Point (6,3,2)
§ “up” vector (0,1,0)

26. jgs
SER332 Introduction to Graphics
Javier Gonzalez-Sanchez
[email protected]
Spring 2018
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.