Approximate Catmull-Clark Patches. Scott Schaefer Charles Loop

Similar documents
Approximating Subdivision Surfaces with Gregory Patches for Hardware Tessellation

Efficient GPU Rendering of Subdivision Surfaces. Tim Foley,

Subdivision Curves and Surfaces

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

Subdivision Surfaces

Subdivision Curves and Surfaces: An Introduction

Subdivision Surfaces

Curves and Surfaces 2

Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches

Rendering Subdivision Surfaces Efficiently on the GPU

Smooth Surfaces from 4-sided Facets

Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches

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

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

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

Information Coding / Computer Graphics, ISY, LiTH. Splines

INF3320 Computer Graphics and Discrete Geometry

A Trip Down The (2011) Rasterization Pipeline

Direct Rendering of Trimmed NURBS Surfaces

Recursive Subdivision Surfaces for Geometric Modeling

REAL-TIME SMOOTH SURFACE CONSTRUCTION ON THE GRAPHICS PROCESSING UNIT

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

Curve Corner Cutting

Subdivision overview

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

Introduction to the Direct3D 11 Graphics Pipeline

Free-Form Deformation and Other Deformation Techniques

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

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

Joe Warren, Scott Schaefer Rice University

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

Introduction to Geometry. Computer Graphics CMU /15-662

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

Computer Graphics Curves and Surfaces. Matthias Teschner

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

Splines. Connecting the Dots

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

3D Modeling techniques

Hardware Displacement Mapping

The Graphics Pipeline

Modeling. Simulating the Everyday World

Near-Optimum Adaptive Tessellation of General Catmull-Clark Subdivision Surfaces

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

HW-Tessellation Basics

Advanced Computer Graphics

Removing Polar Rendering Artifacts in Subdivision Surfaces

Ray Casting of Trimmed NURBS Surfaces on the GPU

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

B-spline Curves. Smoother than other curve forms

Feature Adaptive GPU Rendering of Catmull-Clark Subdivision Surfaces

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

2.11 Particle Systems

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

Spline Surfaces, Subdivision Surfaces

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

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Surface Quality Assessment of Subdivision Surfaces on Programmable Graphics Hardware

Using subdivision surfaces and PN. triangles for game applications

Subdivision curves and surfaces. Brian Curless CSE 557 Fall 2015

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

Real-Time Reyes Programmable Pipelines and Research Challenges

Fast Tessellated Rendering on Fermi GF100. HPG 2010 Tim Purcell

Review of Tuesday. ECS 175 Chapter 3: Object Representation

Computergrafik. Matthias Zwicker. Herbst 2010

Subdivision Surfaces

CS770/870 Fall 2015 Advanced GLSL

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

On Smooth Bicubic Surfaces from Quad Meshes

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

PN-triangle tessellation using Geometry shaders

6.837 Introduction to Computer Graphics Quiz 2 Thursday November 20, :40-4pm One hand-written sheet of notes allowed

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

Comparing Reyes and OpenGL on a Stream Architecture

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

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

Object representation

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

DirectX10 Effects. Sarah Tariq

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

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

08 - Designing Approximating Curves

Real-Time Hair Rendering on the GPU NVIDIA

Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces

A Continuous 3-D Medial Shape Model with Branching

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

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

Curved PN Triangles. Alex Vlachos Jörg Peters

Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation

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

Subdivision Surfaces. Homework 1: Questions/Comments?

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

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

All the Polygons You Can Eat. Doug Rogers Developer Relations

Introduction to Computer Graphics

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

A SIMD-efficient 14 Instruction Shader Program for High-Throughput Microtriangle Rasterization

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

Computer Graphics Introduction. Taku Komura

Advanced Modeling 2. Katja Bühler, Andrej Varchola, Eduard Gröller. March 24, x(t) z(t)

Polar Embedded Catmull-Clark Subdivision Surface

Transcription:

Approximate Catmull-Clark Patches Scott Schaefer Charles Loop

Approximate Catmull-Clark Patches Scott Schaefer Charles Loop Catmull-Clark Surface ACC-Patches

Polygon Models Prevalent in game industry Very fast to render Not smooth (faceted) Complicated LOD management High-resolution models require lots of band-width and computational resources

Goal: Fast Smooth Surfaces Eliminate faceting artifacts Animate low-res representation Let GPU worry about LOD Current Future

DirectX 10 11 Pipeline Input Assembler Vertex Buffer Index Buffer Vertex Shader Texture Geometry Hull Shader Rasterizer/ Tessellator Interpolator Texture Stream Output Domain Pixel Shader Texture Output Merger Depth/Stencil Render Target

Tessellator Unit Tessellator

Tessellator Unit Tessellator

