Research funded by GRR 1368501 Global Illumination with
Research funded by: GR/R 13685/01 Global Illumination with a Virtual Light Field Mel Slater Jesper Mortensen Pankaj Khanna Insu Yu Dept of Computer Science University College London Vlfproject@cs. ucl. ac. uk
Introduction l Problem l Background – Light Field l Fundamental data structures & algorithm l Implementation Issues l Results l Conclusions
Problem: Global Illumination in Real-Time l The goal of this research is to achieve realtime walkthough of globally illuminated scenes. – Interaction between any type of surface properties (I. e. , BRDFs) l Technically – to provide a fast approximate solution of the rendering equation. – L(p, ) = Le(p, ) + f(p, i , ) L(p, i ) cos i d i
Global Illumination l Ray tracing – highly view dependent, models only specular reflection l Path tracing – Monte Carlo solution to rendering equation (view dependent) l Radiosity – view independent, models only diffuse reflection l Photon mapping/Monte Carlo – rays through light emitters (view independent) l view dependent ray tracing phase
Faster Global Illumination? l Caching – reuse elements of a G. I. for one view in other views. l l Precompute – e. g. , estimate point lights that give similar solution to global illumination. l l Ward, G. and Simmons, M. (1999) The Holodeck Ray Cache: An Interactive Rendering System for Global Illumination in Nondiffuse Environments, ACM TOG, 18(4): 361 -98. Walter, B. , Alppay, G. , Lafortune, E. P. F. , Fernandez, S. and Greenberg, D. P. (1997) Fitting virtual lights for non-diffuse walkthroughs, SIGGRAPH 97, 45– 48. H/W ray tracing – implement BSP ray tracing in hardware efficient way. l Wald, I. , Slusallek, P. , Benthin, C. , Wagner, M. : Interactive Rendering with Coherent Ray Tracing, Eurographics 2001 Proceedings.
Virtual Light Field (VLF) l Gortler used term ‘virtual light field’ to refer to light field for a synthetic scene. l We extend the term to mean a LF for a virtual scene – But without the use of a separate rendering system – With illumination computed within the LF itself.
Virtual Light Field ray is a point in 4 D space R 4 l Suppose ‘all rays’ can (somehow) be represented. l Consider one ray: l Any 0 t 1 t 2 t 3 t 4 1
Virtual Light Field: Basic Concepts l l l l Discrete representation of all rays in a scene All rays = union of parallel subfields (PSF) Parallel subfield is a rectangular grid of rays all in the same direction Each ray is segmented by the objects it intersects Light is propagated out from light sources following the paths defined by the segmented rays The rays are used as approximation to true rays Rendering achieved in manner similar to normal light field.
Use Ray Approximations l Approximate each ‘true’ ray by its nearest ray in the collection of all rays
Use Ray Approximations l Perfect specular reflection – use closest approximate ray to the true reflected ray l Diffuse reflection – use all rays through the intersection point
Use Ray Approximations l Perfect specular reflection
Use Ray Approximations l Perfect specular reflection – use closest approximate ray to the true reflected ray
Use Ray Approximations l Perfect specular reflection – use closest approximate ray to the true reflected ray l Diffuse reflection – use all rays through the intersection point
l Base Spherical Angle Representation is rotated through ‘all’ spherical angles z y base Spherical angles vary ‘uniformly’ cover the hemisphere x
Scene Covered l Each box is one parallel subfield – a parallel subfield has all rays parallel l l total light field = set of all parallel subfields (i, j, , ) Vertical rays
Rendering into VLF is 2 D Rasterisation l Vertical subfield rendering is equivalent to rasterisation l Any other angle result can be obtained by rotation – Standard hardware can be usedz geometry (rotation) l raster-scan + z-buffer l y x
VLF Overview l Rasterisation – Precomputes all ray object intersections to segment the rays l Propagation – Propagates light out from the light sources until convergence l Rendering – Uses the radiance stored in the ray segments to reconstruct an image
Tiling Approach – Exploit Coherence l Divide each PSF into tiles, in 3 D these are tubes For each PSF{ for each object propagate(); } }
Tiling l The N N resolution of the PSF is divided into square tiles of resolution M M (M<N) PSF
Tiling l The N N resolution of the PSF is divided into square tiles of resolution M M (M<N) Each tile maintains a list of object representations: PSF
Tiling l The N N resolution of the PSF is divided into square tiles of resolution M M (M<N) Each tile maintains a list of object representations: { u_short object_id; PSF Edge. Table visibility_mask; Image radiance; Image unshot_radiance; } Objects are sampled at full PSF resolution Images may be sampled at less than full resolution
Propagation run through each tile in each PSF, propagating and storing radiance for objects in the tiles PSF (S) tile
Propagation run through each tile in each PSF, propagating and storing radiance for objects in the tiles PSF (S) tile
Propagation run through each tile in each PSF, propagating and storing radiance for objects in the tiles PSF (S) tile
Propagation run through each tile in each PSF, propagating and storing radiance for objects in the tiles PSF (S) tile
) R ( F PS PSF (S) tile For specular – compute new PSF and store unshot radiance for same surface in respective tile.
) R ( F PS PSF (S) tile For diffuse – accumulate radiance surface map for distribution at next iteration.
) R ( F PS PSF (S) tile For diffuse – accumulate radiance surface map for distribution at next iteration.
Propagation … l No need to keep surfaces sorted within a tile l Construct an ‘exchange buffer’ on the fly – For each surface can use z-buffer to compute – which other surfaces it can exchange energy with along a tile.
‘Uniform’ Subdivisions on a Hemisphere l Major issue is to get ‘uniform’ partition of a hemisphere into ‘data points’ p=(x, y, z) – These correspond to the PSF directions Problem – given any query point on the hemisphere find the nearest data point in (fast!) constant time. l Can be done in constant time using image based method: l – Slater, M. (2002) Constant Time Queries on Uniformly Distributed Points on a Hemisphere, Journal of Graphics Tools, 7(1): 33 -44.
Implementation Issues l Getting good specular reflections – Propagation approximates radiance on diffuse and specular surfaces – To get exact specular reflections backwards ray trace to a diffuse surface: Radiance on the rays will be Inaccurate…
Implementation Issues l Getting good specular reflections – Propagation approximates radiance on diffuse and specular surfaces – To get exact specular reflections backwards ray trace to a diffuse surface: Follow exact ray paths…
Implementation Issues l Getting good specular reflections – Propagation approximates radiance on diffuse and specular surfaces – To get exact specular reflections backwards ray trace to a diffuse surface: Follow exact ray paths…
Implementation Issues l Getting good specular reflections – Propagation approximates radiance on diffuse and specular surfaces – To get exact specular reflections backwards ray trace to a diffuse surface: until diffuse surface is hit…
Implementation Issues l Getting good specular reflections – Propagation approximates radiance on diffuse and specular surfaces – To get exact specular reflections backwards ray trace to a diffuse surface: until diffuse surface is hit… • No shadow rays • Fast ray traversal
Rendering l 4 Methods 1. Render only from ray-information in tiles 2. Texture mapping for diffuse surfaces 3. Backwards ray tracing for specular surfaces 4. Progressive (1 or 2 + 3 when still)
Results A simple Cornell type scene with 6 specular reflectors. Propagation Time = 16 hours. FPS =8. 5
Light field(2. 1 fps) Raytracing (0. 2 fps) Diffuse textures(9. 8 fps) H/W raytracing(19. 2 fps)
Office test scene
Caustic Test Scene Using Light Field Original Test Image Propagation time = 33. 53 hours FPS =18. 2 Smits, B. and Jensen, H. W. (2000) Global Illumination Test Scenes; Tech. Rep. UUCS-00 -013, Computer Science Department, University of Utah, June 2000.
Some Properties l l l Propagation time is long (but only has to be done once). Memory requirement is large. Propagation time is quadratic in number of surfaces Memory is linear in numbers of polygons Smaller tile size results in less polygons per tile, reduces propagation time, increases memory Rendering is fast for global illumination.
Videos
Conclusions l An experimental method l Shows some promise for fast walkthrough for globally illuminated scenes l Problems remain in huge memory requirements and long propagation times l Further work…. in progress.
Additional materials l Tech papers l Presentations l Videos, images etc. http: //www. cs. ucl. ac. uk/research/vr/Projects/VLF/Media/
- Slides: 44