FAST AND SIMPLE AGGLOMERATIVE LBVH CONSTRUCTION

Slides:



Advertisements
Similar presentations
Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
Advertisements

DECISION TREES. Decision trees  One possible representation for hypotheses.
Transform and Conquer Chapter 6. Transform and Conquer Solve problem by transforming into: a more convenient instance of the same problem (instance simplification)
S. Sudarshan Based partly on material from Fawzi Emad & Chau-Wen Tseng
Computer graphics & visualization Collisions. computer graphics & visualization Simulation and Animation – SS07 Jens Krüger – Computer Graphics and Visualization.
Introduction to Trees Chapter 6 Objectives
Advanced Database Discussion B Trees. Motivation for B-Trees So far we have assumed that we can store an entire data structure in main memory What if.
AA Trees another alternative to AVL trees. Balanced Binary Search Trees A Binary Search Tree (BST) of N nodes is balanced if height is in O(log N) A balanced.
Parallel Prefix Computation Advanced Algorithms & Data Structures Lecture Theme 14 Prof. Dr. Th. Ottmann Summer Semester 2006.
Binary Search Trees Briana B. Morrison Adapted from Alan Eugenio.
Department of Computer Science University of Maryland, College Park
Bounding Volume Hierarchy “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presented by Mathieu Brédif.
More sorting algorithms: Heap sort & Radix sort. Heap Data Structure and Heap Sort (Chapter 7.6)
TCSS 343, version 1.1 Algorithms, Design and Analysis Transform and Conquer Algorithms Presorting HeapSort.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 19: Heap Sort.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Chapter 26 Binary Search Trees.
Data Structures Data Structures Topic #8. Today’s Agenda Continue Discussing Table Abstractions But, this time, let’s talk about them in terms of new.
Course Review COMP171 Spring Hashing / Slide 2 Elementary Data Structures * Linked lists n Types: singular, doubly, circular n Operations: insert,
© 2006 Pearson Addison-Wesley. All rights reserved11 A-1 Chapter 11 Trees.
Efficient Parallelization for AMR MHD Multiphysics Calculations Implementation in AstroBEAR.
Bounding Volume Hierarchies and Spatial Partitioning Kenneth E. Hoff III COMP-236 lecture Spring 2000.
Advanced Topics in Algorithms and Data Structures Page 1 An overview of lecture 3 A simple parallel algorithm for computing parallel prefix. A parallel.
Efficient Distance Computation between Non-Convex Objects by Sean Quinlan presented by Teresa Miller CS 326 – Motion Planning Class.
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
Advanced Topics in Algorithms and Data Structures 1 An example.
Data Structures for Computer Graphics Point Based Representations and Data Structures Lectured by Vlastimil Havran.
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
VAST 2011 Sebastian Bremm, Tatiana von Landesberger, Martin Heß, Tobias Schreck, Philipp Weil, and Kay Hamacher Interactive-Graphics Systems TU Darmstadt,
Chapter 19 Implementing Trees and Priority Queues Fundamentals of Java.
Duke CPS Animal guessing and sorting l Inheritance gives animal nodes intelligence ä internal node ä asks a question -- always goes left or right.
Chapter 13 B Advanced Implementations of Tables – Balanced BSTs.
Data Structures CSCI 2720 Spring 2007 Balanced Trees.
Tree Data Structures.
Sorting. Pseudocode of Insertion Sort Insertion Sort To sort array A[0..n-1], sort A[0..n-2] recursively and then insert A[n-1] in its proper place among.
Saarland University, Germany B-KD Trees for Hardware Accelerated Ray Tracing of Dynamic Scenes Sven Woop Gerd Marmitt Philipp Slusallek.
2-3 Tree. Slide 2 Outline  Balanced Search Trees 2-3 Trees Trees.
A Study of Balanced Search Trees: Brainstorming a New Balanced Search Tree Anthony Kim, 2005 Computer Systems Research.
Binary Search Tree vs. Balanced Search Tree. Why care about advanced implementations? Same entries, different insertion sequence: 10,20,30,40,50,60,70,
Trees A tree is a set of nodes which are connected by branches to other nodes in a 'tree-like' structure. There is a special node called the root from.
 Trees Data Structures Trees Data Structures  Trees Trees  Binary Search Trees Binary Search Trees  Binary Tree Implementation Binary Tree Implementation.
