Topics. Ray Tracing II. Transforming objects. Intersecting transformed objects

Similar documents
Topics. Ray Tracing II. Intersecting transformed objects. Transforming objects

Ray Tracing Acceleration. CS 4620 Lecture 20

Ray Tracing Acceleration. CS 4620 Lecture 22

Ray Tracing. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner)

Acceleration Data Structures

CPSC / Sonny Chan - University of Calgary. Collision Detection II

improving raytracing speed

Anti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

Anti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics

Accelerated Raytracing

Accelerating Ray Tracing

Spatial Data Structures

Spatial Data Structures

Ray Genealogy. Raytracing: Performance. Bounding Volumes. Bounding Volume. Acceleration Classification. Acceleration Classification

Computer Graphics. - Spatial Index Structures - Philipp Slusallek

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

Ray Tracing Acceleration Data Structures

Ray Tracing with Spatial Hierarchies. Jeff Mahovsky & Brian Wyvill CSC 305

Acceleration Structures. CS 6965 Fall 2011

Spatial Data Structures

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

Spatial Data Structures

Intersection Acceleration

Ray Intersection Acceleration

Spatial Data Structures

Homework 1: Implicit Surfaces, Collision Detection, & Volumetric Data Structures. Loop Subdivision. Loop Subdivision. Questions/Comments?

Accelerating Ray-Tracing

Computer Graphics Ray Casting. Matthias Teschner

MSBVH: An Efficient Acceleration Data Structure for Ray Traced Motion Blur

Ray Intersection Acceleration

Computer Graphics (CS 543) Lecture 13b Ray Tracing (Part 1) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Questions from Last Week? Extra rays needed for these effects. Shadows Motivation

CS 431/636 Advanced Rendering Techniques

CS580: Ray Tracing. Sung-Eui Yoon ( 윤성의 ) Course URL:

Accelerating Geometric Queries. Computer Graphics CMU /15-662, Fall 2016

Today. Acceleration Data Structures for Ray Tracing. Cool results from Assignment 2. Last Week: Questions? Schedule

Logistics. CS 586/480 Computer Graphics II. Questions from Last Week? Slide Credits

Ray Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University

CS 563 Advanced Topics in Computer Graphics Culling and Acceleration Techniques Part 1 by Mark Vessella

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

CPSC GLOBAL ILLUMINATION

Last Time: Acceleration Data Structures for Ray Tracing. Schedule. Today. Shadows & Light Sources. Shadows

Bounding Volume Hierarchies. CS 6965 Fall 2011

INFOGR Computer Graphics. J. Bikker - April-July Lecture 11: Acceleration. Welcome!

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology

Recall: Inside Triangle Test

Using Bounding Volume Hierarchies Efficient Collision Detection for Several Hundreds of Objects

Reading Ray Intersection Chapter 2: Geometry and Transformations Acceleration Covers basic math and PBRT implementation: read on your own

Spatial Data Structures. Steve Rotenberg CSE168: Rendering Algorithms UCSD, Spring 2017

Holger Dammertz August 10, The Edge Volume Heuristic Robust Triangle Subdivision for Improved BVH Performance Holger Dammertz, Alexander Keller

Lecture 2 - Acceleration Structures

Ray-tracing Acceleration. Acceleration Data Structures for Ray Tracing. Shadows. Shadows & Light Sources. Antialiasing Supersampling.

COMP 175: Computer Graphics April 11, 2018

Advanced Ray Tracing

l Without collision detection (CD), it is practically impossible to construct e.g., games, movie production tools (e.g., Avatar)

MODELING AND HIERARCHY

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.

Ray Casting. Outline in Code. Outline. Finding Ray Direction. Heckbert s Business Card Ray Tracer. Foundations of Computer Graphics (Fall 2012)

Parallel Physically Based Path-tracing and Shading Part 3 of 2. CIS565 Fall 2012 University of Pennsylvania by Yining Karl Li

