Introduction to Realtime Ray Tracing Course 41 Philipp Slusallek Peter Shirley Bill Mark Gordon Stoll Ingo Wald.

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

Exploration of advanced lighting and shading techniques
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.
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Ray tracing. New Concepts The recursive ray tracing algorithm Generating eye rays Non Real-time rendering.
Graphics Pipeline.
Interactive Rendering using the Render Cache Bruce Walter, George Drettakis iMAGIS*-GRAVIR/IMAG-INRIA Steven Parker University of Utah *iMAGIS is a joint.
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,
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
Computer Graphics (Fall 2005) COMS 4160, Lecture 21: Ray Tracing
CSCE 641: Computer Graphics Ray Tracing Jinxiang Chai.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
Final Gathering on GPU Toshiya Hachisuka University of Tokyo Introduction Producing global illumination image without any noise.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Approximate Soft Shadows on Arbitrary Surfaces using Penumbra Wedges Tomas Akenine-Möller Ulf Assarsson Department of Computer Engineering, Chalmers University.
Real-Time Ray Tracing 3D Modeling of the Future Marissa Hollingsworth Spring 2009.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
Ray Tracing Primer Ref: SIGGRAPH HyperGraphHyperGraph.
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.
Computer graphics & visualization REYES Render Everything Your Eyes Ever Saw.
Realtime Caustics using Distributed Photon Mapping Johannes Günther Ingo Wald * Philipp Slusallek Computer Graphics Group Saarland University ( * now at.
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.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
-Global Illumination Techniques
Cg Programming Mapping Computational Concepts to GPUs.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
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,
Introduction to Realtime Ray Tracing Course 41 Philipp Slusallek Peter Shirley Bill Mark Gordon Stoll Ingo Wald.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Global Illumination with a Virtual Light Field Mel Slater Jesper Mortensen Pankaj Khanna Insu Yu Dept of Computer Science University College London
Interactive Visualization of Exceptionally Complex Industrial CAD Datasets Andreas Dietrich Ingo Wald Philipp Slusallek Computer Graphics Group Saarland.
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)
Interactive Cinematic Shading Where are we? Fabio Pellacini Dartmouth College.
Supporting Animation and Interaction Ingo Wald SCI Institute, University of Utah
Using Interactive Ray Tracing for Interactive Global Illumination Computer Graphics Lab Saarland University, Germany
Department of Computer Science 1 Beyond CUDA/GPUs and Future Graphics Architectures Karu Sankaralingam University of Wisconsin-Madison Adapted from “Toward.
1 Ray Tracing with Existing Graphics Systems Jeremy Sugerman, FLASHG 31 January 2006.
David Luebke11/26/2015 CS 551 / 645: Introductory Computer Graphics David Luebke
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Subject Name: Computer Graphics Subject Code: Textbook: “Computer Graphics”, C Version By Hearn and Baker Credits: 6 1.
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
Ray Tracing Fall, Introduction Simple idea  Forward Mapping  Natural phenomenon infinite number of rays from light source to object to viewer.
Bounding Volume Hierarchy. The space within the scene is divided into a grid. When a ray travels through a scene, it only passes a few boxes within the.
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
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
Real-Time Dynamic Shadow Algorithms Evan Closson CSE 528.
Ray Tracing by GPU Ming Ouhyoung. Outline Introduction Graphics Hardware Streaming Ray Tracing Discussion.
1cs426-winter-2008 Notes. 2 Atop operation  Image 1 “atop” image 2  Assume independence of sub-pixel structure So for each final pixel, a fraction alpha.
Veysi ISLER, Department of Computer Engineering, Middle East Technical University, Ankara, TURKEY Spring
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Photorealistic Rendering vs. Interactive 3D Graphics
ICG Syllabus 1. Introduction 2. Viewing in 3D and Graphics Programming
Graphics Processing Unit
Deferred Lighting.
Ray Tracing Dr. Scott Schaefer.
Real-Time Ray Tracing Stefan Popov.
The Graphics Rendering Pipeline
Ray Tracing Dinesh Manocha COMP 575/770.
CSCE 441: Computer Graphics Ray Tracing
Ray Tracing on Programmable Graphics Hardware
Presentation transcript:

