Real-time Indirect Illumination of Emissive�Inhomogeneous Volumes using Layered Polygonal Area Lights
1
1
Takahiro Kuge† Tatsuya Yatagawa†† Shigeo Morishima†
†Waseda University
††The University of Tokyo
PACIFIC
GRAPHICS
Our Goal
2
Reflection of volume
(Indirect Illumination)
Our Goal
3
Arbitrary roughness
Arbitrary shape
Our Goal
4
Arbitrary roughness
Arbitrary shape
Please refer to our demo movie for Sponza result!
Our Motivation
5
Entire body of the volume is reflected
No longer the same appearances
Real world
Interactive Application
[2] “ACE COMBAT 7 SKIES UNKNOWN”, BANDAI NAMCO Entertainment
Previous Works
6
Offline rendering
・Volumetric path tracing (ex. Woodcock tracking [4])
・Volumetric photon mapping [5]
Real-time rendering
・Simulate light diffusion in volume [6]
・e.g., Light propagation volume [7]
[4] Woodcock et al., “Techniques used in GEM code for Monte Carlo neutronics calculation”, Conf. Applications of Computing Methods to Reactors, 1965.
[5] Jensen et al., “Volumetric photon mapping”, SIGGRAPH, 1998.
[6] Stam, “Multiple Scattering as a Diffusion process”, Rendering Techniques, 1995.
[7] Kaplanyan et al., “Cascaded Light Propagation Volumes for Real-time Indirect Illumination”, I3D, 2010.
Too complex for real-time applications
Renders only directly visible volume
[4]
[5]
[7]
Real-time Indirect Illumination of volumes is not yet well established
Difficulties of Indirect Illumination
7
Direct Illumination
Viewer
Reflective surface
Image plane
Volume
Evaluate incident radiance along rays (Ray marching)
1 ray for 1 pixel
Difficulties of Indirect Illumination
8
Indirect Illumination
Evaluate radiance from “whole volume” to “every surface point”
Reflective surface
BRDF lobe
Viewer
Volume
Image plane
Multiple rays for 1 pixel
Indirect Illumination using LPAL
9
Radiance from the whole volume
Incident radiance from LPALs
LPALs
“Layered Polygonal Area Lights”
Volume slicing
Cutting section is an area light
Volume consists of multiple area lights
Our approach
Volume
(3D texture)
・
・
Approximate volume as a set of parallel area lights
LPALs to Slice
10
Out-of-slice attenuation
Slice
Out-of-slice attenuation
Light attenuation by frontal regions
Slices are occluded by regions at front
Slice-based calculation by filling the gap between LPALs
LPALs to Slice
11
Slice
Out-of-slice attenuation
Out-of-slice attenuation
Light attenuation by frontal regions
Slices are occluded by regions at front
Slice-based calculation by filling the gap between LPALs
Integration for Slice
12
Slice-based calculation by filling the gap between LPALs
Integration for Slice
13
In-slice
attenuation
Function of normalized distance
Slice-based calculation by filling the gap between LPALs
Integration for Slice
14
In-slice
attenuation
Slice-based calculation by filling the gap between LPALs
Ext. coeff. :
Radiance :
Integration for Slice
15
In-slice
attenuation
Slice-based calculation by filling the gap between LPALs
Ext. coeff. :
Radiance :
Compute instantly by recent studies [8][9]
[8] Heitz et al. “Real-Time Polygonal-Light Shading with Linearly Transformed Cosines”, SIGGRAPH, 2016.
[9] Heitz et al. “Linear-light Shading with Linearly Transformed Cosines”, GPU ZEN, 2017.
Integration for Slice
16
Ext. coeff. :
Radiance :
Slice
Slice-based calculation by filling the gap between LPALs
Combining Radiance and Attenuation
17
Out-of-slice attenuation
Out-of-slice attenuation
Light attenuation by frontal regions
Slices are occluded by regions at front
Slice-based calculation by filling the gap between LPALs
Slice
Combining Radiance and Attenuation
18
Slice
Out-of-slice attenuation
Out-of-slice attenuation
Light attenuation by frontal regions
Slices are occluded by regions at front
Slice-based calculation by filling the gap between LPALs
Final contribution from a slice
Attenuated
radiance
Gathering Contributions
19
Slice
Attenuated
radiance
Out-of-slice attenuation
Out-of-slice attenuation
Light attenuation by frontal regions
Slices are occluded by regions at front
Summation of contribution from slices
Slice-based calculation by filling the gap between LPALs
Evaluate in front-to-back order
Gathering Contributions
20
Slice
Attenuated
radiance
Out-of-slice attenuation
Light attenuation by frontal regions
Slices are occluded by regions at front
Out-of-slice attenuation
Slice-based calculation by filling the gap between LPALs
Summation of contribution from slices
Evaluate in front-to-back order
Gathering Contributions
21
Slice
Attenuated
radiance
Out-of-slice attenuation
Light attenuation by frontal regions
Slices are occluded by regions at front
Out-of-slice attenuation
Slice-based calculation by filling the gap between LPALs
Summation of contribution from slices
Evaluate in front-to-back order
Gathering Contributions
22
Slice #2
Attenuated
radiance
Slice-based calculation by filling the gap between LPALs
#1
Calculation of out-of-slice atte.
Out-of-slice attenuation
In-slice attn. (#2)
Out. attn. (#1)
Gathering Contributions
23
Slice-based calculation by filling the gap between LPALs
Calculation of out-of-slice atte.
In-slice attn. (#2)
Attenuated
radiance
Out-of-slice attenuation
#2
#1
Slice #3
Out. attn. (#1)
Gathering Contributions
24
Slice-based calculation by filling the gap between LPALs
Calculation of out-of-slice atte.
=
Attenuated
radiance
Out-of-slice attenuation
#2
#1
Slice #3
In-slice attn. (#2)
Out. attn. (#1)
Gathering Contributions
25
Slice-based calculation by filling the gap between LPALs
Calculation of out-of-slice atte.
In-slice attn. (#3)
In-slice attn. (#2)
Out. attn. (#1)
Attenuated
radiance
Out-of-slice attenuation
#2
#1
Slice #3
Gathering Contributions
26
Slice-based calculation by filling the gap between LPALs
Calculation of out-of-slice atte.
Attenuated
radiance
Out-of-slice attenuation
#2
#1
Slice #4
#3
In-slice attn. (#3)
Out. attn. (#2)
=
=
In-slice attn. (#2)
Out. attn. (#1)
Results and Performance
27
Reflection on surface with arbitrary roughness
Volume
(Ray marching)
Reflective surface
Results and Performance
28
| | | | |
Time (ms) | 5.38 | 6.57 | 8.81 | 12.74 |
fps | 186 | 152 | 114 | 78 |
Performance in Sponza scene
Direct : 4.72%
Filtering : 6.15%
Indirect : 89.13%
(our method)
Results and Performance
29
Reflection with opaque obstacle
Variations : Occluded volume
Obstacle
Obstacle : Optically dense volume
Surface
Viewer
Please refer to our demo movie!
Results and Performance
30
Reflection of multiple volumes
Variations : Multiple volumes
Surface
Viewer
#1
#2
Slice the volumes in order (#1, then #2)
#2 is occluded by #1
(Radiance from #2 is influenced by #1)
Please refer to our demo movie!
Results and Performance
31
Insufficient tail
Brightness error
Insufficient tail
Brightness error
・3D isotropic gaussian filtered MIP map
・Access higher MIP-level for rougher surface
Limitation
Area light
2D filter
Filter over the light
LPAL
3D filter
Filter leakage
Conclusion
32
Indirect illumination using Layered Polygonal Area Lights
・Approximate volume as a set of parallel area lights (LPALs)
→ Real-time indirect illumination for arbitrary surface
Slice
LPALs
Fill the gap
Sum up
Conclusion
33
Future work
Adaptive slicing depending on the position of reflection
Other parts
Visually rich part
Indirect illumination using Layered Polygonal Area Lights
・Approximate volume as a set of parallel area lights (LPALs)
→ Real-time indirect illumination for arbitrary surface
34
Thank you for your attention!
MAIL : takahirolabo@gmail.com
HP : https://tatsy.github.io/projects/lpal19/
(Paper, source code and demo movie are available)