Download presentation
Presentation is loading. Please wait.
Published byJemimah York Modified over 9 years ago
1
Higher Order Surfaces in OpenGL with NV_evaluators Cass Everitt cass@nvidia.com
2
Why surfaces? Higher order primitives Animation Level of Detail Bandwidth Filtering
3
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
4
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
5
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)
6
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
7
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);
8
Four Independent Tessellation Factors
9
Generalized Tessellation is Important
10
Fractional Tessellation Not only is each edge’s tessellation independent, the tessellation does not have to be integral values! Enable smooth changes in LOD
11
Fractional Number of Segments 12.0 12.5 13.0 13.5 14.0 Because of symmetry, edges always match if their control points and tessellation number are the same
12
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
13
Triangular Patches are Necessary 3DStudio Max Patch outlines Hardware emulation
14
Direct Support for Triangular Patches Triangular patches can be converted to regular patches, but NV_evaluators provides support directly
15
Questions, comments, feedback Cass Everitt, cass@nvidia.comcass@nvidia.com www.nvidia.com/developer
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.