Release Notes for v0.7.1
2019-09-19New files
The following files were added:
accelerators/kdtreeaccel.rs
: Everything you need to implement a k-d tree. Mainly the KdTreeAccel struct. Other details can be found in the kdtreeaccel module documentation.filters/sinc.rs
: The LanczosSincFilter struct and its functions.src/lights/projection.rs
: The ProjectionLight and related methods.examples/filters_create_mitchell_filter.rs
: Example, used in the filters documentation, how to create a MitchellNetravali filter.examples/filters_create_sinc_filter.rs
: Example, used in the filters documentation, how to create a LanczosSincFilter.
Blender
The GitLab
repository contains a new
.blend
file, conference_room_v2_79.blend
, which can be rendered using the
parse_blend_file
(example) executable:
> parse_blend_file ... conference_room_v2_79.blend
The Blender scene is also setup for the Cycles renderer and renders (using the denoiser) like this:
The rendering time went down from about 3 hours to just a
bit longer than one minute. This shows how important the denoiser
is to get rid of the noise fast. For rs-pbrt
I created a
project for
that. Currently, without a denoiser, you get a good result, using
128 samples, in about 10 minutes:
Here the command line used to render the image above:
> parse_blend_file --camera_name current_cam --integrator path --light_scale 1 --samples 128 conference_room_v2_79.blend
parse_blend_file version 0.7.1 [Detected 8 cores]
BLENDER-v279
14109472 bytes read
number of lights = 336
number of primitives = 207512
integrator = "path" [(Unidirectional) Path Tracing]
Rendering with 8 thread(s) ...
2709 / 2709 [========================================================================] 100.00 % 4.52/s
Writing image "pbrt.png" with bounds Bounds2 { p_min: Point2 { x: 0, y: 0 }, p_max: Point2 { x: 1000, y: 676 } }
To see more images rendered by various other renderers have a look into the GitHub repository, where I collect those images and other information.
Here is the current help information about the available command line flags and options:
> parse_blend_file --help
pbrt 0.7.1
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
To find out, which other cameras are defined in the Blender scene, and what their names are, please read the following blog post to understand the command I'm using to retrieve that information:
> blend_info conference_room_v2_79.blend | grep ' "CA'
"CAcurrent_cam" has 2 data blocks
"CAdoor1_cam" has 2 data blocks
"CAdoor2y_cam" has 2 data blocks
"CAshaft_cam" has 2 data blocks
"CAxY_cam" has 2 data blocks
Basically the blend_info
executable can be compiled from this
Codeberg repository and will
print a lot of information to the shell, where the program was started
from. I filter that information and search (via grep
) for lines
using the CA
prefix (Blender uses internally that prefix for
cameras). So, to render other camera perspectives defined in the
same Blender file use:
> parse_blend_file --camera_name current_cam ...
> parse_blend_file --camera_name door1_cam ...
> parse_blend_file --camera_name door2y_cam ...
> parse_blend_file --camera_name shaft_cam ...
> parse_blend_file --camera_name xY_cam ...
Warning: Do not expect any arbitrary Blender file to render
via parse_blend_file
. There is not much documentation about the
current limitations, but those files stored
here,
should render fine. Maybe one day I will find time to write more about
the current status and the future plan(s).
The End
I hope I didn't forget anything important. Have fun and enjoy the v0.7.1 release.