Hybrid Ray Tracing of Massive Models

Slides:



Advertisements
Similar presentations
Exploration of advanced lighting and shading techniques
Advertisements

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 & visualization Global Illumination Effects.
Interactive Rendering using the Render Cache Bruce Walter, George Drettakis iMAGIS*-GRAVIR/IMAG-INRIA Steven Parker University of Utah *iMAGIS is a joint.
GI 2006, Québec, June 9th 2006 Implementing the Render Cache and the Edge-and-Point Image on Graphics Hardware Edgar Velázquez-Armendáriz Eugene Lee Bruce.
Two Methods for Fast Ray-Cast Ambient Occlusion Samuli Laine and Tero Karras NVIDIA Research.
I3D Fast Non-Linear Projections using Graphics Hardware Jean-Dominique Gascuel, Nicolas Holzschuch, Gabriel Fournier, Bernard Péroche I3D 2008.
Christian Lauterbach COMP 770, 2/11/2009
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Order-Independent Texture Synthesis Li-Yi Wei Marc Levoy Gcafe 1/30/2003.
Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
© 2004 Tomas Akenine-Möller1 Shadow Generation Hardware Vision day at DTU 2004 Tomas Akenine-Möller Lund University.
1 A Hierarchical Shadow Volume Algorithm Timo Aila 1,2 Tomas Akenine-Möller 3 1 Helsinki University of Technology 2 Hybrid Graphics 3 Lund University.
Erdem Alpay Ala Nawaiseh. Why Shadows? Real world has shadows More control of the game’s feel  dramatic effects  spooky effects Without shadows the.
Ray Tracing Primer Ref: SIGGRAPH HyperGraphHyperGraph.
Interactive Ray Tracing: From bad joke to old news David Luebke University of Virginia.
Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures Vision, Modeling, Visualization Erlangen, Germany November 16-18,
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.
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
1 Shadows (2) ©Anthony Steed Overview n Shadows – Umbra Recap n Penumbra Analytical v. Sampling n Analytical Aspect graphs Discontinuity meshing.
Click to edit Master title style HCCMeshes: Hierarchical-Culling oriented Compact Meshes Tae-Joon Kim 1, Yongyoung Byun 1, Yongjin Kim 2, Bochang Moon.
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)
David Luebke11/26/2015 CS 551 / 645: Introductory Computer Graphics David Luebke
Sample Based Visibility for Soft Shadows using Alias-free Shadow Maps Erik Sintorn – Ulf Assarsson – uffe.
Hierarchical Penumbra Casting Samuli Laine Timo Aila Helsinki University of Technology Hybrid Graphics, Ltd.
Efficient Streaming of 3D Scenes with Complex Geometry and Complex Lighting Romain Pacanowski and M. Raynaud X. Granier P. Reuter C. Schlick P. Poulin.
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
Global Illumination. Local Illumination  the GPU pipeline is designed for local illumination  only the surface data at the visible point is needed to.
Ray Tracing Fall, Introduction Simple idea  Forward Mapping  Natural phenomenon infinite number of rays from light source to object to viewer.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
Soft Shadow Volumes for Ray Tracing
All-Frequency Shadows Using Non-linear Wavelet Lighting Approximation Ren Ng Stanford Ravi Ramamoorthi Columbia Pat Hanrahan Stanford.
SHADOW CASTER CULLING FOR EFFICIENT SHADOW MAPPING JIŘÍ BITTNER 1 OLIVER MATTAUSCH 2 ARI SILVENNOINEN 3 MICHAEL WIMMER 2 1 CZECH TECHNICAL UNIVERSITY IN.
1© 2009 Autodesk Hardware Shade – Presenting Your Designs Hardware and Software Shading HW Shade Workflow Tessellation Quality Settings Lighting Settings.
CGI2014 SPONSORED BY Ray tracing via GPU Rasterization Wei Hu 1 Yangyu Huang 1 Fan Zhang 1 Guodong Yuan 2 1 Beijing University of Chemical Technology,
Real-Time ray casting for virtual reality
- Introduction - Graphics Pipeline
Scene Manager Creates and places movable objects like lights and cameras so as to access them efficiently, e.g. for rendering. Loads and assembles world.
Real-Time Soft Shadows with Adaptive Light Source Sampling
Photorealistic Rendering vs. Interactive 3D Graphics
Hybrid Ray Tracing and Path Tracing of Bezier Surfaces using a mixed hierarchy Rohit Nigam, P. J. Narayanan CVIT, IIIT Hyderabad, Hyderabad, India.
Week 2 - Friday CS361.
Chapter 10 Computer Graphics
Deep Partitioned Shadow Volumes Using Stackless and Hybrid Traversals
Combining Edges and Points for Interactive High-Quality Rendering
Image-Based Rendering
Deferred Lighting.
Real-Time Ray Tracing Stefan Popov.
3D Graphics Rendering PPT By Ricardo Veguilla.
From Turing Machine to Global Illumination
The Graphics Rendering Pipeline
CDA 6938 Final Project Triangulation from Point Cloud
Understanding Theory and application of 3D
© University of Wisconsin, CS559 Fall 2004
Alias-Free Shadow Maps
Ray Tracing Dinesh Manocha COMP 575/770.
Accelerated Single Ray Tracing for Wide Vector Units
Cache-Efficient Layouts of BVHs and Meshes
(c) 2002 University of Wisconsin
Visibility Computations
UMBC Graphics for Games
COMP 575/770 Review Session May 4, 2016.
A Hierarchical Shadow Volume Algorithm
ATO Project: Year 3 Main Tasks
RADEON™ 9700 Architecture and 3D Performance
GEARS: A General and Efficient Algorithm for Rendering Shadows
Directional Occlusion with Neural Network
Presentation transcript:

