top | item 25812330

PBRT in Rust

141 points| signa11 | 5 years ago |github.com | reply

30 comments

order
[+] sam_bristow|5 years ago|reply
Since it isn't actually spelled put in the linked repo: PBRT is "Physically Based Rendering".
[+] mrec|5 years ago|reply
I'm pretty sure the acronym was for "Physically Based Ray Tracing". The original preface to The Book explicitly says that

> pbrt is based on the ray-tracing algorithm

I suspect it's moved to "Rendering" in common usage to avoid getting hung up on distinctions like ray tracing versus path tracing versus hybrid techniques.

[+] navaati|5 years ago|reply
And I’m still looking for the 'T'.
[+] rootbear|5 years ago|reply
From some long-ago SIGGRAPH presentations, I recall it as "Physically Based Rendering Toolkit".
[+] trox|5 years ago|reply
I always assumed that PBRT is an acronym for "Physically Based Rendering Textbook".
[+] moron4hire|5 years ago|reply
PBR shaders are not trivial. It's incredible to me that they are readily available in all the shader languages, for free. Your common gamer thinks that the game engine is responsible for the quality of graphics in a game. This is hugely untrue. The quality is largely down to how well the art assets have been authored to take advantage of PBR. And that tech is, for all practical purposes, free (in both senses of the word).

My only gripe with modern day graphics documentation is the huge gap in any guidance on building a well-performing rendering pipeline. There are hundreds of tutorial series that get you as far as rendering a single, lit, textured, normal mapped model. But managing multiple models, multiple lights, different types of materials, takes a very different design for resource management and is basically ignored.

The current situation is certainly better than it was 20, even 10, years ago. But that last, missing piece is pretty vital.

[+] dexwiz|5 years ago|reply
I spent a lot of time reading this literature as an outsider to graphics development this summer. I agree resource management is the real engineering problem and the graphics code itself is the idealized code that is relatively small in comparison.

My conclusion is that resource management across different hardware is a secret sauce that helps individual engines push the limits of the current generation. Listening to interviews with developers, and they rarely talk about a novel lighting formulas. Instead they talk about squeezing in high res textures or more colors. How they managed so many assets or faked a reflection. I imagine the work is incredibly tedious and makes browsers differences look trivial.

Differences between hardware is largely how memory can be mapped between CPU, shared, and GPU memory.

[+] mattgreenrocks|5 years ago|reply
Related: I've read numerous reviews on Amazon about the poor printing quality of the book. Is that true? Is there a better version of it, or should I hope the updated version that is in-progress will rectify those issues?

I'd love to buy the book, but would hate to shell out money for a crappy printing.

[+] TazeTSchnitzel|5 years ago|reply
Amazon has a terrible counterfeiting problem, including for books. It's possible that a third-party seller made a counterfeit, low-quality print of the book and set a lower price that meant they got chosen for the “buy button” by the Amazon algorithm (this has happened to many books). Since the reviews don't distinguish between sellers, you get this problem.

If you buy from a legitimate book store, perhaps this can be avoided?

[+] adamnemecek|5 years ago|reply
The fourth version is coming out this summer so consider waiting. As far as print quality I thought I was pretty good.
[+] oxymoron|5 years ago|reply
My copy has excellent print quality, as far as I can remember.
[+] erichocean|5 years ago|reply
I think there is a lot of value in doing this kind of exercise. Good work!
[+] Blikkentrekker|5 years ago|reply
If the classroom is located in Japan, then where are all the other rooms located?

This s vital information, of course.

[+] fluffything|5 years ago|reply
I wonder if PBRT will ever deliver GPU support.
[+] 0-_-0|5 years ago|reply
The latest version v4 [0] has GPU support, some of my colleagues are using it already. Looks like the Rust version linked is based on v3 though.

"Support for rendering on GPUs is available on systems that have CUDA and OptiX."

[0]: https://github.com/mmp/pbrt-v4