Computer Graphics. - Ray-Tracing II - Hendrik Lensch. Computer Graphics WS07/08 Ray Tracing II

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

CS 465 Program 5: Ray II

Lecture 11. More Ray Casting/Tracing

Recursion and Data Structures in Computer Graphics. Ray Tracing

CS535 Fall Department of Computer Science Purdue University

CS 352: Computer Graphics. Hierarchical Graphics, Modeling, And Animation

CS 4620 Program 4: Ray II

Lecture 11: Ray tracing (cont.)

Two Optimization Methods for Raytracing. W. Sturzlinger and R. F. Tobler

CS 465 Program 4: Modeller

Collision Detection based on Spatial Partitioning

Ray Tracing: Intersection

Ray Casting. To Do. Outline. Outline in Code. Foundations of Computer Graphics (Spring 2012) Heckbert s Business Card Ray Tracer

Collision Detection. These slides are mainly from Ming Lin s course notes at UNC Chapel Hill

Exploiting Local Orientation Similarity for Efficient Ray Traversal of Hair and Fur

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

Motivation. Culling Don t draw what you can t see! What can t we see? Low-level Culling

EDAN30 Photorealistic Computer Graphics. Seminar 2, Bounding Volume Hierarchy. Magnus Andersson, PhD student

INFOMAGR Advanced Graphics. Jacco Bikker - February April Welcome!

The Traditional Graphics Pipeline

Efficiency Issues for Ray Tracing

Lecture 4 - Real-time Ray Tracing

Graphics 2009/2010, period 1. Lecture 8: ray tracing

Lesson 05. Mid Phase. Collision Detection

Bounding Volume Hierarchies

Speeding Up Ray Tracing. Optimisations. Ray Tracing Acceleration

Collision and Proximity Queries

Acceleration Data Structures for Ray Tracing

Lecture 25 of 41. Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees

Effects needed for Realism. Computer Graphics (Fall 2008) Ray Tracing. Ray Tracing: History. Outline

SPATIAL DATA STRUCTURES. Jon McCaffrey CIS 565

Collision Detection II. These slides are mainly from Ming Lin s course notes at UNC Chapel Hill

Ray Casting. COS 426, Spring 2015 Princeton University

Effects needed for Realism. Ray Tracing. Ray Tracing: History. Outline. Foundations of Computer Graphics (Spring 2012)

Specialized Acceleration Structures for Ray-Tracing. Warren Hunt

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline

Simulation in Computer Graphics Space Subdivision. Matthias Teschner

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)

COMPUTER GRAPHICS COURSE. Ray Tracing

Transcription:

Topics Ray Tracing II CS 4620 ations in ray tracing ing objects ation hierarchies Ray tracing acceleration structures Bounding volumes Bounding volume hierarchies Uniform spatial subdivision Adaptive spatial subdivision 1 2 ing objects Intersecting transformed objects In modeling, we ve seen the usefulness of transformations How to do the same in RT? Take spheres as an example: want to support transformed spheres Need a new Surface subclass Option 1: transform sphere into world coordinates Write code to intersect arbitrary ellipsoids Option 2: transform ray into sphere s coordinates Then just use existing sphere intersection routine [Shirley 2000] 3 4

Implementing RT transforms Create wrapper object edsurface Has a transform T and a reference to a surface S To intersect: ray to local coords (by inverse of T) Call surface.intersect hit data back to global coords (by T) Intersection point Surface normal Any other relevant data (maybe none) Groups, transforms, hierarchies Often it s useful to transform several objects at once Add SurfaceGroup as a subclass of Surface Has a list of surfaces Returns closest intersection Opportunity to move ray intersection code here to avoid duplication With edsurface and SurfaceGroup you can put transforms below transforms Voilà! A transformation hierarchy. 5 6 A transformation hierarchy Surface: body Surface: brake disc Group: car Group: wheel assy. Group: wheel Surface: tire Surface: hubcap Common optimization: merge transforms with groups This is how we did it in the modeler assignment Instancing Anything worth doing is worth doing n times If we can transform objects, why not transform them several ways? Many models have repeated subassemblies Mechanical parts (wheels of car) Multiple objects (chairs in classroom, ) Nothing stops you from creating two edsurface objects that reference the same Surface Allowing this makes the transformation tree into a DAG (directed acyclic graph) Mostly this is transparent to the renderer 7 8

