Exploiting Temporal Coherence in Ray Casted Walkthrougs Vlastimil Havran, Jiří Bittner and Hans-Peter Seidel AG4, MPI Informatik, Saarbruecken, Germany.

Slides:



Advertisements
Similar presentations
Exploration of advanced lighting and shading techniques
Advertisements

CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © 1/16 Deferred Lighting Deferred Lighting – 11/18/2014.
Optimized Stencil Shadow Volumes
Zhao Dong 1, Jan Kautz 2, Christian Theobalt 3 Hans-Peter Seidel 1 Interactive Global Illumination Using Implicit Visibility 1 MPI Informatik Germany 2.
Interactive Rendering using the Render Cache Bruce Walter, George Drettakis iMAGIS*-GRAVIR/IMAG-INRIA Steven Parker University of Utah *iMAGIS is a joint.
www-video.eecs.berkeley.edu/research
Render Cache John Tran CS851 - Interactive Ray Tracing February 5, 2003.
Week 10 - Monday.  What did we talk about last time?  Global illumination  Shadows  Projection shadows  Soft shadows.
3D Graphics Rendering and Terrain Modeling
CAP4730: Computational Structures in Computer Graphics Visible Surface Determination.
Part I: Basics of Computer Graphics
Ray Tracing & Radiosity Dr. Amy H. Zhang. Outline  Ray tracing  Radiosity.
The Discrete Ray-casting Algorithm Qiang Xue Jiaoying Shi State Key Lab Of CAD&CG Zhejiang University.
Real-Time Rendering Paper Presentation Imperfect Shadow Maps for Efficient Computation of Indirect Illumination T. Ritschel T. Grosch M. H. Kim H.-P. Seidel.
CS 4731: Computer Graphics Lecture 18: Hidden Surface Removal Emmanuel Agu.
1 Image-Based Visual Hulls Paper by Wojciech Matusik, Chris Buehler, Ramesh Raskar, Steven J. Gortler and Leonard McMillan [
1 View Coherence Acceleration for Ray Traced Animation University of Colorado at Colorado Springs Master’s Thesis Defense by Philip Glen Gage April 19,
View interpolation from a single view 1. Render object 2. Convert Z-buffer to range image 3. Re-render from new viewpoint 4. Use depths to resolve overlaps.
1 CSCE 441: Computer Graphics Hidden Surface Removal (Cont.) Jinxiang Chai.
1 7M836 Animation & Rendering Global illumination, ray tracing Arjan Kok
Vertices and Fragments III Mohan Sridharan Based on slides created by Edward Angel 1 CS4395: Computer Graphics.
Part I: Basics of Computer Graphics Rendering Polygonal Objects (Read Chapter 1 of Advanced Animation and Rendering Techniques) Chapter
View interpolation from a single view 1. Render object 2. Convert Z-buffer to range image 3. Re-render from new viewpoint 4. Use depths to resolve overlaps.
Basic Ray Tracing CMSC 435/634. Visibility Problem Rendering: converting a model to an image Visibility: deciding which objects (or parts) will appear.
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.
Outline Reprojection and data reuse Reprojection and data reuse – Taxonomy Bidirectional reprojection Bidirectional reprojection.
Computer Graphics Shadows
Hidden Surface Removal
1 Occlusion Culling ©Yiorgos Chrysanthou, , Anthony Steed, 2004.
Erdem Alpay Ala Nawaiseh. Why Shadows? Real world has shadows More control of the game’s feel  dramatic effects  spooky effects Without shadows the.
Computer Graphics Mirror and Shadows
Ray Tracing Primer Ref: SIGGRAPH HyperGraphHyperGraph.
COMP 175: Computer Graphics March 24, 2015
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Visibility Queries Using Graphics Hardware Presented by Jinzhu Gao.
Culling Techniques “To cull” means “to select from group” In graphics context: do not process data that will not contribute to the final image The “group”
Computer Graphics An Introduction. What’s this course all about? 06/10/2015 Lecture 1 2 We will cover… Graphics programming and algorithms Graphics data.
Ray Tracing Chapter CAP4730: Computational Structures in Computer Graphics.
Visible-Surface Detection Jehee Lee Seoul National University.
Hidden Surface Removal
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
112/5/ :54 Graphics II Image Based Rendering Session 11.
Basic Ray Tracing CMSC 435/634.
Coherent Hierarchical Culling: Hardware Occlusion Queries Made Useful Jiri Bittner 1, Michael Wimmer 1, Harald Piringer 2, Werner Purgathofer 1 1 Vienna.
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © Visible Surface Determination (VSD) To render or not to render, that is the question… 1 of.
Hank Childs, University of Oregon Volume Rendering, pt 1.
Photo-realistic Rendering and Global Illumination in Computer Graphics Spring 2012 Hybrid Algorithms K. H. Ko School of Mechatronics Gwangju Institute.
INFORMATIK An Efficient Spatio-Temporal Architecture for Animation Rendering Vlastimil Havran, Cyrille Damez, Karol Myszkowski, and Hans-Peter Seidel Max-Planck-Institut.
Ray Tracing Fall, Introduction Simple idea  Forward Mapping  Natural phenomenon infinite number of rays from light source to object to viewer.
Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba.
CSCE 441: Computer Graphics Ray Tracing
Virtual Light Field Group University College London Ray Tracing with the VLF (VLF-RT) Jesper Mortensen
Real-Time Dynamic Shadow Algorithms Evan Closson CSE 528.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
01/28/09Dinesh Manocha, COMP770 Visibility Computations Visible Surface Determination Visibility Culling.
RENDERING : Global Illumination
CHC ++: Coherent Hierarchical Culling Revisited Oliver Mattausch, Jiří Bittner, Michael Wimmer Institute of Computer Graphics and Algorithms Vienna University.
Visible-Surface Detection Methods. To identify those parts of a scene that are visible from a chosen viewing position. Surfaces which are obscured by.
SHADOW CASTER CULLING FOR EFFICIENT SHADOW MAPPING JIŘÍ BITTNER 1 OLIVER MATTAUSCH 2 ARI SILVENNOINEN 3 MICHAEL WIMMER 2 1 CZECH TECHNICAL UNIVERSITY IN.
Electronic Visualization Laboratory University of Illinois at Chicago “Fast And Reliable Space Leaping For Interactive Volume Rendering” by Ming Wan, Aamir.
- Introduction - Graphics Pipeline
Real-Time Soft Shadows with Adaptive Light Source Sampling
3D Graphics Rendering PPT By Ricardo Veguilla.
RAY TRACING.
CS451Real-time Rendering Pipeline
© University of Wisconsin, CS559 Fall 2004
CSCE 441: Computer Graphics Hidden Surface Removal
3D Rendering Pipeline Hidden Surface Removal 3D Primitives
CSCE 441: Computer Graphics Hidden Surface Removal (Cont.)
LCTS: Ray Shooting using Longest Common Traversal Sequences
Presentation transcript:

Exploiting Temporal Coherence in Ray Casted Walkthrougs Vlastimil Havran, Jiří Bittner and Hans-Peter Seidel AG4, MPI Informatik, Saarbruecken, Germany Institute for Computer Graphics, Vienna University of Technology, Austria

Talk Outline Introduction – ray shooting and ray casting – temporal coherence New Algorithm Results and Demo Conclusions and Future Work

A B D C ray Introduction: Ray Shooting Task: Given a ray, find out the first object intersected. Input: a scene and a ray Output: the object C and signed distance

Image pixel rays Ray Casting

Temporal Coherence “Weak Definition”: a similarity between subsequent images in the animation. Many coherence classes exist. – ray coherence, spatial coherence, temporal coherence, traversal coherence, etc. (see Eduard Groeller’s PhD thesis, TU Vienna) Algorithm Categories A – static camera, moving objects B – moving camera, static objects ( walkthrough ) C – moving camera, moving objects Exploiting temporal coherence: speed up computation.

Previous and Related Work Glassner, 88: Spacetime ray tracing for animation. Badt Jr, 88: Two algorithms for taking advantage of temporal coherence in ray tracing. Groeller and Purgathofer, 91: Using Temporal and spatial coherence for acceleration of animation sequences. Sudarsky, 93: Exploiting Temporal Coherence in Animation Rendering. A Survey. Adelson, 95: Generating exact-raytraced animation frames by reprojection. Walter et al., 99: Interactive rendering using Render Cache, EGWR’99. Reinhard et al., 01: Parallel Point Reprojection. Lin. Q et al., 00: Frame Coherent Volume Rendering.

New Algorithm: Overview Main Idea: - Compute a single intersection of the ray with an object, if possible - If not possible -> ordinary ray shooting algorithm First frame: use ordinary ray shooting, remember intersection points in 3D space Next frames: reproject points, check if we can decide on intersection objects Properties: intersection points and surface normals compute correctly (unlike in RenderCache etc.)

New Algorithm: Data Structures POS = array in 2D {point in 3D, object ID, distance} (Points in Object Space) AIP = array in 2D {object, distance, count} (Auxiliary Image Plane) Size of AIP and POS = width * height First frame: use an ordinary ray shooting algorithm, remember the points where ray hit objects (store it to an array POS)

“Next frame(s) – using reprojection”: for each pixel (xx,yy) do – reproject a point (POS(xx,yy)) from previous frame to AIP at pixel (x,y), compute approximate distance tp. – for each reprojected point from POS store distance tp into neighbourhood 3x3 of (x,y) at AIP. Overwrite farther already stored points by closer ones. If the reprojected points are from the same object, increment AIP(X,Y).count, for all 9 pixels X=x-1,x,x+1, Y=y-1,y,y+1. end-for Reprojection phase

“Next frame(s) – ray casting”: for each pixel (x,y) (x=0...width), (y=0...height) do if AIP(x,y).count > THRESHOLD then ray-cast ray(x,y) to AIP(x,y).OBJ end-if if (intersection was not found) then use an ordinary ray shooting algorithm. end-if end-for THRESHOLD = 5, 6, 7, 8, or 9 Ray Casting based on Reprojection

Dilatation of Objects (footprint) Properties: reprojection using 3x3 neighbourhood corresponds to dilatation on the image plane.

Scene Example RED - reprojection successfull GREEN - reprojection fails WHITE - regular resampling

Reprojection Failures Question: When reprojection cannot be used ? Answer: appearance of new objects occluding previously visible objects a) that were outside viewing frustum (view frustum errorr) b) that were occluded (occlusion error) c) that were too small (undersampling error)

