Approximating Subdivision Surfaces with Gregory Patches for Hardware Tessellation

Similar documents
Approximate Catmull-Clark Patches. Scott Schaefer Charles Loop

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

Efficient GPU Rendering of Subdivision Surfaces. Tim Foley,

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

Introduction to the Direct3D 11 Graphics Pipeline

D3D11 Tessellation. Sarah Tariq NVIDIA

Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches

Feature Adaptive GPU Rendering of Catmull-Clark Subdivision Surfaces

REAL-TIME SMOOTH SURFACE CONSTRUCTION ON THE GRAPHICS PROCESSING UNIT

Real-Time Hair Simulation and Rendering on the GPU. Louis Bavoil

Smooth Surfaces from 4-sided Facets

Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches

Subdivision Curves and Surfaces

INF3320 Computer Graphics and Discrete Geometry

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

Rendering Subdivision Surfaces Efficiently on the GPU

Subdivision Curves and Surfaces: An Introduction

Curved PN Triangles. Alex Vlachos Jörg Peters

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

Real-Time Hair Rendering on the GPU NVIDIA

Curve Corner Cutting

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

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

Removing Polar Rendering Artifacts in Subdivision Surfaces

3D Modeling Parametric Curves & Surfaces. Shandong University Spring 2013

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

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

Information Coding / Computer Graphics, ISY, LiTH. Splines

On Smooth Bicubic Surfaces from Quad Meshes

A Trip Down The (2011) Rasterization Pipeline

3D Modeling Parametric Curves & Surfaces

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

Dynamic Feature-Adaptive Subdivision

3D Modeling techniques

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

Modeling. Simulating the Everyday World

Local Modification of Subdivision Surfaces Based on Curved Mesh

Physically-Based Modeling and Animation. University of Missouri at Columbia

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

Efficient GPU Rendering of Subdivision Surfaces using Adaptive Quadtrees

Subdivision Surfaces. Homework 1: Questions/Comments?

Subdivision Surfaces

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

09 - Designing Surfaces. CSCI-GA Computer Graphics - Fall 16 - Daniele Panozzo

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

Spline Surfaces, Subdivision Surfaces

Introduction to Geometry. Computer Graphics CMU /15-662

Free-Form Deformation and Other Deformation Techniques

2.11 Particle Systems

G 2 Interpolation for Polar Surfaces

Computergrafik. Matthias Zwicker. Herbst 2010

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

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

Subdivision Surfaces

Efficient Substitutes for Subdivision Surfaces

Fast Parallel Construction of Smooth Surfaces from Meshes with Tri/Quad/Pent Facets

Subdivision overview

Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation

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

How to Work on Next Gen Effects Now: Bridging DX10 and DX9. Guennadi Riguer ATI Technologies

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

Per-Face Texture Mapping for Realtime Rendering. Realtime Ptex

Polar Embedded Catmull-Clark Subdivision Surface

Analysis and Implementation of Local Subdivision Algorithms in the GPU

Subdivision Surfaces

Splines. Connecting the Dots

Surface Modeling. Polygon Tables. Types: Generating models: Polygon Surfaces. Polygon surfaces Curved surfaces Volumes. Interactive Procedural

Curves and Surfaces 2

Curves & Surfaces. Last Time? Progressive Meshes. Selective Refinement. Adjacency Data Structures. Mesh Simplification. Mesh Simplification

CS354 Computer Graphics Surface Representation IV. Qixing Huang March 7th 2018

Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces

HW-Tessellation Basics

Lecture 3 Mesh. Dr. Shuang LIANG. School of Software Engineering Tongji University Spring 2013

Advanced Computer Graphics

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

Joe Warren, Scott Schaefer Rice University

Using Semi-Regular 4 8 Meshes for Subdivision Surfaces

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

Honeycomb Subdivision

Hardware Displacement Mapping

CS GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1. Markus Hadwiger, KAUST

Real-Time Shape Editing using Radial Basis Functions

Introduction to Computer Graphics

3D Modeling: Surfaces

Subdivision surfaces for CAD: integration through parameterization and local correction

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

GL9: Engineering Communications. GL9: CAD techniques. Curves Surfaces Solids Techniques

Tamy Boubekeur & Christophe Schlick

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

CSE 167: Introduction to Computer Graphics Lecture 12: Bézier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013

Surfaces for CAGD. FSP Tutorial. FSP-Seminar, Graz, November

Programmable Shaders for Deformation Rendering

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

Effective Back-Patch Culling for Hardware Tessellation

Recursive Subdivision Surfaces for Geometric Modeling

All the Polygons You Can Eat. Doug Rogers Developer Relations

Computer Graphics Curves and Surfaces. Matthias Teschner

Non-Uniform Recursive Doo-Sabin Surfaces (NURDSes)

Example: Loop Scheme. Example: Loop Scheme. What makes a good scheme? recursive application leads to a smooth surface.

Geometric modeling 1

Transcription:

