1 / 17

Basics of 3D Math in Games

Basics of 3D Math in Games. Matthew Christian. Overview. About Me Introduction to Linear Algebra Vectors Matrices Quaternions Links. About Me. Student Applied Mathematics and Computer Science: Software Development at UW-Stout Degree

Download Presentation

Basics of 3D Math in Games

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Basics of 3D Math in Games Matthew Christian

  2. Overview • About Me • Introduction to Linear Algebra • Vectors • Matrices • Quaternions • Links

  3. About Me • Student • Applied Mathematics and Computer Science: Software Development at UW-Stout • Degree • Associates Degree in Computer Programming from Northcentral Technical College • Gamer • Beaten over 140 games (Yes I have a list) • Independent Game Developer (spare time) for 5 years • XNA developer for around a year and a half

  4. Intro to Linear Algebra • Definition • The part of algebra that deals with the theory of linear equations and linear transformations • In which the specific properties of vector spaces are studied (including matrices) • This is NOT about ‘Linear Algebra’, it’s about the gaming version of ‘Linear Algebra’

  5. Vectors • Definitions • A variable quantity that can be resolved into components • A straight line segment whose length is magnitude and whose orientation in space is direction • Vectors are simple row-based data structures • In XNA: • Microsoft.XNA.Framework • Vector2, Vector3, Vector4 • public Vector2 ( float x, float y );

  6. Cartesian Example Let P be a point at (2,2) Then the vector p can be described as: p = [2, 2] Ex: [2,1] , [1,3]

  7. Vector Operations • Vector Addition • Add terms in similar positions • Vector “Subtraction” • Remember, vectors represent directions • How to subtract direction? Add negative direction • Scalar-Vector Multiplication • Scaling a Vector up or down is easy, multiply each element by the scalar • Similar for Division (multiply by scalar fraction) • Vector Matrix Multiplication • See later

  8. More Advanced Operations • Dot Product • Helps determine the angle between 2 vectors • Cross Product • Creates another vector perpendicular to the other two vectors (normal) (3D) • Normalizing • Magnitude (length)

  9. Basic Uses for Vectors • Storing values (positions) • Directions (move direction, collision direction) • Demo(s) • Simple Vectors • Vector Collision

  10. Matrices • Definition • A rectangular array of quantities… set out by rows and columns, treated as a single element and manipulated accordingly… • For us programmers, • Multi-dimensional arrays • A column is a 3x3 matrix if it has 3 rows and 3 columns • Nxm matrix is a matrix with n rows and m columns

  11. Anatomy of a Matrix • Square Matrix • N-rows, N-columns • Main Diagonal • Runs from upper left corner down (includes non-square matrices) • Diagonal Matrix • Matrix where all entries outside of the main diagonal are zero (main diagonal entries can be zero) • Identity Matrix • The matrix equivalent of multiplying by 1; 1’s across the main diagonal with zero’s elsewhere (nxn sized)

  12. 3D Rendering • 3D Rendering is possible BECAUSE of matrices • ModelViewProjection Matrix • Model Matrix – Matrix describing the position/rotation/scale of your object • Order is important (multiply in order of operations) • View Matrix – Camera position, target, up direction (orientation) • Projection Matrix – View frustum ‘squished’ (your monitor doesn’t display ‘3D’)

  13. Uses for Matrices • Math Demos • Transformations! • In XNA • Microsoft.XNA.Framework • Matrix • 4x4 matrix (M11 – M44) • Demos • MatrixTransformations • Camera Demo (from Tutorials)

  14. Quaternions • Quaternions are compact descriptions of rotations… • Quaternions DON’T Prevent Gimbal Lock • Matrices use Euler numbers to calculate rotations which ‘cancels’ a direction • After calculating, you can only rotate on the Z-Axis • In all honesty, I’m still researching it!

  15. Quaternions (cont'd) • (X, Y, Z, W) • (X, Y, Z) is the axis to do rotations about • (W) is the amount to rotate about that axis • Arbitrary Axis • Not global axis

  16. Uses for Quaternions • Demo • Quaternion Camera

  17. Questions? …Links • http://www.insidegamer.org/XnaTutorials.aspx • My tutorials (specifically Tutorial 4) • http://www.ziggyware.com/readarticle.php?article_id=54 • Specifically about Vectors in XNA • http://hyperphysics.phy-astr.gsu.edu/hbase/vect.html • Some Vector operations • http://geekswithblogs.net/CodeBlog • My (seldom updated) Blog

More Related