Introduction to Realtime Ray Tracing Course 41 Philipp Slusallek Peter Shirley Bill Mark Gordon Stoll Ingo Wald

8:30-10:15: Fundamentals 8:30-9:15 Introduction – Course overview (Shirley) – Why ray tracing and why now (Slusallek) 9:15-10:15 Basic algorithms – (Wald, Stoll) 10:15-10:30 Break

10:30-12:15 Achieving Real-time 10:30-11:15 Optimization Techniques (Stoll) 11:15-11:50 Parallization – Clusters (Slusallek) – Shared-memory multiprocessors (Shirley) 11:50-12:15 Dynamic Scenes (Wald) 12:15-1:30 Lunch

1:30-3:15 Advanced Features 1:30-2:00 Volume Rendering (Shirley) 2:00-2:30 Massive Models (Slusallek) 2:30-3:00 Hardware Support: – GPU ray tracing demo (Foley) – Ray processing unit (RPU) (Slusallek) – Future challenges (Mark) 3:15-3:30 Break

3:30-5:15 OpenRT System 3:30-4:50 Programming with OpenRT (Wald) 4:50-5:15 Using OpenRT (Slusallek) 5:15-5:30 Final Discussion

Further Info Link to course web site – OpenRT non-commercial SW distribution –

Siggraph 2005: More Realtime Ray Tracing Introduction to Realtime Ray Tracing – Full day course: Wednesday, Petree Hall D Booth 1155: Mercury Computer Systems – Realtime ray tracing product on PC clusters – Realtime ray tracing on the Cell Processor – Realtime previewing in Cinema-4D Booth 1511: SGI – Ray tracing massive model : Boeing 777

Introduction to Realtime Ray Tracing Introduction to Ray Tracing – What is Ray Tracing? – Comparison with Rasterization – Why Now? / Timeline – Reasons and Examples for Using Ray Tracing – Open Issues

Rendering in Computer Graphics Introduction to Realtime Ray Tracing Rasterization: Projection geometry forward Ray Tracing: Project image samples backwards

Current Technology: Rasterization Rasterization-Pipeline – Highly successful technology – From graphics supercomputers to an add-on in a PC chip-set Advantages – Simple and proven algorithm – Getting faster quickly – Trend towards full programmability Application Vertex Shader Rasterization Fragment Shader Fragment Tests Framebuffer

Current Technology: Rasterization Primitive operation of all interactive graphics !! – Scan converts a single triangle at a time Sequentially processes every triangle individually – Cannot access more than one triangle at a time  But most effects need access to the entire scene: Shadows, reflection, global illumination

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

What is Ray Tracing? Traversal Ray-Generation Ray-Traversal Intersection Shading Framebuffer

What is Ray Tracing? Traversal Ray-Generation Ray-Traversal Intersection Shading Framebuffer

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

Ray-Generation Ray-Traversal Intersection Shading Framebuffer What is Ray Tracing?

- Global effects - Parallel (as nature) - Fully automatic - Demand driven - Per pixel operations - Highly efficient  Fundamental Technology for Next Generation Graphics

Comparison Rasterization vs. Ray Tracing Definition: Rasterization Given a set of rays and a primitive, efficiently compute the subset of rays hitting the primitive Uses 2D grid as an index structure for efficiency Definition: Ray Tracing Given a ray and set of primitives, efficiently compute the subset of primitives hit by the ray Uses a (hierarchical) 3D spatial index for efficiency

Comparison Rasterization vs. Ray Tracing 3D object space index (e.g. kd-tree) – Limits scene dynamics (may require index rebuilt) – Increases scalability with scene size  O(log n) – Efficiently supports small & arbitrary sets of rays Few rays reflecting off of surface  ray tracing problem 2D image space grid – Rays limited to regular sampling & planar perspective

