CIS 350 - PowerPoint PPT Presentation

About This Presentation
Title:

CIS 350

Description:

There are questions you should be able to answer, if not: the answers are given, too. ... Glut. OpenGL Matrices. Coordinate Systems (OCS/ECS) Viewing volume. Open GL ... – PowerPoint PPT presentation

Number of Views:18
Avg rating:3.0/5.0
Slides: 127
Provided by: knightCi
Category:
Tags: cis | glut

less

Transcript and Presenter's Notes

Title: CIS 350


1
CIS 350 I Game Programming Instructor Rolf
Lakaemper
2
Review and Questions
3
About
The following slides give a review over most of
the topics we talked about. There are questions
you should be able to answer, if not the answers
are given, too.
4
German
We learned some German words
5
German
  • So
  • Whats the meaning of
  • Erfrischungskaltgetränk ?
  • Joystick
  • Soda
  • Flower Power

6
German
  • So
  • Whats the meaning of
  • Erfrischungskaltgetränk ?
  • Joystick
  • Soda
  • Flower Power

7
History
History of Computer Games
8
History
Which of the following games can be considered to
be the first computer game ?
9
History
  • Mission Elevator
  • Tennis for Two
  • Pong
  • Halo 2

10
History
  • Mission Elevator
  • Tennis for Two (1958)
  • Pong
  • Halo 2

11
History
Which game started the commercial success of
computer games ?
12
History
  • Mission Elevator
  • Tennis for Two
  • Pong
  • Halo 2

13
History
  • Mission Elevator
  • Tennis for Two
  • Pong (1972)
  • Halo 2

14
History
The Sinclair Spectrum, being a British 8 bit
(Z80) computer in 1982, came with a RAM of
15
History
  • 40 Byte
  • 4 kB
  • 16 kB
  • 512 kB
  • 4 MB

16
History
  • 40 Byte
  • 4 kB
  • 16 kB (Graphics included !)
  • 512 kB
  • 4 MB

17
Genres
Game Genres
18
Genres
Name 5 Genres !
19
Genres
  • Adventure (Text/Graphic/Action)
  • Education
  • Fight
  • FPS
  • MMOG
  • Platform
  • Puzzle
  • Racing
  • RPG
  • Simulation
  • Sports
  • Strategy
  • Traditional

20
Fractals
Fractal Landscapes
21
Fractals
  • Definiton of Fractals
  • Self Similarity
  • Fractal Dimension
  • Midpoint Replacement
  • van Koch Snowflake
  • Diamond Square Algorithm

22
Fractals
On which of the following arrays would the DS
algorithm be able to operate ?
23
Fractals
  • 12 x 12
  • 128 x 32
  • 128 x 128
  • 129 x 33
  • 129 x 129
  • 17 x 17 x 17

24
Fractals
  • 12 x 12
  • 128 x 32
  • 128 x 128
  • 129 x 33
  • 129 x 129
  • 17 x 17 x 17

25
Fractals
In a 5 x 5 grid, having the corners
pre-inititialized, what are the coordinates of
the first point computed by the Diamond Step ?
26
Fractals
  • (0,0) denotes the upper left point, rows first.
  • (2,2)
  • (3,3)
  • (2,3)
  • (4,0)

27
Fractals
  • (0,0) denotes the upper left point, rows first.
  • (2,2)
  • (3,3)
  • (2,3)
  • (4,0)

28
3D Math
3D MATH BASICS
29
3D Math
  • Scalar / Dot / Cross Product
  • Transformations- Scaling, Rotation, Translation
  • Homogeneous Coordinate System
  • Projections, Parallel and Perspective

30
3D Math
Which product is needed to scale (stretch) a
vector ?
31
3D Math
  • Scalar
  • Dot
  • Cross

32
3D Math
  • Scalar
  • Dot
  • Cross

33
3D Math
Which product is needed to compute the normal
vector of a plane ?
34
3D Math
  • Scalar
  • Dot
  • Cross

35
3D Math
  • Scalar
  • Dot
  • Cross

36
3D Math
The DOT product can be utilized to
37
3D Math
  • Compute the angle between two vectors
  • Compute the AREA spanned by two vectors
  • Rotate a vector around another

38
3D Math
  • Compute the angle between two vectors
  • Compute the AREA spanned by two vectors
  • Rotate a vector around another

