When Vue 2014 was released, it has brought some dashing new features for the amusement of 3D Environment Artists, and for the convenience of Vue’s integration into professional pipelines. These new additions include Tone Mapping (a.k.a. Exposure) Filters, and this post focuses on one of them: Reinhard 2 filter. My last few renders were saved using this filter, and I’ve noticed a high interest and controversy regarding this filter in our little (but rapidly growing) Vue community. Since this filter is not so widely used yet, mainly due to the fact that it makes a render look very different from the renders Vue artists are used to, I promised to dedicate a post to it. This post is based on some theoretical research and some recent studio experiences as well.
Before rushing into this topic, let me tell you something that you may already know; Reinhard 2 filter, and tone mapping filters in general are not new. They’re new in Vue, but they have been important parts of many render engines for several years. They may have different options for settings, but the theory behind this filter is the same.
The purpose of Reinhard filter
The Reinhard exposure filter was developed by a guy called Erik Reinhard (obviously), and his co-workers (M. Stark, P. Shirley and J. Ferwerda) from the University of Utah, as a result of a research on the mapping of the high dynamic range of the real world (especially environments with strong light sources) to the low-dynamic-range print or screen. The research was based on the “zone system” – a photographic process developed by Ansel Adams, the guy who was – and is still – famous for his incredible B&W landscape photography. The goal is fairly simple: to render and process images with accurate light intensity, based on a scale of 11 tones from pitch black to bright white.
If you’re interested in diving deep into the theoretical background of tone mapping, the entire document of the research and development of Reinhard filter is available online, and on Wikipedia, you can read more about the zone system.
Reinhard filter meets 3D rendering
So what is the role of this filter in 3D rendering? Basically, what the filter does is that it balances the bright and dark areas of an image on a pixel by pixel basis. It reduces highlight intensity, and makes shadows less dark. Originally this type of filter was developed for rendering indoor scenes with intense light sources, but it can work equally well with outdoor landscapes. Whether we are in a room or outside, our brain also creates the same kind of balance, that’s why we don’t really see anything so contrasted. With the Reinhard filters, we can avoid getting “too perfect” renders. With a good balance of light/highlight and shadow intensity, we get a softer, more realistic, but less dramatic look.
Reinhard 2 filter meets Vue landscapes
If you own a Vue 2014 license, you know that in the newest Vue version, there are two Reinhard filters. We’ll skip Reinhard 1, since the only thing you can control is contrast enhancement. I’ve never used it, and probably never will. With Reinhard 2 filter, you have much more to tweak, and that’s what I’m going to demonstrate with the scene of our product titled “Hot Days in the Desert“. The custom exposure filter settings applied on the image above were included in the caption and in the full product description. In Vue, you can tweak the Brightness, Chromatic Adaptation and Light Adaptation if you use Reinhard 2 filter (and of course, you can control the exposure as well). Let’s see how they work in practice.
Brightness: it controls the overall brightness of the image (“an overall scaling factor” – as the Reference Manual says). With this slider, you can fine-tune the brightness of the image. The difference between 0 and 1, the minimum and maximum values of the sliders, is minor, yet somewhat significant in achieving the final result you want.
Chromatic Adaptation: with this slider, you can control the color contrast, more exactly the color balance of the image. Similar to the white balance settings of a camera, Chromatic Adaptation controls the “perception” of the colors in our virtual landscape. It’s based on the principle that – regardless of the light conditions – the human vision’s perception of color is constant (e.g. a red apple looks red to us at noon, during sunset and in twilight as well, though the main illumination colors vary during the day). Practically speaking, a high CA value slightly neutralizes the color intensity caused by specific light/atmospheric conditions. In our comparison below, we see that at 0, the “decay” of the morning atmosphere is more prominent. At 1, the warm color tone caused by the decay is reduced.
Light Adaptation: in Vue, with this slider, you can control whether the tone operator acts rather locally (higher values) or globally (lower values). Local light adaptation reduces the overall contrast of the image, and increases the color intensity. In my example, there is a significant difference between the two outputs (below), though the results achieved controlling the light adaptation are highly dependent on our chromatic adaptation values. If the CA value is high, the colors at a higher LA value are less vivid, and the image is slightly more contrasted. Since our custom CA value was pretty low, a LA value of 1 gave a kind of vintage look.
In conclusion, Reinhard 2 filter is responsible for achieving the right balance between bright and dark areas and an adjusted color balance >> this filter gives a soft and realistic look that is more pleasing to the human eye. But since the keyword here is balance, Reinhard 2 filter is not the best choice if you want to achieve a dramatic effect. Let’s take a quick look at how the same image looks like with the default Vue Exposure Filter:
…and here are some tips
Be careful with Texture Anti-Aliasing. In several cases, it has been confirmed that if TAA is enabled in the render settings, Reinhard 2 filter turns the render into one solid black image. If you’d like to use this filter, disable TAA.
Animation…..not yet. Though Reinhard 2 filter works perfectly on still images, I would not recommend using it in animations, because it results in some inconsistencies in terms of brightness and contrast from frame to frame. If you want to render animations in Vue 2014, use the default Vue Exposure Filter, or don’t use any filter at all.
Network rendering: if you render via your local network or on a render farm, do not use any tone mapping filter at all. Each node applies the filter and the exposure adjustments based on its own calculations, and it messes up the frames of the animation or the still image. For animations rendered on a network, postwork is the only option for adjustments. Tone mapping on a still image rendered on a network with HyperVue can work if you render the image to screen and apply the filter after when the render is done.
Over- or underexposed image during rendering: if you enable the Reinhard 2 filter, adjust the exposure and start rendering in the main camera view or to screen, you might notice that the image being rendered is over- or underexposed. Don’t worry; Vue first renders the image without any filtering, but with the exposure value you’ve set for the filter, and the filter is applied automatically when the render is done. After that, you can still tweak the settings in the Post Render Options.
This is what I could sum up so far; have fun with Vue 2014, with or without using Reinhard 2 filter. 🙂