Comparison Rasterization vs. Ray Tracing Convergence: 2D grid plus object space index – Brings rasterization closer to ray tracing Performs front to back traversal with groups of rays At leafs parallel intersection computation using rasterization – Introduces same limitations (e.g. scene dynamics) But coarser index may be OK (traversal vs. intersection cost) – Computation split into HW and application SW  More complex, latency, communication bandwidth, …

Comparison Rasterization vs. Ray Tracing Per Pixel Efficiency – Surface shaders principally have same complexity – Rasterization: Incremental computation between pixels (triangle setup) Overhead due to overdraw (Z-buffer) – Ray tracing: No incremental computation (less important with complexity) Caching works well even for finely tessellated surfaces May shoot arbitrary rays to query about global environment

Comparison Rasterization vs. Ray Tracing Benefits of On-Demand Computation – Only required computations  efficiency E.g.: must not compute entire reflection map – No re-sampling of pre-computed data  accuracy – Exact computation  reliability – Fully performed in renderer (not app.)  simplicity – Data loaded only if needed  resources

Comparison Rasterization vs. Ray Tracing Hardware Support – Rasterization has mature & quickly evolving HW High-performance, highly parallel, stream computing engine – Ray tracing mostly implemented in SW Requires flexible control flow, recursion & stacks, flexible i/o, … Requires virtual memory and demand loading due scene size Requires loops in the HW pipeline (e.g. generating new rays) Depend heavily on caching and suitable working sets  Not well supported by current HW

Requirements for Realtime Ray Tracing Requirements – High floating point performance Traversal & intersection computations – Flexible control flow, multiple threads Recursion, efficient traversal of kd-tree, … – Exploitation of coherence Caching, packets, efficient traversal, … – High bandwidth Between traversal, intersection, and shading; to caches

Why Now? Timeline Early 1980s: – FLOPS in HW very expensive (8087 used ) – Very limited HW resources (“3M“) – Small 3D scenes with large triangles Consequences – Raster-pipeline model for parallelism & throughput – Mainly rasterization, limited FLOPS – RT required many FLOPS, bandwidth, no pipeline

Why Now? Timeline Mid 1990s: – Nvidia & ATI create integrated 3D graphics chips – Mainly rasterization, limited FLOPS Ray Tracing – SW research had mostly stopped, lack of progress – HW research limited by HW resources Mostly focusing on intersection computation only

Why Now? Timeline : – GPUs: Geometry engine, many fixed function FLOPS – Parallel RTRT on supercomputers & PC clusters – Programmable GPUs – RT on GPUs: Unsuitable programming model – Simulation show: HW for RTRT is possible

Why Now? Timeline ~2004: – Fully programmable, high-performance GPUs – Limited control flow, no recursion, no stack – First fixed-function RTRT-HW (FPGA) Now: – Fully programmable, scalable RPU (FPGA)

Why Now? Summary – Success of rasterization and lack of progress eliminated RT research in 1990s Little low level optimization, assumption there is no coherence – CPUs got faster but RT did not take advantage of it SSE, stalls due to long pipelines, coherence, … – Better algorithms later allowed to catch up with HW – RT in HW: resources only became available recently

Reasons for Using RTRT What are the reasons for industry to choose Realtime Ray Tracing? – Highly realistic images by default – Physical correctness and dependability – Support for massive scenes – Integration of many different primitive types – Declarative scene description – Realtime global illumination

Reasons for Using RTRT Highly Realistic Images Highly Realistic Images by Default – Typical effects are automatically accounted for E.g.: shadows, reflection, refraction, … No special code necessary, but tricks can still be used – All effects are correctly ordered globally Do need for application to do sorting (e.g. for transparency) – Orthogonality of geometry, shading, lighting, … Can be created independently and used without side effects Reusability: e.g. shader libraries

Reasons for Using RTRT Highly Realistic Images Volkswagen Beetle with correct shadows and (multi-)reflections on curved surfaces

