Efficient GPU Rendering of Subdivision Surfaces. Tim Foley,

Similar documents
Efficient GPU Rendering of Subdivision Surfaces using Adaptive Quadtrees

Approximate Catmull-Clark Patches. Scott Schaefer Charles Loop

Approximating Subdivision Surfaces with Gregory Patches for Hardware Tessellation

Lecture 4: Geometry Processing. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Motivation MGB Agenda. Compression. Scalability. Scalability. Motivation. Tessellation Basics. DX11 Tessellation Pipeline

Feature Adaptive GPU Rendering of Catmull-Clark Subdivision Surfaces

Subdivision Surfaces

Real-Time Reyes Programmable Pipelines and Research Challenges

Next-Generation Graphics on Larrabee. Tim Foley Intel Corp

INF3320 Computer Graphics and Discrete Geometry

Dynamic Feature-Adaptive Subdivision

REAL-TIME SMOOTH SURFACE CONSTRUCTION ON THE GRAPHICS PROCESSING UNIT

Advanced Graphics. Subdivision Surfaces. Alex Benton, University of Cambridge Supported in part by Google UK, Ltd

Subdivision. Outline. Key Questions. Subdivision Surfaces. Advanced Computer Graphics (Spring 2013) Video: Geri s Game (outside link)

Modeling. Simulating the Everyday World

Next-Generation Rendering of Subdivision Surfaces. Developer Technology - NVIDIA

Information Coding / Computer Graphics, ISY, LiTH. Splines

Subdivision Curves and Surfaces

Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches

Subdivision Surfaces. Homework 1: Questions on Homework? Last Time? Today. Tensor Product. What s an illegal edge collapse?

Subdivision Surfaces. Homework 1: Questions/Comments?

Subdivision Surfaces

Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches

Rendering Subdivision Surfaces Efficiently on the GPU

Subdivision overview

Surface Quality Assessment of Subdivision Surfaces on Programmable Graphics Hardware

B-spline Curves. Smoother than other curve forms

Computer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Subdivision Surfaces. Homework 1: Last Time? Today. Bilinear Patch. Tensor Product. Spline Surfaces / Patches

Graphics Architectures and OpenCL. Michael Doggett Department of Computer Science Lund university

Until now we have worked with flat entities such as lines and flat polygons. Fit well with graphics hardware Mathematically simple

Curve Corner Cutting

UNIVERSITY OF CALGARY. Subdivision Surfaces. Advanced Geometric Modeling Faramarz Samavati

Introduction to the Direct3D 11 Graphics Pipeline

2.11 Particle Systems

Computergrafik. Matthias Zwicker. Herbst 2010

HW-Tessellation Basics

1. Introduction. 2. Parametrization of General CCSSs. 3. One-Piece through Interpolation. 4. One-Piece through Boolean Operations

Smooth Surfaces from 4-sided Facets

12.3 Subdivision Surfaces. What is subdivision based representation? Subdivision Surfaces

Subdivision Surfaces

CHAPTER 1 Graphics Systems and Models 3

Curves and Surfaces 2

Subdivision Curves and Surfaces: An Introduction

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

Computer Graphics Curves and Surfaces. Matthias Teschner

The Application Stage. The Game Loop, Resource Management and Renderer Design

A Real-time Micropolygon Rendering Pipeline. Kayvon Fatahalian Stanford University

Direct Rendering of Trimmed NURBS Surfaces

Technical Report. Removing polar rendering artifacts in subdivision surfaces. Ursula H. Augsdörfer, Neil A. Dodgson, Malcolm A. Sabin.

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

CS 465 Program 4: Modeller

CS354 Computer Graphics Surface Representation III. Qixing Huang March 5th 2018

CS770/870 Fall 2015 Advanced GLSL

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Subdivision Surface Evaluation as Sparse Matrix-Vector Multiplication

Comparing Reyes and OpenGL on a Stream Architecture

Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces

Local Modification of Subdivision Surfaces Based on Curved Mesh

A Trip Down The (2011) Rasterization Pipeline

Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL

Pipeline Operations. CS 4620 Lecture 14

RSX Best Practices. Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming

Non-Uniform Recursive Doo-Sabin Surfaces (NURDSes)

From curves to surfaces. Parametric surfaces and solid modeling. Extrusions. Surfaces of revolution. So far have discussed spline curves in 2D

Using Semi-Regular 4 8 Meshes for Subdivision Surfaces

Parallel Programming for Graphics

Interpolatory 3-Subdivision

An Algorithm of 3D Mesh Reconstructing Based on the Rendering Pipeline

FINAL REPORT. Tessellation, Fairing, Shape Design, and Trimming Techniques for Subdivision Surface based Modeling

Ciril Bohak. - INTRODUCTION TO WEBGL

Scheduling the Graphics Pipeline on a GPU

Polar Embedded Catmull-Clark Subdivision Surface

Subdivision surfaces. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

