Name
gp5tep - OpenGL tessellation evaluation profile for NVIDIA GeForce 400/500 Series, OpenGL 4.x Quadro
Synopsis
gp5tep
Description
This OpenGL profile corresponds to tessellation evaluation functionality
introduced by NVIDIA's 5th generation of assembly instruction sets.
The compiler output for this profile conforms to the assembly format
defined by NV_tessellation_program, NV_gpu_program5 and
ARB_vertex_program.
3D Api Dependencies
Requires OpenGL support for the NV_gpu_program5 extension.
Opengl Extension Specifications
http://www.opengl.org/registry/specs/NV/gpu_program5.txt
http://www.opengl.org/registry/specs/NV/tessellation_program5.txt
Profile Options
All gp4 profile options are also available in gp5tep.
Tessellation Evaluation Domain-Specific Gp5 Options
Normally the options below to specify primitive input and output parameters are
better specified as a profile modifier preceding the Cg entry function.
The tessellation evaluation shader will fail to load if either TRIANGLES, QUADS, or ISOLINES is not specified,
and PATCH_1 ... PATCH_32 is not specified as profile options for the primitive type.
- PATCH_1 ... PATCH_32
-
This specifies the number of control points associated with this patch.
Must be 1 - 32 control points.
This option affects the size of the AttribArrays associated with the input varying parameters.
- TRIANGLES
-
Specifies that the input patch is a triangular patch.
This affects the data type for the input varying semantics UV and TESSCOORD.
- QUADS
-
Specifies that the input patch is a quadrangular patch.
This affects the data type for the input varying semantics UV and TESSCOORD.
- ISOLINES
-
The patch is drawn as a set of lines going in one parametric direction.
- POINT_MODE
-
Specifies that the tessellation primitive generator will emit points for each vertex in the subdivided
primitive instead of lines or triangles.
- ORDER_CCW
-
Specifies counter clock-wise ordering of the output triangles emitted by the tessellation primitive generator.
ORDER_CW is used by default.
- ORDER_CW
-
Specifies clock-wise ordering of the output triangles emitted by the tessellation primitive generator.
ORDER_CW is used by default.
- SPACE_FRACTIONAL_EVEN
-
Specifies that the spacing of vertices emitted by the tessellation primitive generator can be fractional (non-integer)
values, and the even spacing algorithm is used to perform the tessellation.
Default is SPACE_EQUAL.
- SPACE_FRACTIONAL_ODD
-
Specifies that the spacing of vertices emitted by the tessellation primitive generator can be fractional (non-integer)
values, and the odd spacing algorithm is used to perform the tessellation.
SPACE_EQUAL is used by default.
- SPACE_EQUAL
-
Specifies that the spacing of vertices emitted by the tessellation primitive generator are clamped to integer values.
This is the default option.
Semantics
Varying Input Semantics
The varying input semantics in the gp5tep profile correspond to the respectively named varying output semantics
of the gp5vp profile.
All input semantics must use the AttribArray template-style syntax.
The reason for this is because an evaluation shader must be able to see outputs of all control points of the patch to evaluate its unique
position/outputs.
The size of this AttribArray is determined by the PATCH_1 ... PATCH_32 profile parameter.
Example defining an input varying parameter which are output attributes of the control points' gp5tcp invocations:
AttribArray< float3 > position : POSITION
There are additional input semantics specific to a gp5tep shader and these do not use an AttribArray type for input.
They are as follows:
Binding Semantics Name Corresponding Data
TESSCOORD Input u,v,w coordinates for the current vertex in a triangle patch.
UV Input u,v coordinates for the current vertex in a quad patch.
PATCH Input per-patch attribute.
See Also
gp5,
gp5tcp,
gp5vp,
gp5gp,
gp5fp
|