Name
gp5tcp - OpenGL tessellation control profile for NVIDIA GeForce 400/500 Series, OpenGL 4.x Quadro
Synopsis
gp5tcp
Description
This OpenGL profile corresponds to tessellation control 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 gp5tcp.
Tessellation Control Domain-Specific Gp5 Options
- PATCH_1 ... PATCH_32
-
Specify the number of control points associated with each patch.
Must be in the range [1,32].
The input varying AttribArrays parameter size is also this value.
The tessellation control shader will fail to load if PATCH_1 ... PATCH_32 is not specified as a profile option for the primitive type.
Usually the primitive input parameter is specified as a profile modifier preceding the Cg entry function.
Semantics
Varying Input Semantics
The varying input semantics in the gp5tcp profile correspond to the
respectively named varying output semantics of the gp5vp profile.
The exception is the CONTROLPOINT_ID semantic.
Binding Semantics Name Corresponding Data
CONTROLPOINT_ID An input integer corresponding to the control point's input order.
Varying Output Semantics
The varying output semantics in the gp5tcp profile correspond to the respectively named
varying input semantics of the gp5tep profile.
The two exceptions are the LOD parameters consumed by the tessellation primitive generator.
Binding Semantics Name Corresponding Data
EDGETESS Output float array corresponding to outer tessellation level.
(Size of array = 3 for triangle patches, 4 for quad patches.)
INNERTESS Output float array corresponding to inner tessellation level.
(Size of array = 1 for triangle patches, 2 for quad patches.)
PATCH Output per-patch attribute.
An index does not need to be specified for other attributes.
The output attributes are mapped to their corresponding control point array entry for subsequent shader stages.
For example the following will simply pass-through the control point's position to the evaluation shader:
void main(
in int id : CONTROLPOINT_ID,
in AttribArray<float3> inPositions : POSITION,
out position : POSITION)
{
position = inPositions[id];
}
See Also
gp5,
gp5tep,
gp5vp,
gp5gp,
gp5fp
|