Title: Multimesh caching and hardware sampling for progressive and interactive rendering
1Multi-mesh caching and hardware sampling for
progressive and interactive rendering
- Gabriel Fournier and Bernard Péroche
2Introduction
- Our Goal
- Interactive rendering
- a few images/sec
- walkthrough
- of
- triangulated scenes
- area light sources
- on a single PC with
- soft shadows
- indirect lighting
- no long preprocessing
3The problem
- Full lighting computations for each pixel
- ? Too long for interactive time
- Solutions
- Lighting computations for only a few pixels
- Speed up and adaptation of light sampling
- Progressive improvement of the image quality
4Outline of the presentation
- Previous work
- Our method
- Overview
- Multi mesh
- Mesh subdivision
- Hardware sampling
- Results and discussions
- Future work
5Cache of samples
- Lighting cached ? Re-used from frame to frame
- Object space partition cache
- Irradiance caching (Ward et al. 1988), Light
vectors (Zaninetti and Péroche 1998) - Complex interpolations
- Image cache
- Render cache (Walter et al. 1998),
- Missing pixels (Render cache),
- Tapestry (Simmons and Séquin - 2000)
- First frames with inexact geometry
- Object space cache
- On the geometry Shading cache (Tole et al
2002)
6Lighting sampling
- What is sampled and interpolated ?
- Single global lighting value
- Shading cache (Tole et al. - 2002)
- Limited re-use of cached value
- Sampling density
- Multiple lighting values (direct, indirect,
caustic radiance) - Light vectors (Zaninetti and Péroche - 1998)
- No method with multiple values cached on the
geometry
7Indirect lighting sampling
- Direct irradiance required on CPU
- Costly if many area lights (100 rays per light)
- Direct irradiance should be cached
- to be re-used during indirect irradiance sampling
8Overview
- Object space cache triangle mesh over the
geometry - ?hardware rendering, fast subdivisions and
interpolations - Multiple meshes separate storage of
- direct irradiance from each light source
- indirect irradiance
- ? Re-use of already computed values
- Direct diffuse irradiance for the indirect one
- Diffuse radiance from the previous frames
- Multi-pass rendering color / direct radiance /
indirect radiance - ? interactivity, progressiveness
9Framework
CPU
GPU
User interaction
Geometrical
Rendering of ID
Mesh
Visible triangles
set
Rendering of
construction
material reflectance
properties
Rendering of
radiance
Irradiance sampling
Rendering of the
final image
10Multiple meshes
- Triangular mesh
- Simple interpolations
- Fast subdivision
- Fast ray tracing
- OpenGL primitive
Geometry mesh
Indirect irradiance mesh
Direct irradiance meshes for each light source
Direct diffuse radiance mesh
11Mesh example
12Direct irradiance caching
- Each light source sampled and cached separately
- Reduce the number of samples
13Subdivision element choice
Element to subdivide
- Priority stored in the mesh tree leaves
- visible size of the triangle
- maximum radiance contrast on its edge
- 0 if the triangle should not be subdivided
Priority max(sons priority)
Radiance mesh
Geometry mesh
14Subdivision criteria
Radiance
- Subdivision of a triangle if
- it has more than 3 visible pixels
- and
- it is too big
- or
- it has at least 2 required vertices
- sampled ! interpolated
- or
- it has one edge with visible
- T-vertices
Sampled radiance
A
M required vertex
Interpolated radiance
B
A
B
M
T-vertex
N
D
C
15Subdivision radiance difference
- Subdivision only if there might be a visible
difference - Tone mapping of the values ?on screen color
- Use of an experimentally built map to get the
maximum authorized difference
16Sampling density
17Area light source sampling
- Small light source bounding frustum
- Hardware rendering on a small image
- Texture mapping to weight each pixel
- Multiple passes to sum the image until it is
small enough to be read back
- Faster than ray tracing
- Frees up the CPU
18Indirect lighting sampling
- Only 1 bounce indirect diffuse radiance being
sampled - Rendering of a low detail version of the diffuse
direct radiance mesh - Small part of the incoming irradiance is missing
- 160 field of view
19Final image generation
Screen
GPU
CPU
1x /frame
Scene description
Rendered 3x15x /s
Updated 20x /s
Irradiance of each light sources
Updated 3x /s
Indirect diffuse irradiance
20Results
21Discussion
- Pros
- Interactivity with exact geometry
- Exact soft shadows
- We save some computations compared to the Shading
cache method - Cons
- Indirect lighting quite limited, still slow
- High memory cost 200 MB for the 8000 triangles
scene - Non real time
22Conclusion and future work
- Include missing part of radiance (indirect
specular, caustic and indirect with more bounces) - Include a visual model to better tune the
subdivision of the mesh (priority, precision) - Optimize and increase the quality of indirect
lighting computations
23Questions ?
24References
- Ward, Rubinstein, Clear. 1988. A ray tracing
solution for diffuse interreflection. In Computer
Graphics (Proceedings of SIGGRAPH 88), vol. 22,
8592. - Zaninetti, Serpaggi, Péroche. 1998. A vector
approach for global illumination in ray tracing.
Computer GRaphics Forum, 17(3)149-158, 1998 - Simmons, Séquin. 2000. Tapestry A dynamic
mesh-based display representation for interactive
rendering. In Rendering Techniques 2000 11th
Eurographics Workshop on Rendering, 329340. - Tole, Pellacini, Walter, P. Greenberg. 2002.
Interactive global illumination in dynamic
scenes. ACM transactions on graphics, 21(3)
537-546, July 2002