Reddit Reddit reviews Mathematics for 3D Game Programming and Computer Graphics, Third Edition

We found 31 Reddit comments about Mathematics for 3D Game Programming and Computer Graphics, Third Edition. Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Computer Science
AI & Machine Learning
Mathematics for 3D Game Programming and Computer Graphics, Third Edition
Used Book in Good Condition
Check price on Amazon

31 Reddit comments about Mathematics for 3D Game Programming and Computer Graphics, Third Edition:

u/mysticreddit · 5 pointsr/gamedev

Every game programmer should have at least one of these books:

  • Mathematics for 3D Game Programming & Computer Graphics by Eric Lengyel
  • Game Physics by David Eberly
  • Real Time Collision Detection by Christer Ericson

    I own all 3. What I love about them is that they are some of the best ones around written by programmers to understand math in a clear and concise fashion; they are not written by some mathematician who loves theory and likes to hand-wave the worries about "implementation details."

    To help provide direction I would recommend these exercises to start; Work on (re) deriving the formulas (from easiest to hardest):

  • Work out how to reflect a vector
  • Derive the formula for how to calculate a 2D perpendicular vector
  • Work out the formula for how to project a vector A onto B.
  • Study how the dot product is used in lighting.
  • Derive the translation, scaling, and rotation 3x3 and 4x4 matrices.
u/yanalex981 · 4 pointsr/computerscience

I taught myself bits in high school with "C++ for Everyone". Despite its rating, I thought it was good 'cause it has exercises, and I did a lot of them. Works really well for laying foundations. I didn't go through the whole book though, and knowing the language is only part of the battle. You need to know about algorithms and data structures as well. For graphics, trees seem really useful (Binary space partitioning, quadtrees, octrees etc).

After university started, I read parts of "C++ Primer", which was when the language really started making sense to me. You'll get more than enough time to learn the required amount of C++ by next fall, but CG is heavy in math and algorithms. If your CS minor didn't go over them (much), my old algorithms prof wrote a free book specifically for that course.

For using OpenGL, I skimmed the first parts of "OpenGL SuperBible". For general graphics, I've heard good things about "Mathematics for 3D Game Programming and Computer Graphics", and "Real-Time Rendering".

Careful with C++. It may deceptively look like Java, but honestly, trying to write good idiomatic C++ after years of Java took a major paradigm shift

u/Nuclear-Cheese · 4 pointsr/gamedev

I also highly recommend for game developers lacking in math skills to check out 3D Math Primer for Graphics and Game Development. Unlike this book that is often recommended, I feel it does a better job for people who don't have a formal education in advanced mathematics or Computer Science who are interested in math directly relating to game development.

u/SpaceToaster · 3 pointsr/gamedev

http://www.amazon.com/gp/aw/d/1435458869 is always on my desk (I have the 2nd edition)

A great cookbook of useful formulas and algorithms for graphics programming. Not really a reference for game logic level algorithms though.

u/timostrating · 3 pointsr/Unity3D

TL;DR

Take a look at spaced repetition. Study without any music and use the absence of music as a check to see if you are still motivated to do your studying.

<br />

I fucked up my first part of my education too. Lucy i realized that and got motivated again before i finished school.

I am currently 19 years old and I also always loved math (and some physics). I am from the Netherlands so our education system does not really translate well to English but i was basically in highschool when i only did things that interested me. I got low grades on everything else.

1 moment in highschool really stayed with me where I now have finally realized what was happening. In highschool i had a course about the German language. I already had a low grade for that class so I sat to myself to learn extremely hard for the next small exam. The exam was pretty simple. The task was to learn 200 to 250 German words. So I took a peace of paper and wrote down all 250 words 21 times. 1 or 2 days later I had the exam. But when i got my grade back it sad that i scored a F (3/10) . I was totally confused and it only destroyed my motivation more and more.
What I now have come to realize is that learning something is not just about smashing a book inside your head as fast as possible.

<br />

So these are some tips I wished I could have give myself in the first year of highschool:

Go and sit in an quit room or in the library. This room should be in total silence. Now start with you studying. As soon as you feel the tension to put on some music than you should stop and reflect and take a little break.

