|
HDRI Tutorial v.2
High Dynamic Range Image (HDRI)
Brazil r/s
offers the option of HDRI to Max. HDR images, as you may know, have wider
luminance data stored than other formats. First of all we have to
understand what type of HDRI we need to import. Usually you can find probe
images: this is not the type we can use with MAX, we need to transform
into latitude mapping with HDR Shop. You can find a public release here, with thanks to Paul
Debevec.
1. Using HDR Shop
|
Open the HDR Shop and load the Kitchen probe image you can find
here. Now, let's
transform into latitude by choosing Image, Panorama, Panoramic
Transormations. |
|
In the Format Source Image take care of selecting the right
format, Light Probe in this case. Then choose Latitude for
Destination image format. You can also modify the final resolution
and conversion quality. Hit OK and you'll obtain the wanted image
to save to your preferred destination and to use later.
|
2. Getting Started
|
Open the file HDRI3.max. Click here
to download this file.
The scene should be the same as shown on
the left. |
|
Now we'll add a background image: in the Menu bar, choose
rendering, environment, environment map, bitmap and go down till
Radience Image File (HDRI); for this example we we'll use the
latitude Kitchen image as said before. We want to setup this
image so press the Setup button before you choose Ok.
|
3. Getting Started
|
Now we can adjust the importing options: take care of the Linear
white point because we need it later. If you increase the value
you'll see all the magenta areas decreasing; if you decrease linear
white point you'll see all magenta areas increasing.
|
|
Magenta areas identify all the pixels that will be taken as
white in the meanwhile cyan areas identify all the pixels which
value will be considered as black. All the pixels which value is
greater than white point value will be clamped as white, reducing
the available illumination range. In the image on the left you
can see the clamped preview. |
|
You can choose a value that in the preview area looks quite fine
to your purpose. In this case we leave it at Log. 8 and Linear
256. Doing so we will have all the range available and more
illumination informations.
A little tip is to choose the value right before Magenta coming
out. Press OK |
4. Adjusting the HDRi map
|
Remember to set the Coordinates to Environment - Spherical
Environment mapping to create the correct background (3ds max
defaults environment map backgrounds to 'Screen', which is
wrong.) Drag the map from the Environment dialog's
'background map' slot to a Material Editor sample slot first
|
|
And now you can play with the RGB Level, found in the HDRi map's
Output rollout. If you leave it at 1, The image will be
black. If you remember the previous linear value, it was at 256
and 8 for logaritmic. By placing the 256 value you'll obtain the
same light intensity of the previous
preview.
|
|
You have only to play with RGB Level decreasing it at something
like ½ or ¼ of the previous value. On the left you can see
various exposure settings: RGB Level at 1,10,20,51.2,100,256. In
our scene we'll use 256 for our background. |
5. Correcting filtering and the first true
HDRi render
|
If you render the Camera01 viewport now, you probably would
end up with an image that looks like the one on the left.
The blackness and 'posterized' render of the reflection on the
top of the ring is due to 3ds max's HDRi-unfriendly filtering.
In the HDRi
map, change the "Blur:" value from 1.0 (default) to
0.1
See dialog in Step 4.
This should correct one of the most common problem that went out
in the previous HDRI Tutorial. |
|
If you render again now, the result should be
correct. However, so far the render doesn't show the power yet of
High Dynamic Range data.
In the Material Editor, go to the
Wood material, and enable the reflection map. The
reflection map is a simple Falloff map set to 'Fresnel' mode.
The fresnel reflection map will create dimmer reflections of the
chrome ring onto the table. |
|
Rendering at this point should get you the image to the
left.
This image shows the power of High Dynamic Range
data.
Notice how in the chrome ring, the windows are completely blown
out, whereas the kitchen is visible normally.
Whereas in the reflection of the chrome ring in the wood top,
you can easily see the trees outside the windows, whilst the kitchen
is completely dark, except for the kitchen's light. |
6. Setting up HDRi lighting (image-based lighting/mapped
skylight) - Brazil's specific instructions.
|
Open the Luma Server rollout in Brazil r/s and under Direct
Illumination, enable the Skylight option. Next, scroll
down to the Skylight group of parameters, and click&drag the map
from the Material Editor to the Skylight map slot depicted to the
left. When asked, choose Instance to duplicate the map.
|
|
If you render now, you'll end up with an image that appears too
bright, as shown to the left. In addition, the render is fairly
slow in rendering, and looks noisy.
That is because the
strength of the HDRi map is far too high for lighting
purposes.
This of course makes the image blown out, but it also means that
there are areas of very high contrast in the HDRI map which 'confuse'
the Skylighting - making it waste time.
We'll get
to optimizing the speed later - let's first bring lighting levels
down to more reasonable values. Simply lower the Skylight
multiplier value (to the left of the Skylight map slot) to something
like 0.5
|
|
The lighting level is now more like how one would expect it
to be, and You can still see the 'shadows' generated by the kitchen's
light and window coming from the chrome ring.
But the render is
still a bit slow and noisy due to the contrast of the HDRi map used
for the skylight. |
7. Optimizing HDRi lighting
|
Because diffuse lighting is a far less precise thing than reflections,
and because the contrast in some HDRI maps can confuse the lighting,
wasting time, we can 'blur' the HDR image a little in order to
get a faster and cleaner render.
Switch back to
HDRshop, and choose : Image > Size > Arbitrary resize. In
the dialog that pops up, enter the dimensions : Width:64, Height:32
- and click OK. This resizes the HDR image so that it can be
processed faster. |
|
Now to lower the contrast, we're going to blur the HDRI
map. Not just any simple blur, but rather HDRshop's Specular
Convolution.
Won't I lose detail when blurring
? Yes - but those details are generally lost in image based
lighting anyway - it only slows the render down.
When
prompted for the "Phong Exponent", enter a value of 16. 1.0 is
perfectly diffuse, but in this case, we'd like to keep some distinct
features from the HDRi (such as the kitchen light.)
To the
left are the dialogs discussed here, and the tiny result of the
operation. Save this image as a new .HDR image, say
"kitchen_diffuse.hdr". |
|
Back in 3ds max, duplicate your existing HDRi map by
click&dragging the map to a new Material Editor slot. Rename
this material to "Skylight". Now click on the bitmap path button,
and browse for the blurred HDRi.
Just like in Step 6,
click&drag this new map to the Skylight map button.
If
you render now, you'll notice that the image renders much faster,
and cleaner as well.
The shadows from the chrome ring are less defined - this is a
trade-off you make for speed / smoothness. |
 |
There's one more optimization you can make.
The previous image rendered in a timeframe that we'll set at 100%.
Back in the "Skylight" HDRi map in the Material Editor, change
the Filtering type to None.
Since the image is really just a blurry thing, we don't need correct
'filtering' of the map - it would add nothing but processing time
(each time Brazil r/s samples the skylight, 3ds max filters the
map.)
Now render again.
Doing this with 0.4.53 public version you could have a strange
effect shown on the left. The quick solution to this psycho look
is to turn a little bit the plane and the ring as shown below.
The new result rendered in 2/3rds of the time. |
|
 |
 |
Just for kicks, add a teapot to the scene, and give it a light
grey Standard material set to two-sided (or we'll see right through
the teapot.)
This will show off the lighting better than just the table top
will (since the chrome ball receives no illumination whatsoever.)
You'll notice that the lighting is quite blue - that's because
of this particular HDRi's strong lighting from outside the window
- caused by the sky, which is blue. |
|
|
|
This is the antialiased render. Note at last the HDRi reflection
of the window on the ring: it's all blown up; then note in the
middle the windows reflection laying on the table reflected on
the ring: you start seeing the trees out of the window, more visible
in the third reflection that is on the table. |
This end-result is also available in the zip
file, named "hdri3_result.max".
|
|