![]() |
VPP
0.7
A high-level modern C++ API for Vulkan
|
Tessellation evaluation shader interface. More...
#include <vppLangIntInOut.hpp>
Public Attributes | |
gl_perVertex | inVertices [] |
In: vertices of the evaluated patch. | |
Int | inPatchVertices |
In: number of vertices in current input patch (inVertices array size). | |
Int | inPrimitiveId |
In: index of the input patch in currently rendered set of patches. | |
Vec3 | inTessCoord |
In: coordinates of currently evaluated point, inside triangular or rectangular domain. More... | |
Float | inTessLevelOuter [4] |
In: outer tessellation levels. | |
Float | inTessLevelInner [2] |
In: inner tessellation levels. | |
gl_perVertex | outVertex |
Out: computed vertex data. | |
Additional Inherited Members | |
![]() | |
void | DebugCodeDump () |
Enables diagnostic dump of intermediate SPIR-V code for this shader. More... | |
template<class ValueT > | |
void | DebugProbe (const ValueT &value, const IVec2 &coords, const VkExtent3D &extent) |
Adds a debug probe to dump an expression value during shader execution. More... | |
Tessellation evaluation shader interface.
An object of this class is provided to user-defined tesselation evaluation shader. It is usable only in GPU-side tessellation eval shader code. Its main purpose is to give access to built-in shader variables and some special operations.
By convention, member names starting with in
denote read-only variables, while the out
prefix mean that the variable may be only written to.
Vec3 vpp::TessEvalShader::inTessCoord |
In: coordinates of currently evaluated point, inside triangular or rectangular domain.
In case of a triangular patch, this field contains barycentric coordinates relative to the corners. All three components are used.
In case of a rectangular patch, this field contains rectangular coordinates relative to the origin. Only first two components are used, the third one is equal to zero.
In either case, every coordinate falls into [0, 1] range.