View
1.173
Download
3
Category
Preview:
Citation preview
GLOBAL ILLUMINATION(BLACK) PHOTONS EVERYWHERE
Dragan Okanovic@abstractalgo
PROBLEMS OF COMPUTER GRAPHICS generate digital imagery, so it looks “real” only two problems:
1. materials: bsdf
brdf (diffuse, glossy, specular reflections)
btdf (refraction& transmission)
bssdf (subsurface scattering)
emitting
2. camera resolution + fov
lens flare
aberrations
bokeh dof
hdr & tonemapping
bloom & glow
motion blur
anti-aliasing
filmgrain
...
GLOBAL ILLUMINATION GI is a consequence of how photons are scattered around the scene GI is an effect, i.e. doesn’t exist per-se and is dependent of the scene In a CG terminology, GI is a set of algorithms that compute (ir)radiance for
any given point in space, in the spherical domain That computed irradiance is then used in combination with material’s
properties at that particular point in space, for final calculation of the radiance
Radiance is used as the input to the camera system
global illumination sub-effects: shadows
ambient occlusion
color bleed/indirect illumination
caustics
volumetric lighting
shadows
check if surface is lit directly
ambient occlusion
check how “occluded” the surface is and how hard is for the light to reach that point in space
color bleed / indirect illumination
is reflected light strong enough so even diffuse surfaces “bleed” their color on surrounding (non-emitters behave like light source)
caustics
is enough of the light reflected/refracted to create some interesting bright patterns
volumetric lighting
how does participating media interact with the light
global illumination
describes how light is scattered around the scene, how light is transported through the scene
what interesting visual effects start appearing because of such light transport
sh ao
sh + ind.illum. sh sh + vol. + ind.illum. sh + caustics + ind.illum. + ao
sh + ind.illum. + ao
FORMULATION OF THE PROBLEM analytically calculate or approximate the irradiance over the sphere, for a certain point in space, in a
converged state
how much each point [A] contributes to every other [B] in the scene
how much [A->B] influences point [A]
how much does that influence [B] back
....
recursive, but it can converge and reach a certain equilibrium
[A->B]
[[A->B]->A]
[[[A->B]->A]->B]
[all light bounces]
ALGORITHMS
pathtracing
radiosity
photon mapping
RSM (reflective shadow maps)
instant radiosity
irradiance volumes
LPV (light propagation volumes)
deferred radiance transfer volumes
SVOGI (sparse voxel octree GI, voxel cone tracing)
RRF (radiance regression function)
SSDO (screen-space directional occlusion) deep G-buffer surfels
PRT and SH
PATHTRACING
sample the hemisphere over the point with Monte Carlo for every other sample, do the same thing recursively
for each surface-light path interaction, we evaluate the incoming light against the bsdf of the material
straighforward implementation of light bounces
very computationally exhaustive, not real-time
very good results, ground truth
all effects
RADIOSITY for each surface element (patch), calculate how well it can see all other patches (view factor)
progressively recalculate the illumination of a certain patch from all other patches
start with direct illumination injected and iterate until convergence (or good enough)
not real-time only diffuse reflections can be precomputed and it is viewport-independent
REFLECTIVE SHADOW MAPS (RSM) generate RSM
from lights perspective: depth, position, normal, flux
sample RSM to approximate lighting
the idea is used in other more popular algorithms
INSTANT RADIOSITY
ray trace from the light source into the scene for each hit, generate VPL and render the scene with it
gather the results
mix between sampling and radiosity
not real-time
INSTANT RADIOSITY V2 don’t raytrace, but instead use RSM use RSM to approximate where to place VPLs deferred render with many lights
PHOTON MAPPING
shoot photons from light source into the scene gather nearby photon to calculate approximate radiance
good results
good for caustics
not real-time
SPHERICAL HARMONICS “spherical Fourier decomposition” Legendre basis functions that can be added together to represent the spherical domain function
IRRADIANCE VOLUMES calculate lighting at the point in space and save in SH representation build grid of such SH values interpolate in space (trilinear) build acceleration structure for efficiency (octree)
PRECOMPUTED RADIANCE TRANSFER precomputed SH for a object that accounts for self-
shadowing and self-interreflection independent of the lighting
PRT
DEFERRED RADIANCE TRANSFER VOLUMES bake manually/auto placed probes that hold PRT data create grid and inject PRT probes into it, interpolated between manually selected locations use local PRT probe * lighting to get the illumination data
[CASCADED] LIGHT PROPAGATION VOLUMES ([C]LPV) generate RSM generate VPLs using RSM inject VPL data into 3D grid of SH probes propagate light contribution within the grid
8 iterations after injection
Sample lit surface elements
Grid initialization
Light propagation in the grid
Scene illumination with the grid
VPL
VPL
VPL
Discretize initial VPL distribution by the regular grid and SH
A set of regularly sampled VPLs of the scene from light position
generate RSM generate VPLs using RSM inject VPL into 3D grid propagate light contribution within the grid
Propagate light iteratively going from one cell to another
Cascaded grids
VOXEL CONE TRACING (SPARSE VOXEL OCTREE GI) rasterize scene into 3d texture generate mip levels and octree for textures sample with cone tracing
VOXEL CONE TRACING (SPARSE VOXEL OCTREE GI)
shadows AO specular reflections
indirect illumination
RADIANCE REGRESSION FUNCTION (RRF) train neural network on the scene (get RRF) use RRF to evaluate for a given point in a space
RRF
THANKS!
Recommended