The default in nature is chaos. Learn to use this as your advantage. I sit in a bus for 2+ hours a day. 1 hour to school and 1 hour back. Nearly every student does nothing in this time. So I made the rule for myself to do something productive in that time like reading a book. Normally I am just at my desk at home and before I know it it is already midnight. So this is for me at least a really good way to force my self to start reading a book in dose otherwise wasted 2 hours.

Get to know your body and brain. I personally made a bucket list of 100 items that includes 10 items about doing something for a week like running at 6am for a week of being vegan for a week. Fasting is also really great. Just do it for 1 day. So only drink water for one day and look how you feel. And try the same with coffee, sex, fapping and alcohol. Quit 1 day and look at how you feel. And have the goal to quit 1 time for a hole week strait.

Watch this video to get a new few about the difference of low and high energy. I never understood this but I think that everybody should know about the difference https://youtu.be/G_Fy6ZJMsXs <-- sorry it is 1 hour long but you really should watch it.

Learn about about how your brain stores information and how you can improve apon this. Spaced repetition is one of those things that really changed the way I now look at learning something. https://www.youtube.com/watch?v=cVf38y07cfk

<br />

I am currently doing my highschool math again for fun. After I am done with that again i hope to start with these 3 books.

u/frizzil · 3 pointsr/VoxelGameDev

Agreed 100%. Additionally, if you're trying to learn basic OpenGL, Java combined with LWJGL is actually a great choice, since the language is generally quick to iterate with. And definitely go with the advanced pipeline, as learning immediate mode isn't going to help you much if advanced is your end goal.

Also, big piece of advice -- you're really going to want a solid understanding of 3D matrix math before diving in. Particularly, you're going to want to know the difference between row-major and column-major systems, and how to perform basic manipulations in both. To this end, I highly recommend the book Mathematics for 3D Game Programming and Computer Graphics.

u/ebonyseraphim · 3 pointsr/gamedev

That is a great book with a math primer and continued coverage as you get deeper into the specifics of collision detection. I also own this which does a better job teaching plain math relevant to game dev and is agnostic about whether it applies to collision, physics, or rendering:

http://www.amazon.com/Mathematics-Programming-Computer-Graphics-Third/dp/1435458869/

I highly recommend it. It's well ordered and well written. It is the quality you'd expect from something you pay for and will save you time with its completeness and clarity.

u/othellothewise · 3 pointsr/opengl

I would recommend Mathematics for 3D Game Programming and Computer Graphics. It has all the derivations plus covers a whole lot of other useful topics. It's well worth the $45.

Another approach is to go through the math manually, by taking points and projecting them and trying to understand the behavior.

u/johnnyanmac · 3 pointsr/gamedev

personally, I used this book to refresh myself on the basic vector math and finally understand some 3d linear algebra concepts. It probably goes a bit deeper than you'd ever need to know if you're using an engine (how 3d transformations work on the matrix-level, quaternions, polar mathematics), but the book uses extremely accessible language to explain everything, so you rarely feel confused like your typical math textbook.

I haven't read it, but this book is that standard in what people typically refer to for gamedev math. If you want to be experimental, the same author just released the first part of a series for game engine development. while it ultimately goes in a different direction, the first book here should cover the important math needed, and it is under half the length of the other books.

u/TurkishSquirrel · 3 pointsr/learnprogramming

It depends a bit on what areas you're interested in. For interactive graphics you'll likely do OpenGL or DirectX or such.
Non real-time graphics usually means ray tracing or some variant like photon mapping where you want to produce physically correct images, with flexibility depending on your art direction e.g. Big Hero 6. With ray tracing you're essentially simulating how light interacts in the scene.

Here's some useful books/links for real time graphics:

  • Real-Time Rendering this is a great book covering a lot of theory/math topics behind real time graphics techniques, so it's agnostic to whatever rendering API you use. The book's website lists more graphics related resources and is quite good.
  • OpenGL Superbible good book focusing on OpenGL, written for beginners with the API.
  • open.gl very good introductory tutorials for OpenGL, I just wish it covered some more content. Should give you a solid start though.

    Here's some for ray tracing:

  • Physically Based Rendering this is basically the book for ray tracing, the 3rd edition should be coming out this spring though so if you want to save some money you could wait a bit. There's also a website for this book.

    For general math topics I also recently picked up Mathematics for 3D Game Programming and Computer Graphics which looks very good, though I haven't gone through it as thoroughly.

    As mentioned already /r/GraphicsProgramming is a good subreddit, there's also /r/opengl for OpenGL questions.
