14

I have had absolutely no trouble learning C++ and object oriented programming through books. However, I really want to head into 3D game development but I feel my math skills are pretty underdeveloped for this. I want to understand dot products, cross products, normals, vectors etc. I also hear calculus is very important for this too, aswell as linear algebra.

I also want to be able to understand how to implement fustrum culling, octrees, 3D lighting, etc. Because right now, when I follow tutorials for these things I feel like I'm just copying code without at all understanding the underlying mathematics.

Unfortunately the Computer Science program I did in College did not focus on math but rather programming, hardware, and networks. Therefore I have never taken a Calculus course.

What book would be ideal to understand these concepts?

Thanks

jmasterx
  • 52,639
  • 96
  • 311
  • 557

5 Answers5

6

Any of the books by Dave Eberly ( http://www.geometrictools.com/ ) like "3D Game Engine Design" or "3D Game Engine Architecture" would be decent places to find this information, directly related to 3D game development. His website contains a wealth of information as well.

Another one that comes to mind is the Realtime Rendering book. ( http://www.realtimerendering.com/ ) And once again the website itself contains a wealth of information.

The best advice I can give you though is to apply what you read. Seeing these concepts in action will give you even more of a grasp of the subject once you've understood the theory.

Bart
  • 19,692
  • 7
  • 68
  • 77
  • 3
    "than studying abstract linear algebra will" - I somewhat disagree, if you don't know the abstract stuff then you may as well copy and paste tutorial code; you'll just make a non-reusable mess writing math code otherwise. – peter karasev Apr 16 '11 at 22:26
  • Completely agree. I meant to say that the practical value of applying what you learn is invaluable in understanding some of the theory. I studied linear algebra myself before ever getting into computer graphics. I just noticed that practically applying some of the concepts helped me massively in fully grasping what I more or less understood before. I did not at all mean to devalue studying abstract math concepts or to suggest to blindly implement or copy what's out there. :) Thanks for the comment. – Bart Apr 16 '11 at 22:32
5

"OpenGL redbook" has some good stuff from a very applied perspective: http://www.amazon.com/OpenGL-Programming-Guide-Networking-Technology/dp/0321173481

Opposite end of the spectrum, if you want to be able to just sit down and derive your own solution to semi-abstract problems, this is a great linear algebra book: http://www.amazon.com/Linear-Algebra-Applications-Differential-Equations/dp/0471174211

"when I follow tutorials for these things I feel like I'm just copying code"

Its hard to replace the pressure of being forced to do math problems in a university setting ... you'll have to push yourself to reap the benefits, and relax with the desire of making something complex work in code. Pick something extremely simple, such as drawing XYZ axes and visualizing matrix transformations, and do it from math/scratch without any API calls.

peter karasev
  • 2,578
  • 1
  • 28
  • 38
  • You probably want to get a hold of either Matlab or (free/open-source) Octave ... then you can open a shell and try things out quickly to verify your understanding. Octave is in the ubuntu packages. Matlab is better but not free. – peter karasev Apr 16 '11 at 22:32
3

Mathematics for 3d game programming and computer graphics by Eric Lengyel (charls river media inc.).

Im using this book from time to time as it covers all the linear algebra taylored to 3d computations with graphics. From basics of LA, to transforms, geometry, ray tracing, illumination math, visibility, collision detection (the tricky part) as well as more advanced topics like linear/rotational physics, fluid simulation and polygonal techinques.

Its emphasis is on understanding the math towards implementation.

count0
  • 2,537
  • 2
  • 22
  • 30
2

What I found very good and I'm still getting back to it from time to time to refresh things up is 3D Math Primer for Graphics and Game Development. Also regarding calculus and linear algebra I find very good for getting back ones college course memory the resources at Khan Academy... sometimes it puts a nice practical perspective on things and the guy has has a real talent at making the subjects fun and entertaining.

celavek
  • 5,575
  • 6
  • 41
  • 69
0

You wonna find a great Linear Algebra book. Check out this question for suggestions for books and free online courses:

Books & resources to teach myself Linear Algebra

There's a great course available from MIT on www.academicearth.org aswell:

http://academicearth.org/courses/linear-algebra

Community
  • 1
  • 1
Simon Stender Boisen
  • 3,413
  • 20
  • 23