CS7490 Advanced Image Synthesis |
Sungbae Kim's Renderer Warm-up Exercise |
Rendering with PBRT |
![]() Images from Physically Based Rendering website |
What is PBRT? | |
PBRT is a renderer for a graphics book, Physically Based Rendering of Matt Pharr and Greg Humphreys. They provide their renderer, even its source code, to enhance readers' understanding. By practicing what you learn from the book, you can understand rendering algoritms more easily. Furthermore, this renderer is widely used in research because it has flexible structures to add other functions. |
How to use it | |
Download source code | |
You can download source code here. There are several versions for different operating systems, which are Linux, OSX and Windows. | |
Documentation | |
Unfortunately they don't provide any tutorials for free for the renderer because PBRT is based on a commercial book. Actually their book is the best tutorial! But full descriptions of source code by doxygen are included in source code files. |
What kind of renderer | |
Rendering type | |
This is a kind of ray tracer, and the authors provide a plugin for "Instant global illumination." It doesn't have a shading language nor RenderMan API. | |
Modeling type | |
PBRT has its own scene description grammars and loads triangle meshes in its grammar or obj format files by the obj-pbrt plugin. |
Examples from others | |||||||
My rendering machine's spec : CPU - Intel Core2 Duo 2.0GHz, RAM - 2GB | |||||||
|
Simple Examples from me | |||||||||||
My rendering machine's spec : CPU - Intel Core2 Duo 2.0GHz, RAM - 2GB | |||||||||||
PBRT has various ray tracing mode. I have rendered models with them. The model which is used in these examples is from Large Geomoetric Models Archive | |||||||||||
Rendering angels width various surface integrators | |||||||||||
I have some problems to find the exact configuration for each rendering. So there are some artifacts in some rendered images. | |||||||||||
|
|||||||||||
Rendering angels width translucent materials | |||||||||||
Actually it doesn't work well. First one is from an above example, diamond. There are many artifacts. I guess it is because of the model's complexity. In the case of glass, there is also an artifact, but it is from the size of faces. | |||||||||||
|
Conclusion | |
PBRT is very good tool to learn rendering algorithms with its book.
Also it is widely used in graphics classes and research for its flexibilty to add functions.
Many students and researcher are adding new functions to PBRT.
But because it is based on a book, if you want to use PBRT, you need to buy a book.
So there aren't many online communities to exchange information about the renderer.
Its scene description format is well defined and like stack based state machine. And its detailed parameters are configuable. But setting eye and model positions was very difficult. I recommend this when you'd like to study and research rendering algorithms. |