u/gunnar_osk · 3 pointsr/gamedev

"I've never tried graphics programming (OpenGL or otherwise), but sure... this post looks intriguing"

[Opens the link]

"Looks like a well written and informative tutorial, but I don't know most of the stuff he's writing about"

[Goes down the rabbit hole of OpenGL information]

"Damn it, now I HAVE to learn OpenGL from the start. Been looking for an excuse to brush up on my C++ skills anyways."

[Bookmarks the webpage]

"I wonder I need to brush up on my math skills also? Oh well, guess I'll cross that bridge when I come to it"

[Thinks of that book I bought that's collecting dust on the bookshelf]

:)

u/waxxxd · 3 pointsr/gamedev

Hmm was just looking at this book today, can't vouch for it but might be worthwhile.

Mathematics for 3D Game Programming

u/HarvestorOfPuppets · 2 pointsr/learnmath

Algebra - Required

Trigonometry - Required

Linear Algebra - Required

Calculus - Required for advanced graphics

After these there are bits and pieces depending on what you are doing.

Differential Geometry

Numerical Methods

Sampling Theory

Probability

Computational Geometry

As for discrete math there are parts you might need. You don't necessarily need to learn whole topics, like quaternions are used for rotations in 3d. This is a good book that takes parts of topics that are important to graphics specifically.

https://www.amazon.com/dp/1435458869/?tag=terathon-20

u/naranjas · 2 pointsr/funny

> Can you give me any more info on what types of things you simulate

There are so many different things. One example that involves physical simulation is rendering. Rendering, turning a 3d description of a scene into a 2d image, is all about simulating the pysics of light transport. Given a set of lights and surfaces you simulate how light bounces around and what a virtual observer placed somewhere in the scene would see. Another example is explosions. Cool/realistic looking explosions for movies involve simulating burning materials, fluid/gas movement, sound propagation, fracture, plastic/non-plastic deformation, the list goes on and on.

Here are some books that might get you started in the right direction

  • Fundamentals of Computer Graphics: This is an entry level book that surveys a number of different areas of computer graphics. It covers a lot of different topics but it doesn't really treat anything in depth. It's good to look through to get a hold of the basics.

  • Mathematics for 3D Game Programming and Computer Graphics: Pretty decent book that surveys a lot of the different math topics you'll need.

  • Fluid Simulation for Computer Graphics: Really, really awesome book on fluid simulation.

  • Do a google/youtube search for Siggraph. You'll find a lot of really awesome demonstration videos, technical papers, and introductory courses.

    As for programming languages, you're definitely going to need to learn C/C++. Graphics applications are very resource initensive, so it's important to use a fast language. You'll probably also want to learn a couple of scripting languages like python or perl. You'll also need to learn some graphics API's like OpenGL or DirectX if you're on Windows.

    I hope this helped!
u/pyromuffin · 2 pointsr/Games

I read this book and it gave me great power:
https://www.amazon.com/Mathematics-Programming-Computer-Graphics-Third/dp/1435458869

it wasn't easy, but if you try really hard it'll be worth it.

u/Waitwhatwtf · 2 pointsr/learnprogramming

It's going to sound really far outside of the topic, but it really helped with my logical mathematical reasoning: Mathematics for 3d Game Programming and Computer Graphics.

I'll also preface this by saying you're probably going to need a primer to get into this book if you're not sure how to reason a greatest common factor. But, being able to tackle that book is a great goal, and can help you step through mathematical logic.

Also, graphics is awesome.

u/CodyDuncan1260 · 2 pointsr/gamedev

Game Engine:

Game Engine Architecture by Jason Gregory, best you can get.

Game Coding Complete by Mike McShaffry. The book goes over the whole of making a game from start to finish, so it's a great way to learn the interaction the engine has with the gameplay code. Though, I admit I also am not a particular fan of his coding style, but have found ways around it. The boost library adds some complexity that makes the code more terse. The 4th edition made a point of not using it after many met with some difficulty with it in the 3rd edition. The book also uses DXUT to abstract the DirectX functionality necessary to render things on screen. Although that is one approach, I found that getting DXUT set up properly can be somewhat of a pain, and the abstraction hides really interesting details about the whole task of 3D rendering. You have a strong background in graphics, so you will probably be better served by more direct access to the DirectX API calls. This leads into my suggestion for Introduction to 3D Game Programming with DirectX10 (or DirectX11).