39
3D Math
Which of the following matrices stretches a
vector by factor 3 in all directions ?
40
3D Math
3 0 0
0 3 0
0 0 3
1/3 0 0
0 1/3 0
0 0 1/3
3 1 1
1 3 1
1 1 3
41
3D Math
3 0 0
0 3 0
0 0 3
1/3 0 0
0 1/3 0
0 0 1/3
3 1 1
1 3 1
1 1 3
42
3D Math
Homogeneous Coordinates (gt 4x4 Matrices) are
used to
43
3D Math
  • Rotate a vector without any information about the
    angle
  • Decrease the dimensionality of a vector
  • Represent the translation as a matrix
    multiplication
  • Unify all dimensions

44
3D Math
  • Rotate a vector without any information about the
    angle
  • Decrease the dimensionality of a vector
  • Represent the translation as a matrix
    multiplication
  • Unify all dimensions

45
3D Math
The PARALLEL projection along an axis of the
coordinate system
46
3D Math
  • Reduces the dimensionality from 3D to 2D
  • Increases the dimensionality from 2D to 3D
  • Shows objects being closer bigger than others
    being far away

47
3D Math
  • Reduces the dimensionality from 3D to 2D
  • Increases the dimensionality from 2D to 3D
  • Shows objects being closer bigger than others
    being far away

48
3D Math
The PERSPECTIVE projection
49
3D Math
  • Shows all objects scaled to the same size
  • Increases the dimensionality from 2D to 3D
  • Shows objects being closer bigger than others
    being far away

50
3D Math
  • Shows all objects scaled to the same size
  • Increases the dimensionality from 2D to 3D
  • Shows objects being closer bigger than others
    being far away

51
Open GL
OPEN GL
52
Open GL
  • Primitives
  • Glut
  • OpenGL Matrices
  • Coordinate Systems (OCS/ECS)
  • Viewing volume

53
Open GL
Whats the code for creating a green triangle ?
54
Open GL
glBegin() glColor3f(0.0,1.0,0.0) glVertex3f(x1,
y1,z1) glVertex3f(x2,y2,z2) glVertex3f(x3,y3,z
3) glEnd()
55
Open GL
Assign the following operations to the matrices
they belong to
56
Open GL
Matrices ModelView (MV) Projection (P) Operat
ions define model transformations Clipping Set
camera pose
57
Open GL
Matrices ModelView (MV) Projection (P) Operat
ions define model transformations MV Clipping
P Set camera pose MV
58
Open GL
The transformation by the modelView matrix
affects the
59
Open GL
  • Eye coordinate system
  • Object coordinates
  • Object coordinate system

60
Open GL
  • Eye coordinate system
  • Object coordinates
  • Object coordinate system

61
Open GL
  • The projection matrix should be used for

62
Open GL
  • Camera Pose
  • Viewport Transformation
  • Clipping

63
Open GL
  • Camera Pose
  • Viewport Transformation
  • Clipping

64
Collision
COLLISION
65
Collision
  • Bounding Volumes
  • Separating Axes Theorem
  • kDOPs

66
Collision
  • Bounding Volumes
  • AABB
  • OBB
  • Sphere
  • kDOP

67
Collision
Without using bounding volumes, what is the
complexity of the pairwise collision check
between 2 objects faces ?
68
Collision
O (___)
69
Collision
O (n²)
70
Collision
Which bounding volume is the easiest to compute ?
71
Collision
  • AABB
  • OBB
  • SPHERE
  • kDOP

72
Collision
  • AABB
  • OBB
  • SPHERE
  • kDOP

73
Collision
Having the BV computed, which one leads to the
simplest collision detection ?
74
Collision
  • AABB
  • OBB
  • SPHERE
  • kDOP

75
Collision
  • AABB
  • OBB
  • SPHERE
  • kDOP

76
Collision
Which BV is a good trade off between simplicity
and filling efficiency ?
77
Collision
  • AABB
  • OBB
  • SPHERE
  • kDOP

78
Collision
  • AABB
  • OBB
  • SPHERE
  • kDOP

79
Collision
Which is the easiest way to represent the
halfplanes that define kDOPs ?
80
Collision
  • Linked Lists of Vertices
  • Hessian Normal Form
  • Parameter Form

81
Collision
  • Linked Lists of Vertices
  • Hessian Normal Form
  • Parameter Form

82
Collision
The separating axes theorem demands for how many
directions to check for collisions between 2 AABB
?
83
Collision
  • 6
  • 9
  • 15
  • 27

