Skip to content

Rendering v3 vs v4

Ben Heasly edited this page Oct 18, 2016 · 7 revisions

RenderToolbox4 contains many ExampleScenes based on examples from RenderToolbox3. See release notes. Our goal was to reproduce the RenderToolbox3 examples using the new RenderToolbox4 style.

We used the utilities rtbTestAllExampleScenes() and rtbCompareAllExampleScenes() to compare sets of Reference Renderings generated by RenderToolbox4 and RenderToolbox3.

Most examples compared well, with overall correlations and single-pixel differences comparable to our Rendering Repeatability tests, where the same RenderToolbox4 examples were rendered twice and compared to themselves.

A few examples compared less well. See below for some images and accounting for the differences.

Summary

rtbCompareAllExampleScenes() produced a summary of comparisons between RenderToolbox3 and RenderToolbox4.

The summary plot sorts these renderings using the Relative Difference described at Rendering Repeatability. Only the 26 renderings with the largest Relative Differences are shown. These were the "worst reproductions" .

Summary of the "worst reproductions".

Specific Examples

The worst reproductions, at the top of the summary plot above, came from three examples:

Let's look at these specific examples and try to explain why they didn't reproduce well.

RGBPromotion

For both PBRT and Mitsuba, the RGBPromotion example changed significantly between RenderToolbox3 and RenderToolbox4.

This example contains a reflective square mesh, viewed head-on by the camera. For both renderers, the square appears smaller in the RenderToolbox4 image than it does in the RenderToolbox3 image.

Above, Mitsuba rendered the RGBPromotion scene, twice.

Above, PBRT rendered the RGBPromotion scene, twice.

This change was caused by a small oversight: in RenderToolbox4 the camera's field of view was 60 degrees, as opposed to 49 degrees in RenderToolbox3. Happily, this change is immaterial to the goal of the example, which concerns the spectrum of the center pixel.

CoordinatesTest

For both PBRT and Mitsuba, the CoordinatesTest example also changed between RenderToolbox3 and RenderToolbox4.

This example contains mesh cubes and spheres, with positions and colors chosen to outline the XYZ coordinate axes. For both renderers, the shading and colors look different in RenderToolbox4 than they did in RenderToolbox3

Above, Mitsuba rendered the CoordinatesTest scene, twice.

Above, PBRT rendered the CoordinatesTest scene, twice.

This change highlights the major difference between RenderToolbox versions: RenderToolbox4 used Assimp and mexximp to load the scene from a Blender file, whereas RenderToolbox3 loaded the scene from a Collada file. Blender and Colada use different defaults for vertex normals and RGB color scaling, and these differences are noticeable in the output images.

For most examples, we would not notice differences in RGB colors, because we usually provide explicit multi-spectral reflectances for scene elements using Mappings and Conditions. This CoordinatesTest example is intended to test the loaded scene without such modifications, so it allows the default loading behaviors to show through.

Light Field Sphere

The Mitsuba LightFieldSphere example also changed form RenderToolbox3 to RenderToolbox4.

This example contains a Ward model sphere illuminated by a spatially varying light field. The illumination reflected by the sphere was brighter overall in the RenderToolbox4 image. However, the glancing reflections around the edge of the sphere were brighter in the RenderToolbox3 image.

Above, Mitsuba rendered the 4th variant of the LightFieldSphere, twice.

Above, PBRT rendered the 3rd variant of the LightFieldSphere, twice.

This change came from two oversights in the Ward material specification:

  • RenderToolbox4 used the original "ward" material variant, whereas RenderToolbox3 used the improved "balanced" variant.
  • RenderToolbox4 used a default specular reflectance magnitude of 0.5, whereas RenderToolbox3 used 0.2

These changes are immaterial to the general goal of this example, which is to demonstrate spatially-varying light field illumination. Nevertheless, these oversights have been corrected for future renderings.

Other Renderings

This test included 166 additional renderings that don't appear in the summary figure above. These renderings were reproduced "at least as well as" the examples shown. They had higher rendering correlations and lower relative errors between pixel components. We consider these remaining examples to be successfully reproduced in RenderToolbox4.

Clone this wiki locally