Domain Shader Tessellation factor per edge Called for each vertex of the sample pattern Early form in the XBox 360 DS_OUT DS(float2 uv : BARYCENTRIC, int patchind : INDEX) { DS_OUT Out = (DS_OUT)0; // fetch data for patch #patchind // evaluate patch at uv } return Out;

Subdivision Surfaces Used in movie and game industries Supported by most 3D modeling software Toy Story Disney / Pixar Geri s Game Pixar Animation Studios

Subdivision Surfaces Set of rules S that recursively act on a shape p 0 p k+1 = S p k Arbitrary topology surfaces Smooth everywhere 0 p 1 p k p

Catmull-Clark Surfaces 6 ) 3( 1 3 2 u u u 6 3 u 6 3 6 4 3 2 u u 6 ) (1 3 u 6 ) (1 3 v 6 3 6 4 3 2 v v 6 ) 3( 1 3 2 v v v 6 3 v

Catmull-Clark Surfaces

Catmull-Clark Surfaces

Catmull-Clark Surfaces

Catmull-Clark Surfaces

Catmull-Clark Surfaces

Catmull-Clark Surfaces

Catmull-Clark Surfaces

Stam s Exact Evaluation Algorithm Subdivide until x is in ordinary region S i P x

Stam s Exact Evaluation Algorithm Subdivide until x is in ordinary region S i P x

Stam s Exact Evaluation Algorithm Subdivide until x is in ordinary region S i P x

Stam s Exact Evaluation Algorithm Subdivide until x is in ordinary region S i P Extract B-spline control points and evaluate at x x

Stam s Exact Evaluation Algorithm Subdivide until x is in ordinary region V i V 1 P Extract B-spline control points and evaluate at x x

Performance Issues Limits # extraordinary verts

Performance Issues Limits # extraordinary verts

Performance Issues Limits # extraordinary verts Lots of shader constants V i ( V 1 P ) Valence Constants 3 882 4 1040 5 1206 6 1380 7 1562 8 1752

Solution: Polynomial Patches Replace extraordinary patches with polynomials Geometry patch (degree 3x3) 2 Tangent patches (degree 3x2) Based on conversion from B-spline to Bezier form

Solution: Polynomial Patches Replace extraordinary patches with polynomials Geometry patch (degree 3x3) 2 Tangent patches (degree 3x2) Based on conversion from B-spline to Bezier form b03 b13 b23 b33 b02 b12 b22 b32 b01 b11 b21 b31 b00 b10 b20 b30

Solution: Polynomial Patches Replace extraordinary patches with polynomials Geometry patch (degree 3x3) 2 Tangent patches (degree 3x2) Based on conversion from B-spline to Bezier form u03 u u 13 23 u02 u u 12 22 u01 u11 u21 u00 u u 10 20

Solution: Polynomial Patches Replace extraordinary patches with polynomials Geometry patch (degree 3x3) 2 Tangent patches (degree 3x2) Based on conversion from B-spline to Bezier form v02 v12 v22 v32 v01 v11 v21 v31 v00 v10 v20 v30

ACC Geometry Patches Use knot-insertion rules from ordinary case At corners, use limit masks

ACC Geometry Patches Use knot-insertion rules from ordinary case At corners, use limit masks

ACC Geometry Patches Use knot-insertion rules from ordinary case At corners, use n limit masks n 5 2 n 5 2 1 n 5 n 5

ACC Geometry Patches Use knot-insertion rules from ordinary case At corners, use n limit masks n 5 1 1 n 5 2( n 5) 2 n 5 1 1 n 5 2( n 5)

ACC Geometry Patches Use knot-insertion rules from ordinary case At corners, use n( n 5) limit masks n 4 n 5 1 1 n( n 5) 4 4 1 n( n 5) n( n 5) n( n 5) 4 n( n 5) n( n 5) 1 n( n 5) 4 n( n 5) 1 n( n 5) 4 1 n ( n 5) n( n 5)

ACC Geometry Patches Use knot-insertion rules from ordinary case At corners, use limit masks Smooth everywhere except edges touching extraordinary vertices 1 n( n 5) 4 n( n 5) 1 n( n 5) 4 n( n 5) 1 n( n 5) 1 n( n 5) 4 n( n 5) 4 n( n 5) n n 5 1 n( n 5) 4 n( n 5) 4 1 n ( n 5) n( n 5)

ACC Tangent Patches Continuous normal field needed for displacement mapping Create two tangent patches (u/v) for each position patch

ACC Tangent Patches Continuous normal field needed for displacement mapping Create two tangent patches (u/v) for each position patch

ACC Tangent Patches Continuous normal field needed for displacement mapping Create two tangent patches (u/v) for each position patch v

ACC Tangent Patches Continuous normal field needed for displacement mapping Create two tangent patches (u/v) for each position patch v

ACC Tangent Patches Continuous normal field needed for displacement mapping Create two tangent patches (u/v) for each position patch v

ACC Tangent Patches v10 v00 v 20 v 30 u u 00 10 u 20 ˆv 10 ˆv 20 ˆv 00 ˆv 30 v( t) u( t) vˆ( t) u( t) v

ACC Tangent Patches v10 v00 v 20 v 30 u u 00 10 u 20 v v ˆv 10 ˆv 20 ˆv 00 10 20 ci 2 3 1 3 c c 0 0 u u 10 20 cos 2 n i 1 3 2 3 c u 1 c u 1 ˆv 30 00 10 v

Examples

Examples ACC Geometry Patches

Examples ACC Geo/Tan Patches

Examples Catmull-Clark Surface

Examples

Examples ACC Geometry Patches

Examples ACC Geo/Tan Patches

Examples Catmull-Clark Surface

Examples

Examples ACC Geometry Patches

Examples ACC Geo/Tan Patches

Examples Catmull-Clark Surface

Examples ACC Geo/Tan Catmull-Clark

Examples

Examples ACC Geometry Patches

Examples ACC Geo/Tan Patches

Examples Catmull-Clark Surface

Comparison Better Worse

Comparison Better Worse

Comparison Better Worse

Comparison Better Worse

Conclusions Creates visually smooth surfaces Suitable for displacement/normal mapping Handles any number of extraordinary vertices Simple to evaluate Demo part of DirectX March 2008 SDK