Higher Order Surfaces in OpenGL with NV_evaluators Cass Everitt

Slides:



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

D3D11 Tessellation Sarah Tariq NVIDIA
CS 352: Computer Graphics Chapter 7: The Rendering Pipeline.
Computer Graphics(Fall 2003) COMS 4160, Lecture 7: OpenGL 3 Ravi Ramamoorthi Many slides courtesy Greg Humphreys.
3D Graphics Rendering and Terrain Modeling
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
Cubic Curves CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2006.
Lecture 29 of 42 Bezier Curves and Splines Wednesday, 02 April 2008
The Programmable Graphics Hardware Pipeline Doug James Asst. Professor CS & Robotics.
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.
CHAPTER 10 Curves and Surfaces Vivian by Richard S. Wright Jr.
Modelling. Outline  Modelling methods  Editing models – adding detail  Polygonal models  Representing curves  Patched surfaces.
Point Rendering for Impostors Andreas Bærentzen IMM.
Content Subdivision First some basics (control point polygon, mesh)
Status – Week 277 Victor Moya.
Drawing Parametric Curves Jean-Paul Mueller. Curves - The parametric form of a curve expresses the value of each spatial variable for points on the curve.
Status – Week 283 Victor Moya. 3D Graphics Pipeline Akeley & Hanrahan course. Akeley & Hanrahan course. Fixed vs Programmable. Fixed vs Programmable.
1 Representing Curves and Surfaces. 2 Introduction We need smooth curves and surfaces in many applications: –model real world objects –computer-aided.
Curve Surfaces June 4, Examples of Curve Surfaces Spheres The body of a car Almost everything in nature.
Parametric Curves & Surfaces
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.
11/19/02 (c) 2002, University of Wisconsin, CS 559 Last Time Many, many modeling techniques –Polygon meshes –Parametric instancing –Hierarchical modeling.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
CS559: Computer Graphics Lecture 33: Shape Modeling Li Zhang Spring 2008.
A Non-Photorealistic Fragment Shader in OpenGL 2.0 Bert Freudenberg Institut für Simulation und Graphik University of Magdeburg, Germany.
1 Edgar L. Coffey Applied Research Associates, Inc. November 14, 2006 Advanced Features.
1 Bezier Curves © Jeff Parker, Nov Goal We often wish to draw generate curves Through selection of arbitrary points Smooth (many derivatives)
Week 11 - Thursday.  What did we talk about last time?  Image processing  Blurring  Edge detection  Color correction  Tone mapping  Lens flare.
Surface displacement, tessellation, and subdivision Ikrima Elhassan.
1 Dr. Scott Schaefer Coons Patches and Gregory Patches.
Lecture by: Martin Deschamps CSE 4431
Subdivision Schemes Basic idea: Start with something coarse, and refine it into smaller pieces for rendering –We have seen how subdivision may be used.
Computer Graphics 2 Lecture 7: Texture Mapping Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
Review of OpenGL Basics
Parametric Surfaces Define points on the surface in terms of two parameters Simplest case: bilinear interpolation s t s x(s,t)x(s,t) P 0,0 P 1,0 P 1,1.
1 Polygonal Techniques 이영건. 2 Introduction This chapter –Discuss a variety of problems that are encountered within polygonal data sets The.
1 Bezier Curves and Surfaces © Jeff Parker, Nov 2009.
GPH 338 Computer Animation Survey
Image Synthesis Rabie A. Ramadan, PhD 4. 2 Review Questions Q1: What are the two principal tasks required to create an image of a three-dimensional scene?
Intro to OpenGL: Vertices and Drawing
1 Welcome Alireza Moghaddam Humber College Lecture 1 Game 540 Alireza Moghaddam
1 Subdivision Depth Computation for Catmull-Clark Subdivision Surfaces Fuhua (Frank) Cheng University of Kentucky, Lexington, KY Junhai Yong Tsinghua University,
Bézier Curves & Surfaces Glenn G. Chappell U. of Alaska Fairbanks CS 481/681 Lecture Notes Monday, March 1, 2004.
04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
11/6/ :55 Graphics II Introduction to Parametric Curves and Surfaces Session 2.
11/24/ :45 Graphics II Shadow Maps Reflections Session 5.
Week 4 Low polygon modelling
Background image by chromosphere.deviantart.com Fella in following slides by devart.deviantart.com DM2336 Programming hardware shaders Dioselin Gonzalez.
Computing & Information Sciences Kansas State University Lecture 30 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 30 of 42 Wednesday, 09.
Module 05 –Bump mapping Module 05 – Bump mapping Module 05 Advanced mapping techniques: Bump mapping.
Introduction to Parametric Curve and Surface Modeling.
Shaders, part 2 alexandri zavodny.
Week 12 - Thursday CS361.
Chapter 6 GPU, Shaders, and Shading Languages
© University of Wisconsin, CS559 Fall 2004
© University of Wisconsin, CS559 Spring 2004
Max-Cut a b Edges cut: 8 w c d e 1.
Meshes.
GreedyMaxCut a b w c d e 1.
Coons Patches and Gregory Patches
Introduction to Meshes
Chapter XVIII Surface Tessellation
Introduction to Parametric Curve and Surface Modeling
Curves and Surfaces (I)
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
Introduction to Meshes
Presentation transcript:

