Download presentation
Presentation is loading. Please wait.
Published byKathlyn Walters Modified over 9 years ago
1
3D Computer Graphics An oh so brief introduction
2
What you need to know… There’s really only a couple of things –Coordinate systems –Matrices –3D → 2D transformation
3
Homogeneous Coordinates A computational convenience
4
Coordinate systems To represent a location (point) in 3D space one needs 3 numbers (X, Y, Z) Each value specifies a distance along the respective coordinate axis The resultant location (point) is the sum of the axis unit vectors multiplied by the values
5
Manipulating points As we will see soon, manipulations of points in 3 space are generally performed using matrix notation But, as it turns out, this is not readily done using points represented by 3 values Something better is needed…
6
Homogeneous coordinates Homogeneous coordinates were introduced as a means of facilitating matrix-based transformations applied to points It is a 4D representation of a 3D point (X, Y, Z) → (X, Y, Z, 1.0) (X/W, Y/W, Z/W) → (X, Y, Z, W) That’s really all you need to know about homogeneous coordinates
7
Matrix Operations Uses of Matrix Multiplication
8
Translation To move a point (X, Y, Z) by amounts (x, y, z):
9
Scale To “scale” a point (X, Y, Z) by sizes (x, y, z):
10
Rotate X To “rotate” a point (X, Y, Z) about the X axis by an angle Θ:
11
Rotate Y To “rotate” a point (X, Y, Z) about the Y axis by an angle Θ:
12
Rotate Z To “rotate” a point (X, Y, Z) about the Z axis by an angle Θ:
13
Shear X To “shear” a point (X, Y, Z) int the X direction by an angle Θ:
14
Shear Y To “shear” a point (X, Y, Z) in the Y direction by an angle Θ:
15
Shear Z To “shear” a point (X, Y, Z) in the Z direction by an angle Θ:
16
Combining matrices Translate to origin Rotate Θ about X Rotate Θ about YRotate Θ about Z Rotate -Θ about Y Rotate -Θ about X Translate to point
17
Problems Rotation based on matrix operations [potentially] suffers some afflictions –Difficult to interpolate between rotations when you want to create a smooth sequence –Gimbal lock – when one of the three axes rotates to align with another essentially rendering it redundant (reduces the number of degrees of freedom) –Non-linear speed of rotation – objects don’t rotate smoothly with constant velocity These afflictions are due to the use of Euler angles and trigonometric functions that don’t always behave well (sign changes at quadrant changes, asymptotic behavior)
18
Quaterions Another method for performing rotations Based on complex arithmetic (complex numbers – not complicated numbers) Straight forward conversion from Euler (matrix based) operations to Quaternions The underlying concepts are nasty The implementation is easy –Just a bunch of multiplications and additions Handles the constant velocity rotation issue –SLERP (Spherical LinEaR interPolation) –Ken Shoemake is credited for coming up with the approach
19
3D → 2D Transformation
20
Projections – Orthographic Projectors are perpendicular to the projection plane Project plane is parallel to one of the principal faces
21
Projections – Axonometric Projectors are perpendicular to the projection plane Project plane has any desired orientation with respect to the object faces
22
Projections – Oblique Projectors are arbitrary with respect to the projection plane
23
Projections – Perspective Projectors converge at the center of projection
24
Projections Each has advantages and disadvantages dealing with –Retention of angles between lines –Retention of distances between points –Visibility of surfaces –Realization via camera models –Realistic synthesis of scenes
25
Triangulation Because you asked
26
Triangulation Problem: given a set of points, find a set of triangles that connects those points in a mesh Solution: computational geometry provides us with the Voronoi Diagram and (it’s dual) the Delaunay Triangulation
27
Delaunay Triangulation For a given set of points –Find a set of edges satisfying an "empty circle" property: –for each edge we can find a circle containing the edge's endpoints but not containing any other points –Deals with
28
Voronoi Diagram For a given set of points –Every point in the region around a point is closer to that point than to any of the other point
29
Inscribe and Circumscribe Inscribe –Given a triangle find a circle that fits inside it Circumscribe –Given a triangle find a circle that passes through all three vertices triangle inscribe circumscribe
30
Delaunay, circles, Voronoi
31
Summary This is all stuff that is fundamental to computer graphics (with the possible exception of triangulation – that’s computational geometry) –Typical 1 semester undergraduate course spends most of it’s time on these topics –Lots of good books on this material
32
Bibliography Interactive Computer Graphics 4 th edition –Angel –Addison-Wesley Computer Graphics Principles and Practice 2 nd edition –Foley, van Dam, Feiner, Hughes –Addison-Wesley Java 2D Graphics –Knudsen –O’Reilly Computer Graphics for Java Programmers –Ammeraal –Wiley
33
Bibliography Essential Mathematics for Games & Interactive Applications –van Verth, Bishop –Morgan Kaufmann Visualizing Quaternions –Hanson –Morgan Kaufmann 3D Game Engine Design –Eberly –Morgan Kaufmann
34
Bibliography Game Physics –Eberly –Morgan Kaufmann Killer Game Programming in Java –Davison –O’Reilly Developing Games in Java –Brackeen, Barker, Vanhelsuwe –New Riders Software Engineering and Computer Games –Rucker –Addison-Wesley
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.