View Frustum Error Moving backward. View Frustum Error

Occlusion Error Occluded objects that appear.

Solution to Occlusion Error: Epipolar Geometry

Correct Reprojection Algorithm Check possible occlusion on the fly.

Small Approaching Objects Problem: Let us have a scene with polygon A that in reprojection has big footprint. Some small objects of current subpixel size are placed in front of A and are not currently visible. Question: What happens when we enclose the polygon and use only and only the reprojection ? Answer: Small objects are missing!

Resampling Order – maximize the probability that small object of subpixel size will be detected when moving camera straight forward. Goal: minimize discrepancy of resampling pattern in spatio-temporal domain

Further Improvements Shifting Ray Origin - when reprojection fails, we can move the ray origin along the ray path to avoid traversing empty space. Handling background - sphere enclosing the whole scene, use as any other object (always overwritten). Double Reprojection - edges between connected objects in 3D must be recomputed. Use two AIP arrays, keep two closest objects information. Collision detection - between camera and the environments based on signed distance is quite simple to implement.

Note on Reprojection Efficiency How many arithmetical operations to reproject one point from 3D space to image plane ? 8x (+), 3x (-), 12x (multiplication), 1x (division), 1xSQRT, and 2xIF. Note: Image-based incremental reprojection techniques by McMillan and Mark are not applicable, since we need signed distance!

