Best 3d graphic design books according to redditors
We found 88 Reddit comments discussing the best 3d graphic design books. We ranked the 48 resulting products by number of redditors who mentioned them. Here are the top 20.
8. OpenGL ES 2 for Android: A Quick-Start Guide (Pragmatic Programmers)
2 mentions
Pragmatic Bookshelf
That is the best answer.
There's also No Bullshit Guide to Linear Algebra, Vulkan Programming Guide, Physically Based Rendering, Game Engine Architecture
> Please take note of the lack of example code
This is the spec, examples can be found elsewhere:
https://github.com/LunarG/VulkanSamples
https://developer.nvidia.com/Vulkan
https://github.com/SaschaWillems/Vulkan
Also the official book (written by one of the AMD engineers) https://www.amazon.com/Vulkan-Programming-Guide-Official-Learning/dp/0134464540 (although you most likely don't need it and the above and the spec should be enough).
Research matchmoving. https://www.amazon.com/Matchmoving-Invisible-Art-Camera-Tracking/dp/111835205X
Basically...
Plan, lots of planning and storyboarding or some form of previz.
Then, shoot background, track camera movement.
Then replicate camera movement to track foreground subject shot over green screen. (Under consistent lighting.)
Combine. Color. Edit. Sell shit earphones.
Here is a nice little 3 part series on shaders. Shaders are really where all this is happening.
Its honestly a pretty tough thing to explain in a reddit comment. 3d graphics is one of the deepest rabbit holes in software development. Its one of those times when you really need to know your math. In particular geometry, trigonometry and probably most importantly linear algebra.
EDIT: I'm including this link to a decent book on low level webGL
The best book I have found is Algorithm Aided Design:
https://www.amazon.com/Algorithms-Aided-Design-Parametric-strategies-Grasshopper/dp/8895315308
http://gen.lib.rus.ec/book/index.php?md5=DCF839FD57950B7A275F731BD0EAB416 buy if you can, absolutely worth it!
Blender99 きっと絶対に挫折しない3DCG入門 シーズン1.5 01 Kindle版
>本書は、好評販売中の『blender99 絶対に挫折しない3DCG入門』の最新バージョン(2.80)対応版です
対応してた!
Such an article seems rather superfluous when the de facto standard reference for modern raytracers is done with literate programming.
The Ray Tracer challenge: https://github.com/jamesmcm/raytracer_challenge_scala
Looks pretty cool so far
I need to fix some things where I hacked around using self types, but overall I've really enjoyed writing it in Scala and building it up step by step.
I already pre-ordered mine.
Vulkan book
It's 25% off right now for those interested.
For the definitive book on physically-based rendering, check out Physically Based Rendering, Second Edition: From Theory to Implementation by Matt Pharr and Greg Humphreys. The book's homepage has sample chapters in PDF format, as well as additional purchasing links.
The book received an Academy Award this year, the first time a book has been given the honor.
For a visual demonstration of physically based rendering in a game engine, check out the Metal Gear Solid 5 Fox engine presentation at GDC 2013.
These are a few of the programming books that I've found too valuable to ever get rid of. I'm sure they'll be of use to none of you.
https://www.amazon.com/Zen-Code-Optimization-Ultimate-Software/dp/1883577039
https://www.amazon.com/Graphics-Gems-IBM-ebook/dp/B003Z9K11Q
https://www.amazon.com/Indispensable-PC-Hardware-Book-3rd/dp/0201403994/
I did some work in this area last year, guerilla games published some slides on their development pipeline for killzone shadowfall, another game that is based on PBR, here it's under lighting of killzone. Another good read is physically based rendering but it focuses on offline rendering rather than real time.
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:
Here's some for ray tracing:
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.
Get this book (however you choose to do that), follow it, done.
I mean you can start out just doing a simple raytracer, then add in reflection and refraction, then add in more materials, texturing, different kinds of lights, different kinds of meshes, file loading and saving, distribution effects (like depth of field, anti-aliasing, motion blur, etc.), add in different kinds of lenses, add in a full on material system (that lets you do stuff like bump mapping, boolean modeling, deformation, etc.), make it a path tracer, make it a metropolis light transport renderer, make it faster, make it realtime, etc.
It's so easy to start off with yet there's just so much you can do and it's all pretty modular, check out that book and it'll have everything you'll need for months and months.
Hey RJAG. We don't always see eye to eye but you seem to be one of the more level headed guys around here! I almost always appreciate your posts -- they usually have an interesting perspective to them -- even if they aren't well received. I probably should pay more attention to them! But enough of how reddit tends to shoot the messenger and ignore the message.
You're right -- a lot of material is total crap. Out-of-date, not explained well, piss-poor naming, poor architecture, etc.
Warning:
I first started doing professional game dev back in 1995, so I am extremely biased. I've seen the fad of programming languages, toolkits, libraries, etc., come and go. I think Boost's 1,109 lines for a simple CRC is over-engineered C++ crap compared to the ~30 lines of C/C++ you actually need to solve the real problem.
With the
#include <disclaimer.h>
out of the way ... ;-)The best authors I have found are (aside from Jason obviously):
The first few guys are all old-skool hard-core developers. The younger crowd doesn't like them since newer game devs usually spend more time arguing over pointless subjects such as the "proper" C++ pointer to use. Good game developers are more interesting in practical and pragmatic engineering tradeoffs then worrying about theoretical "perfection."
Speaking of Design Patterns, Christer Ericson recently said:
> Design Patterns are spoonfed material for brainless programmers incapable of independent thought, who will be resolved to produced code as mediocre as the design patterns they use to create it."
And to some degree I would agree with that.
i.e. You'll notice this sub likes to waste time arguing over "proper architecture" such as Entity Component System
My view is: IF your data, code, and model match this problem, then go ahead and use them. However keep in mind that rarely does the real-world exactly match some theoretical problem set. At the end of the day all you care about is shipping -- not being some academic writing theoretical "perfect" architecture -- whatever that is supposed to mean.
Hope this helps!
I really like this book. It builds everything up nicely and in general just teaches the topic really well.
Only CA it seems. Still $47 in US: https://www.amazon.com/gp/aw/d/B01MXGZR73/ref=tmm_kin_title_0?ie=UTF8&qid=1479108085&sr=8-1
I've recently bought this book and loved it. It's OpenGL-based and has lots of useful exercises and codes which keep me alive even on advanced theories. I recommend if you are good at math and learn fast by math.
It's currently free on Amazon too! Might be more convenient for those of you who own a Kindle.
https://www.amazon.ca/Vulkan-Programming-Guide-Official-Learning-ebook/dp/B01MXGZR73
I'm in Canada but it appears free to me on the .com site as well.
Is this intentional? I couldn't find any reference to it online until I checked this subreddit. I would have thought there would be a press release if it was released as free, especially if the "sale" is temporary.
Stop Staring is an excellent face rigging book.
How to Cheat in Maya is another good one.
Maya Studio Projects Texturing and Lighting is another sold book.
That should get ya started!
I ordered these for our company library, based on recommendations for/from other programmers (of all levels).
ISBN | Title
---|---
978-1568814247 | Real-time Rendering
0321486811 | Compilers: Principles, Techniques, and Tools (2nd Edition)
1482250926 or 0123742978 | Essential Mathematics for Games and Interactive Applications, Third Edition 3rd Edition
978-1482264616 | GPU Pro 6: Advanced Rendering Techniques
1466560010 | Game Engine Architecture, Second Edition
978-1482243567 | Multithreading for Visual Effects
978-0123750792 | Physically Based Rendering: From Theory To Implementation
Hey! Awesome and welcome! So you are most interested in 3D modeling? Are you more interested in environment/terrain or character modeling?
We definitely need to figure out how best to start incorporating models and having them scale appropriately. We also need to start on LOD/frustum calls between the terrain reference engine and the Renderer's three.js basic geometries.
I bought 3D Engine Design for Virtual Globes, it's a pretty good book though I haven't had chance to implement any yet. I've been too busy project managing and working on the bootstrap theme for the site (plus my day job getting hectic).
Anyway, this project is all about you deciding what to do. Send me an email at iontom@gmail and I'll introduce you to everybody. We also have this informal g+ page since hangouts have proven to be pretty useful. gchat has been easiest way to keep in touch. We also have a private server and can send you details on that!
Cheers!
Which grad schools are you looking at and are you thinking pure CS or something else? I've been considering it myself, but I studied astronomy so I want something that is programming related but not solid CS.
You can start with this book
https://www.amazon.com/dp/1568817118/ref=cm_sw_r_cp_ep_dp_eSBOAbXEQCJQ0
But you have a pretty formidable task in front of you to implement this on your own, good luck..
If someone wanted to ramp up on real-time rendering, I really feel like there are two books out there without parallel:
The last piece of the puzzle for doing rendering is learning how to debug! Each rendering debugger is kind of the same (they get ridiculously detailed on the game consoles, though). Here is an absolutely fantastic presentation about how to debug graphics, called Tightening Up the Graphics: Tools and Techniques for Debugging and Optimization.
I suggest learning with webgl since you can do it from anywhere in a web browser and hitting refresh is much faster to prototype your code than compiling a C++ program. Check out these tutorials: http://learningwebgl.com/blog/?page_id=1217 and I can recommend this book whcih covers a bit of the math as well: https://www.amazon.com/WebGL-Programming-Guide-Interactive-Graphics/dp/0321902920.
Blender for Dummies is pretty decent. Then again, I know the author so I'm a little biased.
I have used only paid content and I have just been learning myself, moving from 3ds max to Maya, but have followed Maya related courses on Lynda.com, Pluralsight.com, and Udemy. I have found Pluralsight Maya courses to be most comprehensive and they have a dynamic playlist: https://app.pluralsight.com/paths/skills/maya-dynamics-core-skills. I have done many of the core Maya courses, but in dynamics, I have only taken the Pluralsight nParticle fundamentals course - which was very thorough. Lynda.com also has a very good MASH course.
When following some of the older videos elsewhere, I have found they can still be used; the menus have simply changed, but the process is the same. So you could probably still use the video you linked to above, since nParticles has been around a long time, but you would need to re-map the instructions to the current Maya interface.
As I said, I am only learning Maya myself, and am more of a developer and not an artist. I have found this book: https://www.amazon.com/Introducing-Autodesk-Maya-2016-Official/dp/1119059631 to be excellent at filling in the parts that I did not find intuitive with Maya in general. I found it to be a good base - but only one chapter on dynamics/effects. As it is from 2016, it also doesn't cover the Arnold renderer. It might however help you use the online free videos - put them better into the context of the new interface.
​
I don't know of any free resources that cover that in much detail, but this book does a pretty good job:
https://www.amazon.com/gp/aw/d/1937785343/
I'm currently working though 3D Computer Graphics: A Mathematical Introduction with OpenGL. While I'm far from finishing it, the first couple of chapters are written in a really clean and easy to understand manner.
You do need some linear algebra background however - I doubt that the refresher course provided in the appendix would be sufficient for a total beginner. One way would be to take the concepts described there and expand upon them using the free MIT course online and you should be ready to go in no time. I'd recommend something along those lines over going through the whole Linear Algebra course and get bombarded with topics that (in my experience) won't stick and you probably won't need (at least I haven't found the need for many of them yet).
Here is the mobile version of your link
The "official guide" is here: https://www.amazon.co.uk/d/Books/Vulkan-Programming-Guide-Official-Learning-OpenGL/0134464540
If you're looking for a GPU overview, particularly around communication & commands, you might find Traxnet's series helpful - especially https://traxnet.wordpress.com/2011/07/18/understanding-modern-gpus-2/
You can get only so far with tutorials which are available for Blender on the net. Perhaps, if one has had a lot of experience with other software one could pick it up. For me though, I finally found this book at Powell's. It's a much more comprehensive introduction to the software.
I bought https://www.amazon.com/gp/aw/d/0321902920/ref=ya_aw_od_pi?ie=UTF8&psc=1
You don't buy much academic books, do you? It's in the mid price range, books like pbrt are $90.
You might like some of the books that are available (such as Intro or Mastering) which are available in ebook/pdf forms. I haven't read them, but from the table of contents they seem to cover most of the basics.
Thanks I'll keep looking :) I've been told to read this http://www.amazon.com/Maya-Studio-Projects-Texturing-Lighting/dp/0470903279
But I'd like to read some books (as you said) on actual live action lighting and the principals.
I love the Extra Credits guys. When I was all "well, looks like I won't be a game designer", I thought about maybe becoming a teacher, and using some of the ideas from the gamification episodes. I spend a lot of time thinking about how I'd do things differently, but then again, the problem lies not with the teachers but the syllabi.
Eesh, 26? Haha, well, better late than never. Reinventing yourself is always best. Know that you can always use some programs to straight up make a website (or even game), but don't use them until you feel you have no other option. Or I should say at least try it yourself first. Or even build it in a premade program, then try building the same thing from scratch, maybe.
Also, some freeware programs:
Here is the desktop version of your link
You might want to see if your local library has a copy of Dobbert's Matchmoving: "The Invisible Art of Camera Tracking" (also Amazon, Book Depository).
So, there is tracking - identifying features and following them through out the frame - solving - taking tracked features and mathematically calculating the relationship between the features and/or the camera in 2D or 3D. Stable tracking on well selected features allows for more accurate solves.
Chances are that the solving process will provide you with the path of the camera, and locators for the features. Ideally, those locators will show you where those features are in space. All stuff you already know.
You might be able to assume that the level of the tracked ground is consistent and just build it out and see if it holds. It sounds like that is what you are doing already.
There's a few ways you could approach it:
Regardless, what I would suggest is looking at some matchmove showreels - you'll find some really talented artists proving just how good their solves are - often on insane shots - and apply the lessons you take from those reels to your own workflow. eg. /u/semmlerino posted a reel on vimeo.
We considered it - see the last paragraph of my recent post - but reasons. We've found it more engaging to have something on the cover with a face, we didn't have a nice model or renderer available showing gems properly anyway, and the very first Gems book, Graphics Gems, already did it, as did Gems II, Gems III, Gems IV, and Gems V.
I have been doing some digging and picked up this book
https://www.amazon.com/Physically-Based-Shader-Development-Unity-ebook/dp/B0785TJQVY
​
I figured if digging into HLSL might have to get these:
https://www.amazon.com/GPU-Gems-Programming-High-Performance-General-Purpose-ebook/dp/B000UZQH52/ref=sr_1_1?keywords=gpu+gems&qid=1564526526&s=digital-text&sr=1-1
​
https://www.amazon.com/Introduction-3D-Game-Programming-Direct-ebook/dp/B01DUY4GQ6/ref=sr_1_1?keywords=directx+12&qid=1564526554&s=digital-text&sr=1-1
Hey mate,
Thanks a lot for the feedback... it seems i will give up on the Ray tracing from ground up book... perhaps the author has abandoned it a long time ago
It seems I will go with Physically Based Rendering: From Theory to Implementation
Thanks mate
You could look at 3d graphics programming, threading or distributed programming.
Or webGL, HTML5,CSS, JS
WebGL Programming Guide
OpenGL Programming Guide
Real-Time Rendering
The Art of Multiprocessor Programming
Beej's Guide to Network Programming
One of the Bibles of PBR was first published in 2004, i have a copy of it here at home. It's available on Amazon
I think i saw the first discussions on the NVIDIA Developer site around 2000. Long before use in games and adaption into shaders it was widely used in traditional non realtime render software.
I have had good luck with this book: https://www.amazon.com/OpenGL-Shading-Language-Cookbook-Second-ebook/dp/B00HK3VPN6
Unfortunately it seems like there aren't a lot of good options for books out there. This is the best one I've found - https://www.amazon.com/Algorithms-Aided-Design-Parametric-strategies-Grasshopper/dp/8895315308
I haven't tried ThinkParametric but Lynda.com has some good material on it and you might be able to get free access through your local library or something.