Release Notes for v0.7.0
2019-08-30Main Executable
The main executable is now found in either the release
or debug
subfolder:
> ls ./target/release/rs_pbrt
./target/release/rs_pbrt
> ls ./target/debug/rs_pbrt
./target/debug/rs_pbrt
This was achieved by moving rs_pbrt.rs
out of the examples
folder
into a bin
folder and by adjusting the Cargo.toml
file:
> tail Cargo.toml -n 3
[[bin]]
name = "rs_pbrt"
path = "src/bin/rs_pbrt.rs"
Other executables
Therefore there are three executables which can be used for rendering:
> ./target/release/rs_pbrt --help
Usage: ./target/release/rs_pbrt [options]
Options:
-h, --help print this help menu
-i FILE parse an input file
-t, --nthreads NUM use specified number of threads for rendering
-v, --version print version number
# e.g.
> ./target/release/rs_pbrt -i assets/scenes/cornell_box.pbrt
pbrt version 0.7.0 [Detected 8 cores]
Copyright (c) 2016-2019 Jan Douglas Bert Walter.
Rust code based on C++ code by Matt Pharr, Greg Humphreys, and Wenzel Jakob.
Film "image"
"integer xresolution" [500]
"integer yresolution" [500]
Sampler "sobol"
"integer pixelsamples" [8]
Integrator "path"
Rendering with 8 thread(s) ...
1024 / 1024 [======================================================================] 100.00 % 191.89/s
Writing image "pbrt.png" with bounds Bounds2 { p_min: Point2 { x: 0, y: 0 }, p_max: Point2 { x: 500, y: 500 } }
The other two still reside in the examples
folder and are currently experimental:
> ./target/release/examples/parse_ass_file --help
Usage: ./target/release/examples/parse_ass_file [options]
Options:
-h, --help print this help menu
-i FILE parse an input file
-s, --samples NUM samples per pixel
# e.g.
> parse_ass_file -i assets/ass/cornell_box.ass -s 1
FILE = assets/ass/cornell_box.ass
search_directory is /mill3d/users/jan/git/github/rs_pbrt/assets/ass
5174 bytes read
options {
xres 500
yres 500
camera "CACamera"
GI_total_depth 11 }
standard_surface { name MAdefault }
standard_surface { name MAbox_Material
base_color 0.5 0.5 0.5
specular_color 1 1 1 }
standard_surface { name MAcbox_Material
base_color 0.4 0.4 0.4
specular_color 1 1 1 }
standard_surface { name MAcbox_red
base_color 0.5 0 0
specular_color 1 1 1 }
standard_surface { name MAcbox_green
base_color 0 0.5 0
specular_color 1 1 1 }
render_camera = "CACamera"
fov = 39.14625
filter_name = "gaussian"
filter_width = 2.0
max_depth = 11
samples_per_pixel = 1
number of lights = 2
number of primitives = 36
resolution = Point2 { x: 500, y: 500 }
Rendering with 8 thread(s) ...
1024 / 1024 [=====================================================================] 100.00 % 1071.78/s
Writing image "pbrt.png" with bounds Bounds2 { p_min: Point2 { x: 0, y: 0 }, p_max: Point2 { x: 500, y: 500 } }
The parse_ass_file
executable mentioned above can be used to render
some Arnold files. It was a quick
test, if the API can be used to render other scene descriptions in
general. There is a
ticket about the current
state.
Another test was if it would be possible to render binary Blender directly, because I plan to model test scenes with Blender:
> ./target/release/examples/parse_blend_file --help
pbrt 0.7.0
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
# e.g.
> parse_blend_file assets/blend/suzanne_integrator_test_2_79.blend
parse_blend_file version 0.7.0 [Detected 8 cores]
BLENDER-v279
857932 bytes read
number of lights = 2
number of primitives = 5426
Rendering with 8 thread(s) ...
1024 / 1024 [======================================================================] 100.00 % 927.55/s
Writing image "pbrt.png" with bounds Bounds2 { p_min: Point2 { x: 0, y: 0 }, p_max: Point2 { x: 500, y: 500 } }
Here a link about Blender's scene files and a ticket to follow the progress.
USD
The plan for the future is to find a workflow where Blender scenes
can be converted to Pixar's Universal Scene Description
USD and rendered directly by
rs-pbrt
. That way we can generate USD scenes from other sources
(e.g. Maya and
Houdini) and still render them.
Procedural Textures
There are a couple of new procedural textures and the
documentation
shows some images for texture patterns now. Those images can be
rendered by the provided .pbrt
test scenes:
- assets/scenes/checkerboard.pbrt
- assets/scenes/dots.pbrt
- assets/scenes/fbm.pbrt
- assets/scenes/marble.pbrt
- assets/scenes/windy.pbrt
- assets/scenes/wrinkled.pbrt
Issues
Since the last release the following issues were solved:
- A problem with the villa test
scene, showed that we
have to deal with
shadowalpha
. - The ticket to create a marble texture inspired me to go through other procedural textures, provide test scenes for them, and implement what's missing.
The End
I hope I didn't forget anything important. Have fun and enjoy the v0.7.0 release.