Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Math used in 3D (Game) Engine Programming

I'd like to get an idea what kind of math is typically necessary for 3D game engine programming? Any specific math (such as vector geometry) or calculation algorithms (such as fast fourier transforms), or is this all abstracted away with DirectX/OpenGL so that highly complex math isn't really necessary any more?

like image 850
Alex Avatar asked Aug 24 '09 03:08

Alex


People also ask

What math is needed for 3D graphics?

The most important topics for starting out in graphics are Linear Algebra and Trigonometry. We usually describe the location of a 3D graphics object according to its x, y and z coordinates. We can then apply the following operations on a 3D object: translate (move), scale (change size), and rotate.

How is math used in 3D?

3D graphics system operates in a mathematical space. The space used in most of the 3D graphics is called 3D Cartesian coordinate. The Cartesian coordinate system uses a series of intersecting line segments to describe a location with respect to the origin.

Is math used in game programming?

Math In ProgrammingWhile math is useful even in the art side of game development, it's the programmers who make use of it to create the characters, mechanics, and more. Without math, programmers wouldn't be able to make objects in the game do even the simplest of things, including movement.

What math do I need for game development?

Game Developer As a game developer, you will need strong mathematical skills. You must be familiar with linear algebra, calculus, geometry, trigonometry, statistics, etc. Games are complex systems that require a lot of mathematical calculations.


2 Answers

Linear Algebra! Lots of lots of Linear Algebra!

Here are just classes and example situations where you need them

  • Vector - position, velocity, normals
  • Matrix - transformations
  • Quaternion - rotations (great for bone animations)
  • Ray - projectile collision detection
  • Plane - projectile collision detection
  • Frustum - render culling
  • Sphere - render culling, fast collision test
  • Axis-Align Bounding Box - culling, collision tests, spacial partitioning
  • Oriented Bounding Box - collision tests
  • Convex Hull - collision, spacial partitioning
  • etc.

You should start with Vector and Matrix as they will be used everywhere in the engine (graphics, physics, AI, etc.)

like image 135
Aleks Avatar answered Nov 12 '22 14:11

Aleks


Matrices, trig, geometry mostly and a bit of linear algebra

Take a look here http://www.essentialmath.com/

like image 30
Martin Beckett Avatar answered Nov 12 '22 14:11

Martin Beckett