Hybrid Ray Tracing of Massive Models Christian Lauterbach Dinesh Manocha UNC Chapel Hill 10/12/2009

Motivation: Ray Tracing As a visualization method General and robust solution for light transport Transparency, refraction, reflection Lighting: shadows, indirect lighting, … Performance logarithmic with model complexity

This talk Memory issues for ray tracing of massive models Hybrid rendering approaches

Problem: Memory Memory overhead Access pattern Any object can be accessed by ray at any time Need to store acceleration structure Access pattern Low locality High number of cache misses 3 orders of magnitude ~ disk vs. memory speed

Massive models: ReduceM Goals: Compact representation for hierarchy and geometry Low rendering performance overhead

Compact combined representation for hierarchy and ReduceM idea Triangle strips for ray tracing Two-level hierarchy: … High-level hierarchy (BVH, kd-tree, …) Compact combined representation for hierarchy and geometry

ReduceM Main features: Compact ReduceM representation Fast traversal and intersection of strips Construction of triangle strips optimized for ray tracing

Representation Based on triangle strips Encode hierarchy on top as efficiently as possible 7 6 4 2 5 1 3

Representation Key idea: Can represent hierarchy via order of vertices 7 6 4 2 5 1 3

Representation Overall: Overhead for hierarchy Store vertices in order that defines hierarchy Store local indices to define strip  Sufficient both for triangle intersection and hierarchy traversal Overhead for hierarchy Local vertex indices Some vertices stored twice (about 1.5-3%)

Traversal and intersection Ported ray packet techniques to ReduceM New possibilities: Larger packet size for high-level hierarchy Share edge results for triangle intersection Intersection of single ray with multiple edges Up to 90% higher ray tracing performance [Lauterbach et al. 07]

Construction Many algorithms for triangle strip generation for GPU rasterization Different criteria for ray tracing Length  compression ratio Spatial coherence  ray tracing performance

Construction overview Graph Adjacency Graph + Hierarchy Partitioning Sequences Ordering [1,3,2,4,6] [6,4,7,9,8] Triangle strips Strip output

Construction algorithm Our approach: Strip generation using surface area heuristic information Partitioning: generate ideal hierarchy Ordering: Use hierarchy as reference to evaluate possible triangle sequences Iteratively try to combine sequences Partitioning Ordering Graph Graph + Hierarchy

Results Tested on set of massive models All benchmarks are fully in-core [Lauterbach et al. 07, Lauterbach et al. 08] St. Matthew (372M) Powerplant (12.7M) Double Eagle (82M) Boeing 777 (360M) Build time: 1h 36m Build time: 5m Build time: 33m Build time: 1h 50m

