The Graphics Codex
16 comments
·January 26, 2025danwills
dahart
This is a book mostly about writing a more modern Monte Carlo global illumination path tracing style of renderer, rather than, say, a rasterizer. This is why ‘antialiasing’ is replaced with ‘sampling’ and ‘integration’. When you start with Monte-Carlo and the assumption that you’re multi-sampling, aliasing and filtering are generally small problems, not big ones. The code provided does loop over pixels. You’re right that the book doesn’t contain a chapter on signal processing, but graphics is now far too big a topic to be covered in one book, and it’s certainly questionable whether one needs to rabbit-hole on filtering in a college intro course; Monte-Carlo integration of multiple rays over a pixel is okayish at antialiasing & filtering, and pretty good for a first renderer. Antialiasing and filtering aren’t solved problems anyway, especially for HDR, so it makes sense to leave that topic for advanced courses.
homarp
> paid service
What's new section says:
App Changes
Moved web hosted version to graphicscodex.com, made access free for everyone.
omershapira
> a paid service
It's a book you purchase. I've never had a book charge me a recurring fee, and this one is no exception.
somethingsome
I'm writing a book on computer graphics, I would love to have a list of in depth topics people are interested in :) let me know if you have some requirements
integricho
some really in-depth coverage of debugging and troubleshooting tools, e.g. usage of RenderDoc, but not just fluffy introductions, but some really deep down guides.
and something similar for performance profiling also!
somethingsome
OK thanks! The book will cover most of the math's in an intuitive way but rigorously nonetheless. It aims to build the theory from ground up.
I already have a full chapter on aliasing.
The exercices use renderdoc and nvidia tools ;)
WillAdams
How does this compare to:
https://projectivegeometricalgebra.org/
My current project requires better solutions for conic sections than I have thus far been able to find --- the last time I tried solving the problem I was chaining trigonometric triangles and got 5 or 7 deep (plus calculating the chord of a circle) and performance bogged down --- this was in OpenSCAD, and I think before Manifold, so maybe I need to revisit my code in Python in (Open)PythonSCAD w/ Manifold enabled.
dahart
It doesn’t really compare, very different topics and very different content. The Graphics Codex is about rendering, and Projective Geometric Algebra is pure geometry presented in a subset of Clifford Algebra. I think the only ‘conics’ covered in the Graphics Codex might be sphere-line intersection, and calling that conics is a stretch. ;)
Out of curiosity, what kind of conics problem are you trying to solve?
WillAdams
I am trying to work out a toolpath problem for tapered ball nose tooling on CNC machines as a part of:
thelaxiankey
it looks alright -- 10 bucks is not much for a book. but there are already many great graphics books out there, and resources like inigo quilez's blog are absolutely incredible for the burgeoning graphics programmer
malauxyeux
> but there are already many great graphics books out there
Would you mind listing your personal top n books?
mjfl
It’s a great book!
I definitely have a big interest in this (It sounds like it'd be the more advanced-bits mainly (I've worked in VFX for 23 years)) but was a bit disheartened to learn that it was a paid service.
I also searched the 'try it for free' version and the word 'aliasing' only seemed-to-be-mentioned once!? I would've thought that the arch-enemy of computer graphics (at least the raster-display kind) might have gotten more of a mention!?
It also seemed odd to not really talk about 'filtering' and (at least from a brief investigation) it doesn't seem to really concern itself much with pixels at all! Maybe that's why there's a section titled "Rendering is Very Hard"?) Edit: I read-on from there a bit and this turns out to be about algorithmic complexity side of the rendering equation and not that it's hard to talk about pixels! fair enough! this document still seems more about CG in-the-abstract than the practical to me!
At least 'smootherstep()' got a mention, although what about 'smootheststep()'!? (easier to read if u split the words up: "smoothest step" example here: https://www.shadertoy.com/view/ltSfWV)