Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.
-
Upload
isabel-white -
Category
Documents
-
view
243 -
download
7
Transcript of Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.
![Page 1: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/1.jpg)
Efficient SparseVoxel Octrees
Samuli Laine Tero Karras
NVIDIA Research
![Page 2: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/2.jpg)
2
“Bitmaps” vs “Vectors”
Bitmap 2D image Vector 2D image
![Page 3: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/3.jpg)
3
Why Not “Bitmaps” in 3D?
?“Bitmap” 3D object Vector 3D object
![Page 4: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/4.jpg)
4
Voxel datasets often consist of volume data O(n3) memory consumption. Ouch!
But usually we only see the surfaces of things
Surfaces have O(n2) memory consumption, i.e. relative to surface area. Much better.
Needs a smart data structure
Voxels != Volumetric
![Page 5: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/5.jpg)
5
+ Unique geometry and texture everywhereEnables new kind of authoring and capture
+ Fine-grained resolution control
+ Compact representationPosition information is implicit
No surface parameterization needed
+ Easy to downsample
– Deformations are very difficult
– Data sets are large
– Lack of authoring / editing tools
Properties of Sparse Voxel Octrees
![Page 6: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/6.jpg)
6
Compact data structure that supports efficient ray casts
Contours for more accurate surface representation
Normal compression for object-space normals
Efficient ray traversal algorithm
Beam optimization for reducing workload
Post-process filtering for removing blockiness
Summary of Contributions
![Page 7: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/7.jpg)
7
Octree Data Structure
Memory consumption O(m), where m is the number of leaf nodes
One child pointer per voxel
Siblings stored in consecutive addresses
![Page 8: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/8.jpg)
8
Contours
Contours are slabs that modify voxel’s shape
Improve accuracy for representing surfaces
Versatile — collaboration between multiple levels for sharp edges and corners
Simple for rendering
![Page 9: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/9.jpg)
9
Cubes vs Contours
Cubicalvoxels
Contours
Collaborating contours
![Page 10: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/10.jpg)
10
Contours in Action
Note: low-resolution voxelization!
No contours With contours
![Page 11: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/11.jpg)
11
Compression
Pointers as 15-bit offsetsSeparate far pointers when necessary
Colors compressed using DXT1 encoding
Novel DXT-like block-based high-precision object-space normal compression format
![Page 12: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/12.jpg)
12
Voxel Memory Usage
Hierarchy 1 byte
Color 1 byte (DXT1 compression)
Normal 2 bytes (novel compression format)
Contour 1+ bytes (adaptive use)
Total 5+ bytes / voxel
4 GB memory ≈ 640 m2 (6900 sq.ft) with 1 mm2
resolution
! Resolution requirements drop with distance
![Page 13: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/13.jpg)
13
Walk octree nodes along the ray
Simple and efficient due to regular structure
Three basic casesPush: go to child voxel
Advance: go to sibling
Pop: jump to higher level
Many algorithmic tricks
Octree Ray Casting Algorithm
![Page 14: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/14.jpg)
14
Ray Traversal
.
.
.
Stack
0000 0001 0010 0011 0100 0101 0110 0111 1000
0000
0100
0010
0011
0001
1000
0110
0111
0101
![Page 15: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/15.jpg)
Reduce ray cast workload by starting rays closer to geometry
1st pass: Generate low-resolution depth imageGeometry cannot be missed if we stay on coarse enough octree levels!
Determine starting distance for each beam defined by four coarse rays
2nd pass: Cast individual rays
Beam Optimization
![Page 16: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/16.jpg)
16
Beam Optimization, cont’d
No beam optimization With beam optimization
Iteration counts: black=0, white=64
![Page 17: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/17.jpg)
17
Post-Process Filtering
Thanks to contours, theshape is mostly accurate
Shading still gets blockywhen out of resolution
Solution: post-process filtering
Adapts to content, single pass, no seams
![Page 18: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/18.jpg)
18
Filtering Example
No filtering With filtering
Note: low-resolution voxelization!
![Page 19: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/19.jpg)
19
Video
![Page 20: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/20.jpg)
20
Memory Usage
Numbers in MB
with contoursno contours
bytes/voxel including all overheads
![Page 21: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/21.jpg)
21
Ray Cast Performance
Mrays /
second
<
![Page 22: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/22.jpg)
22
Future Challenges
Coexistence of voxel and vector formats for 3D?As in 2D today
How to author voxels in large scale?
Where to fit all the data?
Capturing real-world content?
![Page 23: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/23.jpg)
23
Resources
Technical reportMore analysis, details, results, etc.
Open-source codebasehttp://code.google.com/p/efficient-sparse-voxel-octrees/
Hierarchy construction
Optimized CUDA kernels for ray casting
Benchmarking framework, etc.
An application, not bits and pieces
![Page 24: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/24.jpg)
24
Thank You
![Page 25: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/25.jpg)
25
Backup Slides
![Page 26: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/26.jpg)
26
How to store data on disk?We want to adjust resolution locally
Always use all data that is read
Data stored on disk as slices
How to store data in memory?Rendering efficiency
Compact storage
Data stored in memory as blocks
Storage Considerations
![Page 27: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/27.jpg)
27
Slices vs Blocks
Octree on disk
Octree in memory
![Page 28: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/28.jpg)
28
Sibenik-D
13 levels, 2806 MB
![Page 29: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/29.jpg)
29
Examples: Sibenik-D
![Page 30: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/30.jpg)
30
Examples: City
14 levels, 1386 MB
![Page 31: Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research.](https://reader036.fdocuments.net/reader036/viewer/2022081506/56649d1c5503460f949f19c6/html5/thumbnails/31.jpg)
31
Examples: Hairball
11 levels, 1552 MB