![Page 1: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/1.jpg)
Computer Graphics III – Approximate global illumination computation
Jaroslav Křivánek, MFF UK
![Page 2: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/2.jpg)
Review
![Page 3: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/3.jpg)
Photon mapping – SDS paths
© Wojciech Jarosz
© H.W.Jensen
CG III (NPGR010) - J. Křivánek 2015
![Page 4: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/4.jpg)
Photon mapping – Steps
1. Photon tracing
2. Rendering with photon maps
CG III (NPGR010) - J. Křivánek 2015
![Page 5: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/5.jpg)
Final gathering?
direct use final gathering
500 – 5000 rays
information in the global photon map too inaccurate
inaccuracy in the global maps gets “averaged out”
CG III (NPGR010) - J. Křivánek 2015
![Page 6: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/6.jpg)
Progressive photon mapping
CG III (NPGR010) - J. Křivánek 2015
![Page 7: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/7.jpg)
Approximate GI methods
![Page 9: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/9.jpg)
• Distribution path tracing (DPT) Final gathering (FG)
– Estimate illumination integral at a point by tracing many rays (500-5000)
– Costly computation
• Irradiance caching accelerates DPT/FG for diffuse indirect illumination
Motivation
![Page 10: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/10.jpg)
• Spatial coherence
– Diffuse indirect illumination changes slowly over surfaces
Motivation
Indirect irradiance – changes slowly
![Page 11: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/11.jpg)
• Sparse locations for full DRT computation
• Resulting irradiance stored in a cache
• Most pixels interpolated from cached records
Image credit: Okan Arikan
Irradiance caching
![Page 12: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/12.jpg)
Irradiance caching
• Faster computation of the diffuse component of indirect illumination
• Diffuse reflection
Lo(p) = E(p) * rd(p) / p
• View-independence
– Outgoing radiance independent of view direction
– Total irradiance is all we need => cache irradiance
![Page 13: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/13.jpg)
• Lazy evaluation of new irradiance values
– Only if cannot be interpolated from existing ones
• Example: Values E1 and E2 already stored
– Interpolate at A (fast)
– Extrapolate at B (fast)
– Add new record at C (slow)
Irradiance caching
E1
E2 A
B
C E3
![Page 14: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/14.jpg)
Irradiance caching pseudocode
GetIrradiance(p):
Color E = InterpolateFromCache(p);
if( E == invalid )
E = SampleHemisphere(p);
InsertIntoCache(E, p);
return E;
![Page 15: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/15.jpg)
• Cast 500-5000 secondary rays (user-specified)
• Compute illumination at intersection – Direct illumination only, or
– Path tracing, or
– Photon map radiance estimate, or
– Query in (another) irradiance cache
– No emission taken into account!
E = SampleHemisphere(p);
Indirect irradiance calculation
![Page 16: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/16.jpg)
• Stratified Monte Carlo hemisphere sampling
– Subdivide hemisphere into cells
– Choose a random direction in each cell and trace ray
E = SampleHemisphere(p);
Indirect irradiance calculation
![Page 17: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/17.jpg)
E = SampleHemisphere(p);
Indirect irradiance calculation
E(p) = ∫ Li(p, wi) cosqi dwi
• Estimating irradiance at p:
• General form of the stratified estimator
![Page 18: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/18.jpg)
Indirect irradiance calculation
• For irradiance calculation, the integrand is:
• PDF:
E = SampleHemisphere(p);
![Page 19: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/19.jpg)
Indirect irradiance calculation
• Irradiance estimator for IC:
• Lj,k … radiance sample from direction:
• M, N … number of divisions along q and f
• … random numbers from R(0,1)
![Page 20: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/20.jpg)
Irradiance caching pseudocode
GetIrradiance(p):
Color E = InterpolateFromCache(p);
if( E == invalid )
E = SampleHemisphere(p);
InsertIntoCache(E, p);
return E;
![Page 21: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/21.jpg)
• If E(p) changes slowly => interpolate more
• If E(p) changes quickly => interpolate less
• What is the upper bound on rate of change (i.e. gradient) of irradiance?
• Answer from the “worst case” analysis (omitted)
Record spacing
![Page 22: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/22.jpg)
• Near geometry dense spacing
– Geometry = source of indirect illumination
• Open spaces sparse sampling
Record spacing
![Page 23: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/23.jpg)
Record spacing
![Page 24: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/24.jpg)
Irradiance interpolation E = InterpolateFromCache(p)
• Weighted average:
• Records used for interpolation:
![Page 25: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/25.jpg)
Weighting function
10cos1
1,
),,2(clampmax1)(
maxmin
i
i
i
iRRR
wnnpp
p
[Tablellion and Lamorlette 04]
pi
Ri
![Page 26: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/26.jpg)
Heuristic “behind” test
• Record at pi rejected from interpolation at p if p is “behind” pi
![Page 27: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/27.jpg)
Irradiance caching pseudocode
GetIrradiance(p):
Color E = InterpolateFromCache(p);
if( E == invalid )
E = SampleHemisphere(p);
InsertIntoCache(E, p);
return E;
![Page 28: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/28.jpg)
Irradiance cache record
• Vector3 position
• Vector3 normal
• float R
• Color E
• Color dEdP[3]
• Color dEdN[3]
Position in space
Normal at `position’
Validity radius
Stored irradiance
Gradient w.r.t. translation
Gradient w.r.t. rotation
InsertIntoCache(E, p);
![Page 29: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/29.jpg)
Irradiance cache data structure
• Requirements
– Fast incremental updates (records stored on the fly)
– Fast query for all records (spheres) overlapping a given point p
InsertIntoCache(E, p);
![Page 30: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/30.jpg)
Data structure: Octree
InsertIntoCache(E, p);
![Page 31: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/31.jpg)
Data structure: Octree
back to … E = InterpolateFromCache(p)
![Page 32: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/32.jpg)
no gradients with gradients
Irradiance gradients
![Page 33: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/33.jpg)
Irradiance gradients
• Essential for smooth interpolation
• Calculated during hemisphere sampling
– i.e. no extra rays, little overhead
• Stored as a part of the record in the cache
• Used in interpolation
![Page 34: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/34.jpg)
Rotation gradient
![Page 35: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/35.jpg)
Rotation gradient formula
![Page 36: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/36.jpg)
Translation gradient
![Page 37: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/37.jpg)
Translation gradient formula
![Page 38: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/38.jpg)
Irradiance interpolation w/ grads E = InterpolateFromCache(p)
• Weighted average:
![Page 39: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/39.jpg)
Irradiance caching examples
![Page 40: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/40.jpg)
Irradiance caching examples
Image c
redit:
Eric T
abelli
on
, P
DI
Dre
am
Work
s
![Page 41: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/41.jpg)
Irradiance caching examples
Image c
redit:
Eric T
abelli
on
, P
DI
Dre
am
Work
s
![Page 42: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/42.jpg)
Ambient occlusion
![Page 43: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/43.jpg)
Ambient occlusion
= x
![Page 44: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/44.jpg)
Ambient occlusion caching
![Page 45: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/45.jpg)
• Fast indirect illumination of diffuse surfaces
– Sparse sampling & fast interpolation
• Biased
• Not consistent
• Tons of implementation details that I did not discuss here
Conclusion
![Page 46: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/46.jpg)
• Practical Global Illumination with Irradiance Caching
– SIGGRAPH Course: 2008, Křivánek et al.
– Book, 2009, Křivánek & Gautron
– Both give references to further resources
Further reading
![Page 47: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/47.jpg)
Point-based Global Illumination
![Page 48: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/48.jpg)
Point-based global illumination
Original idea
M. Bunnell, “Dynamic ambient occlusion and indirect lighting”, GPU Gems 2
Application in movie production
P. Christensen, “Point-based approximate color bleeding”, Pixar tech memo #08-01
Real-time implementation (CUDA)
T. Ritschel et al, “Micro-rendering for scalable, parallel final gathering”, SIGGRAPH Asia 2009
CG III (NPGR010) - J. Křivánek 2015
![Page 49: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/49.jpg)
Point-based global illumination
Slide credit: Tobias Ritschel CG III (NPGR010) - J. Křivánek 2015
![Page 50: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/50.jpg)
Point-based global illumination
Slide credit: Per Christensen CG III (NPGR010) - J. Křivánek 2015
![Page 51: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/51.jpg)
References
Křivánek et al.: Global Illumination Across Industries, SIGGRAPH 2010 course. http://cgg.mff.cuni.cz/~jaroslav/gicourse2010/
Point-based Global Illumination for Film Production (Per Christensen, PIXAR)
Ray Tracing vs. Point-based GI for Animated Films (Eric Tabellion, PDI Dreamworks)
Ritschel et al. Microrendering for Scalable, Parallel Final Gathering, SIGGRAPH Asia 2009. http://www.mpi-nf.mpg.de/~ritschel/Microrendering/
CG III (NPGR010) - J. Křivánek 2015
![Page 52: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/52.jpg)
References
Křivánek et al.: Global Illumination Across Industries, SIGGRAPH 2010 course. http://cgg.mff.cuni.cz/~jaroslav/gicourse2010/
Ray Tracing Solution in Film Production Rendering (Marcos Fajardo, SolidAngle)
CG III (NPGR010) - J. Křivánek 2015
![Page 53: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/53.jpg)
What did we not cover?
![Page 54: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/54.jpg)
In fact, many things…
Metropolis Light Transport
Virtual point lights / Many-light methods
Precomputed radiance transfer
Participating media + subsurface scattering
Real-time GI
Hair rendering
Appearance measurement and modeling
CG III (NPGR010) - J. Křivánek 2015
![Page 55: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/55.jpg)
Metropolis Light Transport
(a) Bidirectional path tracing with 40 samples per pixel.
Image credit: Eric Veach CG III (NPGR010) - J. Křivánek 2015
![Page 56: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/56.jpg)
Metropolis Light Transport
(b) Metropolis light transport with an average of 250 mutations per pixel [the same computation time as (a)].
Image credit: Eric Veach CG III (NPGR010) - J. Křivánek 2015
![Page 57: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/57.jpg)
Metropolis Photon Tracing
CG III (NPGR010) - J. Křivánek 2015
Image credit: Toshiya Hachisuka
![Page 58: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/58.jpg)
• [Keller 1997]
• Approximate indirect illumination by
1. Generate VPLs
Instant radiosity (VPL rendering)
2. Render with VPLs
CG III (NPGR010) - J. Křivánek 2015
![Page 59: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/59.jpg)
1
2
3
N
P
P
P
P
Precomputed radiance transfer
CG III (NPGR010) - J. Křivánek 2015
![Page 60: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/60.jpg)
Participating media
CG III (NPGR010) - J. Křivánek 2015
![Page 61: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/61.jpg)
Subsurface scattering
Real
Simulated
CG III (NPGR010) - J. Křivánek 2015
![Page 62: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/62.jpg)
Real-time GI
VPL methods
Screen-space methods
Cone-tracing (Unreal Engine)
Light propagation volumes (CryEngine)
CG III (NPGR010) - J. Křivánek 2015
![Page 63: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/63.jpg)
Hair rendering
CG III (NPGR010) - J. Křivánek 2015
![Page 64: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/64.jpg)
Appearance modeling
CG III (NPGR010) - J. Křivánek 2015
![Page 65: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/65.jpg)
Conclusion
![Page 66: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/66.jpg)
Research challenges in rendering
Existing algorithms are inherently bad for some practical scenes
More work to do for rendering researchers CG III (NPGR010) - J. Křivánek 2015
![Page 67: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/67.jpg)
What else in CG
Main general CG conferences
SIGGRAPH (ACM Transactions on Graphics – TOG)
SIGGRAPH Asia (ACM TOG)
Eurographics (Computer Graphics Forum)
http://kesen.realtimerendering.com/
CG III (NPGR010) - J. Křivánek 2015
![Page 68: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/68.jpg)
What else in CG
Computational photography
Appearance modeling & capture
Animation (& capture)
Dynamic simulation (hair, cloth, water, smoke, solids…)
Visual perception
Natural phenomena
Non-photorealistic rendering
Sound simulation
Display technology
Interaction technology
Geometry modeling CG III (NPGR010) - J. Křivánek 2015
![Page 69: Comuter Graphics III (NPGR010) - Approximate global ...cgg.mff.cuni.cz/~jaroslav/teaching/2015-npgr010/slides/12 - npgr010... · Approximate global illumination computation Jaroslav](https://reader031.vdocuments.site/reader031/viewer/2022022608/5b88046b7f8b9a301e8ca104/html5/thumbnails/69.jpg)
General challenges in CG
Making CG usable: UI design, collaboration
Robust and efficient lighting simulation
Virtual human
Hair modeling
Animation
Cloth
Managing complexity
Natural environments etc
Virtual Worlds (shared 3D graphics)
…and more (the above is my random choice of “grand challenges”)
CG III (NPGR010) - J. Křivánek 2015