Reddit mentions: The best rendering & ray tracing books
We found 80 Reddit comments discussing the best rendering & ray tracing books. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 26 products and ranked them based on the amount of positive reactions they received. Here are the top 20.
1. OpenGL Superbible: Comprehensive Tutorial and Reference (7th Edition)
- Pearson Addison Wesley Prof
Features:
Specs:
Height | 9.15 Inches |
Length | 7.05 Inches |
Weight | 3.66849203968 Pounds |
Width | 2.15 Inches |
Number of items | 1 |
2. Foundation Actionscript 3.0 Animation: Making Things Move!
Friends of ED
Specs:
Height | 9 Inches |
Length | 7.5 Inches |
Weight | 2.3368999772 Pounds |
Width | 1.28 Inches |
Number of items | 1 |
3. Ray Tracing in One Weekend (Ray Tracing Minibooks Book 1)
- Want a sense of security and the invaluable peace of mind from knowing you are prepared for that unexpected auto incident? Our car escape hammer can give you just that assurance
- With a car escape tool you can help others trapped in a vehicle. Whether it be someone stuck in their car after an accident. Or children and pets locked in a hot vehicle. Either way you can easily gain access with this glass breaker
- Want to protect your loved ones too? One of these tools is the best insurance you can buy for your loved ones. A perfect Christmas or birthday gift for any family member or friend
- This small, handy and easy to employ tool with its pointed hammer head takes little effort to break thru a car door window. The razor sharp recessed cutter blade easily severs your seat belt webbing
- When you order today you are protected by a 30 day, no-questions asked money back guarantee and excellent customer service!
Features:
Specs:
Release date | January 2016 |
4. Practical Rendering and Computation with Direct3D 11
- AK Peters
Features:
Specs:
Height | 9.3 Inches |
Length | 7.8 Inches |
Weight | 2.94978506556 Pounds |
Width | 1.4 Inches |
Number of items | 1 |
5. Digital Lighting and Rendering (3rd Edition) (Voices That Matter)
Used Book in Good Condition
Specs:
Height | 9.25 Inches |
Length | 7.75 Inches |
Weight | 2.0282528104 Pounds |
Width | 1 Inches |
Number of items | 1 |
6. Mazes for Programmers: Code Your Own Twisty Little Passages
Pragmatic Bookshelf
Specs:
Height | 9.25195 Inches |
Length | 7.51967 Inches |
Weight | 1.12876678144 Pounds |
Width | 0.6043295 Inches |
Number of items | 1 |
7. Adobe Premiere Pro CC Classroom in a Book (2017 release)
- Adobe Press
Features:
Specs:
Height | 9 Inches |
Length | 7.3 Inches |
Weight | 2.14068856402 Pounds |
Width | 1 Inches |
Number of items | 1 |
8. Beginning XNA 3.0 Game Programming: From Novice to Professional (Beginning From Novice to Professional)
Apress
Specs:
Height | 9.25 Inches |
Length | 7 Inches |
Weight | 1.7416518698 Pounds |
Width | 1.01 Inches |
Number of items | 1 |
9. OpenGL Insights
- Used Book in Good Condition
Features:
Specs:
Height | 9.6 Inches |
Length | 8 Inches |
Weight | 0.00220462262 Pounds |
Width | 1.3 Inches |
Number of items | 1 |
10. Adobe Premiere Pro CC Classroom in a Book (2018 release)
- Enclosed sport sandal featuring quick-drying mesh upper with snug-fit integrated webbing system
- Adjustable thermo polyurethane heel strap for secure fit
- Shock dispersal plate in forefoot for stone bruising protection
Features:
Specs:
Release date | January 2018 |
11. Final Cut Pro X 10.3 - Apple Pro Training Series: Professional Post-Production
- Enclosed sport sandal featuring quick-drying mesh upper with snug-fit integrated webbing system
- Adjustable thermo polyurethane heel strap for secure fit
- Shock dispersal plate in forefoot for stone bruising protection
Features:
Specs:
Release date | March 2017 |
12. Real-Time Shadows
- Used Book in Good Condition
Features:
Specs:
Height | 9.4 Inches |
Length | 7.4 Inches |
Weight | 2.1164377152 Pounds |
Width | 1 Inches |
Number of items | 1 |
13. Real-Time Rendering, Fourth Edition
- Designed by: theawkwardyeti
- Shirt.Woot Original Design
- Lightweight, Classic fit, Double-needle sleeve and bottom hem
Features:
Specs:
Height | 9.4 Inches |
Length | 7.7 Inches |
Weight | 0.00440924524 Pounds |
Width | 1.9 Inches |
Release date | August 2018 |
Number of items | 1 |
14. Learn OpenGL: Beginner's guide to 3D rendering and game development with OpenGL and C++
Specs:
Height | 9.25 Inches |
Length | 7.5 Inches |
Weight | 0.81 Pounds |
Width | 0.47 Inches |
Release date | August 2018 |
Number of items | 1 |
15. Ray Tracing from the Ground Up
- ★One Size Fits Most: Stretchable Size About 15.7 inch in length,5.9"(W). Suitable for men or women,covers contain an elastic band for flexibility, fits all shoes/boots up to size 12 or few size of work boot. 100pcs(50 Pairs)
- ★Material: The shoe cover is made of high-quality CPE material. Brand new raw materials make the shoe cover stronger and more resilient! The quality of disposable shoe covers is greatly improved, and greatly improves the shortcomings of easy tearing and poor toughness of disposable shoe covers.
- ★Waterproof & Dust-proof: Waterproof design helps to protect your shoes from liquid and dust. Great for Museum, Workplace, Indoor Carpet Floor, Cars And Garden, etc.
- ★Slip Resistant and Eco-Friendly: The surface of the shoe cover has anti-slip particles,increased shoe cover surface and floor friction, to prevent slip played a certain help.
- ★What You Get - You can not only get 100pcs shoe covers can also get our high-quality after-sales service, the product you buy is absolutely safe, if you have any dissatisfaction please feel free to contact us, we will give you the most satisfactory solution.What are you waiting for?
Features:
Specs:
Release date | April 2016 |
16. GPU Pro 5: Advanced Rendering Techniques
- Zero Stretch & Super-high Sensitivity - Lets you clearly feel even the slightest bite, helps catch every fish that nibbles on your line. Super thin and slick diameter and low memory, reel capacity is better
- Great Abrasion Resistance and Durable - 4 Ultra-high molecular weight polyethylene (PE) strands construction is smoother and rounder for casting much farther, 15 times stronger than other braided line and superior abrasion
- Smooth & No Burr - Unparalleled smoothness and consistent roundness / backlashes free; faster cutting water and to help the bait faster to reach the target water layer to catch the fish
- Color-Lock Coating Technology - The braided line utilizes a unique coating that is the best at preventing color fading and color loss, and increases UV resistance.
- Wide Application - Salt water / Fresh water. Suitable for trolling, lure fishing, boat fishing etc.
Features:
Specs:
Height | 9.5 Inches |
Length | 7.7 Inches |
Weight | 0.00220462262 Pounds |
Width | 1.1 Inches |
Number of items | 1 |
17. Blender 2.8 for architecture: Modeling and rendering with Eevee and Cycles
Specs:
Release date | July 2019 |
18. Realistic Ray Tracing, Second Edition
Used Book in Good Condition
Specs:
Height | 8.88 Inches |
Length | 5.81 Inches |
Weight | 0.7495716908 Pounds |
Width | 0.55 Inches |
Release date | July 2003 |
Number of items | 1 |
19. Advanced Global Illumination
- New
- Mint Condition
- Dispatch same day for order received before 12 noon
- Guaranteed packaging
- No quibbles returns
Features:
Specs:
Height | 9.1 Inches |
Length | 6.1 Inches |
Weight | 1.3999353637 Pounds |
Width | 0.9 Inches |
Number of items | 1 |
20. Adobe Premiere Pro CC Classroom in a Book (2019 Release)
Specs:
Height | 9.1 Inches |
Length | 7.4 Inches |
Weight | 2.20462262 Pounds |
Width | 1.3 Inches |
Release date | March 2019 |
Number of items | 1 |
🎓 Reddit experts on rendering & ray tracing books
The comments and opinions expressed on this page are written exclusively by redditors. To provide you with the most relevant data, we sourced opinions from the most knowledgeable Reddit users based the total number of upvotes and downvotes received across comments on subreddits where rendering & ray tracing books are discussed. For your reference and for the sake of transparency, here are the specialists whose opinions mattered the most in our ranking.
Thank you for the really insightful post!
I was thinking of taking GLFW and start doing projects with it since it seems to have a lot of support behind it (and also has gamepad capability, so games would be really fun), I'm also really tempted to buy the OpenGL Super Bible, I really like to understand things from scratch, do you think that book is a good place to learn alongside? As of Linear Algebra, I found this channel (from teachyourselfcs.com that seems to cover it pretty well, I'm planning to get the book he recommends as well).
I know that Vulkan is the future but I've heard/read a lot about how dificult it is right now to implement things, write a lot of code to get small results, is that true? I plan on learning D3D in the future as well, but since openGL has a lot more tutorials (that i've found) I'd like to start with it.
I have almost 3 years until I graduate, my university is not very good in some areas like graphics programming as i'd like to, that's why I came to reddit for help, I felt kind of lost when they only had a book on 3D Graphics that was from 2003 or something like that in the library.
Currently for C++ I'm taking a few courses on LinkedinLearning and reading C++ Primer
As of Game Engine programming as i've mentioned, Game Engine Architecture by Jason Gregory seems pretty awesome, but I don't have the money to buy that one right now, so i'm staying with the most important ones first.
I went through a lot of websites and found some really cool resources, I want to leave it here so that people with the same interests can take a look at them:
If you have any more resources that could help me I'd be really thankful!
I'm sorry for the long post, I hope you can read it and relieve some of my doughts since you're the first person that answered that seems to have a lot of insight of 3d programming, could you tell me if i'm going on the right direction?
Can you do a minor in math? That would be ideal in my opinion.
Make sure to take the courses that I listed. They will be very math heavy, if you want to go in this direction then you should at minimum do MAT235 and preferably MAT237 or higher. Graphics as you may know already is very heavy with linear algebra, but you also will need concepts from multivariable calculus.
This is a very rough road and you will probably want to dedicate your life to it. There aren't that many spots to make a career out of it but there's not as much competition due to how insane this field is... and the only people who go into these areas are people who really love this stuff so that is your competition. Please make sure you are ready for this and if you're not doing much this summer then pick up OpenGL, Direct X or Vulkan (however don't do Direct X 12 or Vulkan if you're completely new unless you've got experience in rendering already).
It may be to your advantage to build a software renderer to understand everything, so you will want to begin here for graphics theory, and your practice interview for graphics should be satisfied by this for starters. If you want to build a software renderer first before jumping into OpenGL or such, this book with the later chapters only (because the first half is all assembly optimization and not that relevant anymore as our compilers are pretty good now) will help a lot. Having said that, doing a degree while studying for all of this will be quite hard, this will be a marathon and not a journey. I would skip the black book though if you find yourself swamped for time. This is also a great book for when you have a weekend to spare.
You should also be making sure you're damn good at C or C++. If you choose C++, then you've got probably 2-3 years of solid work before you're competent in the language. You should also focus on optimization, but do that after you've spent a year with the language. Yes... even the cache lines that CSC369 never covered becomes absolutely critical in at least real time graphics.
You should be doing at minimum CSC418 and maybe CSC320 as well for courses, outside of any math ones.
Finally, I hope you are ready to join the nerd ship, because there's no way in hell you're going to be doing much in your spare time for quite a while... if you have a relationship then it'll get probably a bit rocky. Doing this kind of graphics work puts you in the top tier of street credibility because this area is so vast, since your life will no longer be normal by any stretch of the imagination. Maybe later it will be when you have a job, but for the next few years you are going to be buried.
Also, if you choose to do OpenGL, please at least start at OpenGL 3.3 and use the core profile and not the crufty ancient immediate mode stuff. This site will be an amazing and wonderful tool for you and keep you modern. I know very little of DirectX so I cannot comment on that.
If you're planning on pursuing this as a career, there are tons of incredible opportunities for people experienced with lower-level 3D APIs. Making your own engine serves as a fantastic learning experience, and would be a huge investment in your future.
Below are some of my favorite books/resources right now that may help you along the way. These might not be immediately useful to you right now, depending on where you're at, but together they have more than enough knowledge for you to go far in 3D Computer Graphics.
Professional graphics programmer here with an MSc in related Comp Sci degree.
First ditch the idea of using JavaScript or any off the shelf graphics libraries like SDL. Also forget making a game. If you want to learn rendering/graphics techniques then make that your focus. The key to this plan is that you learn by doing, not just reading. I make it a point to myself that I never fully understand something unless I’ve implemented it myself from scratch.
Blinn-phong reflectance, texture mapping and directional, point and spot lights will get you a long way. Add a sky using a cube map. Move onto static/dynamic environment mapping to create some reflections on a model. Then start implementing normal bump mapping/parallax mapping on something like a brick wall etc. Then look at shadow mapping and adding a moving directional light (sun) to showcase your shadows. Add some alpha blended transparent and alpha test materials to the scene. Maybe then also add basic animations on your meshes using simple vertex displacement techniques in the shader. From here there’s much much more you could add but you have an adequate if basic demo to add to your portfolio that shows an understanding of fundamental 3D principles (importantly from scratch in your own renderer).
From here you could add bump mapped water with planar reflections and refraction, height mapped terrain, a particle system effect (maybe via the geometry shader), the list is endless really.
I’ll add here that a lightweight off the shelf GUI library will help with demoing it all. Also take the opportunity to familiarise yourself with graphics capture analysis tools such as RenderDoc, Pix or intel GPA. A godsend For debugging graphics issues and used widely in industry.
If you get anywhere near all of that in your portfolio you will easily land a graphics programmer job!
Hopefully this was of some help 🙂.
Totally agree... There is 0 useful information in the OP.
There need to be a Sticky in all caps at the top of the thread with guidelines for asking questions. Delete threads that don't meet them. Some moderation is needed, because it's becoming too difficult for people to find actual solutions within the subreddit due to these threads populating the search results. I can barely recommend this subreddit to anyone anymore, because they run into these dead end threads where the OP asks a question with no usable information from which a good response can be formulated, and immediately abandons it.
I'm also astonished at the people trying to use software like this (Premiere Pro), who literally don't even read the basic literature needed to find out that H.264/5 is awful for editing, how to transcode media, or how to even inspect a file to see what the actual video/audio stream is encoded as. When I was in high school there were kids fully proficient in Macromedia Flash, just from reading the Manual and Help Files, and learning while doing. I think the social media has made people too dependent on the "instant access to knowledge," to the point that they are absolutely terrible at actually learning things.
They expect to install things and have people on the internet hold their hands through every step of the process, when these things are simple and much better digested in material that isn't dependent on human response turn-arounds. People spend several months learning how to use this software proficiently. You aren't an editor just because you installed it. Slow down and learn to use it first. Worry less about imitating effects in YouTube videos.
A "for Dummies" book is actually not a bad idea. Premiere Pro CC for Dummies will actually tell people how to Transcode/Import/Ingest media into a project. This is video editing workflow 101 material. I highly suggest people get at least one decent book for the system they're using, and probably some of the other (not so simple) software they're using on the side. Many of them are Tutorial style, with projects that you work on while working through the book. This allows you to develop muscle memory and learn in a structured manner, and better commit things to long term memory.
It is much faster to simply learn these things and avoid the issues than it is to ask questions on Reddit and slam the reload button, waiting on responses. I have some suggestions below for anyone interested.
----- ----- -----
Adobe Premiere Pro 2018: Adobe Premiere Pro CC Classroom in a Book (2018 release) - $38.39 (Kindle Edition)
Avid Media Composer: Avid Editing: A Guide for Beginning and Intermediate Users - $37.96 (Kindle Edition) - Avid has their own series of books, but getting them all can be expensive.
Final Cut Pro X: Final Cut Pro X 10.3 - Apple Pro Training Series: Professional Post-Production - $43.44 (Kindle Edition) - Will probably be updated for 10.4.x, soon.
DaVinci Resolve 14: The Definitive Guide to DaVinci Resolve 14: Editing, Color and Audio (Blackmagic Design Learning Series) - $9.99 (Kindle Edition) - Largely Relevant for Latest Beta. A No-brainer if you're using this system, even the free version, at this price.
Vegas Pro: Sony Vegas Pro 11 Beginner’s Guide - $16.54 (Kindle Edition) - Still Largely Relevant for Latest Version. There are few Vegas Pro books out there, but this one is decent for beginners.
----- ----- -----
Also may be of use for some people:
macOS High Sierra: macOS High Sierra: The Missing Manual: The book that should have been in the box - $11.99 (Kindle Edition)
Windows 10: Windows 10: The Missing Manual - $18.35 (Kindle Edition)
iPhone: iPhone: The Missing Manual: The book that should have been in the box - $11.99 (Kindle Edition)
Audacity: The Book of Audacity: Record, Edit, Mix, and Master with the Free Audio Editor - 20.99 (Kindle Edition) - Still Largely Relevant for Latest Version
GIMP: The Book of GIMP: A Complete Guide to Nearly Everything - $29.99 (Kindle Edition) - Still Largely Relevant to Latest Version
------ ----- -----
Lastly, RTFM applies here. Some of these NLEs ship with amazing manuals/documentation (e.g. Resolve), have context-sensitive help files (e.g. Vegas Pro, Final Cut Pro X), or have extensive Web-Based Help/Documentation and Tutorial content (e.g. Premiere Pro, Avid). Use them.
Often, they answer your questions much quicker than cluttering up the subreddit with threads you will not monitor, lacking necessary information people need to give you a decent response.
People use their personal time to be helpful here. Make it easier for them to help you. Make it easier for yourself to potentially help others. Make it easier for others to find the help they need without making redundant threads, because useless threads have buried the good search results.
I'll start off with some titles that might not be so apparent:
Unexpected Fundamentals
These 2 books provide much needed information about making reusable patterns and objects. These are life saving things! They are not language dependent. You need to know how to do these patterns, and it shouldn't be too hard to figure out how to implement them in your chosen language.
 