Key results Memory footprint Rendering performance Reduced by up to 80% compared to standard kd-tree or BVH Rendering performance Optimized strips: up to 58% higher compared to rasterization strips Overall performance comparable to kd-tree Higher for some large models Single ray performance up to 90% higher

Results Logarithmic performance maintained

Comparison Most similar to compressed BVH approaches [Mahovsky 05, Cline et al. 06] Higher compression of hierarchy But: Does not change geometry footprint Rendering times 40-60% with best compression Worst for single rays

State-of-the-art Basic visualization: fast enough E.g. visibility, shading, hard shadows One or several rays / pixel Decent lighting: barely interactive (~1-5 fps) E.g. soft shadows, simple ambient occlusion <= 16 rays / pixel High-quality: non-interactive (<< 1fps) E.g. indirect lighting, “good” lighting, anti-aliasing Tens to hundreds of rays / pixel

GPU Rendering Fast visibility High quality Levels-of-detail, mesh layouts, compression, out-of-core rendering, … High quality Cheap antialiasing, shading, …

Hybrid rendering One solution until hardware nirvana Use GPU rendering where it makes sense Use ray tracing otherwise Try to reduce ray workload

Future architectures Graphics pipelines are getting more flexible GPUs DirectX 11 compute shaders More configurable stages Intel Larrabee Software pipeline

Hybrid ray tracing Already widely used in GPU ray tracing Rasterize visibility, add reflection, refraction and shadows with ray tracing [Reiter-Horn et al. 07] Counter-argument When ray tracing 100+ rays/pixel, why care about one more for visibility?

Selective ray tracing Motivation: GPU ray tracing feasible, but still orders of magnitude slower than rasterization Want to use ray tracing for ‘interesting’ effects Accurate hard/soft shadows Ambient occlusion Indirect lighting, … But: Hardware not yet fast enough to trace enough rays

GPU algorithms Problems: Hard-to-control errors Not robust Hard shadows Soft shadows Ambient occlusion (from [Lloyd 08]) (from [Laine et al. 05]) (from [Bavoil et al. 08]) Problems: Hard-to-control errors Not robust Not scalable

Selective ray tracing Idea: Example: Use ray tracing only to correct localized errors in GPU rendering algorithms Example: Shadow mapping Artifacts marked Final result

Ray generation and compaction Overview Hierarchy Geometry Frame buffer(s) unshaded FB with pixels marked Open ray buffer Traced ray results FB shaded with ray results Accuracy detection Ray generation and compaction Ray tracing Shading Main applications: Hard shadows Soft shadows Ambient occlusion

Massive model rendering To use ray tracing, need to store geometry and hierarchy on GPU Problem: even less memory than CPUs ReduceM for GPU ray tracing With minor modifications can also use directly use strip representation in GPU rendering

Shadow mapping Shadow mapping algorithm Result Renders scene from light into depth map During rendering, reproject each pixel to light’s view and test whether occluded using map Main source of error is mismatched sampling rate of shadow map Result Jagged shadow boundaries Missed shadows

Edge detection + conservative rendering Shadow mapping Normal shadow mapping Edge detection Edge detection + conservative rendering

Soft shadows Also identify and ray trace penumbra regions Our solution: Project area light onto each shadow map pixel Mark all pixels in that projected region

Ambient occlusion Ambient occlusion Screen-space ambient occlusion Reconstruct local geometry from depth buffer neighborhood: R x R

Ambient occlusion Problems: Information in depth buffer insufficient Result: missing shadows or view-dependent changes in occlusion a) b) x x c) Actual geometry d) x

Ambient occlusion Error detection: Can partially ray trace Find discontinuities in neighborhood If found, revert to ray tracing Can partially ray trace E.g. discontinuity in one quadrant? Still use screen-space solution for others

Shadow results Rendering of complex models with accurate shadows on current GPU E.g. Powerplant Performance: ~3-5 times faster than full ray tracing ~2-3 times slower than original algorithm Accuracy Virtually identical to ray traced solution

Shadow results Hard shadows, real-time capture Soft shadows, ~2 fps

Challenges Integrate with GPU rendering Ray organization Levels-of-detail Shared representations for rendering Ray organization

Future work GPU rendering as dense visibility sampling Can use for more general purposes? Hybrid rendering representations How to modify future rendering pipelines?

Next up: 30 min. break Then: Sung-Eui Yoon: Data Management