C++:

C++ Pocket Reference by Kyle Loudon
I remember reading that it takes years if not decades to become a master at C++. You have a lot of C++ experience, so you might be better served by a small reference book than a large textbook. I like having this around to reference the features that I use less often. Example:

namespace
{
//code here
}

is an unnamed namespace, which is a preferred method for declaring functions or variables with file scope. You don't see this too often in sample textbook code, but it will crop up from time to time in samples from other programmers on the web. It's $10 or so, and I find it faster and handier than standard online documentation.



Math:

You have a solid graphics background, but just in case you need good references for math:
3D Math Primer
Mathematics for 3D Game Programming

Also, really advanced lighting techniques stretch into the field of Multivariate Calculus. Calculus: Early Transcendentals Chapters >= 11 fall in that field.



Rendering:

Introduction to 3D Game Programming with DirectX10 by Frank. D. Luna.
You should probably get the DirectX11 version when it is available, not because it's newer, not because DirectX10 is obsolete (it's not yet), but because the new DirectX11 book has a chapter on animation. The directX 10 book sorely lacks it. But your solid graphics background may make this obsolete for you.

3D Game Engine Architecture (with Wild Magic) by David H. Eberly is a good book with a lot of parallels to Game Engine Architecture, but focuses much more on the 3D rendering portion of the engine, so you get a better depth of knowledge for rendering in the context of a game engine. I haven't had a chance to read much of this one, so I can't be sure of how useful it is just yet. I also haven't had the pleasure of obtaining its sister book 3D Game Engine Design.

Given your strong graphics background, you will probably want to go past the basics and get to the really nifty stuff. Real-Time Rendering, Third Edition by Tomas Akenine-Moller, Eric Haines, Naty Hoffman is a good book of the more advanced techniques, so you might look there for material to push your graphics knowledge boundaries.



Software Engineering:

I don't have a good book to suggest for this topic, so hopefully another redditor will follow up on this.

If you haven't already, be sure to read about software engineering. It teaches you how to design a process for development, the stages involved, effective methodologies for making and tracking progress, and all sorts of information on things that make programming and software development easier. Not all of it will be useful if you are a one man team, because software engineering is a discipline created around teams, but much of it still applies and will help you stay on track, know when you've been derailed, and help you make decisions that get you back on. Also, patterns. Patterns are great.

Note: I would not suggest Software Engineering for Game Developers. It's an ok book, but I've seen better, the structure doesn't seem to flow well (for me at least), and it seems to be missing some important topics, like user stories, Rational Unified Process, or Feature-Driven Development (I think Mojang does this, but I don't know for sure). Maybe those topics aren't very important for game development directly, but I've always found user stories to be useful.

Software Engineering in general will prove to be a useful field when you are developing your engine, and even more so if you have a team. Take a look at This article to get small taste of what Software Engineering is about.


Why so many books?
Game Engines are a collection of different systems and subsystems used in making games. Each system has its own background, perspective, concepts, and can be referred to from multiple angles. I like Game Engine Architecture's structure for showing an engine as a whole. Luna's DirectX10 book has a better Timer class. The DirectX book also has better explanations of the low-level rendering processes than Coding Complete or Engine Architecture. Engine Architecture and Game Coding Complete touch on Software Engineering, but not in great depth, which is important for team development. So I find that Game Coding Complete and Game Engine Architecture are your go to books, but in some cases only provide a surface layer understanding of some system, which isn't enough to implement your own engine on. The other books are listed here because I feel they provide a valuable supplement and more in depth explanations that will be useful when developing your engine.

tldr: What Valken and SpooderW said.

On the topic of XNA, anyone know a good XNA book? I have XNA Unleashed 3.0, but it's somewhat out of date to the new XNA 4.0. The best looking up-to-date one seems to be Learning XNA 4.0: Game Development for the PC, Xbox 360, and Windows Phone 7 . I have the 3.0 version of this book, and it's well done.

*****
Source: Doing an Independent Study in Game Engine Development. I asked this same question months ago, did my research, got most of the books listed here, and omitted ones that didn't have much usefulness. Thought I would share my research, hope you find it useful.

u/miketuritzin · 2 pointsr/opengl

