160 likes | 248 Views
Real-time Dynamic HDR Based Lighting in a Static Environment. Marcus Hennix Daniel Johansson Gunnar Johansson Martin Wassborn. The problem?. Lighting an object using HDR maps require the object to be fixed Light information only valid in the vicinity of the light probe. Proposed solution.
E N D
Real-time Dynamic HDR Based Lighting in a Static Environment Marcus Hennix Daniel Johansson Gunnar Johansson Martin Wassborn
The problem? • Lighting an object using HDR maps require the object to be fixed • Light information only valid in the vicinity of the light probe
Proposed solution • Using standard morphing techniques with modern real-time HDR lighting • Combining multiple light probes at different locations • Must have correct occlusion of light
Related work • All Debevec papers • Lucia Darsa – “Navigating Static Environments” • View morphing papers
Images Frame Buffer Triangulation Cube Map Rendering Depth maps Method • Generating images with depth info • Loading data (HDR) • Triangulation • Render to cube map • Multiple rendering passes for visual effects
Images Frame Buffer Triangulation Cube Map Rendering Depth maps Method (1 - Scene) • Render a Cube Map with high dynamic range in 3dsmax/Brazil • Fake real depth information by using standard environment fog • Create an exporter script in 3dsmax to export dynamic lit objects
Images Frame Buffer Triangulation Cube Map Rendering Depth maps Method (2 – Loading files) • HDR file format • The file format used in labs doesn’t encode RLE (used in HDR shop) • Performs gamma correction to approximate camera curve
Images Frame Buffer Triangulation Cube Map Rendering Depth maps Method (3 – Extracting depth) • Depth buffer image generated by 3dsmax • Need to handle perspective projection • Near & far clip plane, field of view… • Fog!
Images Frame Buffer Triangulation Cube Map Rendering Depth maps Method (4 – Triangulation) • Triangulation possible using depth maps • Performs an inverse projection into view space • Recursive, very simple solution • Yields geometry and texture coordinates
Images Frame Buffer Triangulation Cube Map Rendering Depth maps Method (5 – Rendering) • Render geometry to Cube Map • Render Cube Map & Synthetic objects • Cg Shaders (bloom, materials etc.) • Pixel Buffers
Images Frame Buffer Triangulation Cube Map Rendering Depth maps Method (6 – Rendering) • Final image rendered • Auto exposure
Implementation • ~5000 lines of C code • OpenGL • Cg Shading Language • ARB Vertex & Fragment shaders • MS Visual Studio .NET • ATI Radeon 9500 at least • Possibly geForce FX
Future Work • Combining multiple light probes not yet implemented – hard problem • Applying real life photographs with depth info