Release Notes for v0.6.2
2019-06-28Intro
As described in the last release
notes there is an
executable to read binary Blender files and
render them, called parse_blend_file
:
> ./target/release/examples/parse_blend_file --help
pbrt 0.6.2
Jan Walter <jan@janwalter.com>
Parse a Blender scene file and render it.
USAGE:
parse_blend_file [OPTIONS] <path>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-c, --camera_name <camera_name> camera name
-i, --integrator <integrator> ao, directlighting, path, bdpt, mlt
-l, --light_scale <light_scale> global light scaling [default: 1.0]
-s, --samples <samples> pixel samples [default: 1]
ARGS:
<path> The path to the file to read
There are no new command line options, but I did work on a more complex scene from the Rendering with Radiance book, by Greg Ward Larson and Rob A. Shakespeare. The corresponding Blender file is still work in progress. Basically this scene exists already in Blender's file format (see here) but I tried to simplify it (because it was generated by some Python scripts parsing the Radiance scene description and translating it to Blender). The current parser for the binary Blender file format has a couple of assumptions, like:
- Objects, data, and materials have the same base name,
e.g.
OBcornellbox
,MEcornellbox
andMAcornellbox
(the prefixesOB
,ME
, andMA
are only visible in the binary file format, and used internally within Blender, but not in the UI). - If no camera name is specified from the command line options
the name
"Camera"
is used to get the camera transformation. - Smoothness is valid for the whole mesh, which means that if you don't want to provide vertex normals everywhere, split the mesh into several parts (at least two, smooth, and flat). An example would be a cylinder with flat top and bottom faces/triangles, and smooth sides (so you don't see the tesselation there).
- If there is a single HDR image mentioned within the binary file, assume that we should use it for Image Based Ligthing (IBL). The Simple Room scene from the last release notes uses such a HDR texture for lighting.
- Lights with type
LA_SUN
have a position but point always to the origin. That might be changed in the future.
Since the last release I added two new features:
-
You can use textures now. The art gallery has an image hanging on one of the walls, which is simply a rendering of another scene. It also uses procedural noise on the floor, which was baked into a texture.
-
Mis-using the specular color you can create tinted glass. The same color would be copied over and adjusted with HSV (so the V value should be 0.96).
Above you see the material settings in Blender (using the old
material interface, not the Cycles node tree), and below a
rendering using Cycles (using some glass material in the node
tree) on the left and parse_blend_file
on the right (still
extracting the old materials settings regardless of the node tree).
I think currently you see some differences in the reflected color,
because Cycles seems to pick up the color used for tinting, whereas
rs-pbrt
was told to use a white color for reflection (so that part
is not tinted).
Bug fixes
This release fixes a couple of minor problems, which I found more or less while working on a bigger issue, the Coffee Splash scene not picking up the proper color. It does now:
There is still a difference (between the Rust
and C++
version)
in the handle of the cup, but that will be fixed sometime in the
future.
Daniel Egger joins
Daniel Egger (@therealprof) submitted a couple of pull requests for this release and I accepted all of them.
The End
I hope I didn't forget anything important. Have fun and enjoy the v0.6.2 release.