Approximating Subdivision Surfaces with Gregory Patches for Hardware Tessellation Charles Loop Microsoft Research Scott Schaefer Texas A&M University Tianyun Ni NVIDIA Ignacio Castaño NVIDIA

Goal Real-Time Displaced Subdivision Surfaces

Problem: Real-Time Animation Each vertex touched at runtime new position influenced by many bones weights or morph targets Costly for dense meshes Coarse meshes are used faceting artifacts Dense static objects high disk/bus consumption

Solution: Hardware Tessellation Store/send coarse mesh to GPU Animate coarse mesh vertices inexpensive Expand geometry on GPU reduce bus traffic exploit GPU parallelism Better shape fidelity reduced faceting displacement mapping

Tessellation Pipeline Direct3D11 has support for programmable tessellation Input Assembler Vertex Shader Two new programable shader stages: Hull Shader (HS) Domain Shader (DS) One fixed function stage: Tessellator (TS) Hull Shader Tessellator Domain Shader Geometry Shader Setup/Raster

Hull Shader (HS) Transforms control points from irregular control mesh data to regular patch data Computes edge tessellation factors Input Assembler Vertex Shader Hull Shader Tessellator Domain Shader Geometry Shader Setup/Raster

Tessellator (TS) Fixed function stage, but configurable Domains: Triangle, Quad, Line Input Assembler Vertex Shader Hull Shader Tessellator Spacing: Discrete, Continuous, Pow2 Domain Shader Geometry Shader Setup/Raster

Tessellator (TS) Level 5 Level 5.4 Level 6.6

Tessellator (TS) Left = 3.5 Right = 4.4 Bottom = 3.0 Top,Right = 4.5 Bottom,Left = 9.0 Inside Tess: minimum Inside Tess: average Inside Tess: maximum

Domain Shader (DS) Input Assembler Vertex Shader Hull Shader Tessellator Domain Shader Geometry Shader Setup/Raster

Subdivision Surfaces Catmull, E. AND Clark, J. 1978, Recursively generated B-spline surfaces on arbitrary topological meshes subdivision Already in the content creation pipeline Used extensively in film and game industries Coarse mesh input leads to smooth higher order surface

Problem: Infinite number of patches subdivision Does not easily fit hardware tessellation paradigm Stam, J. 1998, Exact evaluation of Catmull-Clark subdivision surfaces at arbitrary parameter values Using exact evaluation possible, but expensive Need two levels of subdivision to get started Eigen basis function storage/evaluation costly

Approximation Schemes Loop, C. AND Schaefer, S. 2008, Approximating Catmull-Clark subdivision surfaces with bicubic patches Quads only, continuous geometry, smooth normal field 25 control points per patch Ni, T., Yeo. Y.I., Miles, A, AND Peters, J. 2008, GPU smoothing of quad meshes Quads only smooth geometry and normal field 24 control points per patch Myles, A, Ni, T., AND Peters, J. 2008, Fast Parallel construction of smooth surfaces from meshes with tri/quad/pent facets 3, 4, or 5 sided faces, smooth geometry and normal field 19, 25, and 31 control points per patch This paper 3, 4 sided Gregory patches 15, 20 control points per patch

Gregory Patches Gregory, J. 1974, Smooth interpolation without twist constraints Introduced to solve subtle problem with incompatible mixed partial derivatives, or twists at patch corners in the regular setting Chiyokura, H. AND Kimura, F., 1983 Design of solids with free-form surfaces Extended to irregular setting, introduced Bézier formulation

Bicubic Bézier Patch

Gregory Quad Patch

Gregory Quad Patch

Gregory Quad Patch

Gregory Triangle Patch

Patch Construction General construction for 3 or 4 sided faces Gregory patches in 1-1 correspondence with control mesh faces

Patch Construction p

Patch Construction p

Patch Construction p

Edge Midpoints/Face Centroids c i+1 v m i-1 m i+1 c i m i c i-1

Corner Point p Interpolate limit position of Catmull-Clark Surface

Edge Points Interpolate limit tangent of Catmull-Clark Surface

Edge Points Interpolate limit tangent of Catmull-Clark Surface

Face Points

Face Points

Two GPU Implementations Vertex/Hull Shaders Exploit vertex-centric nature of computations Avoid redundant computations Hull Shader Stencil Approach Map patch construction to hull shader exclusively Frees vertex shader for other tasks Best implementation will depend on LOD, low V/H better, high HSS better Hardware vendor Application

Vertex/Hull Shader Approach

Hull Shader Stencil Approach Sort mesh into patch connectivity types permutation of a face 1-ring neighborhood Each connectivity type determines a weight matrix store these matrices in a texture hull shader computes patch as matrix/vector product Advantages simple code, low register/shared memory pressure fits tessellator pipeline well Disadvantages sparse matrix, many unnecessary fetches/products redundant computations corner/edges points

Domain Shader

Results

Results

Conclusions Simple geometry construction Handling boundaries in paper Lowest fetch overhead for domain shader 20 control points for quads, 15 for triangles Critical performance bottleneck Error to true Catmull-Clark surface small See paper artist intent problem solved by migration to tool chain

Thank You