Hierarchy with instancing Hierarchies and performance Surface: body Group: car Group: wheel ing rays is expensive minimize tree depth: flatten on input push all transformations toward leaves triangle meshes may do best to stay as group transform ray once, intersect with mesh internal group nodes still required for instancing can t push two transforms down to same child! 9 10 Ray tracing acceleration Bounding volumes Ray tracing is slow. This is bad! Ray tracers spend most of their time in ray-surface intersection methods Ways to improve speed Make intersection methods more efficient Yes, good idea. But only gets you so far Call intersection methods fewer times Intersecting every ray with every object is wasteful Basic strategy: efficiently find big chunks of geometry that definitely do not intersect a ray Quick way to avoid intersections: bound object with a simple volume Object is fully contained in the volume If it doesn t hit the volume, it doesn t hit the object So test bvol first, then test object if it hits [Glassner 89, Fig 4.5] 11 12

Bounding volumes Cost: more for hits and near misses, less for far misses Worth doing? It depends: Cost of bvol intersection test should be small Therefore use simple shapes (spheres, boxes, ) Cost of object intersect test should be large Bvols most useful for complex objects Tightness of fit should be good Loose fit leads to extra object intersections Tradeoff between tightness and bvol intersection cost Implementing bounding volume Just add new Surface subclass, BoundedSurface Contains a bounding volume and a reference to a surface Intersection method: Intersect with bvol, return false for miss Return surface.intersect(ray) Like transformations, common to merge with group This change is transparent to the renderer (only it might run faster) Note that all Surfaces will need to be able to supply bounding volumes for themselves 13 14 If it s worth doing, it s worth doing hierarchically! Bvols around objects may help Bvols around groups of objects will help Bvols around parts of complex objects will help Leads to the idea of using bounding volumes all the way from the whole scene down to groups of a few objects Implementing a bvol hierarchy A BoundedSurface can contain a list of Surfaces Some of those Surfaces might be more BoundedSurfaces Voilà! A bounding volume hierarchy And it s all still transparent to the renderer 15 16

BVH construction example BVH ray-tracing example 17 Choice of bounding volumes Axis aligned bounding boxes Spheres -- easy to intersect, not always so tight Axis-aligned bounding boxes (AABBs) -- easy to intersect, often tighter (esp. for axis-aligned models) Oriented bounding boxes (OBBs) -- easy to intersect (but cost of transformation), tighter for arbitrary objects Computing the bvols Probably easiest to implement Computing for primitives For primitives -- generally pretty easy For groups -- not so easy for OBBs (to do well) For transformed surfaces -- not so easy for spheres 19 18 Cube: duh! Sphere, cylinder, etc.: pretty obvious Groups or meshes: min/max of component parts AABBs for transformed surface Easy to do conservatively: bbox of the 8 corners of the bbox of the untransformed surface How to intersect them Treat them as an intersection of slabs (see Shirley) 20

Intersecting boxes Building a hierarchy Usually do it top-down Make bbox for whole scene, then split into (maybe 2) parts Recurse on parts Stop when there are just a few objects in your box 21 22 Building a hierarchy Regular space subdivision How to partition? Ideal: clusters Practical: partition along axis Median partition More expensive More balanced tree Center partition Less expensive, simpler Unbalanced tree, but that may actually be better An entirely different approach: uniform grid of cells 23 24

Regular grid example Traversing a regular grid Grid divides space, not objects 25 26 Non-regular space subdivision k-d Tree subdivides space, like grid adaptive, like BVH Implementing acceleration structures Conceptually simple to build acceleration structure into scene structure Better engineering decision to separate them But not always!! 27 28