vlf rendering & implementation details virtual light field group vlfproject@cs.ucl.ac.uk...
Post on 19-Jan-2016
214 Views
Preview:
TRANSCRIPT
VLF Rendering & Implementation Details
Virtual Light Field Groupvlfproject@cs.ucl.ac.ukUniversity College London
GR/R13685/01
Research funded by:
Jesper Mortensenj.mortensen@cs.ucl.ac.uk
VLF Project
Overview
Rendering from the VLF Implementation details Walkthrough results Limitations Future work Questions
VLF Project
Rendering: VLF
The VLF can be used to render any ray Determine intersected polygons with false colour
rendering Lookup hemisphere triangle in which direction falls, with
barycentric coordinates In each direction lookup the TRM for the intersected
polygon Interpolate radiance in TRM from 8-neighbourhood Apply barycentric weights to interpolate the 3 radiances
VLF Project
Rendering: VLF
However, due to limited resolution blurring may occur
Especially for specular surfaces Expensive:
- 3 dirs * 9 TRM cells * rays Example has 2K directions,
128x128 resolution
VLF Project
Rendering: Diffuse textures
The VLF also stores diffuse maps for any diffuse surface
These can be efficiently rendered using D3D/OpenGL
Limiting blurring to non-diffuse surfaces
VLF Project
Rendering: Backwards ray tracing
Backwards ray tracing can be used for specular parts
Can reconstruct specularly reflected geometry well
Bounces until diffuse surface hit Can be slow if a large part of the
scene is specular
VLF Project
Rendering: Progressive method
Hybrid method Uses OpenGL texturing for diffuse surfaces Uses direct VLF lookup for specular surfaces
during motion If viewpoint is stationary renders specular
reflection using backwards ray tracing
VLF Project
Implementation: Language
Class based C++ Heavy use of class templates
- flexibility- efficiency, can tailor implementation- con: must recompile
VLF Project
Implementation: Platform
PC based Windows 2000/XP Visual Studio .NET
VLF Project
Implementation: Graphics API
Graphics API: OpenGL Standard pbuffers Used for ‘false colour’ rendering [visibility]
- exchange buffers- rendering phase
Main issue is slow framebuffer readback
VLF Project
Implementation: Libraries
Hierarchical scene graph library- facesets, spheres, blobs etc.
Graphics library- matrices, vectors, materials, cameras etc.
VLF library- tiles, radiance maps, diffuse maps etc.
VLF Project
Implementation: Dependencies
Glut- http://www.opengl.org/developers/documentation/glut/
Zlib- http://www.gzip.org/zlib/
Jpeglib- http://www.ijg.org/
VLF Project
Implementation: GI framework
General framework for Global Illumination Supports many approximations…
VLF Project
Implementation: OpenGL real-time
OpenGL rendering for real-time local illumination
VLF Project
Implementation: Radiosity
Progressive radiosity- Cohen et .al 1988
VLF Project
Implementation: Classic ray tracing
Whitted ray tracing- Turner Whitted 1980
VLF Project
Implementation: Distributed ray tracing
Distributed ray tracing- Robert L. Cook et. al. 1984
VLF Project
Implementation: Path tracing
Coming soon … Monte Carlo path tracing- James T. Kajiya 1986
VLF Project
Implementation: VLFs
And of course – Virtual Light Fields… Diffuse Specular Caustics
VLF Project
Implementation: VLF applications
There are three main applications currently: VLF analyser
- visualises elements of the VLF, PSFs, tiles, maps, visibility etc. good debugging tool
VLF propagator- solves GI for a VLF, outputs binary VLF files, can reload and continue from a binary file
VLF walkthrough- loads a binary VLF file and renders it in real-time
VLF Project
Implementation: HDR viewer
GI results are natively HDR but display devices are inherently LDR [24 bit RGB]!
We have our own file format- similar to Wards radiance format
32 bit floats RGB interleaved- optionally zip compressed
… and an associated viewer
VLF Project
Implementation: HDR viewer (contd.)
Uses simple linear scaling approaches Or tone mapping a la Reinhard et. al. 2002
VLF Project
Walkthrough results
The following shows results from walkthroughs of VLFs
The illustrate real-time performance for scenes with global illumination effects
They were all rendered on a dual 2.8 GHZ Pentium 4 Xeon with 3GB RAM, and a NVIDIA GeForce FX5800
VLF Project
Walkthrough results: Cornell scene
This illustrates diffuse GI effects such as colour bleeding and soft shadows
The VLF uses 2K directions and 8x8 tiles each having 16x16 cells
The progressive method is used for rendering
VLF Project
Walkthrough results: Cornell scene
SHOW CORNELL VIDEO
VLF Project
Walkthrough results: Office scene
This illustrates GI effects such as specular reflections, soft shadows and colour bleeding
The VLF uses 2K directions and 8x8 tiles each having 16x16 cells
Memory usage is 980MB, propagation time was 36 hrs.
The progressive method and CRT method used for rendering
VLF Project
Walkthrough results: Office scene
SHOW PROGRESSIVE OFFICE VIDEO
SHOW CRT OFFICE VIDEO
VLF Project
Walkthrough results: GI benchmark
Global illumination test scene from Smits & Jensens repository:- http://www.cs.utah.edu/~bes/papers/scenes/
Illustrates several interesting light paths: LDE, LDSE, LDSDE (of which the last is a caustic)
The VLF uses 2K directions and 8x8 tiles each having 16x16 cells
Propagation time was 33 hrs. The progressive method used for rendering
VLF Project
Walkthrough results: GI benchmark
SHOW GI BENCHMARK VIDEO
VLF Project
Limitations
Limited to planar geometry Support for basic materials No participating media Closed polyhedra
VLF Project
Whats next?
Investigate alternative rendering methods- Lens approach
Optimise, graphics hardware
VLF Project
Questions
?
top related