Silhouette Partitioning for Height Field Ray Tracing Tomas Sakalauskas Vilnius University

Slides:



Advertisements
Similar presentations
Sven Woop Computer Graphics Lab Saarland University
Advertisements

An Array-Based Algorithm for Simultaneous Multidimensional Aggregates By Yihong Zhao, Prasad M. Desphande and Jeffrey F. Naughton Presented by Kia Hall.
Fast Algorithms For Hierarchical Range Histogram Constructions
Transform and Conquer Chapter 6. Transform and Conquer Solve problem by transforming into: a more convenient instance of the same problem (instance simplification)
Dynamic Planar Convex Hull Operations in Near- Logarithmic Amortized Time TIMOTHY M. CHAN.
I/O-Algorithms Lars Arge Fall 2014 September 25, 2014.
Minimum Energy Mobile Wireless Networks IEEE JSAC 2001/10/18.
Visibility Culling using Hierarchical Occlusion Maps Hansong Zhang, Dinesh Manocha, Tom Hudson, Kenneth E. Hoff III Presented by: Chris Wassenius.
Image Indexing and Retrieval using Moment Invariants Imran Ahmad School of Computer Science University of Windsor – Canada.
Albert Mas Ignacio Martín Gustavo Patow Fast Inverse Reflector Design FIRD Graphics Group of Girona Institut d’Informàtica i Aplicacions Universitat de.
Chapter 5 Raster –based algorithms in CAC. 5.1 area filling algorithm 5.2 distance transformation graph and skeleton graph generation algorithm 5.3 convolution.
Honours Graphics 2008 Session 6. Today’s focus Terrain rendering Heightfield generation Level-of-detail for terrain.
1 Further Terrain Rendering and Level of Detail Lecture 8 - Week 4 Advanced Programming for 3D Applications CE
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Clipping II, Hidden Surfaces.
2-dimensional indexing structure
Content Based Image Clustering and Image Retrieval Using Multiple Instance Learning Using Multiple Instance Learning Xin Chen Advisor: Chengcui Zhang Department.
Cody White Department of Computer Science and Engineering University of Nevada, Reno.
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
AVL Trees / Slide 1 Delete Single rotation Deletion.
ADVISE: Advanced Digital Video Information Segmentation Engine
Introduction General Data Structures - Arrays, Linked Lists - Stacks & Queues - Hash Tables & Binary Search Trees - Graphs Spatial Data Structures -Why.
On the Construction of Energy- Efficient Broadcast Tree with Hitch-hiking in Wireless Networks Source: 2004 International Performance Computing and Communications.
I/O-Algorithms Lars Arge Spring 2009 March 3, 2009.
Hidden Surface Elimination Wen-Chieh (Steve) Lin Institute of Multimedia Engineering I-Chen Lin’ CG Slides, Rich Riesenfeld’s CG Slides, Shirley, Fundamentals.
Introduction General Data Structures - Arrays, Linked Lists - Stacks & Queues - Hash Tables & Binary Search Trees - Graphs Spatial Data Structures -Why.
R-Trees 2-dimensional indexing structure. R-trees 2-dimensional version of the B-tree: B-tree of maximum degree 8; degree between 3 and 8 Internal nodes.
Fundamentals of Multimedia Chapter 7 Lossless Compression Algorithms Ze-Nian Li and Mark S. Drew 건국대학교 인터넷미디어공학부 임 창 훈.
FAST AND SIMPLE AGGLOMERATIVE LBVH CONSTRUCTION
AALG, lecture 11, © Simonas Šaltenis, Range Searching in 2D Main goals of the lecture: to understand and to be able to analyze the kd-trees and.
1 ENTITY test is port a: in bit; end ENTITY test; DRC LVS ERC Circuit Design Functional Design and Logic Design Physical Design Physical Verification and.
Hidden Surface Removal
1 Priority Queues (Heaps)  Sections 6.1 to The Priority Queue ADT  DeleteMin –log N time  Insert –log N time  Other operations –FindMin  Constant.
Chapter 61 Chapter 6 Index Structures for Files. Chapter 62 Indexes Indexes are additional auxiliary access structures with typically provide either faster.
Orthogonal Range Searching I Range Trees. Range Searching S = set of geometric objects Q = query object Report/Count objects in S that intersect Q Query.
Fast Hydraulic Erosion Simulation and Visualization on GPU
Binary Tree. Binary Trees – An Informal Definition A binary tree is a tree in which no node can have more than two children Each node has 0, 1, or 2 children.
Basics Set systems: (X,F) where F is a collection of subsets of X. e.g. (R 2, set of half-planes) µ: a probability measure on X e.g. area/volume is a.
THE STABILITY BOX IN INTERVAL DATA FOR MINIMIZING THE SUM OF WEIGHTED COMPLETION TIMES Yuri N. Sotskov Natalja G. Egorova United Institute of Informatics.
Adaptive Real-Time Rendering of Planetary Terrains WSCG 2010 Raphaël Lerbour Jean-Eudes Marvie Pascal Gautron THOMSON R&D, Rennes, France.
NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen
The X-Tree An Index Structure for High Dimensional Data Stefan Berchtold, Daniel A Keim, Hans Peter Kriegel Institute of Computer Science Munich, Germany.
Texture Mapping Applications 2. Parallax Mapping with Slope  parallax mapping assumes that the surface is a single plane  a better approximation  surface.
VIS Group, University of Stuttgart Tutorial T4: Programmable Graphics Hardware for Interactive Visualization Adaptive Terrain Slicing (Stefan Roettger)
1 Photon-driven Irradiance Cache J. BrouillatP. GautronK. Bouatouch INRIA RennesUniversity of Rennes1.
Saarland University, Germany B-KD Trees for Hardware Accelerated Ray Tracing of Dynamic Scenes Sven Woop Gerd Marmitt Philipp Slusallek.
A Study of Balanced Search Trees: Brainstorming a New Balanced Search Tree Anthony Kim, 2005 Computer Systems Research.
Stefan Popov Space Subdivision for BVHs Stefan Popov, Iliyan Georgiev, Rossen Dimov, and Philipp Slusallek Object Partitioning Considered Harmful: Space.
Representation and modelling 3 – landscape specialisations 4.1 Introduction 4.2 Simple height field landscapes 4.3 Procedural modeling of landscapes- fractals.
Trees 2: Section 4.2 and 4.3 Binary trees. Binary Trees Definition: A binary tree is a rooted tree in which no vertex has more than two children
Spatial Indexing Techniques Introduction to Spatial Computing CSE 5ISC Some slides adapted from Spatial Databases: A Tour by Shashi Shekhar Prentice Hall.
Graphics Interface 2009 The-Kiet Lu Kok-Lim Low Jianmin Zheng 1.
Pipelined and Parallel Computing Partition for 1 Hongtao Du AICIP Research Nov 3, 2005.
1 Trees 2 Binary trees Section Binary Trees Definition: A binary tree is a rooted tree in which no vertex has more than two children –Left and.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2015.
CSE554Contouring IISlide 1 CSE 554 Lecture 3: Contouring II Fall 2011.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2013.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
1Computer Sciences Department. 2 Advanced Design and Analysis Techniques TUTORIAL 7.
An Interval Classifier for Database Mining Applications Rakes Agrawal, Sakti Ghosh, Tomasz Imielinski, Bala Iyer, Arun Swami Proceedings of the 18 th VLDB.
A Spatial Index Structure for High Dimensional Point Data Wei Wang, Jiong Yang, and Richard Muntz Data Mining Lab Department of Computer Science University.
APE'07 IV INTERNATIONAL CONFERENCE ON ADVANCES IN PRODUCTION ENGINEERING June 2007 Warsaw, Poland M. Nowakiewicz, J. Porter-Sobieraj Faculty of.
On the Ability of Graph Coloring Heuristics to Find Substructures in Social Networks David Chalupa By, Tejaswini Nallagatla.
1 Interactive Volume Isosurface Rendering Using BT Volumes John Kloetzli Marc Olano Penny Rheingans UMBC.
Hardware-Accelerated Parallel Non-Photorealistic Volume Rendering Eric B.Lum Kwan-Liu Ma University of California at Davis.
CSE 554 Lecture 5: Contouring (faster)
CSCE 441: Computer Graphics Hidden Surface Removal
3D Rendering Pipeline Hidden Surface Removal 3D Primitives
Parallel Feature Identification and Elimination from a CFD Dataset
Generating Function and Applications
Chapter 11 Trees © 2011 Pearson Addison-Wesley. All rights reserved.
Presentation transcript:

