geometric objects and basic transformations
DESCRIPTION
Geometric Objects and Basic Transformations. Paul Taylor 2010. 3D Coordinate systems. DirectXOpenGL. http://alt.pluralsight.com/wiki/default.aspx/Craig.DirectX/CoordinateSystemsTutorial.html. xMax , 0. 2D Coordinates in Windows. 0,0. 0, yMax. xMax , yMax. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/1.jpg)
Geometric Objects and Basic Transformations
Paul Taylor 2010
![Page 2: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/2.jpg)
3D Coordinate systems
http://alt.pluralsight.com/wiki/default.aspx/Craig.DirectX/CoordinateSystemsTutorial.html
DirectX OpenGL
![Page 3: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/3.jpg)
2D Coordinates in Windows0,0
xMax, yMax
0, yMax
xMax, 0
![Page 4: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/4.jpg)
• In both OpenGL and Direct3D Z is the depth of the viewport!!!!hence the Z-buffer (Depth Buffer)
![Page 5: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/5.jpg)
• Z Buffer Depth– Due to the scalar nature of the Pyramid Viewport– Depth precision drops as the distance between
the Near and Far planes are moved apart– This will result in more artefacts and visual errors
![Page 6: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/6.jpg)
Using the Z Buffer
glEnable(GL_DEPTH_TEST);This enables the Z buffer, but is entirely useless
without: glDepthFunc(GL_LEQUAL);You’ll find that the default for the Depth buffer
usually doesn’t work.
![Page 7: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/7.jpg)
Viewport types
• Orthogonal– No depth perception (scaling)
• Projected– This is the typical 3D viewport
• Objects \ Vertices are scaled and rotated based on the ‘virtual’ distance from the screen
![Page 8: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/8.jpg)
Viewport Creation
• glOrtho(left, right, bottom, top, near, far)• gluOrtho2D
– Sets the Near and Far values to 1.0• (Only renders objects with z=1.0)• Same as glOrtho with near & far = 1.0
• GluPerspective(…)– Creates the Viewport Frame based on a FOV
• GlFrustrum(…) – Create the Viewport in a more numerical way
• Create your viewport matrix manually if you like!
![Page 9: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/9.jpg)
Matriceis
• GL_PROJECTION• GL_MODEL_VIEW• GL_TEXTURE_MATRIX
![Page 10: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/10.jpg)
Matrix Math (Joy!)
• Matrix Addition• Matrix Multiplication• Translation and Rotation Matrices
![Page 11: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/11.jpg)
Matrix Addition1 2 3
4 5 6
7 8 9
A B C
D E F
G H I+ =1+A 2+B 3+C
4+D 5+E 6+F
7+G 8+H 9+I
4 0 0
0 6 0
0 0 9
3 0 0
0 1 0
0 0 0+ =7 0 0
0 7 0
0 0 9
![Page 12: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/12.jpg)
Matrix Multiplication Row,Colum1 2 3
4 5 6
7 8 9
A B C
D E F
G H Ix =1A + 2D + 3G
1B + 2E + 3H
1C + 2F + 3I
4A + 5D + 6G
4B + 5E + 6H
4C + 5F + 6I
7A + 8D + 9G
7B + 8E + 9H
7C + 8F + 9I
4 0 0
0 6 0
0 0 9
3 0 0
0 1 0
0 0 0x =12 0 0
0 6 0
0 0 0
![Page 13: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/13.jpg)
That’s great, what do I need them for?
Translation Matrices• Coordinates from Object Coordinates to world
CoordinatesObject Translation World
Typically we use a Matrix Multiplication
100 0 0
0 20 0
0 0 -100+ =110 0 0
0 30 0
0 0 -100
10 0 0
0 10 0
0 0 0
![Page 14: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/14.jpg)
Scalar MatricesObject Scalar (1/10) World
This can be done by glScalef(x,y,z);
100 0 0
0 100 0
0 0 100
0.1 0.1 0.1
0.1 0.1 0.1
0.1 0.1 0.1x =10 0 0
0 10 0
0 0 10
![Page 15: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/15.jpg)
Translation by Multiplication
• This is a computationally longer way to do a simple translation
• glTranslatef(x,y,z);1 0 0 x
0 1 0 y
0 0 1 z
0 0 0 1
x =1 0 0 x
0 1 0 y
0 0 1 z
0 0 0 1
1 0 0 10
0 1 0 5
0 0 1 10
0 0 0 1
![Page 16: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/16.jpg)
Rotational Matrices
http://en.wikipedia.org/wiki/Rotation_matrix#Dimension_threeA Rotation around the unit vector u = (ux,uy,uz)
glRotatef(Theta,x,y,z);
![Page 17: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/17.jpg)
Putting it all together
Typically you will want to:TranslateRotateScale
Matrix Multiplication is the inverse to the logical order!
So:Scale then Rotate, then Translate
![Page 18: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/18.jpg)
Retrieving Matrices
• This is slow!• The Video Matricies are 4x4 hence:GLfloat matrix[16];glGetFloatv(GL_PROJECTION_MATRIX, &matrix[0]);matrix =
Simillarly you can do this for GL_MODEL_VIEW and GL_TEXTURE_MATRIX
Setting your own Matrixvoid glLoadMatrixf( &matrix[0]);
0 4 8 C1 5 9 D2 6 A E3 7 B F
0 1 2 3 4 5 6 7 8 9 A B C D E F
![Page 19: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/19.jpg)
BG115 has
XNA
![Page 20: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/20.jpg)
Silent Hill 5 (Homecoming)
From Jason Allen (Lead Designer)
…” We made a decision during development to support invert aim and not invert camera. Unfortunately none of the team nor any of our test group actually had a preference for playing with an inverted camera, so the issue of its omission never came up.”…
http://72.14.235.132/search?q=cache:ylhQ9HOmPg4J:gamesblog.ugo.com/index.php/gamesblog/more/silent_hill_homecomings_jason_allen_on_inverted_aim/+silent+hill+5+no+camera+invert&cd=3&hl=en&ct=clnk&gl=au&client=firefox-a
![Page 21: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/21.jpg)
Matrix Mathematics Continued
• Matrix Cross Product
• We use this to create Normals
![Page 22: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/22.jpg)
• Matrix Dot Product
![Page 23: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/23.jpg)
• Normalising Matrcies
![Page 24: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/24.jpg)
HAVE YOU REGISTERED TO ATTEND THE LARGEST ENGINEERING EXPO IN AUSTRALIA?
Come along to the BIGGEST FREE Engineering Expo on 25 March from 2.00pm to 7.00pm at Etihad Stadium, Docklands (Enter via Gate 9).
This event will provide you access to;• 70+ Exhibitors • Recruitment Opportunities• Career and Professional Development Advice • Engineering Industry Insight &Updates on Engineering Projects• Knowledge on Engineering Capability & Leadership Information• FREE Seminars
You must pre-register to attend.
For more information, please visit www.engineeringexpo.org.au
Don’t miss this showcase of Engineers that ‘Make it So’
This event is proudly sponsored by General Electric and Engineering Education Australia.
![Page 25: Geometric Objects and Basic Transformations](https://reader035.vdocuments.net/reader035/viewer/2022062218/56816374550346895dd450c7/html5/thumbnails/25.jpg)
LIST OF EXHIBITORS AT 2010 ENGINEERING EXPOAbigroup Contractors
ADVEA Engineering Pty. Ltd.
Aecom
Aker Solutions Australia
Alcoa Of Australia
Arup
ATC Williams
Aurecon
Australian Institute Of Project Management
Australian Water Association
Baulderstone
Beca Pty Ltd
BMD
BMT Design & Technology Pty Ltd
Box Hill Institute Of TAFE
BP
Chisholm Institute
CitiPower & Powercor
City West Water
Citywide Service Solutions
Civil Contractors Federation
Coffey International Limited
CPG Australia
Dalton Consulting Engineers
Deakin University
Defence Force Recruiting
Defence Materiel Organisation
Engineering Education Australia
Fluor Australia Pty Ltd
Fulton Hogan
General Electric
GHD
GOULBURN-MURRAY WATER
GTA Consultant
Halcrow
Hatch
Holmesglen Institute
IAESTE Australia
Invensysy Rail Pty Ltd
Irwinconsult
Jemena
John Holland Group
K.B.R
La Trobe University
Leighton Contractors
Melbourne Water
MWH Global
OMCS International
Parsons Brinckerhoff
PSN
QR
Rio Tinto
RMIT English Worldwide
RMIT University
Siemens
Sinclair Knight Merz
SMEC / SMEC Urban
South East Water Limited
SP AusNet
Swinburne University of Technology
Teach For Australia
Thales
UGL
University of Ballarat
University Of Melbourne
URS
VicRoads
Victoria University - School Of Engineering & Science
Wood & Grieve Engineers
Monash University Engineering