This is surprisingly tricky to get right. I used the "polyboards" technique described in chapter 9 of this book, and it works well: https://www.amazon.com/Mathematics-Programming-Computer-Graphics-Third/dp/1435458869

u/gavinb · 1 pointr/opengl

Well if you want to be the next Carmack, get cracking! :) You have a lot of ground to cover, such as: mathematics (matrices, linear algebra, etc), physics, artificial intelligence, real-time processing, multithreading, architecture, networking and protocols, rendering, sound, and much more!

It is certainly possible with enough time and dedication to develop your own engine. It's just that there are so many excellent engines already out there, that you would be competing with projects that have already invested many thousands of hours and have loads of titles already developed for them. Why not get involved with an existing project to start?

BTW I really like your idea of creating a FPS with one room and focusing on making that environment the richest possible, exploiting a wide variety of techniques. Do it!!

Is your ultimate goal to create an engine? Or to create a game? Remember, the engine is in many ways a means to an end - it's not much use without a game that uses it!

Either way, I think you would be well advised to get involved with one of the open source game engine projects, and start contributing. Once you've learned how they work, you will be in a much better position to design your own. And realistically, you can't really just design an engine without a game - you need to know how games work in the first place, and what features and architectural decisions and designs make for a good engine.

Consider joining:

u/invicticide · 1 pointr/gamedev

I study this book (I actually own the first edition, but the third edition is current).

math.stackexchange.com is sometimes useful as well.

You do need at least a basic understanding of algebra and trig in order for any of this to make sense. If you don't even have that, you need to learn it post-haste. Those skills are so fundamental in game dev, I cannot even express how important they are.

u/Aeiorg · 1 pointr/GraphicsProgramming

1 ) Real-time rendering is the go-to bible for every graphic programmer. It's starting to get pretty old tho but still relevant. Then you have a lot of different books for different topics, like Real-time shadows, VR, etc. In fact what you are looking for is a Computer Graphics course/book, not an OpenGL one (or you can try OpenGL SuperBible). OpenGL is a tool (you can learn this one, or DirectX, or Vulkan ...), Computer Graphics is the science ( you learn it one time, and you use an API to apply it). You have tons of books for computer graphics, some are more into mathematics , some are more into specifics techniques, etc

2 ) OpenGL is just an API, it doesn't do anything in itself. Therefore, "the rest" is just a superset of functions that passes data differently on GPU and give you more control of your app. If you want to begin to understand why/how OpenGL is evolving, you can have a look at this supa great talk

Have fun learning !

u/Driamer · 1 pointr/learnpython

Mostly just old school googling and researching. When you have a clear problem that you're trying to solve the direction is pretty clear. I always tried to just solve the problem with just trying different stuff first, and after finding a way to solve it I researched how it could be done the correct way. That way I would always get the wow-effect, because I really appreciate the genius in the algorithms some people have come up with way back in history to solve the problem I'm having now making a stupid monster game.

Other than that there are some cool books like https://www.amazon.co.uk/dp/1435458869/ and of course Khan academy for the basics. But the main point that worked for me was trying to solve it myself first so I can really appreciate the math when I research the solutions.

u/horsepie · 1 pointr/gamedev

Mathematics for 3D Game Programming and Computer Graphics is supposed to be the best, from a few recommendations.

I can't tell you how good it is myself, it's still on my "to read" list. I have had a look at the contents pages and a quick flick through though, and I can say that it contains pretty much everything I learnt in my Computer Graphics MSc, and a ton of other stuff.

u/stainedpickle · 1 pointr/gamedesign

It really depends on what you plan on working on, but a book I am currently working through is Mathematics for 3D game programming and computer graphics. It covers a lot of what tjgrant mentioned, but in context of developing a 3D graphics engine. It also includes exercises in each chapter so should help as a textbook of sorts. I'm not sure how much use it would be to you without some prior exposure to the mathematical topics contained, but it does go through the very basics of each in a pretty concise manner.

u/asleepinthetrees · 1 pointr/Unity3D

did you ever take a look at the book mathematics for 3d game programming and computer graphics I've been thinking of giving it a read this summer

u/k_Reign · 1 pointr/gamedev

Alright, so bookmark on the first one hahah.

Looks like I'll check that one out some more - do you know anything about Mathematics for 3D Game Programming
and Computer Graphics
? Thanks!