Symbol Tables and Search Trees CSE 2320 – Algorithms and Data Structures Vassilis Athitsos University of Texas at Arlington 1.
Fast BVH Construction on GPUs (Eurographics 2009) Park, Soonchan KAIST (Korea Advanced Institute of Science and Technology)
Computer Science 112 Fundamentals of Programming II Introduction to Trees.
Maximizing Parallelism in the Construction of BVHs, Octrees, and k-d Trees Tero Karras NVIDIA Research.
© Copyright 2012 by Pearson Education, Inc. All Rights Reserved. 1 Chapter 19 Binary Search Trees.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2015.
Data Structures: A Pseudocode Approach with C, Second Edition 1 Chapter 7 Objectives Create and implement binary search trees Understand the operation.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2013.
CS6045: Advanced Algorithms Sorting Algorithms. Heap Data Structure A heap (nearly complete binary tree) can be stored as an array A –Root of tree is.
1Computer Sciences. 2 HEAP SORT TUTORIAL 4 Objective O(n lg n) worst case like merge sort. Sorts in place like insertion sort. A heap can be stored as.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
Hello Everyone!!! 1. Tree And Graphs 2 Features of Trees  Tree Nodes Each node have 0 or more children A node have must one parent  Binary tree Tree.
Fabianowski · DinglianaInteractive Global Photon Mapping1 / 22 Interactive Global Photon Mapping Bartosz Fabianowski · John Dingliana Trinity College Dublin.
Trees Chapter 15.
Data Structures Balanced Trees CSCI 2720 Spring 2007.
Chapter 25 Binary Search Trees
Fundamentals of Programming II Introduction to Trees
Distance Computation “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presentation by Julie Letchner.
Binary Search Tree (BST)
Section 8.1 Trees.
Modeliranje kompleksnih modelov
Real-Time Ray Tracing Stefan Popov.
Binary Tree Applications
Binary Tree and General Tree
CS223 Advanced Data Structures and Algorithms
CSCE 441: Computer Graphics Hidden Surface Removal
Alyce Brady CS 470: Data Structures CS 510: Computer Algorithms
Lecture 36 Section 12.2 Mon, Apr 23, 2007
Birch presented by : Bahare hajihashemi Atefeh Rahimi
Modeliranje kompleksnih modelov
Presentation transcript:

FAST AND SIMPLE AGGLOMERATIVE LBVH CONSTRUCTION Ciprian Apetrei Computer Graphics & Visual Computing (CGVC) 2014

Introduction Hierarchies What are they for?

Introduction Hierarchies What are they for? Fast Construction or Better Quality?

Introduction Hierarchies When do we prefer speed? What are they for? Fast Construction or Better Quality? When do we prefer speed? View-frustum culling Collision detection Particle simulation Voxel-based global illumination

Background Previous GPU methods constructed the hierarchy in 4 steps: Morton code calculation Sorting the primitives Hierarchy generation Bottom-ul traversal to fit bounding-boxes

Binary radix tree The binary representations of each key are in lexicographical order. The keys are partitioned according to their first differing bit. Because the keys are ordered, each node covers a linear range of keys. A radix tree with n keys has n-1 internal nodes.

Binary radix tree The binary representations of each key are in lexicographical order. The keys are partitioned according to their first differing bit. Because the keys are ordered, each node covers a linear range of keys. A radix tree with n keys has n-1 internal nodes. The parent of a node splits the hierarchy immediately before the first key of its right child and after the last key of its left child.

Binary radix tree 1 2 3 4 5 6 7 1 1 01 1 1 1 1101 1111

Algorithm Overview Define a numbering scheme for the nodes Establish a connection with the keys Gain some knowledge about the parent

Algorithm Overview Define a numbering scheme for the nodes Establish a connection with the keys Gain some knowledge about the parent Each internal node i splits the hierarchy between keys i and i + 1 i i i+1

