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.

Slides:



Advertisements
Similar presentations
Tesselation Shaders. Tesselation  dictionary definition of tesselate is the forming of a mosaic.
Advertisements

COMPUTER GRAPHICS SOFTWARE.
D3D11 Tessellation Sarah Tariq NVIDIA
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Graphics Pipeline.
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
CHAPTER 12 Height Maps, Hidden Surface Removal, Clipping and Level of Detail Algorithms © 2008 Cengage Learning EMEA.
Results / Compared to Relief Mapping It does not scale linearly with screen coverage as does the other techniques. However, for larger displacements, it.
 The success of GL lead to OpenGL (1992), a platform-independent API that was  Easy to use  Close enough to the hardware to get excellent performance.
Introduction to Geometry Shaders Patrick Cozzi Analytical Graphics, Inc.
Modelling. Outline  Modelling methods  Editing models – adding detail  Polygonal models  Representing curves  Patched surfaces.
2003 by Jim X. Chen: Introduction to Modeling Jim X. Chen George Mason University.
Introduction to Geometry Shaders Patrick Cozzi Analytical Graphics, Inc.
Content Subdivision First some basics (control point polygon, mesh)
Pixel Shader Vertex Shader The Real-time Graphics Pipeline Input Assembler Rasterizer Output Merger.
11/08/00 Dinesh Manocha, COMP258 Subdivision Curves & Surfaces Work of G. de Rham on Corner Cutting in 40’s and 50’s Work of Catmull/Clark and Doo/Sabin.
Evolution of the Programmable Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Smooth Geometry Images Frank Losasso, Hugues Hoppe, Scott Schaefer, Joe Warren.
3D Rendering & Algorithms__ Sean Reichel & Chester Gregg a.k.a. “The boring stuff happening behind the video games you really want to play right now.”
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Introduction to Modeling. What is CG Modeling? Combination of Sculpting, Architecture, Drafting, and Painting. The core component of computer animation.
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
Curves and Surfaces (cont’) Amy Zhang. Conversion between Representations  Example: Convert a curve from a cubic B-spline curve to the Bézier form:
Modeling. Topology Topology describes an object’s shape, number of spans, and degree. For polygon objects this includes vertex positions.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
CHAPTER 4 Window Creation and Control © 2008 Cengage Learning EMEA.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
CSE 381 – Advanced Game Programming Basic 3D Graphics
4.7. I NSTANCING Introduction to geometry instancing.
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.
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.
Week 11 - Thursday.  What did we talk about last time?  Image processing  Blurring  Edge detection  Color correction  Tone mapping  Lens flare.
COMP 261 Lecture 16 3D Rendering. input: set of polygons viewing direction direction of light source(s) size of window. output: an image Actions rotate.
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
Surface displacement, tessellation, and subdivision Ikrima Elhassan.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
1 Graphics CSCI 343, Fall 2015 Lecture 4 More on WebGL.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
Maths & Technologies for Games DirectX 11 – New Features Tessellation & Displacement Mapping CO3303 Week 19.
View-dependent Adaptive Tessellation of Spline Surfaces
GPH 338 Computer Animation Survey
- 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.
Higher Order Surfaces in OpenGL with NV_evaluators Cass Everitt
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Maths & Technologies for Games Graphics Optimisation - Batching CO3303 Week 5.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
Ray Tracing using Programmable Graphics Hardware
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Models and Architectures 靜宜大學 資訊工程系 蔡奇偉 副教授 2012.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
Applications and Rendering pipeline
How to use a Pixel Shader CMT3317. Pixel shaders There is NO requirement to use a pixel shader for the coursework though you can if you want to You should.
GPU Architecture and Its Application
Graphics Processing Unit
Introduction to OpenGL
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
Introduction to Computer Graphics with WebGL
Introduction to geometry instancing
Chapter XVIII Surface Tessellation
RADEON™ 9700 Architecture and 3D Performance
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
03 | Creating, Texturing and Moving Objects
Introduction to OpenGL
Presentation transcript:

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 a triangular mesh ◦ A triangle is always a plane  Thus, the triangles in a mesh can be tessellated to increase detail

 In software tessellation provides an interesting way of enhancing detail  In hardware tessellation allows a simple mesh to be sent down to the GPU, converted to a complex mesh, and then displayed ◦ Decrease memory to the card ◦ Increase rendering performance by decreasing the number of polygons through the full pipeline

 With programmable tessellation what objects get tessellated can be decided by the programmer  This allows for objects closer to the screen to be tessellated while objects far away are not ◦ Detail actually increases as objects get closer instead of just getting bigger ◦ Resources aren’t wasted on meshes that are too far away for tessellation effects to be viewed

 Xbox 360: ATI Xenos graphics chipset ◦ The first geometry tessellation unit ◦ “Programmable”  ATI Radeon HD 5xxx series ◦ The first DX11 card  NVIDIA “Fermi” ◦ NVIDIA’s first DX11 card

 DirectX 9: Dynamic Terrain Rendering on GPU Using Real-Time Tessellation. Natalya Tatarchuk. ATI Research published in ShaderX7  DirectX 10: Instanced Tessellation in DirectX10. Andrei Tatarinov. GDC ‘08  DirectX 11: New pipeline features three tessellation stages, 2 are programmable