Silhouette Partitioning for Height Field Ray Tracing Tomas Sakalauskas Vilnius University

Outline Introduction Introduction Definitions Definitions –Silhouette –Segment –Tree Preparing Silhouette Partitioning Tree Preparing Silhouette Partitioning Tree Ray Tracing Ray Tracing Results Results

Introduction Design goals –No preprocessing –GPU friendly Minimize dependent texture lookups –Deterministic behavior Optimize worst-case scenario Fixed number of operations per pixel

Demo

Silhouette Silhouette of rendered height field is the boundary line dividing the screen to area covered by height field and area above the height field.

Segment Silhouettes Segment is subset of height field limited on v coordinate Combining two adjacent segments yields a silhouette that is maximum of silhouettes of individual segments

Binary Segment Tree A binary tree for height field is constructed placing whole height field at root Each node is split at midpoint forming child nodes Bottom level contains discrete v values

Constructing SP Tree Requires two algorithms: –Calculate silhouettes for discrete v values –Build bottom-up applying silhouette combination

Finding Silhouette for Single Line // x,v – query coordinates // u,du – recursion search range Intersect(x,v,u,du) if(du==1/U) return InterpolateU(x,v,u,du/2); if(projected_x(map[u][v])<x) return Intersect(x,v,u-du/4,du/2); else return Intersect(x,v,u+du/4,du/2); InterpolateU(x,v,u,du) u0 = u – du/2; //segment start u1 = u + du/2; //segment end x0 = projected_x(map[u0][v]); x1 = projected_x(map[u1][v]); y0 = projected_y(map[u0][v]); y1 = projected_y(map[u1][v]); r = (x-x0)/(x1-x0); // mix ratio u_intersect = u0 + (u1-u0) * r; y_intersect = y0 + (y1-y0) * r;

