Ray Tracing Gems II available as free download
developer.nvidia.com
developer.nvidia.com
I'm super glad it's finally getting out to readers. I think that Adam, Ingo and Peter did a fantastic job bringing all of this together over the course of the last 18 months.
The actual book download link seems to be https://link.springer.com/content/pdf/10.1007%2F978-1-4842-7... for now (884 pp., 262 MB!, md5sum 0e23ade6512d9a3ffa97a17d45521563). At the moment, the book itself claims to be CC-BY-NC-ND on the colophon page, but then later repeats the above confused text from the web page with its three conflicting licenses.
The book content is SUPER SWEET. :)
When I was a kid I was really fascinated with POVRay, but my 286 was too slow to make it very much fun. And I sucked at programming. A few years ago I wrote http://canonical.org/~kragen/sw/aspmisc/my-very-first-raytra... and it was amazing. 200 lines of C, one night of hacking, was enough to get from floating-point arithmetic, scanf, and putchar, to gorgeous glowing shining spheres. And it took under a second. On my netbook. Fucking magic.
But the techniques in this book enable orders of magnitude more amazing stuff than that!
If you're writing this stuff in GLSL instead of C, aside from the speed, you can save about 15% of the code --- you don't have to waste 20 lines on teaching C how to do math with 3-vectors, you can write v - w instead of sub(v, w), you don't have to spend 8 lines on teaching C how to write a PPM file, and you can immediately see the results on the screen. But parsing an input scene file is gonna be a little tougher.
That program is just a standard Whitted-style raytracer. (Interestingly, Whitted works at NVIDIA now.) More recently, I wrote a minimal SDF ray tracer instead, in Lua; it's a lot less code: https://gitlab.com/kragen/bubbleos/-/blob/master/yeso/sdf.lu...
So if at some point in the future you want to write code like this, reading this book might putting you, your employer, or free-software projects you contribute to at legal risk :(
The Ray Tracing Gems I book code doesn't have this problem! https://github.com/Apress/ray-tracing-gems/blob/master/LICEN...
This has been used by the authors of the Numerical Recipes series for decades to extort royalties from programmers who learned about numerical algorithms from their books.
The explanatory text is not subject to the same problem; you read the explanatory text in order to understand the code, not in order to be able to write more explanatory text substantially similar to what is in the book.
If they really aren't going to sue you for writing similar code, they could formalize that in a way that's binding on future management by attaching a free-software license to the example code. That's what they did with the previous book in the series.
Instead, they specifically changed the license for the code examples in this book to ensure that they can sue you for writing similar code in the future.
That's pretty much the literal definition of free as in beer. It sure as hell aint free as in freedom.
Not that i begrudge that, its their book they can do what they want with it.
I'm not criticizing, free as in beer is much better than costs $$$, i'm just saying when people say "free as in beer", this book is precisely the type of situation they mean.
Its an analogy invented by the Free software movement to describe the difference between "freeware" vs "bsd/gpl/etc" licensed software. "Free as in beer" does not mean "proprietary/all rights reserved".
After all, the ability to sometimes be able to get beer for free isn't how property law works generally; you can't just walk into any store and demand a free beer - most beer isn't free.
Fast forward to today, and I've had the great fun of contributing a chapter (#31) to this book.
And speaking of GLSL, I've already done that for my portion of this book. I chose to write my code samples in GLSL so that I could demo them verbatim in a web browser with https://www.shadertoy.com/view/tlcBzN. (Note that speed-wise, the FPS counter in Shadertoy is a bit misleading. Each frame is actually accumulating 32 samples per pixel.)
Reminds me of that time when it was found that Nintendo used some pirate ROMs in one of their emulation based products.
https://link.springer.com/content/pdf/10.1007%2F978-1-4842-7...
It's a pity that the code examples are not licensed for commercial use.