Natalya Tatarchuk

 Goal: Create a software library that would allow tessellation exclusively on ATI cards.  Product: ATI GPU Tessellation library. An ATI only library that worked in conjunction with DirectX 9 (also 10.x) and was capable of tessellating meshes

 A flat 900 polygon grid becomes a 1,000,000 polygon mountain-scape at inter-actable rates

Andrei Tatarinov

 In the past complex shading models were used to hide lack of detail in a polygonal mesh  They can only do so much…

 The solution is to use on-the-card tessellation to increase the physical detail in the meshes

 A highly detailed mesh can be sent to the card as a simple mesh and a displacement map  Trades ALU operations for memory bandwidth  ALUs scale faster than bandwidth

 Tessellation can also be used by Animators to make their job easier ◦ Animate a low polygon mesh ◦ Tessellate and get detail for free

 New “patch” primitive defined by a set of control points  Operation called refinement generates triangle from each patch

 Per-patch operations ◦ Level of Detail computation ◦ Transfer of Basis  Bezier -> B-spline  B-spline -> NURBS  Etc.  Generating topology ◦ Generates a set of (u,v)-points in the tessellation domain

 Programmable hardware tessellation ◦ 3 stages  2 programmable shaders  1 fixed function configurable tessellator ◦ New primitive “patch”  Curved surface  Easily converted to triangles

 Programmable tessellation can be imitated using DirectX 10 features: ◦ Geometry Shader and Instancing 2.0

 Geometry Shader cannot do tessellation itself ◦ Outputs triangles serially ◦ Maximum output size of 1024 scalars  16x16 grid of float4s  Instead we can save small pre-tessellated patches as instances

 The pre-tessellated patches represent the results of tessellating every input patch  This data is combined in the vertex shader to produce the desired effects

 Vertex shader inputs are too small to handle an entire mesh ◦ Must be bound to shared buffers  The tessellation mesh instances are of varying quality, a LoD factor is used to determine which mesh to select

 Tessellation factors can change across a mesh as each patch edge has its own tessFactor.

 Per-patch tessellation factors requires multiple draw calls (it won’t in DX11)

 Since all of the meshes are stored in vertex buffers the only inputs are the primitive id and the vertex id  U = Vertex ID mod LoD  V = Vertex ID div LoD  LoD is based on vertex position

Mesh: 6118 patches, 256 vertices each, 8800 GT

 Tessellation presents a means of significantly increasing detail without a performance cost  Tessellation is possible with DirectX 10  Some of the hiccups with the DirectX 10 implementation will be fixed by future hardware implementations

Kevin Gee

 D3D11 HW Feature ◦ Required for DirectX 11 compatibility  D3D11 Only ◦ No direct backwards compatibility  Fundamental primitive is “patch” ◦ Not triangles  Superset of Xbox 360 tessellation

 3 new stages added for Tessellation

 Programmable  Takes patch control points as an input  2 Output paths: ◦ Output of basis converted control points to Domain Shader ◦ Output of the control points, a tessellation factor, and tessellation modes to the Tessallator

 Tessellator operates on a per patch basis  Again 2 output paths: ◦ Outputs U,V points to Domain Shader for further shading ◦ Outputs topology for primitive assembly

 Either receives a set of points from the Hull Shader or the Tessellator.  The Domain Shader is invoked once per point  It outputs verticies

Images courtesy of ATI

 Creates a new authoring pipeline ◦ 1-pass process from input to optimally tessellated mesh ◦ Makes both animation and real-time applications faster ◦ Allows for a higher level of detail Images courtesy of NVIDIA Gamefest 2008

Ignacio Castano

 Tessellation lets us send down low polygon meshes to save memory and bandwidth which are the main bottlenecks

 Tessellation allows for view dependent levels of detail so the GPU doesn’t waste time rendering unseen triangles.

 Subdivision Surfaces are a well explored technique for increasing the detail of a mesh.  Previous GPU implementations required multiple GPU passes  The new DirectX 11 tessellation hardware allows us to do subdivision surfaces in a single pass

 The hull shader is used for control point evaluation.  Input is a face and its neighboorhood  Output is a regular bicubic bezier patch of the face

 The Domain Shader evaluates the bicubic Bezier patches and corresponding tangents  Reorders face patches for consistent adjacency  Requires 69 instructions

 T ATARCHUK N.: Dynamic Terrain Rendering on GPU Using Real-Time Tessellation. ShaderX 7 (Dec. 2008).  Tatarinov, A.: Instanced Tessellation in DirectX10. GDC February  Gee, K.: Introduction to the Direct3D 11 Graphics Pipeline. Nvision  Castano, I.: Tessellation of Displaced Subdivision Surfaces in DX11. Gamefest 2008