Hi Marin,
"Ray Tracing in One Weekend" is a good start, the follow up books as well,
as someone already suggested.
Creating your own version of PBRT? Depends what you try to learn.
My way of learning the content of the book was as well to create my
own version:
https://www.rs-pbrt.org/about/
But the learning effect was also about a new programming language,
Rust (
https://www.rust-lang.org). I even found bugs in the C++ code
by doing that (e.g. out of bounds indices into arrays etc.). Timewise it
took me 3-4 years to have a full replacement of the C++ code, but I
got the first images after a couple of month. Keep in mind that you
might have to re-implement boring stuff, like vectors, matrices,
quaternions. It's up to you if you want to invest time into basics like
that, for the Rust counterpart that made sense, but also could have
been avoided (using other libraries to do that). I learned a lot, but
be aware of the time you need to invest ...
Also, the source code for v4 of PBRT is already available:
https://github.com/mmp/pbrt-v4
https://youtu.be/AXuk7bmhZ2g
My advice is, learn how to create a debug version of either the C++ and/or
the Rust code. Use the command line argument '--nthreads 1' for debugging,
and single step through code you are interested in (e.g. intersecting a ray
with a sphere). Compare your theoretical knowledge (e.g from other books or
Peter Shirley's code) with a concrete implementation (C/C++, Rust, any language
really) and focus on areas of interest. Try to change small things (maybe even
improve existing code), otherwise the complexity will just bury your ambition.
Once you got the small bits under control you can think about bigger projects.
Compare v3 against v4 (for now just the source code, until the book is ready).
My 2 cents,
Jan
P.S.: I'm happy to explain to you a couple of things just by clicking through
online documentation:
https://www.janwalter.org/doc/rust/pbrt/
or
https://www.rs-pbrt.org/doc/crates/pbrt/index.html
Good starting point are the different render loops.
AO and directlighting to start with, etc.
> --
> You received this message because you are subscribed to the Google Groups
> "pbrt" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to
pbrt+uns...@googlegroups.com.
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/pbrt/564654e3-9cb0-4cf9-b69c-499681feedd2n%40googlegroups.com.
>