Algorithm Overview We can find the parent of a node by knowing the range of keys covered by it. The parent splits the hierarchy either immediately before the first key or after the last key. i i i+1 Last key of the left child First key of the right child

Algorithm Overview To determine the parent we have to analyze the split point of the two nodes. The one that splits the hierarchy between two more similar subtrees is the direct parent. i i i+1 The metric distance between two keys indicates the dissimilarity between the left child and the right child of node i.

Algorithm Overview Algorithm steps: Start from each leaf node.

Algorithm Overview Algorithm steps: Start from each leaf node. Choose the parent between the two internal nodes that split the hierarchy at the ends of the range of keys covered by the current node. Pass the range of keys to the parent.

Algorithm Overview Algorithm steps: Start from each leaf node. Choose the parent between the two internal nodes that split the hierarchy at the ends of the range of keys covered by the current node. Pass the range of keys to the parent. Calculate the bounding box of the node. Advance towards the root. Only process a node if it has both its children set.

Binary Radix Tree Construction 1 2 3 4 5 6 1 2 3 4 5 6 7 1 1 2 2 3 3 4 4 5 5 6 6 7 7 1 1 01 1 1 1 1101 1111 1 2 3 4 5 6 7

Binary Radix Tree Construction 4 4 6 7 2 5 1 2 3 5 6 1 3 1 2 3 4 5 6 7 1 1 2 2 3 3 4 4 5 5 6 6 7 7 1 1 01 1 1 1 1101 1111 1 2 3 4 5 6 7

Binary Radix Tree Construction 1 4 4 3 6 5 7 2 5 1 2 3 5 6 3 1 2 3 4 5 6 7 1 1 2 2 3 3 4 4 5 5 6 6 7 7 1 1 01 1 1 1 1101 1111 1 2 3 4 5 6 7

Binary Radix Tree Construction 3 1 4 4 7 3 6 5 7 2 5 1 2 3 5 6 1 2 3 4 5 6 7 1 1 2 2 3 3 4 4 5 5 6 6 7 7 1 1 01 1 1 1 1101 1111 1 2 3 4 5 6 7

Binary Radix Tree Construction 3 7 1 4 4 7 3 6 5 7 2 5 1 2 3 5 6 1 2 3 4 5 6 7 1 1 2 2 3 3 4 4 5 5 6 6 7 7 1 1 01 1 1 1 1101 1111 1 2 3 4 5 6 7

Pseudocode Pseudocode for choosing the parent: 1: def ChooseParent(Left, Right, currentNode) 2: If ( Left = 0 or ( Right != n and δ(Right) < δ(Left-1) ) ) 3: then 4: parent à Right 5: InternalNodesparent.childA à currentNode 6: RangeOfKeysparent.left à Left 7: else 8: parent à Left - 1 9: InternalNodesparent.childB à currentNode 10: RangeOfKeysparent.right à Right

Outline General aspects about our algorithm: Bottom-up construction Finds the parent at each step O(n) time complexity Simple to implement Can be used for constructing different types of trees Allows an user-defined distance metric for choosing the parent.

Results We used the bottom-up reduction algorithm presented by Karras[2012] for implementation. Compare against Karras binary radix tree construction and bounding-box calculation. Evaluate performance on GeForce GT 745M CUDA, 30-bit Morton Codes Used Thrust library radix sort

Results Scene Sort Previous Bottom-up Radix tree Squared Distance Stanford Bunny (69K tris) 14.9   1.78 4.53 5.56 0.85 4.74 Armadillo (345K tris) 32.1 5.01 10.0 12.03 2.4 11.9 Skeleton Hand (654k tris) 77.8 14.1 28.3 32.5 6.54 31.8 Stanford Dragon (871K tris) 102 19.6 37.1 42.9 8.61 42.2 Happy Buddha (1087K tris) 125 23.2 46.8 53.4 10.7 52.7 Turbine Blade (1765K tris) 210 37.3 73.9 85.9 17.3 85.3

Thank You Questions