Supporting Animation and Interaction Ingo Wald SCI Institute, University of Utah

Slides:



Advertisements
Similar presentations
The OpenRT Application Programming Interface - Towards a Common API for Interactive Ray Tracing – OpenSG 2003 Darmstadt, Germany Andreas Dietrich Ingo.
Advertisements

VRML Scene Graphs on an Interactive Ray Tracing Engine IEEE Virtual Reality 2004 Conference Chicago, IL USA March 30 th, 2004 Andreas Dietrich Ingo Wald.
Sven Woop Computer Graphics Lab Saarland University
Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
Zhao Dong 1, Jan Kautz 2, Christian Theobalt 3 Hans-Peter Seidel 1 Interactive Global Illumination Using Implicit Visibility 1 MPI Informatik Germany 2.
Matt Klein. Decorator Pattern  Intent  Attach Additional responsibilities to an object by dynamically. Decorators provide a flexible alternative to.
Photon Mapping. How did I use it 10 years ago? Why might you want to use it tomorrow?
Two-Level Grids for Ray Tracing on GPUs
Character Setup Character Setup is the process of creating handles and controls for anything that a character animator will need to adjust in order to.
UBIGIous – A Ubiquitous, Mixed-Reality Geographic Information System Daniel Porta Jan Conrad Sindhura Modupalli Kaumudi Yerneni.
Experiences with Streaming Construction of SAH KD Trees Stefan Popov, Johannes Günther, Hans-Peter Seidel, Philipp Slusallek.
Afrigraph 2004 Interactive Ray-Tracing of Free-Form Surfaces Carsten Benthin Ingo Wald Philipp Slusallek Computer Graphics Lab Saarland University, Germany.
1Notes  Assignment 1 is out, due October 12  Inverse Kinematics  Evaluating Catmull-Rom splines for motion curves  Wednesday: may be late (will get.
SURGICAL SIMULATIONS: IT’S ALL IN A GAME ! Gaming techniques for medical applications. V. Kotamraju, S. Payandeh, J. Dill Experimental Robotics Laboratory,
Reza Gorgan Mohammadi AmirKabir University of Technology, Department of Computer Engineering & Information Technology Advanced design.
Ray Tracing Acceleration Structures Solomon Boulos 4/16/2004.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
18.1 Si31_2001 SI31 Advanced Computer Graphics AGR Lecture 18 Image-based Rendering Light Maps What We Did Not Cover Learning More...
Computer Graphics (Fall 2005) COMS 4160, Lecture 21: Ray Tracing
1 View Coherence Acceleration for Ray Traced Animation University of Colorado at Colorado Springs Master’s Thesis Defense by Philip Glen Gage April 19,
Specialized Acceleration Structures for Ray-Tracing Warren Hunt Bill Mark.
Ray Tracing Dynamic Scenes using Selective Restructuring Sung-eui Yoon Sean Curtis Dinesh Manocha Univ. of North Carolina at Chapel Hill Lawrence Livermore.
Real-Time Ray Tracing 3D Modeling of the Future Marissa Hollingsworth Spring 2009.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology 3D Engines and Scene Graphs Spring 2012.
Week 1 - Friday.  What did we talk about last time?  C#  SharpDX.
Computer Graphics 2 Lecture x: Acceleration Techniques for Ray-Tracing Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Interactive Ray Tracing: From bad joke to old news David Luebke University of Virginia.
Ray Tracing and Photon Mapping on GPUs Tim PurcellStanford / NVIDIA.
Realtime Caustics using Distributed Photon Mapping Johannes Günther Ingo Wald * Philipp Slusallek Computer Graphics Group Saarland University ( * now at.
Conducting Situated Learning in a Collaborative Virtual Environment Yongwu Miao Niels Pinkwart Ulrich Hoppe.
Invitation to Computer Science 5th Edition
1 Speeding Up Ray Tracing Images from Virtual Light Field Project ©Slides Anthony Steed 1999 & Mel Slater 2004.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
Introduction to Networked Graphics Part 4 of 5: Bandwidth Management & Scalability.
Accelerating Ray Tracing using Constrained Tetrahedralizations Ares Lagae & Philip Dutré 19 th Eurographics Symposium on Rendering EGSR 2008Wednesday,
Stefan PopovHigh Performance GPU Ray Tracing Real-time Ray Tracing on GPU with BVH-based Packet Traversal Stefan Popov, Johannes Günther, Hans- Peter Seidel,
Gregory Fotiades.  Global illumination techniques are highly desirable for realistic interaction due to their high level of accuracy and photorealism.
3D Animation 5. Character Animation Dr. Ashraf Y. Maghari Information Technology Islamic University of Gaza Ref. Book: The Art of Maya.
On a Few Ray Tracing like Algorithms and Structures. -Ravi Prakash Kammaje -Swansea University.
Interactive Visualization of Exceptionally Complex Industrial CAD Datasets Andreas Dietrich Ingo Wald Philipp Slusallek Computer Graphics Group Saarland.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns IX Interpreter, Mediator, Template Method recap.
Collaborative Visual Computing Lab Department of Computer Science University of Cape Town Graphics Topics in VR By Shaun Nirenstein.
Motion Planning in Games Mark Overmars Utrecht University.
Real-time Graphics for VR Chapter 23. What is it about? In this part of the course we will look at how to render images given the constrains of VR: –we.
Saarland University, Germany B-KD Trees for Hardware Accelerated Ray Tracing of Dynamic Scenes Sven Woop Gerd Marmitt Philipp Slusallek.
Interactive Rendering With Coherent Ray Tracing Eurogaphics 2001 Wald, Slusallek, Benthin, Wagner Comp 238, UNC-CH, September 10, 2001 Joshua Stough.
Fast BVH Construction on GPUs (Eurographics 2009) Park, Soonchan KAIST (Korea Advanced Institute of Science and Technology)
Using Interactive Ray Tracing for Interactive Global Illumination Computer Graphics Lab Saarland University, Germany
Games Development Game Architecture: Entities CO2301 Games Development 1 Week 22.
Hierarchical Penumbra Casting Samuli Laine Timo Aila Helsinki University of Technology Hybrid Graphics, Ltd.
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
Dynamic Scenes Paul Arthur Navrátil ParallelismJustIsn’tEnough.
Ray Tracing Animated Scenes using Motion Decomposition Johannes Günther, Heiko Friedrich, Ingo Wald, Hans-Peter Seidel, and Philipp Slusallek.
Interactive Ray Tracing of Dynamic Scenes Tomáš DAVIDOVIČ Czech Technical University.
Ray Tracing Fall, Introduction Simple idea  Forward Mapping  Natural phenomenon infinite number of rays from light source to object to viewer.
State of the Art in Realtime Ray Tracing & Interactive Global Illumination Ingo Wald Carsten Benthin Joerg Schmittler Philipp Slusallek Saarland University.
Discontinuous Displacement Mapping for Volume Graphics, Volume Graphics 2006, July 30, Boston, MA Discontinuous Displacement Mapping for Volume Graphics.
Maths & Technologies for Games Graphics Optimisation - Batching CO3303 Week 5.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
Virtual Light Field Group University College London Ray Tracing with the VLF (VLF-RT) Jesper Mortensen
Engine Basics: Optimizing Geometry CS 446: Real-Time Rendering & Game Technology David Luebke University of Virginia.
CHC ++: Coherent Hierarchical Culling Revisited Oliver Mattausch, Jiří Bittner, Michael Wimmer Institute of Computer Graphics and Algorithms Vienna University.
UNC Chapel Hill David A. O’Brien Automatic Simplification of Particle System Dynamics David O’Brien Susan Fisher Ming C. Lin Department of Computer Science.
1 The Method of Precomputing Triangle Clusters for Quick BVH Builder and Accelerated Ray Tracing Kirill Garanzha Department of Software for Computers Bauman.
Design Patterns: MORE Examples
Week 2 - Monday CS361.
Real-Time Ray Tracing Stefan Popov.
3D Object Representations
Interactive Computer Graphics
Games Development Game Architecture: Entities
Presentation transcript:

Supporting Animation and Interaction Ingo Wald SCI Institute, University of Utah

Supporting Animation and Interaction Motivation Types of Animations Alternative Approaches Animated Scenes in OpenRT Practical Examples

The Need for Dynamic Scenes Part I: “How to achieve maximum performance ?” – Fast ray-surface intersection – CPU-Friendly implementation – AND: High-quality acceleration data structures (ADS). Problem: Building ADS takes time – Up to minutes for “realistically” complex models (1MTri) For Walkthrough applications: Not a problem – Build once (preprocess), reuse in following frames BUT: Can’t change geometry

The Need for Dynamic Scenes Depend on Precomputed, high-quality ADS  Can’t change geometry Probably (one of) the most important problems in ray tracing today !

The Need for Dynamic Scenes Static Geometry: Still many practical applications – Architecture: Global illumination walkthroughs – Engineering: Visualizing massively complex models (usually not animated, anyway) – Industry: Interactive design reviews (only “inspect”/review existing static model) Simulation of reflection/refraction in glass/headlights/… Visualizing complete cars/planes/… with HQ shading

The Need for Dynamic Scenes Static Geometry: Already many practical applications – Design reviews, massive engineering models, architecture, lighting/reflection simulation … But: Not applicable to today’s typical “low- end”/”mainstream” use of graphics – Games … (the main driving force of 3D graphics!) – Can’t do even simple editing (switching variants, moving parts,…) Future scenario: RTRT as mainstream 3D graphics ? – MUST offer ability to interact with model If only for games …

Kinds of Dynamic Scenes Need to differentiate between different kinds of “dynamics” Hierarchical Animation – Typical application: Scene graphs (VRML) Deformable Objects – “Relatively” small, but non-hierarchical deformations of a mesh – Typical application: Skinning – “Mostly” hierarchical: Skeleton + skinning Unstructured Motion – Typical application: Brownian motion, explosions, … Timestepped Animation – One out of k discrete poses per frame (game characters) …

Ray Tracing Dynamic Scenes First approaches Alternative 1: Handle dynamic objects separately – Already used in 98/99 [Parker] Keep dynamic objects out of ADS, intersect separately – Only works for very few ‘dynamic’ objects Alternative 2: Rebuild ADS every frame – (Super-)linear in #objects – Only applicable to tiny scenes – Note: This might change for future HW…

Ray Tracing Dynamic Scenes First approaches Alternative 3: Progressively build ADS – Motivation: Often only parts of scene visible Might only need small part of ADS – Build hierarchical ADS lazily and progressively E.g., split node only once ray reaches that node – Problem: Even initial split (for kd-tree) already O(N)  Too costly already – Not really used in practice…

Ray Tracing Dynamic Scenes First approaches Alternative 4: Update ADS for dynamic objects – Problem 1: How to avoid degradation of ADS ? – Problem 2: How to efficiently update ADS ? – Kd-trees: Quite problematic Original cost estimates (SAH) wrong/useless after geom. changes Updating often not (easily) possible – E.g., can’t move root split: would need to rebuild all sibling nodes Similar for other hierarchical ADS – But: works reasonably well for grids [Reinhard01]

Reinhard’s Approach: Dynamically update virtual Grid Basic Idea: Use (regular) grid, update dynamically Efficient updates: Maintain different grid resolutions – Large primitives on coarse levels, small primitives on fine levels Each prim. Covers few cells  remove/add/move primitive in ~O(1) Avoiding degeneracy: Grid “wraps around”: – Objects moving out of right side re-enter on left side No rebuild required even if scene’s bounds changes – Same for rays (slightly different traversal) – Still: Rebuild from scratch every few frames...

Reinhard’s Approach: Dynamically update virtual Grid Results: Works well for many scenes But: Only works for grid-like ADS – Traversal performance relatively low… – Problematic for large scenes with varying primitive distribution – Does not easily generalize to more efficient ADS Plus: quite problematic for hierarchical animation – E.g., slight rotation of scene costs O(N) update…

Dynamic Scenes in OpenRT Main observations: Prefer kd-trees for high performance and complex scenes – Problematic for update/rebuild operations – But: interactive rebuild possible for few dynamic “objects” Update/rebuild approaches problematic for hierarchical animation (small change triggers complete rebuild) Most practical scenes use (mostly) hierarchical animation Scene changes often localized – In particular: Unstructured motion often very localized (e.g., explosion in complete game level...

Dynamic Scenes in OpenRT Hierarchical Scene Organization OpenRT approach [PGV 2003]: Application groups geometry into ‘objects’ – Wrt same properties concerning dynamic updates – Similar to building display lists – Each object has its own acceleration structure Objects can be re-used in subsequent frames – No rebuild necessary Application can redefine object(s) any time

Dynamic Scenes in OpenRT Hierarchical Scene Organization Objects are ‘instantiated’ into the scene Each instance has a transformation attached to it – Hierarchical Animation: Inversely transform rays instead of objects  Can keep object itself “static”  Only need to update instance transformation Instances are organized in additional hierarchy level – With its own acceleration structure (kd-tree of instances) – Only this has to be rebuilt every frame Rebuild complete from scratch

Dynamic Scenes in OpenRT Hierarchical Scene Organization Special Case: Timestepped Animation Can be realized quite simply – Build one object for every pose All kd-trees built in advance – Hide all but current pose’s instance Simply switch instance per frame, no rebuild at all. – Sufficient for many game-like applications Extension to (simple) skinning possible – No details here (not yet published)

Dynamic Scenes in OpenRT Unstructured Motion Support for unstructured motion – Build special object for dynamic triangles – Rebuild (only) this object ever frame Rebuild tolerable for few (~1k-10k) objects Use cheap, low-quality kd-trees for these objects – Trade object’s traversal performance for construction time Can have multiple “dynamic object”s Problem: Parallelization framework – Need to send each dynamic triangle to each client Huge bandwidth required for many clients and dyn. triangles

Dynamic Scenes in OpenRT Summary Two-level object/instance approach – Transform rays, not objects, plus top-level kd-tree Status – “Limited” support for unstructured motion – Perfect for hierarchical animation (up to few 1000 instances, #tris less important) – Timestepped animation works as well

Results: Hierarchical Animation Hierarchical Animation: Perfect… – Rebuild for <10,000 instances: Not a problem at all… – Standard OpenRT feature: Used in almost any application – Example: BART Benchmark (images from 2002…)

Results: Multiple Instantiation Side Effect: Multiple Instantiation is for free ! – Different instances simply share same geometry – Example: “Forest” (150,000 instances, ~1.5 billion triangles) [Dietrich, EGWNP05]

Results: Unstructured Motion Unstructured Motion: Possible, but costly – Rebuild for <10,000 instances: Tolerable, but costly – Main bottleneck: Network bandwidth… Need to transfer each updated triangle to each client in turn Not worked on since 02/03: Few practical applications…

Results: Practical Applications Totally sufficient for typical VR applications (simple editing and variant switching) Note: Cost only depends on #instance, not on #triangles – UNC Powerplant (12.5 MTri), single PC

Game Example 1: Quake3/RT (Joerg Schmittler, Daniel Pohl) Quake3 bots/scenes, self-written game engine Fully ray traced (using OpenRT API) Dynamic bots, monsters: timestepped animation Plus: Lots of small moving objects, missiles, cartridges,…

Game Example 2: “Oasen” (Tim Dahmen et al.) Completely ray traced “magic carpet” clone Special emphasis on image quality: – Many lights, underwater caustics, atmospheric effects, water, … – Highly complex geometry (huge terrain, “real” trees, …) With multiple instantiation – Animated carpet: timestepped animation plus hierarchical transf.

Handling Dynamic Scenes Summary and Conclusions What to take home from this talk: OpenRT’s two-level approach can already do a lot – … and it’s easy to implement as well…  Try it ! Research on dynamic RT important for tomorrow’s graphics – Still too few attention to that problem…