Release Notes for v0.4.5

Crossbeam Crate

@@ -10,7 +10,7 @@ default = ["openexr"]
 
 atomic = "0.4"
 byteorder = "1"
-crossbeam = "0.4"
+crossbeam = "0.5"
 getopts="0.2.15"
 half="1"
 hexf = "0.1.0"

The new version of the crossbeam create differs in the crossbeam::scope function between version 0.4 and version 0.5. The new version looks like this:

        crossbeam::scope(|scope| {
...
            scope.spawn(move |_| {
...
        }).unwrap();

Documentation

I provide documentation for the latest official release and intermediate (between releases) updates. The main difference is that one links to source code (for example to the RealisticCamera struct), whereas the other does not, but is updated more frequently.

Cameras

One of the biggest changes for this release is that we support all four cameras now:

> rg "public Camera" ~/git/github/pbrt-v3/src/
/usr/people/jan/git/github/pbrt-v3/src/core/camera.h
84:class ProjectiveCamera : public Camera {

/usr/people/jan/git/github/pbrt-v3/src/cameras/environment.h
48:class EnvironmentCamera : public Camera {

/usr/people/jan/git/github/pbrt-v3/src/cameras/realistic.h
49:class RealisticCamera : public Camera {
> rg "public ProjectiveCamera" ~/git/github/pbrt-v3/src/
/usr/people/jan/git/github/pbrt-v3/src/cameras/orthographic.h
49:class OrthographicCamera : public ProjectiveCamera {

/usr/people/jan/git/github/pbrt-v3/src/cameras/perspective.h
49:class PerspectiveCamera : public ProjectiveCamera {

The relevant issues/commits can be found here:

  1. The Blender addon allows perspective and orthographic cameras now.

  2. The Implement EnvironmentCamera issue documents what had to be done for the environment camera.

  3. Finally, the Implement RealisticCamera gives the details about the realistic camera, which is described in this chapter of the online book.

Antoine Büsch joins

Antoine Büsch, the author of another Rust based PBRT implementation joins rs-pbrt and contributed some code from his implementation:

commits

So this must be the highest amount of commits for this repository since I started working on it. He actually started way earlier than me on his project and we were aware of each others efforts, but last week we decided to join forces and I think it was a nice start.

commits

Some of the pull requests in the image above contributed:

  1. A Mitchell-Netravali filter, described in this chapter of the online book.

  2. The Disney material. We need some test scenes to play with all the parameters (described here). I left the issue open because there are some artifacts we have to investigate.

  3. Related to the Disney material are two new BxDFs: MicrofacetTransmission and LambertianTransmission.

  4. Lots of smaller contributions to clean up the source code, but one was very important to bring the compile time down.

The End

I hope I didn't forget anything important. Have fun and enjoy the v0.4.5 release.