Point Cloud Based Interactive Global Illumination. Mirko Salm

Point Cloud Based Interactive Global Illumination Mirko Salm 1 Structure • • • • • Motivation Global Illumination The Algorithm Results Conclusion...
Author: Buck Barker
1 downloads 2 Views 1MB Size
Point Cloud Based Interactive Global Illumination Mirko Salm

1

Structure • • • • •

Motivation Global Illumination The Algorithm Results Conclusion

2

Structure • • • • •

Motivation Global illumination The Algorithm Results Conclusion

3

Motivation • light prop. simulation essential for photo-realism • major challenge for interactive applications

complex light paths are simulated

only simple light paths are considered, resulting in a much less natural look

4

Motivation • base structure of light simulation built from irregular scene sampling (point cloud) - makes the scheme compatible with various surface representations: meshes, surfels, implicit surfaces - smooth LOD for dynamic geometry easy to realize, prevents 'light-flickering'-artifacts during LODtransitions

5

Task of the thesis • derive and implement an interactive light propagation approach • support for diffuse and glossy reflections, area light sources and dynamic scenes • based on the work of Crassin et al.: Interactive Indirect Illumination Using Voxel Cone Tracing

6

Structure • • • • •

Motivation Global Illumination The Algorithm Results Conclusion

7

Global Illumination • local illumination considers only local material properties to estimate the reflected light • global illumination considers the whole scene when estimating reflected light at a given point

light bleeding as a result of GI

8

Global Illumination • local reflection behavior combination of (ideal) diffuse and glossy reflections • ideal diffuse convenient since view-independent -> can be compactly cached

ideal diffuse

glossy reflections

both

9

Global Illumination • direct lighting: handles only the first light bounce - coherent light paths -> easy • indirect lighting: all successive events - incoherent light paths -> difficult

direct + indirect lighting

direct only

indirect only

10

Structure • • • • •

Motivation Global Illumination The Algorithm Results Conclusion

11

The Algorithm • simulates direct + indirect lighting • direct lighting: shadow mapping • indirect lighting: light propagation simulation inside alternative scene representation

direct lighting

direct + indirect lighting

12

The Algorithm • important scene information: geometry attributes • albedo: diffuse color • normal: surface direction

• opacity: amount of solid geometry geometry

point cloud

13

The Algorithm • alt. scene representation: sparse voxel octree (SVO) • voxel hierarchy built from point cloud • non-leafs: - opacity - reflected light • leaf nodes: - geometry attributes - reflected light

SVO from point cloud

14

The Algorithm • SVO advantages: - continuous sampling of geometry attributes - sampling of light info and opacity over large regions

albedo sample

original geometry

point cloud

SVO leaf nodes

15

The Algorithm • SVO advantages: - continuous sampling of geometry attributes - sampling of light info and opacity over large regions illuminated point cloud

SVO level 0

SVO level 1

SVO level 2

light sample

blend together 16

The Algorithm

SVO voxel cells of a CornellBox-like scene 17

Algorithm Overview

18

Algorithm Overview render shadowmaps

SMaps

19

Algorithm Overview render shadowmaps

SMaps

SVO update

SVO

20

Algorithm Overview render shadowmaps

SMaps

SVO update light injection SVO

21

Algorithm Overview render shadowmaps

SMaps

SVO update light injection mipmapping

SVO

22

Algorithm Overview render shadowmaps

SMaps

SVO update light injection mipmapping

SVO

light propagation

23

Algorithm Overview render shadowmaps

SMaps

SVO update light injection mipmapping

SVO

light propagation BackBuffer

final rendering 24

The Algorithm • evaluate direct lighting for all leaf nodes • based on albedo and normal • shadow mapping accounts for occlusion

render shadowmaps SVO update light injection mipmapping light propagation

final rendering

25

The Algorithm • reflected light and opacity are filtered up into non-leaf nodes • every non-leaf node averages the values of its 8 children • results in a spatial preintegration

render shadowmaps SVO update light injection mipmapping light propagation

final rendering

26

The Algorithm • for every leaf node: gather all light incident to its position • integration over hemisphere defined by nodes‘ normal • subdivide hemisphere in a couple of conic section • gather light for every cone separately

render shadowmaps SVO update light injection mipmapping light propagation

final rendering

27

The Algorithm • many cones -> good approx. but bad performance • in practice 4 cones sufficient

render shadowmaps SVO update light injection mipmapping light propagation

final rendering

28

The Algorithm • reminder: quadrilinear sampling of reflected light and opacity

render shadowmaps SVO update

SVO level 0

SVO level 1

SVO level 2

light injection mipmapping light propagation

final rendering blend together to quadrilinear sample

29

The Algorithm • approximate voxel cone tracing (VCT) : sample the SVO along given direction at decreasing mipmap-resolutions

render shadowmaps SVO update light injection mipmapping light propagation

final rendering cones (green) approximated by quadrilinear samples (sample footprints red)

30

The Algorithm • similar to ray-casting for volume rendering -> front-to-back compositing • opacity values of the samples are used to account for (partial) occlusion

render shadowmaps SVO update light injection mipmapping light propagation

final rendering

31

The Algorithm • simulates one bounce per frame -> multiple bounces of indirect diffuse lighting

direct lighting only

one bounce of indirect lighting

multiple indirect bounces 32

The Algorithm • direct lighting: local illumination model + shadow mapping • indirect lighting: sample reflected light from SVO leafs • fragment-wise VCT (one cone) for glossy reflections

render shadowmaps SVO update light injection mipmapping light propagation

final rendering

33

The Algorithm

diffuse only

one bounce of glossy reflections 34

Structure • • • • •

Motivation Global Illumination The Algorithm Results Conclusion

35

Results

CaveCloud scene; point cloud rendered with spherical surfels

36

Results

CaveCloud scene; point cloud rendered with spherical surfels

37

Results

CaveCloud scene; point cloud rendered with spherical surfels

38

Results

CaveCloud scene; point cloud rendered with spherical surfels

39

Results • light leaking artifacts along edges and through walls

leaking along edges

reference

light leaking through walls

40

Results • • • • • • • •

CaveCloud (1) scene profiling results: viewport resolution: 800x600 px SVO depth: 8 levels net: 41.8 ms (~ 24 fps) light prop.: 14.5 ms static SVO construction: 248.9 ms SVO memory consumption: 134 MB System: Intel Core2 Quad Q9550 (2.83 GHz), NVIDIA GeForce GTX 560 Ti 41

Structure • • • • •

Motivation Global Illumination The Algorithm Results Conclusion

42

Conclusion • less puristic variant of Crassin et al.s‘ approach - only one glossy bounce - no fragment-wise VCT for diffuse bounces • focus on diffuse light propagation, multiple bounces • one glossy bounce • SVO directly built from irregular scene sampling -> no assumptions about actual geometry, maps well to point cloud visualization

43

Conclusion • still expensive with regard to performance and memory consumption • SVO leads to much higher implementation effort compared to techniques that work on dense grids • for large-scale GI with consistent quality, a sparse structure can probably not be avoided • other SVO applications: soft shadows, AO, AA, DoF, collision detection -> could make maintaining a SVO more worthwhile 44

Demo

45