84
Collision
  • 6
  • 9
  • 15 (33 33)
  • 27

85
Collision Hierarchies
Collision Hierarchies
86
Collision Hierarchies
  • Multiscale Representation
  • AABB/OBB/ Trees
  • Creating Trees
  • Recursive Collision Detection
  • Paper Efficient Collision Detection
  • AABB Trees
  • Deformable Models

87
Collision Hierarchies
A kDOP Tree stores
88
Collision Hierarchies
  • In each node the different halfplanes
    representing the directions
  • Different models in each node
  • The kDOP volumes of a model in different
    granularities

89
Collision Hierarchies
  • In each node the different halfplanes
    representing the directions
  • Different models in each node
  • The kDOP volumes of a model in different
    granularities

90
Collision Hierarchies
The AABB tree of the paper Efficient Collision
Detection read in this class was a
91
Collision Hierarchies
  • Binary tree
  • Balanced tree
  • Christmas tree

92
Collision Hierarchies
  • Binary tree
  • Balanced tree
  • Christmas tree

93
Collision Hierarchies
  • Sorry. My mistake.
  • funny Germans

94
Collision Hierarchies
  • Binary tree
  • Balanced tree
  • Christmas tree

95
Collision Hierarchies
The tree update for deformable models presented
in the paper
96
Collision Hierarchies
  • Changed the topology of the tree
  • Changed the content of the nodes only while
    preserving the topology
  • Was done by recomputing the whole tree

97
Collision Hierarchies
  • Changed the topology of the tree
  • Changed the content of the nodes only while
    preserving the topology
  • Was done by recomputing the whole tree

98
Collision Hierarchies
The intersection test in the paper was sped up
by
99
Collision Hierarchies
  • Using only 6 of the 15 directions needed
  • using assembly language
  • Transforming the model into 2D space

100
Collision Hierarchies
  • Using only 6 of the 15 directions needed
  • using assembly language
  • Transforming the model into 2D space

101
collision between multiple objects
COLLISION BETWEEN MULTIPLE OBJECTS
102
collision between multiple objects
  • Grid Method
  • Sort and Sweep

103
collision between multiple objects
Using Sort and Sweep, objects collide if they
overlap in
104
collision between multiple objects
  • No direction
  • One direction
  • At least 2 directions
  • All directions

105
collision between multiple objects
  • No direction
  • One direction
  • At least 2 directions
  • All directions

106
collision between multiple objects
Game AI, Robots and the Real World
107
AI etc.
  • SOAR / Unreal Engine
  • Robocup Soccer
  • Robocup Rescue
  • Map Building from Laserscans
  • Path Finding Dijkstra / A / Simulated Annealing
  • Robot Wars

108
collision between multiple objects
Which of the following statements is true ?
109
collision between multiple objects
  • A always finds the shortest path
  • Dijkstra always finds the shortest path
  • Dijkstra is faster than A

110
collision between multiple objects
  • A always finds the shortest path
  • Dijkstra always finds the shortest path
  • Dijkstra is faster than A

111
collision between multiple objects
Which of the following statements is true ?
112
collision between multiple objects
  • A is target oriented
  • Dijkstra is target oriented

113
collision between multiple objects
  • A is target oriented
  • Dijkstra is target oriented

114
Game Physics
GAME PHYSICS
115
Game Physics
  • Basics of Newton Physics
  • Time Slicing
  • Overview of Physics Engines
  • Problems of Physics Engines

116
Game Physics
(no questions)
117
Classical AI
Classical AI
118
Classical AI
  • Search Trees
  • MinMax
  • Alpha beta pruning
  • Quiescent Search
  • Iterative Deepening
  • Null Move Forward Pruning

119
Classical AI
(for questions see mini quizzes)
120
Board Games
Techniques for Board Games
121
Board Games
  • Hashing (e.g. for move ordering) Zobrist Keys

122
Board Games
  • Evaluation Functions
  • End Point Evaluation
  • First Order Evaluation (Piece Square Table)

123
Board Games
  • Board Representation
  • Array
  • 0x88
  • BitBoards

124
Game Theory
Game Theory (a VERY brief introduction)
125
Game Theory
  • Prisoners Dilemma
  • Dominant Strategy
  • DS Equilibrium
  • Nash Equilibrium

126
Thats it ! (Das wars !) Bye ! (Tschüß !)
Write a Comment
User Comments (0)
About PowerShow.com