Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Global illumination


Published on

What is global illumination and what are the techniques used to combat this problem in real-time applications. Talk briefly covers algorithms like instant radiosity, light propagation volumes and voxel cone tracing. Additional details within the slide notes.

Published in: Science
  • Be the first to comment

Global illumination

  1. 1. GLOBAL ILLUMINATION (BLACK) PHOTONS EVERYWHERE Dragan Okanovic @abstractalgo
  2. 2. 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  ...
  3. 3. 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
  4. 4.  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
  5. 5. sh ao sh + ind.illum. sh sh + vol. + ind.illum. sh + caustics + ind.illum. + ao sh + ind.illum. + ao
  6. 6. 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]
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. INSTANT RADIOSITY V2  don’t raytrace, but instead use RSM  use RSM to approximate where to place VPLs  deferred render with many lights
  13. 13. 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
  14. 14. SPHERICAL HARMONICS  “spherical Fourier decomposition”  Legendre basis functions that can be added together to represent the spherical domain function
  15. 15. 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)
  16. 16. PRECOMPUTED RADIANCE TRANSFER  precomputed SH for a object that accounts for self- shadowing and self-interreflection  independent of the lighting
  17. 17. PRT
  18. 18. 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
  19. 19. [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 Sample lit surface elements Grid initialization Light propagation in the grid Scene illumination with the grid
  20. 20. 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
  21. 21. VOXEL CONE TRACING (SPARSE VOXEL OCTREE GI)  rasterize scene into 3d texture  generate mip levels and octree for textures  sample with cone tracing
  22. 22. VOXEL CONE TRACING (SPARSE VOXEL OCTREE GI)  shadows  AO  specular reflections  indirect illumination
  23. 23. RADIANCE REGRESSION FUNCTION (RRF)  train neural network on the scene (get RRF)  use RRF to evaluate for a given point in a space
  24. 24. RRF
  25. 25. THANKS! 