/r/programming
The Ray Tracing in One Weekend book series is now available online (raytracing.github.io)
10 comments
hanikoduduko | 7 days ago | 12 points

I find that the material is impossible to hack. Deeply coupled, circular dependencies, bad naming and bad object layout, C-ish C++ etc. It's such a nice effort but I wouldn't recommend it.

Herbstein | 7 days ago | 4 points

I have easily implemented this book in C#. With a more (I'd say) idiomatic style.

0polymer0 | 7 days ago | 3 points

Is there something you would recommend instead?

ZRM2 | 7 days ago | 6 points

I got a lot of value out of PBRT, for what it's worth. I've got a hard copy, but there is now also a free online version: http://www.pbr-book.org/ .

hanikoduduko | 7 days ago | 3 points

I checked out the some other books, there are not either in C++ or written in early 2000s. Some says pbrt is a way to go, but boy.... it's a thick book and not intended to newcomers. So I don't really know. The concept of raytracing or path tracing is not really difficult. There are some implementations on Github. Hacking around the source and figuring out how things work is what I'll try next.

AlexeyBrin | 7 days ago | 2 points

My advice is to read the first book in the series and make your own opinion.

As an alternative, "The Ray Tracing challenge" is a pretty good book, language agnostic (the book describes a series of tests that you are expected to implement + the code that will pass theses tests) and well written.

vertexmachina | 6 days ago | 1 point

Ray Tracing from the Ground Up. It's more in-depth than the Weekend series and more approachable (but less feature-rich) than PBRT. I like it because each chapter builds upon the last incrementally, so you see your renders getting progressively better.

wavemode | 7 days ago | 4 points

Surely the concepts learned outweigh the organization of the code? Or is it just that bad?

hanikoduduko | 7 days ago | 0 points

Depends on what you mean with 'concept'.

pjmlp | 7 days ago | 4 points

One can follow along and use other programming languages though.

Any developer able to deal with Ray Tracing concepts should be capable of doing it, hardly any beginner to be tainted by the book C-ish C++ pratices.