Anjul Patney University of California, Davis Real-Time Reyes Programmable Pipelines and Research Challenges.

Slides:



Advertisements
Similar presentations
Accelerating Real-Time Shading with Reverse Reprojection Caching Diego Nehab 1 Pedro V. Sander 2 Jason Lawrence 3 Natalya Tatarchuk 4 John R. Isidoro 4.
Advertisements

Exploration of advanced lighting and shading techniques
POST-PROCESSING SET09115 Intro Graphics Programming.
Sven Woop Computer Graphics Lab Saarland University
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Graphics Pipeline.
Computer graphics & visualization Global Illumination Effects.
IIIT Hyderabad Hybrid Ray Tracing and Path Tracing of Bezier Surfaces using a mixed hierarchy Rohit Nigam, P. J. Narayanan CVIT, IIIT Hyderabad, Hyderabad,
High-Quality Parallel Depth-of- Field Using Line Samples Stanley Tzeng, Anjul Patney, Andrew Davidson, Mohamed S. Ebeida, Scott A. Mitchell, John D. Owens.
GCAFE 28 Feb Real-time REYES Jeremy Sugerman.
Real-Time Reyes: Programmable Pipelines and Research Challenges Anjul Patney University of California, Davis.
Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces Anjul Patney 1 Mohamed S. Ebeida 2 John D. Owens 1 University of California,
1Notes  Assignment 1 is out, due October 12  Inverse Kinematics  Evaluating Catmull-Rom splines for motion curves  Wednesday: may be late (will get.
Damon Rocco.  Tessellation: The filling of a plane with polygons such that there is no overlap or gap.  In computer graphics objects are rendered as.
Fragment-Parallel Composite and Filter Anjul Patney, Stanley Tzeng, and John D. Owens University of California, Davis.
Real-Time Reyes-Style Adaptive Surface Subdivision
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Control Flow Virtualization for General-Purpose Computation on Graphics Hardware Ghulam Lashari Ondrej Lhotak University of Waterloo.
Computer Graphics (Fall 2005) COMS 4160, Lecture 21: Ray Tracing
1/12/09 1 Introduction Computer Graphics COMP 770 (236) Spring 2009 Instructor: Dinesh Manocha.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
1Notes. 2Atop  The simplest (useful) and most common form of compositing: put one image “atop” another  Image 1 (RGB) on top of image 2 (RGB)  For.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Pixel Shader Vertex Shader The Real-time Graphics Pipeline Input Assembler Rasterizer Output Merger.
Real-Time High Quality Rendering COMS 6160 [Fall 2004], Lecture 3 Overview of Course Content
Evolution of the Programmable Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Many-Core Programming with GRAMPS & “Real Time REYES” Jeremy Sugerman, Kayvon Fatahalian Stanford University June 12, 2008.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
CSS552 Final Project Demo Peter Lam Tim Chuang. Problem Statement Our goal is to experiment with different post rendering effects (Cel Shading, Bloom.
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.
UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS Visual quality techniques.
Invitation to Computer Science 5th Edition
Adaptive Real-Time Rendering of Planetary Terrains WSCG 2010 Raphaël Lerbour Jean-Eudes Marvie Pascal Gautron THOMSON R&D, Rennes, France.
Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures Vision, Modeling, Visualization Erlangen, Germany November 16-18,
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.
Surface displacement, tessellation, and subdivision Ikrima Elhassan.
CSC 461: Lecture 3 1 CSC461 Lecture 3: Models and Architectures  Objectives –Learn the basic design of a graphics system –Introduce pipeline architecture.
Rendering Overview CSE 3541 Matt Boggus. Rendering Algorithmically generating a 2D image from 3D models Raster graphics.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
03/24/03© 2003 University of Wisconsin Last Time Image Based Rendering from Sparse Data.
1Computer Graphics Lecture 4 - Models and Architectures John Shearer Culture Lab – space 2
Depth-of-Field Rendering by Pyramidal Image Processing
Department of Computer Science 1 Beyond CUDA/GPUs and Future Graphics Architectures Karu Sankaralingam University of Wisconsin-Madison Adapted from “Toward.
- 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.
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
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.
CS559: Computer Graphics Final Review Li Zhang Spring 2010.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
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.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
Siggraph 2009 RenderAnts: Interactive REYES Rendering on GPUs Kun Zhou Qiming Hou Zhong Ren Minmin Gong Xin Sun Baining Guo JAEHYUN CHO.
1© 2009 Autodesk Hardware Shade – Presenting Your Designs Hardware and Software Shading HW Shade Workflow Tessellation Quality Settings Lighting Settings.
Applications and Rendering pipeline
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
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.
Graphics Processing Unit
Deferred Lighting.
From Turing Machine to Global Illumination
The Graphics Rendering Pipeline
Hybrid Ray Tracing of Massive Models
© University of Wisconsin, CS559 Fall 2004
Distributed Ray Tracing
Ray Tracing on Programmable Graphics Hardware
RADEON™ 9700 Architecture and 3D Performance
Presentation transcript:

Anjul Patney University of California, Davis Real-Time Reyes Programmable Pipelines and Research Challenges

Before me Intro – Lastra Thoroughput Computing Hardware Basics – Hensley Intro to Parallel Computing Models – Foley CUDA – Harris BSGP – Zhou OpenGL – Yang –(Only architecture and programming models) –(No real graphics yet)

This talk Parallel Computing for Graphics: In Action What does it take to write a programmable pipeline? –Many questions –Some answers We will focus on the Reyes pipeline

Graphics on parallel devices Over the years –Increasing performance –Increasing programmability How is that useful for real-time graphics? –Improve existing pipeline –Redesign the pipeline

Redesign the pipeline An Exploration –May not be the answer for everyone My Goals –Interactive performance –High visual quality How should I choose a pipeline?

My real-time pipeline An improvement in real-time rendering –Build around shading –Remove existing rendering artifacts Desired features –High-quality anti-aliasing –Realistic motion-blur, depth-of-field, volume effects –Global Illumination –Order-independent transparency

Reyes Introduced 1987 Photorealistic rendering –Smooth surfaces –Complex shading, lighting –Depth of field, motion blur –Order-independent blending Designed for offline use –But favors SIMD Image courtesy: Pixar

Real-Time Reyes Geometry Shading Sampling Composition Input Final pixels

Step 1: Geometry Convert input surfaces to micropolygons Geometry Shading Sampling Composition Input Final pixels

Step 2: Shading Decide colors for grid micropolygons Geometry Shading Sampling Composition Input Final pixels

Step 3: Sampling Collect stochastic samples of micropolygons Geometry Shading Sampling Composition Input Final pixels

Step 4: Image Composition Blend samples to get colors Combine colors to get pixels Geometry Shading Sampling Composition Input Final pixels

Step 1: Geometry Convert input surfaces to micropolygons Geometry Shading Sampling Composition Input Final pixels

Input Higher-order surfaces –Bézier surfaces –NURBS –Subdivision surfaces Displacement-mapped Animated Hand image courtesy: Tamy Boubekeur, Christophe Schlick

Task – Split and Dice Adaptively subdivide the input surface Tessellate when small enough Rinse and repeat

Challenges Recursive, irregular computation –Bad for parallelism, SIMD Too many micropolygons –Limited memory

Ideas Breadth-first Traversal Bucket Rendering

Works in real-time! Killeroo: Patches Split and dice in 9.8 ms fps at 512 x 512 Parametric surfaces only Subdivision cracks Patney and Owens, 2008 Killeroo Model Courtesy Headus Inc.

Geometry Output – Unshaded Grids Micropolygons 1 Grid

Step 2: Shading Decide colors for grid micropolygons Geometry Shading Sampling Composition Input Final pixels

Task Run shader(s) for each grid –Displacement –Surface –Light –Volume –Imager Good behavior –Highly parallel, SIMD friendly –Good locality behavior Image courtesy: Saty Raghavachary

Challenges Massively parallel is great –But is it good enough? Shaders can be complex –Too many instructions, conditionals –Global illumination –File I/O –Arbitrary texture fetches

Ideas Cache redundant computation –Across a grid –Across frames Architectural support –Virtual memory

Interactive Relighting Lpics [Pellacini 2005] –Cache image-space samples –Interactive feedback –Manual pre-processing Lightspeed [Ragan-Kelley 2007] –Shader caching –Interactive preview –Slow pre-processing Images belong to respective paper authors

Output – Shaded Grids

Bust: Many micropolygons

Step 3: Sampling Collect stochastic samples of micropolygons Geometry Shading Sampling Composition Input Final pixels

Task

Samples

Generate samples –Jittered grid –Parallel Poisson sampling [Wei 2008] For each sample, find all intersecting micropolygons –Raycast or Rasterize? Output: A (depth-sorted?) list of samples Challenges

Step 4: Image Composition Blend samples to get colors Combine colors to get pixels Geometry Shading Sampling Composition Input Final pixels

Task 1: Blend

Task 2: Filter to get pixel colors

Challenges Represent the irregular work-list –Traditionally: linked-list per sample (arbitrary size) Sort and Reduce –Unequal work-items Generate and apply filter kernels –Box –Gaussian

Stencil-Routed A-buffer Myers and Bavoil, NVIDIA, 2007

Summary: What is easy? Geometry Shading Sampling Composition Input Final pixels Can be parallelized well Highly Parallel, SIMD friendly Good locality behavior Parallel Poisson Sampling

Summary: What is hard? Geometry Shading Sampling Composition Input Final pixels Subdivision Surfaces, cracks Long shaders File I/O, arbitrary textures Raycast or Rasterize? Sort and reduce irregular work- lists

Conclusion Reyes is promising for real-time –Enables natural high-quality rendering –Portions map well to current hardware But there are challenges –Everything isn’t easy to implement –Architecture limitations Lots of interesting questions

Thanks to Course organizers Prof. John Owens, Shubho Sengupta Tim Foley Per Christensen Matt Pharr

`

After me Parallel programming on Larrabee – Foley Stream Computing for Graphics – Shopf Parallel Geometry Processing on GPU – Sander PhysX – Harris Next-gen graphics on Larrabee – Foley Conclusion & Questions

ScreenScene Real-time Rendering Goals FAST! Beautiful Convenient, Dynamic

Realistic Effects using Reyes Motion-blur –A stochastic time for each sample –Move micropolygons accordingly Depth-of-field –A stochastic lens position for each sample –Render micropolygons accordingly Take many samples to ensure quality Adjust screen bound during subdivision

Global Illumination with Reyes Traditional: shadow maps, environment maps Raytracing [Christensen et al. 2006] –Multi-level geometry cache –Ray-differentials to select appropriate resolution Effects taken care of –Shadows and reflections –Ambient Occlusion

My version of the world - today Many SIMD Cores (16-32) Precious memory bandwidth Data-parallel (SPMD) Memory Program

My version of the world - tomorrow More cores, still SIMD (8-16) Memory bandwidth still precious –But flexible access behavior Data-Parallel and Task-Parallel Memory Program Cache? Program