High Dynamic Range Environment Mapping On Mainstream Graphics Hardware
BackgroundA Trip Down the Image Acquisition Pipeline![]() Figure 2-1. Image Rendering Pipeline Figure 2-1 depicts the path photons take from the real world to be mapped into a RGB image. Figure 2-1 depicts a simplified image acquisition pipeline inspired by [3]. After passing through the lens, photons travel through the shutter to a light sensor, typically a CCD. The shutter is used to control the amount of time the light sensor accumulates photons and the lens is used to focus the incoming photons onto the light sensor. After arriving at the light sensor, the photons are converted into digital values by passing through an analog digital converter (ADC). These digital values will travel through some final adjustments depending on the camera manufacturer and camera settings and be written to an image as RGB values. Dynamic Range![]() Figure 2-2. Natural, Perceived, and Displayable Luminance Ranges In Figure 2-2, the range of light intensities we experience relative to the total amount of light in the real world is compared. Nature varies in absolute range by about 10 orders of magnitude [5]. The human visual system is capable of seeing differences over about 3 orders of magnitude and the dynamic range of a typical display is around 2 orders of magnitude [19]. In Figure 2-2 we can see the variations in dynamic range of the human visual system compared to the dynamic range of visible light and LCD display range. The human visual system adapts the amount of incoming light via moderation of the pupil as well as chemical and neural processes in the photoreceptors and neurons. Photographic devices mimic this behavior via a lens aperture and exposure time. However, in doing so, the remainder of the information outside the range of the lens and exposure combination is forever lost - a significant blow to the use of these images for real-time rendering purposes, where the conditions under which the light is perceived may warrant modification. In other words, we may want to capture all the information in of the full dynamic range in a scene, and only later chose which parts to discard. As we will demonstrate in this article, the use of HDR images allows for the storage of more lighting information in the source image, and therefore runtime modification of the end users perception of this lighting information. Storage of HDR ImagesAfter creating an HDR image, it will need to be stored for later retrieval, processing, and display. [20] has a summary of different formats for storing HDR images. Examples include Pixar's 33 bit log encoded TIFF, Radiance's 32-bit RGBE and XYZE, IEEE 96-bit TIFF and Portable FloatMap, LogLuv TIFF, and ILM's 48-bit OpenEXR format. Each format has its own set of advantages and disadvantages including file size, dynamic range, and quantization. For our work we have chosen to use the RGBE file format and half-precision floating-point textures to demonstrate HDR rendering with different data sources, including compressed formats. The RGBE format utilizes 32 bits per pixel, which we expand to 64 bits in our computations leaving the 16 bits of the alpha channel unused. Ultimately, the format you choose will be dependent on the context of your work and the tools available. We need a tool to manage and manipulate HDR images. Fortunately there is a tool available on-line to help in this effort, HDRShop. Since HDRShop exports RGBE files and RGBE files have an acceptable displayable range we chose to use them for our work [7]. Commercial software packages are also available, including Version 2.0 of HDRShop and Photogenics [13].
|
|