CS184
Final Project
Eliza Ra (cs184-bf) Adam Portley (cs184-bn) Project Proposal: To make Blue Moon Rendering Tools take radiance files (.pic) and use them in texture/environment maps to illuminate a scene without having an artificial light source. The light source would come from the radiance file. This project was also an effort to investigate the various aspects of BMRT for research purposes with Paul Debevec. We wanted to see whether BMRT could display the full range of high-dynamic range (HDR) images. How It Works: We had several ideas as went about trying to modify BMRT. Our main goal for the first 1.5 weeks was to learn what BMRT could do with shaders, and how shaders worked. Since BMRT doesn't allow users to open/close files and do general file management within shaders, we were limited to converting radiance files to 24-bit TIFF files in the beginning. BMRT only takes 24-bit files, but radiance files contain more than that, 32-bits per sample to be exact. In reality, the format of a .pic file is RGBE with each value represented by 8-bits, which can be converted to RGB where each value is represented by 32-bits. We used Greg Ward Larson's ra_tiff program, which only converts radiance files to 24-bit TIFF files, as base code to convert .pic files to floating point TIFF files [code : executable(compiled in Linux environment) ] For research purposes we wanted the full 32-bit representation, but as we soon found out, BMRT is limited to only 16-bits per sample. What we ended up doing is converting our radiance
file to 24-bit TIFF but exposed down until everything looked very dark.
We modified G. Larson's TIFF tags so its 24-bit TIFF files were compatible
with BMRT [ code : executable(compiled
in Linux environment) ]. We let e = the number
of exposures. Then we texture mapped the 24-bit TIFF like you would normally
do in BMRT, but we modified Pixar's texmap shader [ our
texmap ] to take an ambient value different from
that of the world. We let this new value be e. This way, BMRT renders a
scene where the surface glows with the texture map and without even having
a light source anywhere in the scene.
|
original image (.pic) of the Uffizzi |
image with exposure -3 |
|
image as rendered by BMRT without any other kind of light source except the texture map |
With this technique, however, BMRT is not actually
aware of a light source in the scene. You must include a surface
emission statement (attribute "radiosity" "emissioncolor") in the rib file
to let BMRT calculate radiosity and other things; you also need to make
objects visible to the primary (camera) rays. So because there really
isn't a "light source," only a surface emitting light, BMRT doesn't resample
on the second pass when making its radiosity calculations. If the
surface with the texture map were to be an area light source, then these
calculations would be performed in the second pass. Area light sources,
however, can't assign color to its surface, which is why we used a surface
shader with the light emission attribute.
|