HDRI Bitmap I/O Plug-in for 3D Studio MAX

Documentation for v1.0

Table of Contents

14.1  Introduction
14.2  General Options
14.3  The Texmap Output Settings

14.1  Introduction

The HDRI Bitmap I/O plug-in is used for reading and writing HDRI (High Dynamic Range Image) files in Radiance Picture format (*.hdr, *.pic).

Reading the Images

This plug-in is a standard MAX Bitmap I/O plug-in.  You use it the same way you do any other bitmap I/O operation in 3DS MAX.  In order to take advantage of the broad range of luminance data stored in the HDR images, you will need to access the bitmap's custom load/save settings. This is done by selecting the "Setup..." button in the "Select Bitmap" dialog box.


Fig. 14.1  The "Setup..." button on max's "Select Bitmap" load/save dialog
 

14.2  General Options

In the HDRI Image Settings dialog box, you will have access to parameters such as exposure control, clamping and to internal storage settings. Since HDRI images contains color values in quite a wide range (not just in 0..1 or 0..255) you need to specify which part you are interested in if you decide to use Linear internal storage.
 


Fig. 14.2  HDRI Image Settings Dialog

Histogram

Top area shows the histogram of the image in logarithmic scale. The histogram is a visualization to to help you select the effective range of luminance values.

14.2.1  Exposure

In this section you set the white and black points. This means you determine the value which MAX will interpret as "white" and "black" pixels. For linear storage methods brighter points than the white point will be clamped to white.. For a HDR image this is not a desirable thing.  The task is to cover as much range as possible while maintaining precision. For this goal there are two spinners for each of the white and black point setting. One spinner in linear space one in logarithmic. Logarithmic space is better for covering wide range of values while linear space is more intuitive.

By default, all luminance values range from 0 to 1, black to white respectively.  Due to this color clamping setup, anything greater than 1 will be clamped to 1.

14.2.1.2  Black Point
If checked, the black point adjustment is done. It is not necessary for most of the exposure settings where we are typically interested in white point while keeping the black at 0.0. You can use the Spinners below to set it in logarithmic or linear space

The Black Point is the cut-off point where a value any lower than what is set will be clamped to black.

14.2.1.2.1  Log
The logarithmic value used to determine the black point.  These values range from -infinity to infinity.
14.2.1.2.2  Linear
The linear value used to determine the black point.  These values range from 0 to infinity.
14.2.1.3  White Point
Use the spinners below to set the white point in logarithmic or linear space. The region in the histogram, between the black and white point markers, and in the preview image, show the values that are selected in the image.

The White Point is the cut-off point where a value any higher than what is set will be clamped to white.

14.2.1.3.1  Log
The logarithmic value used to determine the white point.  These values range from -infinity to infinity.
14.2.1.3.2  Linear
The linear value used to determine the white point.  These values range from 0 to infinity.

14.2.2  Internal Storage

Although MAX4.x has internal support for HDRI imaging, it's not clear or entirely provable that this internal support is working, so we've added options for setting internal storage type. If any of the linear storage methods are selected, you should boost the texture's output.  Do this by setting  the RGB Level in your texture's Output rollup to the same value indicated in the "Linear White Point" spinner.

This determines the bit range used for each pixel’s color channels.

14.2.2.1  Real Pixels (32 bpp)
Real Pixels (32 bpp)  is the built in internal support that should properly handle HDRI maps - We suggest not using this.
14.2.2.2  Def. Exposure
N/A at this time.
14.2.2.3  16 bit/chan Linear (48 bpp)
This is the recommended format.  Max's default internal color pipeline is a 16 bit linear format.  This setting will take the luminance selection from the white and black point settings and compress that into the 16 bit linear color space.  Use the texmap's Output settings to uncompress that data properly for max's rendering pipeline.
14.2.2.4  8 bit/chan Linear (24 bpp)
This setting will take the luminance selection from the white and black point settings and compress that into an 8 bit linear color space.  8 bits per channel is not adequate for storing the range of luminance values coming from and HDRI map.  Using  8 bit/chan will save on memory but may lead to banding and other artifacts in the map.

14.2.3  Display scaled colors by

This controls the preview’s overall output value.  By default, it is locked to the Linear White Point.  Unchecking the “L” button next to the spinner will allow you to manually control this value.

14.2.4  Mark White clamp

This option allows you to visualize, in the preview window, the areas that will be clamped as being white.  This is helpful to give you an idea of what areas have a luminance value extending beyond the current white point setting.

14.2.5  Mark Black clamp

This option allows you to visualize, in the preview window, the areas that will be clamped as being black.  This is helpful to give you an idea of what areas have a luminance value extending beyond the black point that has been set.


Fig.  14.3  An example of a relatively low White Point Setting
 

14.3  The Texmap Output Settings

As mentioned above - to take advantage of the 16 bit linear storage, you'll have set the incoming map's white point ot some acceptable level.  In order to take advantage of that "compressed" 16 bit data, you will need to decompress that data using your texmap's Output controls.

Figure 14.4 shows the effect of a normal  'White point’ setting when the output panel of the bitmap is left at its defautls.


Fig.  14.4

After the setup of the HDRI map, the Output values of the texmap (bitmap texture, for example) must be adjusted to reflect the white point that was defined in the HDRI Image Settings Dialog.  In our example, the Output panel's RGB Level has been set to 16.  This value is taken from the Fig. 14.1  HDRI Image Settings Dialog in Fig. 14.1.


Fig. 14.5  The settings used to adjust the texture’s output.

As seen in Figure 14.6, increasing the RGB Level amount in the material’s Output settings will correct the light output of the texture.  The luminance values look more reasonable, and the overbright intensity of the whites is maintained.  In this case, the values that show as white may actually be up to 16 times brighter than normal (255,255,255) white.


Fig.  14.6

And finally,an example of the previous map used as an environment map in a Brazil r/s rendered image.


Fig. 14.6  Image showing the results from an HDRI image.