Higher Levels of SP Tree Algorithm for building every two levels of silhouette partitioning three is as follows: –Take 4 silhouettes from previous level as A,B,C and D (A being closest). –Assign A to closer child node -> R, –Assign C to farther child node -> G, –Assign max(A,B) to parent node -> B, –Assign max(A,B,C,D) as silhouette for parent segment used to calculate higher levels -> A.

Ray Tracing // x,y – query coordinates // l – recursion level // v,dv – recursion search range Trace(x,y,l,v,dv) if(dv==1/V) return InterpolateV(x,y,l,v,dv/2); if(sil_y[l][v][x]<x) return Trace(x,y,l+1,v-dv/4,dv/2); else return Trace(x,y,l+1,v+dv/4,dv/2); InterpolateV(x,y,l,v,dv) v0 = v – dv/2; //segment start v1 = v + dv/2; //segment end y0 = sil_y[l][v0][x]; y1 = sil_y[l][v1][x]; u0 = sil_u[l][v0][x]; u1 = sil_u[l][v1][x]; r = (y-y0)/(y1-y0); //mix ratio u_intersect = u0 + (u1-u0) * r; v_intersect = v0 + (v1-v0) * r;

Results Data sets: –Artificial terrain 2048x2048, generated using Perlin noise –Hawaii Island 2048x2048, imported LandsSat5 and DEM data The tests were conducted on AMD Athlon , 1GB RAM, NVidia GeForce 7900 GTX. DataResolutionMin FpsMax Fps Art2K512x Hawaii2K512x Hawaii2K1024x

Conclusions Stable performance – variation 33-38% Influenced only by clipping in Vertex pipeline Frame rates independent on source data Suitable for real time applications requiring constant frame-rate and fixed precision Possible applications for dynamic height-fields: –Physical simulation visualization (e.g. water, terrain erosion) –Time dependent 2 parameter mathematical functions –Real time visualization of data (e.g. spectral analysis)