The book "3D Math Primer for Graphics and Game Development" covers most of the important topics:
https://www.amazon.com/dp/1568817231
It is also rather fun to read, probably the only math book I have ever read from cover to cover.
by vertexmachina 2019-07-21
3D Math Primer for Graphics and Game Development is a great introduction to 3D math. It presents everything in a very approachable way (rather than a very rigorous mathematical way).
If you want to dive even deeper after that one, a good supplementary text is Essential Mathematics for Games and Interactive Applications. It goes deeper into the topics, but it isn't quite as approachable, so it's a good follow-up.
by anonymous 2019-01-13
Since you have big ambitions, you have to invest the time to learn the fundamentals. It is not a matter of what you learn first -- you can learn them simultaneously if you want to. (That's what I did.)
This means that you need to understand:
WebGL concepts
Three.js
The underlying mathematical concepts
Three.js. Three.js does an excellent job of abstracting away many of the details of WebGL, so personally, I'd suggest using Three.js for your project. But remember, Three.js is in alpha, and it is changing frequently, so you have to be prepared for that. Most people learn Three.js by studying the examples. Avoid outdated books and tutorials, and avoid examples from the net that link to old versions of the library.
WebGL. If you use Three.js, you don't need to know how to program in WebGL, you just need to understand the WebGL concepts. That means, that you just need to be able to read someone else's WebGL code and understand what you read. That is a lot easier than being expected to write a WebGL program yourself from scratch. You can learn the WebGL concepts sufficiently well using any of the tutorials on the net, such as the beginner's tutorial at WebGLFundamentals.org and Learning WebGL.
Math. Again, you at least need to understand the concepts. Three good books are:
My two biggest shelf pulls are Real-Time Rendering [0] by Akeine-Moller, Haines and Hoffman. 3D Math Primer for Graphics and Games [1] by Dunn & Parberry
Don't think there is any such book specifically for UE and its source. But there's a lot of good books on realtime rendering and graphics programming in general.
GPU Gems, Shader X and GPU Pro are good series for learning specific graphics programming techniques.
This is meant to be as generic as the question sounds. I am venturing into graphics programming, coming from frontend engineering. I've been wading through linear algebra via 3D Math Primer for Graphics and Game Development [1], and I quite enjoy it.
Does anyone have a semi-comprehensive list of math concepts I should learn for low-level graphics? I'm coming from a really sparse math background, as I only took up to Calc 2 in college.
Also, any general recommendations on the best way to learn graphics would be great. I'd say I'm more interested in graphics engines and experimental graphics than I am to actually making games.
https://www.amazon.com/Math-Primer-Graphics-Game-Development...
The book "3D Math Primer for Graphics and Game Development" covers most of the important topics:
https://www.amazon.com/dp/1568817231
It is also rather fun to read, probably the only math book I have ever read from cover to cover.
3D Math Primer for Graphics and Game Development is a great introduction to 3D math. It presents everything in a very approachable way (rather than a very rigorous mathematical way).
If you want to dive even deeper after that one, a good supplementary text is Essential Mathematics for Games and Interactive Applications. It goes deeper into the topics, but it isn't quite as approachable, so it's a good follow-up.
Since you have big ambitions, you have to invest the time to learn the fundamentals. It is not a matter of what you learn first -- you can learn them simultaneously if you want to. (That's what I did.)
This means that you need to understand:
Three.js. Three.js does an excellent job of abstracting away many of the details of WebGL, so personally, I'd suggest using Three.js for your project. But remember, Three.js is in alpha, and it is changing frequently, so you have to be prepared for that. Most people learn Three.js by studying the examples. Avoid outdated books and tutorials, and avoid examples from the net that link to old versions of the library.
WebGL. If you use Three.js, you don't need to know how to program in WebGL, you just need to understand the WebGL concepts. That means, that you just need to be able to read someone else's WebGL code and understand what you read. That is a lot easier than being expected to write a WebGL program yourself from scratch. You can learn the WebGL concepts sufficiently well using any of the tutorials on the net, such as the beginner's tutorial at WebGLFundamentals.org and Learning WebGL.
Math. Again, you at least need to understand the concepts. Three good books are:
3D Math Primer for Graphics and Game Development by Fletcher Dunn and Ian Parberry
Essential Mathematics for Games and Interactive Applications: A Programmer’s Guide by James M. Van Verth and Lars M. Bishop
Mathematics for 3D Game Programming and Computer Graphics by Eric Lengyel
I hope this is helpful to you. Good luck.
[0] https://www.amazon.com/Real-Time-Rendering-Third-Tomas-Akeni... [1] https://www.amazon.com/Math-Primer-Graphics-Game-Development...
I also read a ton of presentations and papers. Highly recommend the famous PBR SIGGRAPH course notes [0], especially the intro to light & physics by Naty Hoffman. GPU-Driven Rendering Pipelines [1] is another recent goodie.
[0] http://blog.selfshadow.com/publications/s2013-shading-course... [1] http://advances.realtimerendering.com/s2015/aaltonenhaar_sig...
GPU Gems, Shader X and GPU Pro are good series for learning specific graphics programming techniques.
https://www.amazon.co.uk/Game-Programming-Patterns-Robert-Ny...
Realtime rendering overview: https://www.amazon.co.uk/Real-Time-Rendering-Third-Tomas-Ake...
Related math: https://www.amazon.co.uk/Math-Primer-Graphics-Game-Developme...
Other recommendations:
http://mrelusive.com/books/books.html
http://fabiensanglard.net/Computer_Graphics_Principles_and_P...
It's fun to explore the source though, and NVIDIA has some cool experimental branches of the engine with their stuff integrated. https://github.com/NvPhysX/UnrealEngine
Does anyone have a semi-comprehensive list of math concepts I should learn for low-level graphics? I'm coming from a really sparse math background, as I only took up to Calc 2 in college.
Also, any general recommendations on the best way to learn graphics would be great. I'd say I'm more interested in graphics engines and experimental graphics than I am to actually making games.
Thanks
[1] https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ref=sr_1_1?ie=UTF8&qid=1488396630&sr=8-1&keywords=math+for+3d+graphics