Title: Controlling Memory Consumption of Hierarchical Radiosity with Clustering
1Controlling Memory Consumption ofHierarchical
Radiosity with Clustering
- Xavier Granier George Drettakis
iMAGIS -GRAVIR/IMAG-INRIA iMAGIS is a joint
project of CNRS/INRIA/UJF/INPG
Graphics Interface 99
2Overview
- Motivation and Previous Work
- New Framework
- Reduce memory used by links
- Reduce memory used by hierarchy
- Memory Control Mechanism
- Results
- Conclusion
3Overview
- Motivation and Previous Work
- New Framework
- Reduce memory used by links
- Reduce memory used by hierarchy
- Memory Control Mechanism
- Results
- Conclusion
4Motivation
- Global illumination of large scenes
- Hierarchical Radiosity with Clustering
Sil95,SAS94 - fast global illumination
- view-independent
- High memory consumption due to
- Link structure WH97
- Hierarchy structure (clusters, subdivided
polygons)
5Hierarchical radiosity
?
- Multi-resolution representation of exchanges
- Clustering
6Three hierarchy traversals
- Refinement
- build the hierarchy
- create link store information of the exchanges
- Gather
- compute irradiance due to links Ii ?links on i
FijBkj - Push-Pull
- Descend hierarchy sum the irradiances
- Leaves reflect entire irradiance
- Returning update the hierarchical representation
7Hierarchical radiosity
B 0
?1
B E
B 0
?2
8Refinement
9Gather
I1 F1E
I I1
10Push-Pull Descend
I2
I1 I2
I1
11Push-Pull Return
B1r1I1
B (SAiBi)/A
12Previous work
- Progressive refinement CCWG88
- Lack of global error control
- Memory used by links
- Study by Willmott and Heckbert WH97
- Getting rid of Links SSSS98
- unshot radiosity
- link cache
13Shooting Algorithm SSSS98
- Shooting algorithm
- DB0 E (sources)
- DB0 0 (others)
- Theoretically the same as standard algorithm
- Convergence global error
14Shooting algorithm
B 0 DB 0
?1
B E DB E
B 0 DB 0
?2
151st Iteration
B 0 DB 0
?1
B E DB 0
B ?2 I2 DB ?2 I2
?2
162nd iteration
B ?1 I1 DB ?1 I1
?1
B E DB 0
B ?2 I2 DB 0
?2
173th iteration
B ?1 I1 DB 0
?1
B E DB 0
B ?2 (I2 I3) DB ?2 I3
?2
18Overview
- Motivation and Previous Work
- New Framework
- Reduce memory used by links
- Reduce memory used by hierarchy
- Memory Control Mechanism
- Results
- Conclusion
19Goals of New Framework
- Reduce both link and hierarchy memory
consumption - Low speed penalty
- Maintain global representation
20New Framework for Memory Reduction
- Goal
- Keep only links needed in next iteration
- Algorithm
- Unshot radiosity SSSS98 DB Bi1 - Bi
- Merge radiosity steps
- Traverse Link Hierarchy
21New Framework for Memory Reduction
- Link Hierarchy and Traversal
- Allows reduction of stored links
- Reduce links creation number of links
- Remove links where possible
- Merge radiosity steps
- Facilitates reduction of memory used by radiosity
hierarchy - ...allows us to move links higher in the
hierarchy - Enables effective memory control mechanism
22Link hierarchy DS97
Is the father of
- Active link hierarchy leaf
- Passive link hierarchy node
23Overview
- Motivation and Previous Work
- New Framework
- Reduce memory used by links
- Reduce memory used by hierarchy
- Memory Control Mechanism
- Results
- Conclusion
24Link Memory Reduction
- Only create links when needed
- Merge Refine and Gather
- Creation Criterion
- First approach Dont store links from sources
- More sophisticated approaches possible
- Control link creation using a cache mechanism
- Predict link utility in future iterations
25Refine And Gather - schema
source
create
create
create
gather
gather
gather
create and gather
create and gather
refine
refine
- Active link hierarchy leaf
- Passive link hierarchy node
26Link reduction summary
- New approach reduces memory used by links
- No overall control of memory
- Now, hierarchy uses most of the memory
27Overview
- Motivation and Previous Work
- New Framework
- Reduce memory used by links
- Reduce memory used by hierarchy
- Memory Control Mechanism
- Results
- Conclusion
28Hierarchy storage reduction
- Goal reduce memory during refinement
- Otherwise we cannot control overall memory usage
- Full recursion on link hierarchy
- Refine, Gather and Push Pull method
- Hierarchy simplification
29Refine, Gather And PushPull
- We have to do only one PushPull
- For each hierarchy element
- For each iteration
- Receiver refinement
- Refine gather and push pull on each child
- Source refinement
- Refine gather and push pull on last child
- Else refine gather
- Replace hierarchy on which no links arrive
30Refine Gather and PushPull
source
create and gather
create and gather push pull
gather
refine and push pull
refine and push pull
gather and push pull
gather and push pull
- Active link hierarchy leaf
- Passive link hierarchy node
31Refine Gather and PushPull
source
create
replacement
- Active link hierarchy leaf
- Passive link hierarchy node
32Texture replacement
?
33Hierarchy reduction summary
- Advantages
- Reduce subdivision due to direct light
- But
- still a memory peak
- Need a mechanism to limit memory
34Overview
- Motivation and Previous Work
- New Framework
- Reduce memory used by links
- Reduce memory used by hierarchy
- Memory Control Mechanism
- Results
- Conclusion
35Memory control mechanism
- Control link memory
- Move links higher in the element hierarchy
- Increase texture replacement
- Cache-like test
- Estimate the expected depth of Link hierarchy
36Overview
- Motivation and Previous Work
- New Framework
- Reduce memory used by links
- Reduce memory used by hierarchy
- Memory Control Mechanism
- Results
- Conclusion
37Tests scenes
Medium hall 4 blocks - 169 K Polygons
38Tests scenes
Simple hall 2 blocks - 65 K polygons
complex hall 16 blocks - 676 K polygons
39Memory used by HRC
40New algorithm (texture replacement)
41Cluster reduction
42Overview
- Motivation and Previous Work
- New Framework
- Reduce memory used by links
- Reduce memory used by hierarchy
- Memory Control Mechanism
- Results
- Conclusion
43Summary
- New framework for controlling memory
- Using Link Hierarchy
- Merge all steps of the radiosity solution
- Memory control mechanism
- Change gt Use memory where its needed
44Future Work
- Store part of hierarchy on disk
- load only the parts needed in memory
- Better representation for simplified clusters
- image based rendering
- volumetric primitives
- multi-resolution geometric simplification
- More sophisticated memory control mechanisms
- take the memory of hierarchy into account