Walkthrough Demo

Results: HW independent profiling N_IT N_TST_REN ORSA sec 1.17 FPS REPR sec 1.72 IRSA sec 3.22 ORSA sec 1.65 REPR sec 1.89 IRSA sec 4.19 ORSA sec 1.19 REPR sec 1.39 IRSA sec 3.11 Scene A, 85k objects, 825 frames Scene B, 626k objects, 1489 frames Scene C, 112k objects, 1165 frames ORSA: ordinary ray shooting algorithm REPR: ray casting with reprojection IRSA: ideal ray shooting algorithm

Results Summary – tested on three different scenes. – increased speedup (with shading, 512x512): scene A – 1.17 fps to 1.72 fps (85x10^3 objects) scene B – 1.65 fps to 1.89 fps (626x10^3 objects) scene C – 1.19 fps to 1.39 fps (112x10^3 objects) – 11.1% pixels computed by regular resampling – 78.9% pixels computed by reprojection – 10% pixels computed by ordinary ray shooting algorithm Question: is this interesting and valuable speedup ?

Results: Profiling (scene A) RayShooting Function 63.4% 25.5% 18.7% Compute Color 28.7% 41.4% 63.6% 281 sec Extra ray-object inters % Ray Initialization 1.1% 1.7% 2.9% Reprojection phase % ORSA REPR IRSA Profiler timing [sec] Rest of Computation 6.7% 13.5% 15.3% REPR/ORSA: Visibility speedup = 1.81 (45% savings in time) IRSA/ORSA: Visibility speedup = 4.44 (77% savings in time) !!!

Conclusions – conservative ray casting algorithm based on temporal coherence using reprojection aimed at solving hidden surface removal (visibility). (previous algorithms based on reprojection interpolate colour information from 3D space). – possible use in online mode (many reprojection techniques for ray-casting/tracing are offline). – good use of temporal coherence, where temporal coherence exists (80% pixels computed by single ray-object intersection).

Future Work – use in context of global illumination methods. – generalisation to scenes with moving objects. – instead of using objects ID, use a pointer to the cells of spatial subdivision, thus decreasing the dependency on visual complexity. – extension to visibility for direct illumination is possible (point light source exactly and area light sources with good quality).