SlideShare uma empresa Scribd logo
1 de 34
High Performance Graphics 2013 - 8/21/13
Out-Of-Core Construction
of Sparse Voxel Octrees
Jeroen Baert, Ares Lagae
& Philip Dutré
Computer Graphics Group, KU Leuven, Belgium
Out-Of-Core Construction of Sparse Voxel Octrees 2 / 34
Voxel-related research
● Voxel Ray Casting
– Gigavoxels (Crassin, 2009-...)
– Efficient SVO's (Laine, Karras, 2010)
● Voxel Cone Tracing
– Indirect Illumination (Crassin, 2011)
● Voxel-based Visibility
– Voxelized Shadow Volumes
(Wyman, 2013, later today!)
● ...
Crassin2009
Laine/Karras2010
Crassin2011
Out-Of-Core Construction of Sparse Voxel Octrees 3 / 34
Why voxels?
● Regular structure
● Hierarchical representation in
Sparse Voxel Octrees (SVO's)
– Level of Detail / Filtering
● Generic representation for
geometry and appearance
– In a single data structure
CreativeCommons–Wikipedia
Out-Of-Core Construction of Sparse Voxel Octrees 4 / 34
Polygon mesh to SVO
● We want large, highly
detailed SVO scenes
● Where do we find
content?
● Let's voxelize massive
polygon meshes
– Majority of current
content pipelines is
polygon-based
Out-Of-Core Construction of Sparse Voxel Octrees 5 / 34
What do we want?
● Algorithm requirements:
– Need an out-of-core method
● Because polygon mesh &
intermediary structures could be >> system memory
– Data should be streamed in/out
● from disk / network / other process
– Ideally: out-of-core as fast as in-core
Algorithm
Polygon Mesh Sparse Voxel Octree
Out-Of-Core Construction of Sparse Voxel Octrees 6 / 34
Pipeline construction (1)
● Voxelization step
– Polygon mesh → Voxel grid
● Followed by SVO construction step
– Voxel grid → Sparse Voxel Octree
Voxelization
Polygon Mesh Sparse Voxel Octree
SVO
Construction
Out-Of-Core Construction of Sparse Voxel Octrees 7 / 34
Pipeline construction (2)
● Key insight:
– If voxel grid is Morton-ordered
– SVO construction can be done out-of-core
● Logarithmic in memory usage ~ octree size
● In a streaming manner
– So voxelization step should deliver ordered voxels
Voxelization
Polygon Mesh Sparse Voxel Octree
SVO
Construction
Morton
Ordered
Grid
Out-Of-Core Construction of Sparse Voxel Octrees 8 / 34
Pipeline construction (3)
● High-resolution 3D voxel grid may be >>
system memory
– So partitioning step (into subgrids) is needed
– Seperate triangle streams for each subgrid
Voxelization
Polygon Mesh Sparse Voxel Octree
SVO
Construction
Morton
Ordered
Grid
Partitioning
Mesh
Parts
Out-Of-Core Construction of Sparse Voxel Octrees 9 / 34
Final Pipeline
● Now, every step in detail ...
Voxelization
Polygon Mesh Sparse Voxel Octree
SVO
Construction
Morton
Ordered
Grid
Partitioning
Mesh
Parts
Out-Of-Core Construction of Sparse Voxel Octrees 10 / 34
Morton order / Z-order
● Linearization of n-dimensional grid
– Post-order depth-first traversal of 2
n
-tree
● Space-filling curve, Z-shaped
Out-Of-Core Construction of Sparse Voxel Octrees 11 / 34
Morton order / Z-order
● Hierarchical in nature
● Cell at position (x,y)
→ Morton code
– Efficiently computed
– (x,y,z) = (5,9,1)
→ (0101,1001,0001)
→ 010001000111
→ 1095th
cell along Z-curve
Out-Of-Core Construction of Sparse Voxel Octrees 12 / 34
Partitioning subprocess
● Partitioning (1 linear pass)
– Into power-of-2 subgrids until it fits in memory
– Subgrids temporarily stored on disk
– Subgrids correspond to contiguous range in Morton
order
● If we voxelize subgrids in Morton order, output
will be Morton-ordered
Voxelization
Polygon Mesh Sparse Voxel Octree
SVO
Construction
Morton
Ordered
Grid
Partitioning
Mesh
Parts
Out-Of-Core Construction of Sparse Voxel Octrees 13 / 34
Voxelization subprocess (1)
● Voxelize each subgrid in Morton order
– Input: Subgrid triangle stream
● Each triangle voxelized independently
– Output: Morton codes of non-empty cells
● Typically, majority of grid is empty
Voxelization
Polygon Mesh Sparse Voxel Octree
SVO
Construction
Morton
Ordered
Grid
Partitioning
Mesh
Parts
Out-Of-Core Construction of Sparse Voxel Octrees 14 / 34
Voxelization subprocess (2)
● We use a simple voxelization method
– But any method that works one triangle at a time
will do
111011010100
101111010111
...
HuangetAl.
Morton codes of non-empty cells
Out-Of-Core Construction of Sparse Voxel Octrees 15 / 34
Out-of-core SVO Construction
● Input: Morton-ordered voxel grid
● Output: SVO nodes + referenced dataevel
Morton code
Voxelization
Polygon Mesh Sparse Voxel Octree
SVO
Construction
Morton
Ordered
Grid
Partitioning
Mesh
Parts
Out-Of-Core Construction of Sparse Voxel Octrees 16 / 34
SVO Construction algorithm in 2D
0
0 3...
1
4 7...
2
8 11...
3
12 15...
●
Required: queues of 2
d
nodes / octree level
– Ex: 20483
grid → 11 * 8 octree nodes-l
Octree representationSVO Builder queues
Input
position
In Memory / On-disk
Level 0
Level 1
Level 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Out-Of-Core Construction of Sparse Voxel Octrees 17 / 34
SVO Construction algorithm in 2D
● Read Morton codes 0 → 3 (+ voxel data)
– Store them in level 2 queue
– Level 2 queue = full
0 3
Octree representationSVO Builder queues
0 1 2 3
Level 0
Level 1
Level 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Out-Of-Core Construction of Sparse Voxel Octrees 18 / 34
SVO Construction algorithm in 2D
● Create internal parent node
– With level 1 Morton code 0
– Store parent-child relations
– Write non-empty level 2 nodes to disk+clear level 2
Octree representationSVO Builder queues
0 1 2 3
0 0
0 3
Level 0
Level 1
Level 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Out-Of-Core Construction of Sparse Voxel Octrees 19 / 34
SVO Construction algorithm in 2D
● Read Morton codes 4 → 7 (+ voxel data)
– Store them in level 2 queue
Octree representationSVO Builder queues
4 5 6 7
0 0
0 3 4 7...
Level 0
Level 1
Level 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Out-Of-Core Construction of Sparse Voxel Octrees 20 / 34
SVO Construction algorithm in 2D
● Create internal parent node
– With level 1 Morton code 1
– Store parent-child relations (there are none)
– Write non-empty level 2 nodes to disk+clear level 2
Octree representationSVO Builder queues
4 5 6 7
0 1 0
0 3...
1
Level 0
Level 1
Level 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
4 7...
Out-Of-Core Construction of Sparse Voxel Octrees 21 / 34
SVO Construction algorithm in 2D
● Same for Morton codes 8 → 11
Octree representationSVO Builder queues
0 1 0
0 3
1 2
9
2
Level 0
Level 1
Level 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Out-Of-Core Construction of Sparse Voxel Octrees 22 / 34
SVO Construction algorithm in 2D
● Same for Morton codes 12 → 15
Octree representationSVO Builder queues
0 1 2 3 3
12 15...
Level 0
Level 1
Level 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0
0 3
1 2
9
Out-Of-Core Construction of Sparse Voxel Octrees 23 / 34
SVO Construction algorithm in 2D
● Now level 1 is full
– Create parent node (root node)
– Store parent-child relations
– Write non-empty level 1 nodes to disk+clear level 1
Octree representationSVO Builder queues
0 1 2 3
R
R
... ...
Level 0
Level 1
Level 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
3
12 15...
0
0 3
2
9
1
Out-Of-Core Construction of Sparse Voxel Octrees 24 / 34
SVO Construction: optimization
● Lots of processing time for empty nodes
– Sparseness = typical for high-res voxelized meshes
● Insight for optimization
– Pushing back 2
d
empty nodes
in a queue at level n
= Pushing back 1 empty
node at level n-1
n-1
n
...
SVO Builder queues
Out-Of-Core Construction of Sparse Voxel Octrees 25 / 34
SVO Construction: optimization
● Implementation details in paper
● Optimization exploits sparseness of voxelized
meshes
● Speedup: two orders of magnitude
– Building SVO from grid:
● David: 471 vs 0.55 seconds
● San Miguel: 453 vs 1.69 seconds
Out-Of-Core Construction of Sparse Voxel Octrees 26 / 34
Results: Tests
●
Resolution: 2048
3
● Memory limits
– 8 Gb (in-core)
– 1 Gb (out-of-core)
– 128 Mb (out-of-core)
● Models
– David (8.25 M polys)
– San Marco (7.88 M polys)
– XYZRGB Dragon (7.2 M polys)
Out-Of-Core Construction of Sparse Voxel Octrees 27 / 34
Results: Out-Of-Core performance
● Out-Of-Core method = ~ as fast as In-Core
– Even when available memory is 1/64
Out-Of-Core Construction of Sparse Voxel Octrees 28 / 34
Results: Time breakdown
● Partitioning speedup from skipping empty space
Out-Of-Core Construction of Sparse Voxel Octrees 29 / 34
Results: Extremely large models
●
4096
3
– In-core: 64 Gb
● Atlas model
– 17.42 Gb, 507 M tris
– < 11 min at 1 Gb
● St. Matthew model
– 13.1 Gb, 372 M tris
– < 9 min at 1 Gb
Out-Of-Core Construction of Sparse Voxel Octrees 30 / 34
Results: SVO Construction
● SVO output stream
– Good locality of reference
● Nonempty siblings on same level always stored next to
each other
– Nodes separated from data itself (separation
hot/cold data)
● Using data pointers + offsets as reference
Out-Of-Core Construction of Sparse Voxel Octrees 31 / 34
Appearance
● Pipeline: binary voxelization
● Extend with appearance data?
– Interpolate vertex attributes
(color, normals, tex)
– Propagate appearance
data upwards
● Global data access ↔ Out-Of-Core algorithms
– Multi-pass approach
DecreasingSVOlevel
Out-Of-Core Construction of Sparse Voxel Octrees 32 / 34
Conclusion
● Voxelization and SVO construction algorithm
– Out-of-core as fast as in-core
– Support for extremely large meshes
● Future work
– Combine with GPU method to speed up
voxelization
– Handle global appearance data
Out-Of-Core Construction of Sparse Voxel Octrees 33 / 34
Thanks!
● Source code / binaries
will be available at project
page
● Contact
– jeroen.baert @ cs.kuleuven.be
– @jbaert
● Acknowledgements:
– Jeroen Baert funded by Agency for Innovation by
Science and Technology in Flanders (IWT), Ares Lagae
is a Postdoctoral Fellow of the Research Foundation –
Flanders (FWO), David / Atlas / St. Matthew models :
Digital Michelangelo project, San Miguel model :
Guillermo M. Leal Llaguno (Evolucien VIsual)
Out-Of-Core Construction of Sparse Voxel Octrees 34 / 34

Mais conteúdo relacionado

Mais procurados

Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemGuerrilla
 
UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!Unity Technologies Japan K.K.
 
UnrealBuildTool勉強会まとめ
UnrealBuildTool勉強会まとめUnrealBuildTool勉強会まとめ
UnrealBuildTool勉強会まとめShun Sasaki
 
UNREAL ENGINE 基本操作編
UNREAL ENGINE  基本操作編UNREAL ENGINE  基本操作編
UNREAL ENGINE 基本操作編Yuuki Ogino
 
実戦投入事例! Niagaraで地球の風をビジュアライズ!
実戦投入事例! Niagaraで地球の風をビジュアライズ!実戦投入事例! Niagaraで地球の風をビジュアライズ!
実戦投入事例! Niagaraで地球の風をビジュアライズ!historia_Inc
 
Learn how to do stylized shading with Shader Graph – Unite Copenhagen 2019
Learn how to do stylized shading with Shader Graph – Unite Copenhagen 2019Learn how to do stylized shading with Shader Graph – Unite Copenhagen 2019
Learn how to do stylized shading with Shader Graph – Unite Copenhagen 2019Unity Technologies
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...エピック・ゲームズ・ジャパン Epic Games Japan
 
LEED & Indoor Air Quality John P. Lapotaire, CIEC
LEED & Indoor Air Quality John P. Lapotaire, CIEC LEED & Indoor Air Quality John P. Lapotaire, CIEC
LEED & Indoor Air Quality John P. Lapotaire, CIEC John P. Lapotaire, CIEC.
 
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?kyu buns
 
Illumination
IlluminationIllumination
IlluminationVima Mali
 
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントhistoria_Inc
 

Mais procurados (20)

OpenGL for 2015
OpenGL for 2015OpenGL for 2015
OpenGL for 2015
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo Postmortem
 
Unreal Studioのご紹介
Unreal Studioのご紹介Unreal Studioのご紹介
Unreal Studioのご紹介
 
Zero Energy Building
Zero Energy BuildingZero Energy Building
Zero Energy Building
 
UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!
 
UnrealBuildTool勉強会まとめ
UnrealBuildTool勉強会まとめUnrealBuildTool勉強会まとめ
UnrealBuildTool勉強会まとめ
 
UNREAL ENGINE 基本操作編
UNREAL ENGINE  基本操作編UNREAL ENGINE  基本操作編
UNREAL ENGINE 基本操作編
 
実戦投入事例! Niagaraで地球の風をビジュアライズ!
実戦投入事例! Niagaraで地球の風をビジュアライズ!実戦投入事例! Niagaraで地球の風をビジュアライズ!
実戦投入事例! Niagaraで地球の風をビジュアライズ!
 
猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り
 
Learn how to do stylized shading with Shader Graph – Unite Copenhagen 2019
Learn how to do stylized shading with Shader Graph – Unite Copenhagen 2019Learn how to do stylized shading with Shader Graph – Unite Copenhagen 2019
Learn how to do stylized shading with Shader Graph – Unite Copenhagen 2019
 
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
 
Low embodied energy
Low embodied energyLow embodied energy
Low embodied energy
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
 
LEED & Indoor Air Quality John P. Lapotaire, CIEC
LEED & Indoor Air Quality John P. Lapotaire, CIEC LEED & Indoor Air Quality John P. Lapotaire, CIEC
LEED & Indoor Air Quality John P. Lapotaire, CIEC
 
Embodied energy
Embodied energyEmbodied energy
Embodied energy
 
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
 
WCCF最新作、アーケードゲームWCCF FOOTISTA 2019はこうやって進化した
WCCF最新作、アーケードゲームWCCF FOOTISTA 2019はこうやって進化したWCCF最新作、アーケードゲームWCCF FOOTISTA 2019はこうやって進化した
WCCF最新作、アーケードゲームWCCF FOOTISTA 2019はこうやって進化した
 
Illumination
IlluminationIllumination
Illumination
 
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
 
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
 

Destaque

Modelagem em Octree
Modelagem em OctreeModelagem em Octree
Modelagem em OctreeErasmo Artur
 
CS 354 Acceleration Structures
CS 354 Acceleration StructuresCS 354 Acceleration Structures
CS 354 Acceleration StructuresMark Kilgard
 
Techniques for Improving Element Bandwidth
Techniques for Improving Element BandwidthTechniques for Improving Element Bandwidth
Techniques for Improving Element Bandwidthashish patil
 
Electromagnetic induction (2)
Electromagnetic induction (2)Electromagnetic induction (2)
Electromagnetic induction (2)mrmeredith
 
Determination of the transient open circuit time constant
Determination of the transient open circuit time constantDetermination of the transient open circuit time constant
Determination of the transient open circuit time constantDonald Stephen
 
3.8 the 1931 cie s ystem
3.8 the 1931 cie s ystem3.8 the 1931 cie s ystem
3.8 the 1931 cie s ystemQC Labs
 
Faraday's law 333
Faraday's law 333Faraday's law 333
Faraday's law 333zonesid
 
Significant Figures
Significant FiguresSignificant Figures
Significant Figurescrespiryan
 
Medical physics slide show
Medical physics slide showMedical physics slide show
Medical physics slide showNengah Surata
 
Medical applications of nuclear physics
Medical applications of nuclear physicsMedical applications of nuclear physics
Medical applications of nuclear physicsRad Tech
 
AC & DC Generators
AC & DC GeneratorsAC & DC Generators
AC & DC GeneratorsAfrah Aamer
 
NVIDIA OpenGL in 2016
NVIDIA OpenGL in 2016NVIDIA OpenGL in 2016
NVIDIA OpenGL in 2016Mark Kilgard
 
Mechanical sensor
Mechanical sensorMechanical sensor
Mechanical sensorB.k. Das
 
Magnetic field sensing
Magnetic field sensingMagnetic field sensing
Magnetic field sensingZaahir Salam
 
Electromagnetic Induction Class 12
Electromagnetic Induction Class 12 Electromagnetic Induction Class 12
Electromagnetic Induction Class 12 Self-employed
 

Destaque (20)

Modelagem em Octree
Modelagem em OctreeModelagem em Octree
Modelagem em Octree
 
CS 354 Acceleration Structures
CS 354 Acceleration StructuresCS 354 Acceleration Structures
CS 354 Acceleration Structures
 
Shahid
ShahidShahid
Shahid
 
Techniques for Improving Element Bandwidth
Techniques for Improving Element BandwidthTechniques for Improving Element Bandwidth
Techniques for Improving Element Bandwidth
 
Electromagnetic induction (2)
Electromagnetic induction (2)Electromagnetic induction (2)
Electromagnetic induction (2)
 
Determination of the transient open circuit time constant
Determination of the transient open circuit time constantDetermination of the transient open circuit time constant
Determination of the transient open circuit time constant
 
3.8 the 1931 cie s ystem
3.8 the 1931 cie s ystem3.8 the 1931 cie s ystem
3.8 the 1931 cie s ystem
 
Ch10 ln
Ch10 lnCh10 ln
Ch10 ln
 
Faraday's law 333
Faraday's law 333Faraday's law 333
Faraday's law 333
 
Felwyrld Tech
Felwyrld TechFelwyrld Tech
Felwyrld Tech
 
Significant Figures
Significant FiguresSignificant Figures
Significant Figures
 
CAT
CATCAT
CAT
 
Medical physics slide show
Medical physics slide showMedical physics slide show
Medical physics slide show
 
Medical applications of nuclear physics
Medical applications of nuclear physicsMedical applications of nuclear physics
Medical applications of nuclear physics
 
AC & DC Generators
AC & DC GeneratorsAC & DC Generators
AC & DC Generators
 
NVIDIA OpenGL in 2016
NVIDIA OpenGL in 2016NVIDIA OpenGL in 2016
NVIDIA OpenGL in 2016
 
Mechanical sensor
Mechanical sensorMechanical sensor
Mechanical sensor
 
Physics (significant figures)
Physics (significant figures)Physics (significant figures)
Physics (significant figures)
 
Magnetic field sensing
Magnetic field sensingMagnetic field sensing
Magnetic field sensing
 
Electromagnetic Induction Class 12
Electromagnetic Induction Class 12 Electromagnetic Induction Class 12
Electromagnetic Induction Class 12
 

Semelhante a Out-of-Core Construction of Sparse Voxel Octrees

Demystifying Datacenter Clos
Demystifying Datacenter ClosDemystifying Datacenter Clos
Demystifying Datacenter ClosONeilRobinson2
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14AMD Developer Central
 
Extending ETSI VNF descriptors and OpenVIM to support Unikernels
Extending ETSI VNF descriptors and OpenVIM to support UnikernelsExtending ETSI VNF descriptors and OpenVIM to support Unikernels
Extending ETSI VNF descriptors and OpenVIM to support UnikernelsStefano Salsano
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法MITSUNARI Shigeo
 
Ovn vancouver
Ovn vancouverOvn vancouver
Ovn vancouverMason Mei
 
شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptx
شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptxشرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptx
شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptxِِِAhmed R. A. Shamsan
 
15_NEW-2020-ATTENTION-ENC-DEC-TRANSFORMERS-Lect15.pptx
15_NEW-2020-ATTENTION-ENC-DEC-TRANSFORMERS-Lect15.pptx15_NEW-2020-ATTENTION-ENC-DEC-TRANSFORMERS-Lect15.pptx
15_NEW-2020-ATTENTION-ENC-DEC-TRANSFORMERS-Lect15.pptxNibrasulIslam
 
Superfluid Orchestration of heterogeneous Reusable Functional Blocks for 5G n...
Superfluid Orchestration of heterogeneous Reusable Functional Blocks for 5G n...Superfluid Orchestration of heterogeneous Reusable Functional Blocks for 5G n...
Superfluid Orchestration of heterogeneous Reusable Functional Blocks for 5G n...Stefano Salsano
 
Hong kongopenstack2013 sdn_bluehost
Hong kongopenstack2013 sdn_bluehostHong kongopenstack2013 sdn_bluehost
Hong kongopenstack2013 sdn_bluehostJun Park
 
Transforming deep into transformers – a computer vision approach
Transforming deep into transformers – a computer vision approachTransforming deep into transformers – a computer vision approach
Transforming deep into transformers – a computer vision approachFerdin Joe John Joseph PhD
 
Seq2Seq (encoder decoder) model
Seq2Seq (encoder decoder) modelSeq2Seq (encoder decoder) model
Seq2Seq (encoder decoder) model佳蓉 倪
 
1st slide VLSI.pdf
1st slide VLSI.pdf1st slide VLSI.pdf
1st slide VLSI.pdfmisbahmridul
 
VIO on Cisco UCS and Network
VIO on Cisco UCS and NetworkVIO on Cisco UCS and Network
VIO on Cisco UCS and NetworkYousef Morcos
 
EBtree - Design for a Scheduler and Use (Almost) Everywhere
EBtree - Design for a Scheduler and Use (Almost) EverywhereEBtree - Design for a Scheduler and Use (Almost) Everywhere
EBtree - Design for a Scheduler and Use (Almost) EverywhereC4Media
 
OVN - Basics and deep dive
OVN - Basics and deep diveOVN - Basics and deep dive
OVN - Basics and deep diveTrinath Somanchi
 
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...OpenEBS
 
Lecture 2.B: Computer Vision Applications - Full Stack Deep Learning - Spring...
Lecture 2.B: Computer Vision Applications - Full Stack Deep Learning - Spring...Lecture 2.B: Computer Vision Applications - Full Stack Deep Learning - Spring...
Lecture 2.B: Computer Vision Applications - Full Stack Deep Learning - Spring...Sergey Karayev
 
Introduction to nexux from zero to Hero
Introduction to nexux  from zero to HeroIntroduction to nexux  from zero to Hero
Introduction to nexux from zero to HeroDhruv Sharma
 

Semelhante a Out-of-Core Construction of Sparse Voxel Octrees (20)

Demystifying Datacenter Clos
Demystifying Datacenter ClosDemystifying Datacenter Clos
Demystifying Datacenter Clos
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
 
Extending ETSI VNF descriptors and OpenVIM to support Unikernels
Extending ETSI VNF descriptors and OpenVIM to support UnikernelsExtending ETSI VNF descriptors and OpenVIM to support Unikernels
Extending ETSI VNF descriptors and OpenVIM to support Unikernels
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
 
Ovn vancouver
Ovn vancouverOvn vancouver
Ovn vancouver
 
شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptx
شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptxشرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptx
شرح تفصيلي لهندسة YOLOv8 - انهيار كامل.pptx
 
15_NEW-2020-ATTENTION-ENC-DEC-TRANSFORMERS-Lect15.pptx
15_NEW-2020-ATTENTION-ENC-DEC-TRANSFORMERS-Lect15.pptx15_NEW-2020-ATTENTION-ENC-DEC-TRANSFORMERS-Lect15.pptx
15_NEW-2020-ATTENTION-ENC-DEC-TRANSFORMERS-Lect15.pptx
 
Superfluid Orchestration of heterogeneous Reusable Functional Blocks for 5G n...
Superfluid Orchestration of heterogeneous Reusable Functional Blocks for 5G n...Superfluid Orchestration of heterogeneous Reusable Functional Blocks for 5G n...
Superfluid Orchestration of heterogeneous Reusable Functional Blocks for 5G n...
 
Hong kongopenstack2013 sdn_bluehost
Hong kongopenstack2013 sdn_bluehostHong kongopenstack2013 sdn_bluehost
Hong kongopenstack2013 sdn_bluehost
 
Transforming deep into transformers – a computer vision approach
Transforming deep into transformers – a computer vision approachTransforming deep into transformers – a computer vision approach
Transforming deep into transformers – a computer vision approach
 
Seq2Seq (encoder decoder) model
Seq2Seq (encoder decoder) modelSeq2Seq (encoder decoder) model
Seq2Seq (encoder decoder) model
 
1st slide VLSI.pdf
1st slide VLSI.pdf1st slide VLSI.pdf
1st slide VLSI.pdf
 
PD_Tcl_Examples
PD_Tcl_ExamplesPD_Tcl_Examples
PD_Tcl_Examples
 
VIO on Cisco UCS and Network
VIO on Cisco UCS and NetworkVIO on Cisco UCS and Network
VIO on Cisco UCS and Network
 
EBtree - Design for a Scheduler and Use (Almost) Everywhere
EBtree - Design for a Scheduler and Use (Almost) EverywhereEBtree - Design for a Scheduler and Use (Almost) Everywhere
EBtree - Design for a Scheduler and Use (Almost) Everywhere
 
OVN - Basics and deep dive
OVN - Basics and deep diveOVN - Basics and deep dive
OVN - Basics and deep dive
 
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
 
Lecture 2.B: Computer Vision Applications - Full Stack Deep Learning - Spring...
Lecture 2.B: Computer Vision Applications - Full Stack Deep Learning - Spring...Lecture 2.B: Computer Vision Applications - Full Stack Deep Learning - Spring...
Lecture 2.B: Computer Vision Applications - Full Stack Deep Learning - Spring...
 
Cisco nx os
Cisco nx os Cisco nx os
Cisco nx os
 
Introduction to nexux from zero to Hero
Introduction to nexux  from zero to HeroIntroduction to nexux  from zero to Hero
Introduction to nexux from zero to Hero
 

Último

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Último (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Out-of-Core Construction of Sparse Voxel Octrees

  • 1. High Performance Graphics 2013 - 8/21/13 Out-Of-Core Construction of Sparse Voxel Octrees Jeroen Baert, Ares Lagae & Philip Dutré Computer Graphics Group, KU Leuven, Belgium
  • 2. Out-Of-Core Construction of Sparse Voxel Octrees 2 / 34 Voxel-related research ● Voxel Ray Casting – Gigavoxels (Crassin, 2009-...) – Efficient SVO's (Laine, Karras, 2010) ● Voxel Cone Tracing – Indirect Illumination (Crassin, 2011) ● Voxel-based Visibility – Voxelized Shadow Volumes (Wyman, 2013, later today!) ● ... Crassin2009 Laine/Karras2010 Crassin2011
  • 3. Out-Of-Core Construction of Sparse Voxel Octrees 3 / 34 Why voxels? ● Regular structure ● Hierarchical representation in Sparse Voxel Octrees (SVO's) – Level of Detail / Filtering ● Generic representation for geometry and appearance – In a single data structure CreativeCommons–Wikipedia
  • 4. Out-Of-Core Construction of Sparse Voxel Octrees 4 / 34 Polygon mesh to SVO ● We want large, highly detailed SVO scenes ● Where do we find content? ● Let's voxelize massive polygon meshes – Majority of current content pipelines is polygon-based
  • 5. Out-Of-Core Construction of Sparse Voxel Octrees 5 / 34 What do we want? ● Algorithm requirements: – Need an out-of-core method ● Because polygon mesh & intermediary structures could be >> system memory – Data should be streamed in/out ● from disk / network / other process – Ideally: out-of-core as fast as in-core Algorithm Polygon Mesh Sparse Voxel Octree
  • 6. Out-Of-Core Construction of Sparse Voxel Octrees 6 / 34 Pipeline construction (1) ● Voxelization step – Polygon mesh → Voxel grid ● Followed by SVO construction step – Voxel grid → Sparse Voxel Octree Voxelization Polygon Mesh Sparse Voxel Octree SVO Construction
  • 7. Out-Of-Core Construction of Sparse Voxel Octrees 7 / 34 Pipeline construction (2) ● Key insight: – If voxel grid is Morton-ordered – SVO construction can be done out-of-core ● Logarithmic in memory usage ~ octree size ● In a streaming manner – So voxelization step should deliver ordered voxels Voxelization Polygon Mesh Sparse Voxel Octree SVO Construction Morton Ordered Grid
  • 8. Out-Of-Core Construction of Sparse Voxel Octrees 8 / 34 Pipeline construction (3) ● High-resolution 3D voxel grid may be >> system memory – So partitioning step (into subgrids) is needed – Seperate triangle streams for each subgrid Voxelization Polygon Mesh Sparse Voxel Octree SVO Construction Morton Ordered Grid Partitioning Mesh Parts
  • 9. Out-Of-Core Construction of Sparse Voxel Octrees 9 / 34 Final Pipeline ● Now, every step in detail ... Voxelization Polygon Mesh Sparse Voxel Octree SVO Construction Morton Ordered Grid Partitioning Mesh Parts
  • 10. Out-Of-Core Construction of Sparse Voxel Octrees 10 / 34 Morton order / Z-order ● Linearization of n-dimensional grid – Post-order depth-first traversal of 2 n -tree ● Space-filling curve, Z-shaped
  • 11. Out-Of-Core Construction of Sparse Voxel Octrees 11 / 34 Morton order / Z-order ● Hierarchical in nature ● Cell at position (x,y) → Morton code – Efficiently computed – (x,y,z) = (5,9,1) → (0101,1001,0001) → 010001000111 → 1095th cell along Z-curve
  • 12. Out-Of-Core Construction of Sparse Voxel Octrees 12 / 34 Partitioning subprocess ● Partitioning (1 linear pass) – Into power-of-2 subgrids until it fits in memory – Subgrids temporarily stored on disk – Subgrids correspond to contiguous range in Morton order ● If we voxelize subgrids in Morton order, output will be Morton-ordered Voxelization Polygon Mesh Sparse Voxel Octree SVO Construction Morton Ordered Grid Partitioning Mesh Parts
  • 13. Out-Of-Core Construction of Sparse Voxel Octrees 13 / 34 Voxelization subprocess (1) ● Voxelize each subgrid in Morton order – Input: Subgrid triangle stream ● Each triangle voxelized independently – Output: Morton codes of non-empty cells ● Typically, majority of grid is empty Voxelization Polygon Mesh Sparse Voxel Octree SVO Construction Morton Ordered Grid Partitioning Mesh Parts
  • 14. Out-Of-Core Construction of Sparse Voxel Octrees 14 / 34 Voxelization subprocess (2) ● We use a simple voxelization method – But any method that works one triangle at a time will do 111011010100 101111010111 ... HuangetAl. Morton codes of non-empty cells
  • 15. Out-Of-Core Construction of Sparse Voxel Octrees 15 / 34 Out-of-core SVO Construction ● Input: Morton-ordered voxel grid ● Output: SVO nodes + referenced dataevel Morton code Voxelization Polygon Mesh Sparse Voxel Octree SVO Construction Morton Ordered Grid Partitioning Mesh Parts
  • 16. Out-Of-Core Construction of Sparse Voxel Octrees 16 / 34 SVO Construction algorithm in 2D 0 0 3... 1 4 7... 2 8 11... 3 12 15... ● Required: queues of 2 d nodes / octree level – Ex: 20483 grid → 11 * 8 octree nodes-l Octree representationSVO Builder queues Input position In Memory / On-disk Level 0 Level 1 Level 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • 17. Out-Of-Core Construction of Sparse Voxel Octrees 17 / 34 SVO Construction algorithm in 2D ● Read Morton codes 0 → 3 (+ voxel data) – Store them in level 2 queue – Level 2 queue = full 0 3 Octree representationSVO Builder queues 0 1 2 3 Level 0 Level 1 Level 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • 18. Out-Of-Core Construction of Sparse Voxel Octrees 18 / 34 SVO Construction algorithm in 2D ● Create internal parent node – With level 1 Morton code 0 – Store parent-child relations – Write non-empty level 2 nodes to disk+clear level 2 Octree representationSVO Builder queues 0 1 2 3 0 0 0 3 Level 0 Level 1 Level 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • 19. Out-Of-Core Construction of Sparse Voxel Octrees 19 / 34 SVO Construction algorithm in 2D ● Read Morton codes 4 → 7 (+ voxel data) – Store them in level 2 queue Octree representationSVO Builder queues 4 5 6 7 0 0 0 3 4 7... Level 0 Level 1 Level 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • 20. Out-Of-Core Construction of Sparse Voxel Octrees 20 / 34 SVO Construction algorithm in 2D ● Create internal parent node – With level 1 Morton code 1 – Store parent-child relations (there are none) – Write non-empty level 2 nodes to disk+clear level 2 Octree representationSVO Builder queues 4 5 6 7 0 1 0 0 3... 1 Level 0 Level 1 Level 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 7...
  • 21. Out-Of-Core Construction of Sparse Voxel Octrees 21 / 34 SVO Construction algorithm in 2D ● Same for Morton codes 8 → 11 Octree representationSVO Builder queues 0 1 0 0 3 1 2 9 2 Level 0 Level 1 Level 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • 22. Out-Of-Core Construction of Sparse Voxel Octrees 22 / 34 SVO Construction algorithm in 2D ● Same for Morton codes 12 → 15 Octree representationSVO Builder queues 0 1 2 3 3 12 15... Level 0 Level 1 Level 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 3 1 2 9
  • 23. Out-Of-Core Construction of Sparse Voxel Octrees 23 / 34 SVO Construction algorithm in 2D ● Now level 1 is full – Create parent node (root node) – Store parent-child relations – Write non-empty level 1 nodes to disk+clear level 1 Octree representationSVO Builder queues 0 1 2 3 R R ... ... Level 0 Level 1 Level 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 12 15... 0 0 3 2 9 1
  • 24. Out-Of-Core Construction of Sparse Voxel Octrees 24 / 34 SVO Construction: optimization ● Lots of processing time for empty nodes – Sparseness = typical for high-res voxelized meshes ● Insight for optimization – Pushing back 2 d empty nodes in a queue at level n = Pushing back 1 empty node at level n-1 n-1 n ... SVO Builder queues
  • 25. Out-Of-Core Construction of Sparse Voxel Octrees 25 / 34 SVO Construction: optimization ● Implementation details in paper ● Optimization exploits sparseness of voxelized meshes ● Speedup: two orders of magnitude – Building SVO from grid: ● David: 471 vs 0.55 seconds ● San Miguel: 453 vs 1.69 seconds
  • 26. Out-Of-Core Construction of Sparse Voxel Octrees 26 / 34 Results: Tests ● Resolution: 2048 3 ● Memory limits – 8 Gb (in-core) – 1 Gb (out-of-core) – 128 Mb (out-of-core) ● Models – David (8.25 M polys) – San Marco (7.88 M polys) – XYZRGB Dragon (7.2 M polys)
  • 27. Out-Of-Core Construction of Sparse Voxel Octrees 27 / 34 Results: Out-Of-Core performance ● Out-Of-Core method = ~ as fast as In-Core – Even when available memory is 1/64
  • 28. Out-Of-Core Construction of Sparse Voxel Octrees 28 / 34 Results: Time breakdown ● Partitioning speedup from skipping empty space
  • 29. Out-Of-Core Construction of Sparse Voxel Octrees 29 / 34 Results: Extremely large models ● 4096 3 – In-core: 64 Gb ● Atlas model – 17.42 Gb, 507 M tris – < 11 min at 1 Gb ● St. Matthew model – 13.1 Gb, 372 M tris – < 9 min at 1 Gb
  • 30. Out-Of-Core Construction of Sparse Voxel Octrees 30 / 34 Results: SVO Construction ● SVO output stream – Good locality of reference ● Nonempty siblings on same level always stored next to each other – Nodes separated from data itself (separation hot/cold data) ● Using data pointers + offsets as reference
  • 31. Out-Of-Core Construction of Sparse Voxel Octrees 31 / 34 Appearance ● Pipeline: binary voxelization ● Extend with appearance data? – Interpolate vertex attributes (color, normals, tex) – Propagate appearance data upwards ● Global data access ↔ Out-Of-Core algorithms – Multi-pass approach DecreasingSVOlevel
  • 32. Out-Of-Core Construction of Sparse Voxel Octrees 32 / 34 Conclusion ● Voxelization and SVO construction algorithm – Out-of-core as fast as in-core – Support for extremely large meshes ● Future work – Combine with GPU method to speed up voxelization – Handle global appearance data
  • 33. Out-Of-Core Construction of Sparse Voxel Octrees 33 / 34 Thanks! ● Source code / binaries will be available at project page ● Contact – jeroen.baert @ cs.kuleuven.be – @jbaert ● Acknowledgements: – Jeroen Baert funded by Agency for Innovation by Science and Technology in Flanders (IWT), Ares Lagae is a Postdoctoral Fellow of the Research Foundation – Flanders (FWO), David / Atlas / St. Matthew models : Digital Michelangelo project, San Miguel model : Guillermo M. Leal Llaguno (Evolucien VIsual)
  • 34. Out-Of-Core Construction of Sparse Voxel Octrees 34 / 34