Beyond Programmable Shading Keeping Many Cores Busy: Scheduling the Graphics Pipeline

CS452/552; EE465/505. Clipping & Scan Conversion

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation

CS130 : Computer Graphics Curves (cont.) Tamar Shinar Computer Science & Engineering UC Riverside

Representing Curves Part II. Foley & Van Dam, Chapter 11

Computer Graphics 1. Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2011

On Smooth Bicubic Surfaces from Quad Meshes

Cornell University CS 569: Interactive Computer Graphics. Introduction. Lecture 1. [John C. Stone, UIUC] NASA. University of Calgary

Shape modeling Modeling technique Shape representation! 3D Graphics Modeling Techniques

3D Modeling techniques

Curves and Surfaces Computer Graphics I Lecture 9

Removing Polar Rendering Artifacts in Subdivision Surfaces

Programmable GPUs. Real Time Graphics 11/13/2013. Nalu 2004 (NVIDIA Corporation) GeForce 6. Virtua Fighter 1995 (SEGA Corporation) NV1

Beginning Direct3D Game Programming: 1. The History of Direct3D Graphics

TSBK03 Screen-Space Ambient Occlusion

Character Modeling COPYRIGHTED MATERIAL

GLOBAL EDITION. Interactive Computer Graphics. A Top-Down Approach with WebGL SEVENTH EDITION. Edward Angel Dave Shreiner

GPU-Based Visualization of AMR and N-Body Dark Matter Simulation Data. Ralf Kähler (KIPAC/SLAC)

Graphics Hardware. Instructor Stephen J. Guy

The Graphics Pipeline

Curves and Curved Surfaces. Adapted by FFL from CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006

Fall CSCI 420: Computer Graphics. 4.2 Splines. Hao Li.

Joe Warren, Scott Schaefer Rice University

Transcription:

Efficient GPU Rendering of Subdivision Surfaces Tim Foley, 2017-03-02

Collaborators Activision Wade Brainerd Stanford Matthias Nießner NVIDIA Manuel Kraemer Henry Moreton 2

Subdivision surfaces are a powerful modelling primitive Smooth surface (+creases) Arbitrary input topology Animation Level of detail 3

Subdivision surfaces are a powerful modelling primitive Smooth surface (+creases) Arbitrary input topology Animation Level of detail 4

Subdivision surface rendering is not common in games Performance Ease of Integration 5

Performance Our method is up to 3x faster than previous non-approximate schemes Ease of Integration Our method can work in a single draw pass (no compute) Can use with existing vertex shaders for animation 6

Outline Background Subdivision surfaces GPU tessellation hardware Prior work Overview of our approach Performance evaluation Conclusion 7

Outline Background Subdivision surfaces GPU tessellation hardware Prior work Overview of our approach Performance evaluation Conclusion 8

Catmull-Clark Subdivision base mesh 9

Defined by repeated application of subdivision rules base mesh 10

Defined by repeated application of subdivision rules base mesh subdivided once 11

Defined by repeated application of subdivision rules base mesh subdivided once limit surface 12

13

14

Limit surface for face depends on local neighborhood 15

Limit surface for face depends on local neighborhood Connectivity of 1-ring vertices 16

Regular faces are easy to evaluate Limit surface equivalent to bicubic B-spline patch 17

Irregular Face 18

Extraordinary Vertex valence!= 4 19

20

21

22

23

24

regular irregular regular regular 25

26

Outline Background Subdivision surfaces GPU tessellation hardware Prior work Overview of our approach Performance evaluation Conclusion 27

GPU Rasterization Pipeline Vertex Fetch Vertex Shader Hull Shader Tessellator Domain Shader Geometry Shader Rasterizer Fragment Shader Blend 28

Tessellation Stages Vertex Fetch Vertex Shader Hull Shader Tessellator Domain Shader Geometry Shader Rasterizer Fragment Shader Blend 29

Hull Shader Tessellator Domain Shader 30

primitive base vertices Hull Shader Tessellator Domain Shader 31

primitive base vertices control points Hull Shader Tessellator Domain Shader 32

primitive base vertices control points v domain locations u Hull Shader Tessellator Domain Shader 33

primitive base vertices control points tessellated primitive post-tessellation vertices v domain locations u Hull Shader Tessellator Domain Shader 34

Crux of the Challenge Limit surface of irregular face defined by recursive subdivision Expands to many faces with many control points Variable: depends on subdivision depth Tessellation hardware wants fixed # of control points per face 35

Outline Background Subdivision surfaces GPU tessellation hardware Prior work Overview of our approach Performance evaluation Conclusion 36

Submit one primitive for each irregular face Use a fixed # of control points Submit many primitives for an irregular face Each of which is simple to evaluate 37

Submit one primitive for each irregular face Use a fixed # of control points Submit many primitives for an irregular face Each of which is simple to evaluate 38