Reasons for Using Ray Tracing Physical Correctness and Dependability – Numerous approximations caused by rasterization – Might be good enough for games (but maybe not?) – Industry needs dependable visual results Benefits – Users develop trust in the visual results – Important decisions can be based on virtual models

Reasons for Using RTRT: Physical Correctness Fully ray traced car head lamp, faithful visualization requires up to 50 rays per pixel

Reasons for Using RTRT: Physical Correctness Rendered directly from trimmed NURBS surfaces, with smooth environment lighting

Reasons for Using RTRT: Physical Correctness BTF Data Courtesy R. Klein, Uni Bonn Rendered with accurately measured BTF data that accounts for micro lighting effects Textured Phong for comparison

Reasons for Using RTRT: Physical Correctness VR scene illuminated from realtime video feed, AR with realtime environment lighting

Reasons for Using RTRT: Massive Models Massive Scenes – Scales logarithmically with scene size – Supports billions of triangles Benefits – Can render entire CAD models without simplification – Greatly simplifies and speeds up many tasks

Reasons for Using RTRT: Massive Models

Reasons for Using RTRT: Flexible Primitive Types Flexible Primitive Types – Triangles – Volumes data sets Iso-surfaces & direct visualization Regular, rectilinear, curvilinear, unstructured, … – Splines and subdivision surfaces – Points

Reasons for Using RTRT: Flexible Primitive Types Triangles, Bezier splines, and subdivision surfaces fully integrated

Reasons for Using RTRT: Flexible Primitive Types Volume visualization using multiple iso-surfaces in combination with surface rendering

Reasons for Using RTRT: Flexible Primitive Types Realtime ray tracing of point clouds (1 Mpoints each) On one dual-Opteron 2.4 GHz: 4-9 fps 24 MPoints, 2.1 fps with 640x480

Reasons for Using RTRT: Declarative Graphics Declarative Graphics Interface – Application specifies scene once, plus updates – Rendering fully performed by renderer (e.g. in HW) – Similar to scene graphs, PostScript, or latest GUIs Benefits – Greatly simplifies application programming – Allows for complete HW acceleration

Reasons for Using RTRT: Declarative Graphics

Reasons for Using RTRT: Global Illumination Global Illumination – Simulating global lighting through tracing rays – Indirect diffuse and caustic illumination – Fully recomputed at up to 20 fps Benefits – Add the subtle but highly important clue for realism – Allows flexible light planning and control

Reasons for Using RTRT: Global Illumination Conference room ( tris, 104 lights) with full global illumination in realtime

Reasons for Using RTRT: Global Illumination 250k / 3 fps 25M / 11 fps Light pattern from a car head lamp computed in realtime using photon mapping: Left: realtime update, middle: accumulated in 30s, right: photograph of real pattern

Reasons for Using RTRT: Global Illumination 250k / 3 fps 25M / 11 fps Photograph Light pattern from a car head lamp computed in realtime using photon mapping: Left: realtime update, middle: accumulated in 30s, right: photograph of real pattern

Open Issues with Realtime Ray Tracing Dynamic scenes – Changes to geometry  updates to spatial index – Key: Need information from application !!! No information  must inspect everything  O(n) Approaches – Separate scenes by temporal characteristic – Build index lazily, build fuzzy index – Adapt built parameters (fast vs. thorough)

Open Issues with Realtime Ray Tracing Efficient Anti-Aliasing & Glossy Reflection – Requires many samples for proper integration Image plane  Can we do better than super-sampling? Shading and texture aliasing  ray differentials (integration?) Large/detailed scenes  geometry aliasing, temporal noise – Super-sampling too costly and LOD undesirable

Open Issues with Realtime Ray Tracing Hardware Support – Goal: realtime ray tracing on every desktop >60 fps, 2-3 Mpix, huge models, complex lighting, … Possible Solutions – Faster, multi-core CPUs: might take too long – Cell: Highly interesting, but no caches – GPUs: interesting but limited control flow – Custom HW: RPU (flexible GPU + custom traversal)