Higher Order Surfaces in OpenGL with NV_evaluators Cass Everitt

Why surfaces? Higher order primitives Animation Level of Detail Bandwidth Filtering

Overview What are the “general evaluators” defined NV_evaluators? How do they differ from standard OpenGL evaluators? Important new features Per-edge tessellation control Fractional tessellation Support for all per-vertex attributes Direct support for triangular patches

What are the “general evaluators” defined by NV_evaluators? Like OpenGL evaluators, general evaluators can be used evaluate polynomial and rational bivariate functions defined relative to the Bezier basis

Why New Evaluators? OpenGL evaluators have not seen widespread use due to a variety of problems Difficult to optimize spec too strict on order of evaluation Incomplete support for all vertex attributes (particularly multiple texture coordinates) Difficult to use with adaptive LOD (tessellation scheme too rigid)

Why New Evaluators? (2) General evaluators address these issues Ease of optimization Support only 4-component maps Evaluate full range of all enabled maps at once Support all vertex attributes Provide more flexible tessellation schemes Eases varying LOD on adjacent patches Provides mechanism for smooth LOD Direct support for triangular patches

Per-Edge Tessellation Specification Easy to vary the tessellation across a patch Easy to render adjacent patches without cracks glMapParameterfvNV(GL_EVAL_2D_NV, GL_MAP_TESSELLATION_NV, edge_tess_ptr);

Four Independent Tessellation Factors

Generalized Tessellation is Important

Fractional Tessellation Not only is each edge’s tessellation independent, the tessellation does not have to be integral values! Enable smooth changes in LOD

Fractional Number of Segments Because of symmetry, edges always match if their control points and tessellation number are the same

Support for All Vertex Attributes A map can be applied to any numeric vertex attribute (0-15) with values as described below attribute number per-vertex Parameter per-vertex Command 4 secondary color glSecondaryColorEXT 5 Fog coordinate glFogCoordEXT 8 Texture coord 0 glMultiTexCoord 9 Texture coord 1 glMultiTexCoord 10 Texture coord 2 glMultiTexCoord 11 Texture coord 3 glMultiTexCoord 0 vertex position glVertex 1 vertex weights glVertexWeightEXT 2 normal glNormal 3 Primary color glColor 14 Texture coord 6 glMultiTexCoord 15 Texture coord 7 glMultiTexCoord 12 Texture coord 4 glMultiTexCoord 13 Texture coord 5 glMultiTexCoord

Triangular Patches are Necessary 3DStudio Max Patch outlines Hardware emulation

Direct Support for Triangular Patches Triangular patches can be converted to regular patches, but NV_evaluators provides support directly

Questions, comments, feedback Cass Everitt,