Exact Evaluation Perform Eigen analysis on subdivision matrix [Stam 1998] Offline process for each topological configuration Project base vertices into Eigen space Yields a fixed # of control points Matrix exponentiation in domain shader Many floating-point operations 39

Approximate irregular faces with simpler patch Bicubic Bezier Bicubic Gregory (20 control points) [Loop and Schaefer 2008] [Loop et al. 2009] Fast evaluation No support for semi-sharp features (creases) Approximation affects tangents, parameterization 40

Submit one primitive for each irregular face Use a fixed # of control points Submit many primitives for an irregular face Each of which is simple to evaluate 41

Subdivide and submit many primitives per face Feature adaptive subdivision (FAS) Generate sub-face control points using compute kernels [Nießner et al. 2012] Many submit many primitives, depending on subdivision level Need to address T-junctions between sub-faces Dynamic feature adaptive subdivision (DFAS) Enables non-uniform subdivision levels Open Subdiv [Schäfer et al. 2012] 42

Issues with Feature-Adaptive Subdivision many primitives T-junctions 43

Outline Background Subdivision surfaces GPU tessellation hardware Prior work Overview of our approach Performance evaluation Conclusion 44

Take recursive subdivision hierarchy many primitives T-junctions 45

Summarize using a single primitive one primitive no T-junctions 46

Two key ideas Use a quadtree to map domain locations to sub-faces Output a variable # of control points from a Hull Shader 49

Two key ideas Use a quadtree to map domain locations to sub-faces Output a variable # of control points from a Hull Shader 50

Submit one primitive per base face to tessellator base subdivision face 51

Tessellator produces domain locations for evaluation base subdivision face domain locations 52

Map domain location to correct sub-face base subdivision face domain locations 53

Map domain location to correct sub-face base subdivision face domain locations 54

Map domain location to correct sub-face using a quadtree data structure base subdivision face quadtree domain locations 55

Map domain location to correct sub-face using a quadtree data structure base subdivision face quadtree domain locations 56

Quadtrees can be built ahead of time, and shared 57

Quadtrees can be built ahead of time, and shared depend only on 1-ring topology 58

Quadtree leaf node tells us which control points to use base subdivision face quadtree 59

Quadtree leaf node tells us which control points to use base subdivision face quadtree B-spline control points 60

Quadtree leaf node tells us which control points to use base subdivision face B-spline control points 61

Evaluate sub-face using its control points base subdivision face B-spline control points tessellated primitive 62

Two key ideas Use a quadtree to map domain locations to sub-faces Output a variable # of control points from a Hull Shader 63

Hull Shader 64

Hull Shader 65

Hull Shader Domain Shader 66

Hull Shader Domain Shader 67

Hull Shader Domain Shader 68

Hull Shader Domain Shader control point buffer 69

Hull Shader Domain Shader control point buffer 70

Hull Shader Domain Shader control points needed for tessellessation factor 3.0 control point buffer 71

Hull Shader Domain Shader control point buffer 72

More details in paper Collapsing repeated structure in quadtrees Most faces need only one tree traversal step! Sorting control point stencils for efficient evaluation Minimize number of control points needed for given tessellation factors Arrange control points for efficient SIMD computation 73

Outline Background Subdivision surfaces GPU tessellation hardware Prior work Overview of our approach Performance evaluation Conclusion 74

Big Guy Monster Frog Armor Guy Sterling ( 2014 DigitalFish, Inc. All rights reserved) ( Disney/Pixar) 75

Big Guy Monster Frog Armor Guy Sterling ( 2014 DigitalFish, Inc. All rights reserved) ( Disney/Pixar) low complexity no crease tags higher complexity semi-sharp crease tags 76

Big Guy Monster Frog Armor Guy Sterling ( 2014 DigitalFish, Inc. All rights reserved) ( Disney/Pixar) low complexity no crease tags higher complexity semi-sharp crease tags 77

Up to 3x faster than Adaptive Subdivision *non-exact 78

Up to 3x faster than Adaptive Subdivision *non-exact 79

Big Guy Monster Frog Armor Guy Sterling ( 2014 DigitalFish, Inc. All rights reserved) ( Disney/Pixar) low complexity no crease tags higher complexity semi-sharp crease tags 82

Benefit decreases as fraction of regular faces increases 83

Only some methods can handle semi-sharp creases 84

Benefit decreases as fraction of regular faces increases 85

Big Guy Monster Frog Armor Guy Sterling ( 2014 DigitalFish, Inc. All rights reserved) ( Disney/Pixar) low complexity no crease tags higher complexity semi-sharp crease tags 87

Armor Guy has a greater fraction of irregular faces 88

Outline Background Subdivision surfaces GPU tessellation hardware Prior work Overview of our approach Performance evaluation Conclusion 89

Conclusion A simpler and faster way to render subdivision surfaces Up to 3x faster than state-of-the-art methods Single draw pass Can use existing shaders for animation Integration in open-source OpenSubdiv library is in progress Interested engine developers should contact NVIDIA 90

Thank You 91