Efficient Sparse Voxel Octrees

Slides:



Advertisements
Similar presentations
Reconstruction from Voxels (GATE-540)
Advertisements

Restart Trail for Stackless BVH Traversal Samuli Laine NVIDIA Research.
Exploration of bump, parallax, relief and displacement mapping
November 12, 2013Computer Vision Lecture 12: Texture 1Signature Another popular method of representing shape is called the signature. In order to compute.
Direct Volume Rendering. What is volume rendering? Accumulate information along 1 dimension line through volume.
File Systems.
Ray-casting in VolumePro™ 1000
Two Methods for Fast Ray-Cast Ambient Occlusion Samuli Laine and Tero Karras NVIDIA Research.
Unconstrained Isosurface Extraction on Arbitrary Octrees
Lvdi Wang Tsinghua University Microsoft Research Asia Lvdi Wang Tsinghua University Microsoft Research Asia Kun Zhou Zhejiang University Kun Zhou Zhejiang.
3D Skeletons Using Graphics Hardware Jonathan Bilodeau Chris Niski.
1 Computer Graphics Chapter 7 3D Object Modeling.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Chapter 11: File System Implementation
Modelling. Outline  Modelling methods  Editing models – adding detail  Polygonal models  Representing curves  Patched surfaces.
Introduction to Volume Visualization Mengxia Zhu Fall 2007.
Implicit Surfaces Tom Ouyang January 29, Outline Properties of Implicit Surfaces Polygonization Ways of generating implicit surfaces Applications.
Texture Sprites: Texture Elements Splatted on Surfaces Sylvain Lefebvre Samuel Hornus Fabrice Neyret GRAVIR/IMAG-INRIA ACM SIGGRAPH 2005 Symposium on Interactive.
Memory Efficient Acceleration Structures and Techniques for CPU-based Volume Raycasting of Large Data S. Grimm, S. Bruckner, A. Kanitsar and E. Gröller.
Seminar 1 Surface Rendering, Decimation Presented By Sonali Barua Date:10/31/2005.
File System Implementation
Accurate, Dense and Robust Multi-View Stereopsis Yasutaka Furukawa and Jean Ponce Presented by Rahul Garg and Ryan Kaminsky.
Introduction to Computer Graphics
The Story So Far The algorithms presented so far exploit: –Sparse sets of images (some data may not be available) –User help with correspondences (time.
Computer Graphics Mirror and Shadows
Volumetric and Blobby Objects Lecture 8 (Modelling)
In the name of God Computer Graphics Modeling1. Today Introduction Modeling Polygon.
Efficient Volume Visualization of Large Medical Datasets Stefan Bruckner Institute of Computer Graphics and Algorithms Vienna University of Technology.
Computer-Aided Design and Manufacturing Laboratory: 3D Minkowski sum computation Sara McMains UC Berkeley.
Higher Computing Computer Systems S. McCrossan 1 Higher Grade Computing Studies 1. Data Representation Data Representation – Why do we use binary? simplicity,
Scientific Visualization Module 6 Volumetric Algorithms (adapted by S.V. Moore – slides deleted, modified, and added) prof. dr. Alexandru (Alex) Telea.
Geometric Modeling using Polygonal Meshes Lecture 1: Introduction Hamid Laga Office: South.
Graphics Graphics Korea University cgvr.korea.ac.kr Solid Modeling 고려대학교 컴퓨터 그래픽스 연구실.
2D/3D Shape Manipulation, 3D Printing Shape Representations Slides from Olga Sorkine February 20, 2013 CS 6501.
Selective Block Minimization for Faster Convergence of Limited Memory Large-scale Linear Models Kai-Wei Chang and Dan Roth Experiment Settings Block Minimization.
December 4, 2014Computer Vision Lecture 22: Depth 1 Stereo Vision Comparing the similar triangles PMC l and p l LC l, we get: Similarly, for PNC r and.
1 Rendering Geometry with Relief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA.
Chapter 13 B Advanced Implementations of Tables – Balanced BSTs.
Computer Concepts 2014 Chapter 8 Digital Media. 8 Chapter Contents  Section B: Bitmap Graphics  Section C: Vector and 3-D Graphics Chapter 8: Digital.
03/24/03© 2003 University of Wisconsin Last Time Image Based Rendering from Sparse Data.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
1 Real-time visualization of large detailed volumes on GPU Cyril Crassin, Fabrice Neyret, Sylvain Lefebvre INRIA Rhône-Alpes / Grenoble Universities Interactive.
Interactive Rendering With Coherent Ray Tracing Eurogaphics 2001 Wald, Slusallek, Benthin, Wagner Comp 238, UNC-CH, September 10, 2001 Joshua Stough.
Free Space Management.
Graphics An image is made up of tiny dots called pixels (“picture elements”) The resolution determines the.
Solid Modeling. Solid Modeling - Polyhedron A polyhedron is a connected mesh of simple planar polygons that encloses a finite amount of space. A polyhedron.
A Computationally Efficient Framework for Modeling Soft Body Impact Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Hierarchical Penumbra Casting Samuli Laine Timo Aila Helsinki University of Technology Hybrid Graphics, Ltd.
Computer Graphics II University of Illinois at Chicago Volume Rendering Presentation for Computer Graphics II Prof. Andy Johnson By Raj Vikram Singh.
Efficient Streaming of 3D Scenes with Complex Geometry and Complex Lighting Romain Pacanowski and M. Raynaud X. Granier P. Reuter C. Schlick P. Poulin.
04/23/03© 2003 University of Wisconsin Where We’ve Been Photo-realistic rendering –Accurate modeling and rendering of light transport and surface reflectance.
Using wavelets on the XBOX360 For current and future games San Francisco, GDC 2008 Mike Boulton Senior Software Engineer Rare/MGS
Maximizing Parallelism in the Construction of BVHs, Octrees, and k-d Trees Tero Karras NVIDIA Research.
Graphics Interface 2009 The-Kiet Lu Kok-Lim Low Jianmin Zheng 1.
CSE 185 Introduction to Computer Vision Feature Matching.
Houston, Wiebe & Batty. (2004) RLE Sparse Level Sets. RLE Sparse Level Sets Ben Houston Mark Wiebe Christopher Batty Fluids and Level Sets Session.
Author: Haoyu Song, Murali Kodialam, Fang Hao and T.V. Lakshman Publisher/Conf. : IEEE International Conference on Network Protocols (ICNP), 2009 Speaker:
In the name of God Computer Graphics. Introduction Modeling techniques modeling techniques managements Some renderings.
Controlling Memory Consumption of Hierarchical Radiosity with Clustering iMAGIS -GRAVIR/IMAG-INRIA iMAGIS is a joint project of CNRS/INRIA/UJF/INPG Xavier.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
Chapter 11: File System Implementation
IMAGES.
CSc4730/6730 Scientific Visualization
Chapter 11: File System Implementation
Efficient Document Analytics on Compressed Data: Method, Challenges, Algorithms, Insights Feng Zhang †⋄, Jidong Zhai ⋄, Xipeng Shen #, Onur Mutlu ⋆, Wenguang.
Chapter 14: File-System Implementation
Chapter 11: File System Implementation
Conclusion Introduced the Voxel DAG encoding
Wide BVH traversal with a short stack
Presentation transcript:

Efficient Sparse Voxel Octrees Samuli Laine Tero Karras NVIDIA Research

“Bitmaps” vs “Vectors” Bitmap 2D image Vector 2D image

Why Not “Bitmaps” in 3D? ? “Bitmap” 3D object Vector 3D object

Voxels != Volumetric 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

Properties of Sparse Voxel Octrees + Unique geometry and texture everywhere Enables new kind of authoring and capture + Fine-grained resolution control + Compact representation Position information is implicit No surface parameterization needed + Easy to downsample – Deformations are very difficult – Data sets are large – Lack of authoring / editing tools

Summary of Contributions 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

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

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

Collaborating contours Cubes vs Contours Cubical voxels Contours Collaborating contours

Contours in Action No contours With contours Note: low-resolution voxelization!

Compression Pointers as 15-bit offsets Separate far pointers when necessary Colors compressed using DXT1 encoding Novel DXT-like block-based high-precision object-space normal compression format

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

Octree Ray Casting Algorithm Walk octree nodes along the ray Simple and efficient due to regular structure Three basic cases Push: go to child voxel Advance: go to sibling Pop: jump to higher level Many algorithmic tricks

Ray Traversal Stack 0000 0001 0010 0011 0100 0101 0110 0111 1000 . . .

Beam Optimization Reduce ray cast workload by starting rays closer to geometry 1st pass: Generate low-resolution depth image Geometry 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, cont’d No beam optimization With beam optimization Iteration counts: black=0, white=64

Post-Process Filtering Thanks to contours, the shape is mostly accurate Shading still gets blocky when out of resolution Solution: post-process filtering Adapts to content, single pass, no seams

Filtering Example No filtering With filtering Note: low-resolution voxelization!

Video

bytes/voxel including all overheads Memory Usage Numbers in MB no contours with contours bytes/voxel including all overheads

Ray Cast Performance Mrays / second <

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?

Resources Technical report More analysis, details, results, etc. Open-source codebase http://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

Thank You

Backup Slides

Storage Considerations 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

Slices vs Blocks Octree on disk Octree in memory

Sibenik-D 13 levels, 2806 MB

Examples: Sibenik-D

Examples: City 14 levels, 1386 MB

Examples: Hairball 11 levels, 1552 MB