440 likes | 458 Views
This paper presents a new framework for reducing memory consumption in hierarchical radiosity with clustering. The framework focuses on reducing memory used by links and the hierarchy itself, and includes a memory control mechanism. Results show significant memory reduction without impacting overall performance.
E N D
Controlling 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
Overview • Motivation and Previous Work • New Framework • Reduce memory used by links • Reduce memory used by hierarchy • Memory Control Mechanism • Results • Conclusion
Overview • Motivation and Previous Work • New Framework • Reduce memory used by links • Reduce memory used by hierarchy • Memory Control Mechanism • Results • Conclusion
Motivation • 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)
Hierarchical radiosity • Multi-resolution representation of exchanges • Clustering
Three hierarchy traversals • Refinement : • build the hierarchy • create link: store information of the exchanges • Gather : • compute irradiance due to links Ii =links on iFijBkj • Push-Pull • Descend hierarchy : sum the irradiances • Leaves: reflect entire irradiance • Returning : update the hierarchical representation
Hierarchical radiosity B = 0 1 B = E B = 0 2
Gather I1= F1*E I += I1
Push-Pull : Descend I2 I1 += I2 I1
Push-Pull : Return B1=r1*I1 B = (SAiBi)/A
Previous 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
Shooting Algorithm [SSSS98] • Shooting algorithm DB0 = E (sources) DB0 = 0 (others) • Theoretically the same as standard algorithm • Convergence : global error
Shooting algorithm B = 0 DB = 0 1 B = E DB = E B = 0 DB = 0 2
1st Iteration B = 0 DB = 0 1 B = E DB = 0 B = 2* I2 DB =2* I2 2
2nd iteration B = 1* I1 DB = 1* I1 1 B = E DB = 0 B = 2* I2 DB =0 2
3th iteration B = 1* I1 DB = 0 1 B = E DB = 0 B = 2* (I2 +I3) DB =2* I3 2
Overview • Motivation and Previous Work • New Framework • Reduce memory used by links • Reduce memory used by hierarchy • Memory Control Mechanism • Results • Conclusion
Goals of New Framework • Reduce both link and hierarchy memory consumption • Low speed penalty • Maintain global representation
New Framework for Memory Reduction • Goal • Keep only links needed in next iteration • Algorithm • Unshot radiosity [SSSS98] DB = Bi+1 - Bi • Merge radiosity steps • Traverse Link Hierarchy
New 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
Link hierarchy [DS97] Is the father of • Active link = hierarchy leaf • Passive link = hierarchy node
Overview • Motivation and Previous Work • New Framework • Reduce memory used by links • Reduce memory used by hierarchy • Memory Control Mechanism • Results • Conclusion
Link Memory Reduction • Only create links when needed • Merge Refine and Gather • Creation Criterion: • First approach : Don’t store links from sources • More sophisticated approaches possible • Control link creation using a cache mechanism • Predict link utility in future iterations
Refine 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
Link reduction summary • New approach reduces memory used by links • No overall control of memory • Now, hierarchy uses most of the memory
Overview • Motivation and Previous Work • New Framework • Reduce memory used by links • Reduce memory used by hierarchy • Memory Control Mechanism • Results • Conclusion
Hierarchy 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
Refine, 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
Refine Gather and PushPull source gather refine and push pull refine and push pull gather and push pull gather and push pull create and gather create and gather + push pull • Active link = hierarchy leaf • Passive link = hierarchy node
Refine Gather and PushPull source create replacement • Active link = hierarchy leaf • Passive link = hierarchy node
Hierarchy reduction summary • Advantages • Reduce subdivision due to direct light • But • still a memory peak • Need a mechanism to limit memory
Overview • Motivation and Previous Work • New Framework • Reduce memory used by links • Reduce memory used by hierarchy • Memory Control Mechanism • Results • Conclusion
Memory 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
Overview • Motivation and Previous Work • New Framework • Reduce memory used by links • Reduce memory used by hierarchy • Memory Control Mechanism • Results • Conclusion
Tests scenes Medium hall 4 blocks - 169 K Polygons
Tests scenes Simple hall 2 blocks - 65 K polygons complex hall 16 blocks - 676 K polygons
Overview • Motivation and Previous Work • New Framework • Reduce memory used by links • Reduce memory used by hierarchy • Memory Control Mechanism • Results • Conclusion
Summary • New framework for controlling memory • Using Link Hierarchy • Merge all steps of the radiosity solution • Memory control mechanism • Change => Use memory where it’s needed
Future 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