Post on 22-Dec-2015
1
A Novel Page-Based Data Structure for Interactive
Walkthroughs
Behzad SajadiYan Huang
Pablo Diaz-GutierrezSung-Eui Yoon
M. Gopi
2
Outline
Page-Based Rendering Data Fetching Algorithm 2-Factor Data Layout Implementation and Results Summary Conclusion and Future Work
5
Page Format
Self contained information Less bytes for vertex indices Effective compression
# vertices# vertices # faces# faces List of vertices with attributes
List of vertices with attributes
Indexed triangle list with attributes
Indexed triangle list with attributes
Eliminating fragment accesses
6
Traditional K-d tree Page based K-d tree
Storage
OScache
Processheap space
High data management
cost
No data management
cost
Low data management cost
7
Major Steps of the Workflows
Traditional rendering workflow
Page based rendering workflow
SceneData
structureLayout
LayoutApproximated
sceneData
structure
8
Advantages
Less space required for the data structure K-d tree on pages instead of triangles
Independence of the layout and data structure Any layout can be converted to the page
based format
9
Outline
Page-Based Rendering Data Fetching Algorithm 2-Factor Data Layout Implementation and Results Summary Conclusion and Future Work
11
Sorting the Page Numbers
Access pattern is based on storage
…
..
.
K-d tree without sorting
…
..
.
1,72,5 4,12 5,7 9,14 8,16
1, 2, 4, 5, 7, 8, 9, 12, 14, 16
K-d tree after sorting
1,72,5 4,12 5,7 9,14 8,16
12
Rendering Flow
K-d treestructure
Sort pagenumbers
RenderFetchdata
Page numbersafter VF Culling
Triangles
1, 2, 4, 5
2
3
1
4
14
Rendering Flow
K-d treestructure
Sort pagenumbers
RenderFetchdata
BackfaceCulling
Page numbersafter VF Culling
Triangles
1, 2, 4, 5
2
3
1
4
15
Outline
Page-Based Rendering Data Fetching Algorithm 2-Factor Data Layout Implementation and Results Summary Conclusion and Future Work
16
Related Works
Cache oblivious layout by Yoon et al. [2006]
Space filling curves Morton layout (Z-Order) Hilbert layout
17
Graph Construction
Nodes: Group of triangles Edge weights: Distance between the
primitives of the nodes
23
2.5
41.8
6.7
5
5.3
85
18
Steps of the Method
Use GLA (Generalized Lloyd's Algorithm) to partition the primitives
Use [Diaz-Gutierrez and Gopi 2005] to get a 2-factor
Iterate in a hierarchical manner
19
The Layout Hierarchy
Ordering using2-Factor Layouts
Partitioning usingGLA clustering
1 23 4 5 6 7
Final Layout: 2 1 6 7 4 5 3
21
Outline
Page-Based Rendering Data Fetching Algorithm 2-Factor Data Layout Implementation and Results Summary Conclusion and Future Work
23
The City Model (Contd.)
3D models of houses and trees were replaced
Cars were added in the streets
24
The City Model (Contd.)
Specifications 110 million triangles 90 million vertices Spans 4528 MB Around 10,000 objects 115 million vertices in page format Spans 3814 MB in page format
26
Statistics
Frame rates Raster scan layout: 20 FPS Cache oblivious layout by Yoon et al.
[2006]: 27 fps 2-factor layout: 28 FPS
Rendering statistics (our layout) Page size: 4 KB Average disk-page per frame: 2365 Average triangle per frame: 240 K
27
Statistics (Contd.)
Computation times Page format conversion: 15 min (Offline) K-d tree construction: 5 min (Offline) Billboard rendering: 20 hour (Offline) Program initialization: 20 sec
Consumed memory Billboards: 640 MB K-d tree: 96 MB (including bounding
boxes and normal cones)
29
Outline
Page-Based Rendering Data Fetching Algorithm 2-Factor Data Layout Implementation and Results Summary Conclusion and Future Work
30
Before Rendering (Offline) Steps
Given layoutConvert to thepage format
Construct thedisk-page hierarchy
2
3
1
4
Rendering (Online) Steps
K-d treestructure
Sort pagenumbers
RenderFetchdata
BackfaceCulling
Page numbersafter VF Culling
Triangles
1, 2, 4, 5
2
3
1
4
32
Outline
Page-Based Rendering Data Fetching Algorithm 2-Factor Data Layout Implementation and Results Summary Conclusion and Future Work
33
Conclusion
A simple data structure on the disk pages Simplicity High Performance Generality
A new cache oblivious layout
34
Future Work
Analyzing the disk-page hierarchy on other data structures
Exploring other applications that can make use of this data structure
Including simplification techniques Adding a cache management system Analyzing the number cache hits and
misses