Good General book
 
This book is great if you're going to make a browser based game
 
General Knowledge books
 
Provide a working moveable 3D model with C++ and DirectX, Very cool.
 
More general game base building
 
Working product results books, little if any modification needed
Releasing in a couple months (hopefully) 2 Very good books using C++ to develop by.
 
Not presented in the best manner but still noteworthy:
 
I used to love XNA...but now it's not feasible for commercial development. If you're a beginner to game design...starting out with XNA might actually be useful. It's easy to pickup and put out a working product. XNA is C#
 
 
Working product books, modification needed to make run on current systems
Provides a working FPS game in C++ on DirectX 9. Good for some starting out knowledge for an FPS
 
Good for 3D Terrain rendering in DX9...however much of this is outdated...some concepts still apply, and it's not the worst idea to see a working example.
 
TLDR: Click links starting at top, buy, read, profit
There are lots of resources for your basic VBO,VBO and Vertex and fragment shader stuff. The lack of good resources come when you wanna start using some of the more advanced stuff. Its out there, but harder to find.
The OpenGL bible book and the red book are not really good for learning, although i think they do have a brief tutorial section but its not stuff you cant find on the net easy. Those books are basically API in book form. It can be useful though because you can flip through it and see some the api for features that you may not know exist otherwise. The openGL superbible and the redbook are kinda identical. but i think the superbible has a bit more tutorial stuff in it and explains things a bit more. I think it is worth buying but you will end up using other resources aswell.
One book i really do reccomend though is: OpenGL Insights
This book shows how you can do some pretty cool things really take advantage of OpenGLs features in interesting ways. I think its technically a series of papers by a bunch of different people but its very much worth a read in my opinion.
Here are some of the resources i found helpful.
Also heres a cool couple other things i have in my bookmarks:
Also familiarize yourself with the differences betweent the Fixed function pipeline and modern openGL.
Yeah, actually there are some good ones... and Amazon is a pretty good source.
After Effects: anything by Chris Meyer & Trish Meyer, such as this one: After Effects Apprentice: Real-World Skills for the Aspiring Motion Graphics Artist
The "Classroom in a Book" series is good too. They're a thorough and comprehensive reference. They have courses for each package you mentioned.
Adobe After Effects CC Classroom in a Book (2017 release) 1st Edition
-and-
Adobe Premiere Pro CC Classroom in a Book (2017 release) 1st Edition
Sure, the books will slowly become out of date in a few years as the software continues to evolve, but you will have learned it by then, and then core concepts and workflow will stay the same.
Some people feel more comfortable learning from books, I get it. You don't have to use online resources... But if you get stuck, google is your friend! Andrew Kramer is a great online resource for learning some more advanced After Effects techniques and tools, and as others have mentioned, Lynda.com has courses on everything.
Hope that helps. =)
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.
It depends on what you want to learn. Are you planning to do this as a hobby? Looking to eventually be a professional game developer? Etc.
C++ will teach you how everything works at a low level, and gives you a lot of control. This is really cool, and a great learning experience. However, as a beginner, having to write an entire 2D rendering engine just to draw a sprite is a lot of work and probably terribly confusing. It'll also take longer to make games. If you're going in for the hobby development in your spare time type of experience, it's not the best way to go.
C#/XNA is great in that it does a lot of the legwork for you, but doesn't try and outright give you everything - you still have to learn how to write animations/etc. using it. I highly recommend http://riemers.net/ as a tutorial. XNA will also easily let you do games on Windows Phone and Xbox 360, so if making an Xbox game is appealing, it's a great choice.
ActionScript 3 (i.e. Flash) is actually really straightforward to use. It gives you functionality for almost everything you'll need (drawing graphics, playing sounds, an event system, etc.), and will let your games run cross-platform. I recommend FlashDevelop if you're using Windows (though getting it set up initially can be a pain due to some weird issues with Java versions, etc.). I highly recommend http://www.amazon.com/Foundation-Actionscript-3-0-Animation-Making/dp/1590597915 (though IIRC it assumes you at least know the basics of AS3 before using it - but if you have programming experience that shouldn't be hard to follow along with).
Java is pretty easy to get the hang of also, and is used for Android IIRC, so obviously games are using it.
Also, if you ever get stuck on anything or need help, feel free send me an email or something - even if it's just that you're stuck on some annoying bug or have a question on how to approach an algorithm.
I highly recommend Real-Time Collision Detection.
This next book might not apply to your field directly, but I believe it is a good idea to be at the very least aware of what it discusses, and it is a very excellent book on its subject: The Art of Game Design: A Book of Lenses
I recommend this book as more of a reference than a tutorial; it will allow you to quickly brush up on those areas of math and physics which you will need while writing (or perhaps working with) a physics engine. I don't recommend attempting to learn the subjects through this book alone though. Game Physics
Reading 3D Math primer for Graphics and Game Development is how I learned linear algebra, although I plan on studying the subject from a textbook when I get the opportunity. I keep the book close for easy reference of the math related to 3D rendering (such as the projection and view matrices), although if you get this book you will want to read the errata document on its website. There may be better books to teach this stuff now, so please don't jump on it too hastily.
A couple books I do not own, but plan to correct that as soon as I can:
Game Physics Pearls and Real-Time Shadows
If I think of any others, I will edit this comment.
Dont listen to the people that comment about not making your engine. Making one is a great learning excersise and highly recomended to become a better developer.
I recomend you make sure your C++ is on point, and check this books:
If you dont want to do the 3d route, you can just do 2d games using the libraries SFML or SDL. SFML is easier to use, for C++, while SDL is a lot more C oriented and runs literally anywhere (including things like nintendo DS or PS4). With those you can try to make some simple games like Snake, which is a great learning project.
If you are inexperienced, try to avoid OOP designs (do not use inheritance). It will just make things more complicated than they should.
A bit of homework, but Ray Tracing in One Weekend is legendary (and free).
Disney’s short video on pathtracing can also help explain some concepts.
Another important thing is understanding the intersection that raytracing has with rasterization, since that is what consumers are seeing now with the new Turing cores. What the difference is, why people should care, etc.
It’s funny, I have been reading a lot online and observing people’s reactions to the new cards- and most of the backlash simply comes from not understanding what raytracing is. For graphics engineers in the industry, rasterizers (as brilliant as they are) always feel like a hack at some point or another- ray tracing is “the right way”, and that has us very excited
The guy who ripped off learnopengl is Frahaan Hussain. This is the course that Joe was talking about and here is the book that Frahaan put out. I have paged through the book, "Learn Opengl," and can verify it is a 1 to 1 copy of learnopengl. I'm not going to pay for the course, but it's looks like the one you keep quoting.
The 23 odd hour one is Ben Cook's and it is the best I've seen so far. Very straight forward, and has the best explanations for why you do things in the order you do. Gives small charts telling you the basics for doing stuff-something that learnopengl.com is bad at. The 5+ hours of theory is similar to learnopengl, but that's more because beginner opengl typically covers the same topics. It covers opengl 3.3, GLFW, GLEW, GLM, and stb_image. This one I recommend and is well worth the $5 I paid for it. Only encountered one bug in the first 14 hours, and that was because he didn't initialize a matrix to the identity matrix before using it.
There is also one by Steve Jones that I got for $5. I haven't started it, so I don't know if it's any good.
Please be specific to the names, as other people will not be.
I love doing procedural maps but it is an evolving art (Especially for me). I recommend that you create an interface (Programming, not user) such as IMapProvider that returns the data your game needs for a new map. That way you can iterate and improve your map generation code to your hearts content and just swap new ones in without any hassle.
Check out articles such as those on Rogue Basin and the book Mazes for Programmers.
I started with a relatively simple generator that generates a number of rooms then connects close ones with corridors until all rooms are connected. It works but is slow (Limiting map size). Later I created a new generator based on the Mazes for Programmers book that is several orders of magnitude faster and more flexible.
Also look at the blogs of people in r/roguelikedev such as the creators of spelunky and cogmind
https://www.youtube.com/user/ChiliTomatoNoodle/playlists
That guys youtube channel has DirectX 11 C++ tutorials. He has a beginner series, intermediate, and advanced. He still adds to the advanced occasionally, like SSE explanations and so on.
His videos are long, you really get to know him and his personality. His beginner videos teach you C++ too, he doesn't expect you to know anything going in. He swears fairly often, I thought it was funny back in high school when I watched these, but others might not.
These videos are where I started from in the very beginning, and I wouldn't be where I am programming wise if it weren't for Chilli. He has allowed me to educate myself on my own time, for free. After I had done the beginner and intermediate tutorials I went and read this.
http://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228
That will teach you the basics of 3D Programming.
http://www.amazon.com/Practical-Rendering-Computation-Direct3D-11/dp/1568817207
And that will teach you how to really understand the pipeline. Both books have their merits and both have very useful information for someone learning all this stuff. I'm currently making my own 3d game engine at the moment, so that's what understanding the information above can do for you. Takes time, though.
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
A really good traditional photography course. Study the old masters (like Rembrandt, Vermeer, etc). Maybe look into a solid drawing class at your local community college. Make sure they have a good fine art program. I recommend working in charcoal.
You can find good tutorials on YouTube. Look for ones emphasizing shading and lighting. Also check out cinematography books on Amazon. There may even be some at your library if you've got a good one.
For CG specifically, this is a classic:
https://www.amazon.com/Digital-Lighting-Rendering-Voices-Matter/dp/0321928989
And more general:
https://www.amazon.com/Lighting-Cinematography-Practical-Moving-CineTech/dp/1628926929/
Try some of these for the basics:
https://www.youtube.com/watch?v=eZ5hpcn6tIM
https://www.youtube.com/watch?v=eZ5hpcn6tIM
https://www.youtube.com/watch?v=eXYfcnqorxA
https://www.youtube.com/watch?v=4-_ThOH0IOQ
https://www.youtube.com/watch?v=w_zYlc5C_FQ&t=59s
​
I'm still trying to learn myself, but I have these two books (among a few others). I'm still working through them, so I can't give a full review, but I've seen these highly recommended from several people.
http://www.amazon.com/Foundation-Game-Design-Flash-Foundations/dp/1430218215/ref=sr_1_1_title_1_pap?s=books&ie=UTF8&qid=1394050917&sr=1-1&keywords=foundation+flash
http://www.amazon.com/Foundation-Actionscript-3-0-Animation-Making/dp/1590597915/ref=sr_1_1?s=books&ie=UTF8&qid=1394051018&sr=1-1&keywords=foundation+actionscript
These will give you the basics to help you move on to more advanced topics. You won't be making extremely complicated games with these, but it's a start. I've tried going the online video route and youtube tutorials, and it's too scattered for me. I spent more time bouncing through different videos than I did learning. I really like the book process because it gives you a clear path of learning.
There is a more updated version of the Foundation Game Design with Flash (think it's called Game Design with ActionScript), but I heard it's not quite as good, although I haven't directly compared and contrasted them.
Also, make sure you buy these used. You'll end up spending maybe $15 total, which is way cheaper than a month watching videos on Lynda.
I recommend Practical Rendering and Computation with Direct3D 11, it is not specific to game programming, but provides a good detail on how API maps to hardware and its use. This helps even if eventually end up using Unity or Unreal or other engines. Once you understand the low level architecture, it is very easy to find the corresponding API parts in OGL to accomplish similar stuff.
If anyone is interested in how to actually animate objects by code, I recommend this book. It's for AS3 but the concepts hold true for any other language. Animating by code is super simple once you get the basic concepts and can become quite handy in a lot of situations.
Foundation Actionscript 3.0 Animation: Making Things Move!
If you're really serious about getting into 3D-programming with DirectX I recommend getting a good book. A quick search on Amazon will get you the most common ones.
As for online resources my favorite is braynzarsoft.
EDIT:
My favorite books on DirectX:
Introduction to 3D Game Programming with DirectX 11
Practical Rendering and Computation with Direct3D 11
Real-Time Rendering
[Read this for a light intro to AS3] (http://www.amazon.com/Foundation-ActionScript-3-0-Animation-Making/dp/1590597915)
Read this for a more practical and in-depth look at more advanced programming / software design in Actionscript
Read this for a good idea on how to specifically develop a game
And the fighter is actually easier to code.
Good luck!
On the math side I read 3d Math primer for graphics and games as it was one of the only 3d math books available for the kindle. It is a pretty easy read and covers a lot of subjects. I'm considering picking up Essential Mathematics for Games and Interactive programming as a refresher if it ever gets released as an ebook since I've seen it be recommended a few times and it is a slightly more recent text.
As for the 3d programming side, it really depends on what you want to do. I chose to program in opengl and picked up the opengl superbible, which I would recommend. I've not touched directx yet, but have heard good things about Practical Rendering and Computation in Directx11 though I don't think this is intended as an introductory text for directx, but as a reference for those familiar with 3d already.
Real-time: you'll be using an API such as OpenGL or DirectX. The first 400 or so pages of this book serve as a good introduction to real-time rendering with OpenGL. The rest of it serves as a good intermediate lesson.
In real-time graphics you mostly use an API to put data (position, UV mapping, surface normals, etc) into buffers which are sent to the GPU. You then write shader programs (vertex shader, pixel shader) which run on the GPU, process the data from the buffers, and output a result. That's a the basic summary of an update loop.
Non-real-time: you can write a ray tracer or other kinds of image-producing graphics programs from scratch. Ray Tracing in One Weekend is cheap and I've heard it's a pretty solid starting point. It also has sequels if you decide you want to take things further.
A ray tracer essentially sends out a ray for each pixel of the screen. You check to see if this ray collides with any surfaces, calculate the color at the location of that collision, then set that as the pixel's color.
You can also look at image processing, as an alternative to 3D computer graphics. A lot of image processing is signal processing, similar to audio, but on a 2D plane. Filters, edge detection, image manipulation or generation can be pretty interesting topics.
I had been working on a ray tracer for some time based on the Raytracing in One Weekend books and also Ray Tracing from the Ground Up by Kevin Suffern.
Peter Shirley's short books are a great introduction but the book by Kevin Suffern really gets into the some of the math/physics behind a ray (technically path) tracing engine.
Code is on Github. I try to follow best practices myself and the code I wrote is "pure" C++. No external libraries. It's far from being a robust engine, but for learning purposes might be simple enough to follow.
For a basic introduction to the concepts of 3D, Keith Peters' Foundation Actionscript 3 Animation has some really cool chapters on creating ground-up 3D and is in your native language. The AdvancED version, released afterwards, surprisingly lacked any chapters on 3D.
I followed it recently and did this (extremely simple) proof of concept following only the text in that book and sprinkling a little of my own flavor to it. If you'd like the source, PM me.
You'll have to learn how to translate it to the Molehill APIs and the new datatypes (float, float4, Vector, Matrix3D) but I highly recommend it. After doing the earlier demo, I've gotten my head around it and have been getting right into the molehill stuff.
Edit: Note that the demo above is not in molehill, nor is the book, but translating from one to the other isn't the difficult part.
This sounds a lot like the technique outlined in Volumetric Light Effects in Killzone: Shadow Fall in GPU Pro 5. Pretty neat!
How did you get the particles to draw to a 3D texture? I didn't think it was possible to use a command buffer or similar with shuriken particles.
Here ya go, the best programming fun you'll ever have: https://www.amazon.com/Ray-Tracing-Weekend-Minibooks-Book-ebook/dp/B01B5AODD8
Practical D3D Rendering and Computation
Distills the API quite well and explains a lot of pitfalls with creating buffers and the pipeline usage. I'm working on just reading it so I'm familiar with D3D 11+ even though I don't use it day to day.
Real-time Rendering 3rd edition
Another fantastic reference for graphics with a more theoretical look at things, explains TONS of modern techniques and even older ones such as rasterization on CPU, etc.
Hmm not sure about a site but I used to have a Premiere Pro book (made by Adobe) that came with a ton of footage, basically an entire short film, to work through in each chapter. It was really helpful if you use the Adobe suite. Looks like this is the newest version
https://www.amazon.com/Adobe-Premiere-Classroom-Book-release/dp/0134665317
Pleasure Reading Book (but still a little related to programming): https://www.amazon.com/Mazes-Programmers-Twisty-Little-Passages/dp/1680500554
Also, if someone can give a book recommendation about cryptocurrency, that would also be a fun read.
I think that's beyond a list of common subjects clients ask for, and I'd recommend someone who is interested in "making it pop" to learn these:
Don't really know, the most complex thing I did was an RSS Reader that actually displayed the RSS Feeds using the premade Web Browser control of C# .
I read the first chapters of this book and found it quite helpful. Note that the negative reviews come from people that clearly do not have much programming knowledge.
As I said, I don't have much experience either using XNA. You're better off creating a post over here on /r/gamedev . Check this out.
Honestly my favorite book so far is the opengl superbible 7e
https://www.amazon.com/OpenGL-Superbible-Comprehensive-Tutorial-Reference/dp/0672337479
Seconded, Game Engine Architecture is the best book for an overall view on engine development. I've also found these books useful for implementing engine subsystems:
I have had a few friends recommend [Mazes for Programmers] (https://www.amazon.com/Mazes-Programmers-Twisty-Little-Passages/dp/1680500554/ref=sr_1_1?ie=UTF8&qid=1510243762&sr=8-1&keywords=mazes+programming&dpID=619FT%252BR-vYL&preST=_SX218_BO1,204,203,200_QL40_&dpSrc=srch) as an introduction into procedurally generated environments.
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!
Realistic Ray Tracing (also by Peter Shirley) is a bit older, but still really good. It goes in a bit more detail than "Ray Tracing in One Weekend".
AS3 animation
great book on maths for animation...
I would highly recommend this book: Mazes for Programmers: Code Your Own Twisty Little Passages
I spent a few weeks working through it and it taught me a lot about iterating through grids to create mazes and paths - including an implementation or two of Dijkstra's pathfinding algorithm.
Ray tracing very much uses these laws to render photorealistic images, but our hardware is only just approaching the point where we can do it at interactive speeds.
Your solution would require tracing rays from all points (or a stochastic approximation of all points) on the player to the mirror- which by definition is ray tracing. The quantity of your "particles" that need to be emitted by the player needs to be a lot higher than you expect in order to converge to a quality image. Especially an image better than the lowest LOD offscreen rendering technique we use now for mirrors.
For more information on the theory behind this kind of thing, check out Advanced Global illumination
I'm not a 3D programmer for very long time, but if I started today knowing what I know, I'd first go to check the basics of shader/lighting theory outside of the coding and engines, like in this book:
https://www.amazon.com/Digital-Lighting-Rendering-Voices-Matter/dp/0321928989
Then, depending on if you want to code or use material systems, there's a lot of books ant tuts online.
then you can go with this online tutorial
or get a book 1
2
go with online tutorial then as you get comfortable go with the contents of book.
I like the book "Mazes for Programmers" by Jamis Buck, which deals with the creation of mazes.
You might be interested in this ebook that has recently been released (I have no affiliation with the author) which may help you: https://www.amazon.co.uk/dp/B07VYBCR1X?tag=b3da0b-21
Hmm I don’t have a book that I know of, haven’t used a book to learn software since Final Cut Studio was new. Premiere I learned by force since my work swapped to it and it was sink or swim, but I already was familiar with other editing software so it wasn’t so bad.
But I would imagine this kind of book is a good start:
Adobe Premiere Pro CC Classroom in a Book (2019 Release) https://www.amazon.com/dp/013529889X/ref=cm_sw_r_cp_api_i_SU1QDb9719BGK
I built Python implementations of the stuff in Mazes for Programmers and it was a bunch of fun.
That's a pretty heavy book. A more practical book would be,
digital lighting & rendering 3rd edition
Ray tracing in a weekend would be a good start. Followed by the pbrt
When I was teaching intro 3d classes I used Jeremy Brin's book as a guide. Instead of software focus, he focused on the principals behind the technique. I don't know if there is anything newer (this was a few years ago) but you may want to start there.
https://www.amazon.com/Digital-Lighting-Rendering-Voices-Matter/dp/0321928989
If you want to learn Local Illumination (the opposite of Global Illumination ;) ) you should check out this book by Jeremy Birn.
http://www.amazon.com/Digital-Lighting-Rendering-Edition-Voices/dp/0321928989/ref=dp_ob_title_bk
There is more to it than just placing some lights. E.g. making an Occlusion Sandwich, where you render a key-pass with only the light highlights, a fill pass with only the basic coloring and an Ambient Occlusion pass with AO only. You then put it back together in AfterEffects.
If you want a quick brush up on ray tracing, you could check out https://www.amazon.com/Ray-Tracing-Weekend-Minibooks-Book-ebook/dp/B01B5AODD8
I haven't gotten around to it yet, but it seems condensed enough to realistically be able to get through
I've written a path tracer before, and I did it by modifying my ray tracer. A path tracer is really just a ray tracer that traces even more rays. The difference between them is really not that great. The same data structures can be used for either. There's a book called Ray Tracing in a Weekend, and it teaches you how to write a path tracer. The book's written by Peter Shirley, who's kind of an authority on the topic.
Nowadays, no one talks about ray tracing in the strict way that you do. People will some times refer to different things like path tracers, bidrectional path tracer, and photon mappers all as ray tracers. DirectX Raytracing is definitely not just limited to ray tracing as you described. If it was, it wouldn't be much use to anyone.
I wrote a library Doodle.js, in the examples I ported the book code from Making Things Move - which goes into more detail about how the examples work. That should get you going.
Theres a book just for that: https://www.amazon.com/Mazes-Programmers-Twisty-Little-Passages/dp/1680500554/
https://www.amazon.com/Blender-2-8-architecture-Modeling-rendering-ebook/dp/B07VYBCR1X
Real-time Rendering bible
I think this is the bible of Actionscript Physics, Foundation Actionscript 3.0 Animation: Making Things Move
Also, Keith Peters used be the Flash genius. Check out his Making Things Move books http://www.amazon.com/Foundation-Actionscript-3-0-Animation-Making/dp/1590597915. They maybe a bit complex for new Flash devs but you will be taught OOP from the start.