tessalation started
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
// tessellation control shader
|
||||
#version 450 core
|
||||
|
||||
// specify number of control points per patch output
|
||||
// this value controls the size of the input and output arrays
|
||||
layout (vertices=4) out;
|
||||
|
||||
layout (location=0) in VS_OUT
|
||||
{
|
||||
vec2 vsUV;
|
||||
vec4 vsWorldPos;
|
||||
vec3 vsNormal;
|
||||
vec3 vsBiTangent;
|
||||
vec3 vsTangent;
|
||||
mat3 vsTBN;
|
||||
flat uint vsChunkID;
|
||||
flat uint vsMaterialID;
|
||||
}tc_in[];
|
||||
|
||||
layout (location=0) out TC_OUT
|
||||
{
|
||||
vec2 vsUV;
|
||||
vec4 vsWorldPos;
|
||||
vec3 vsNormal;
|
||||
vec3 vsBiTangent;
|
||||
vec3 vsTangent;
|
||||
mat3 vsTBN;
|
||||
flat uint vsChunkID;
|
||||
flat uint vsMaterialID;
|
||||
}tc_out[];
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
// ----------------------------------------------------------------------
|
||||
// pass attributes through
|
||||
gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
|
||||
tc_out[gl_InvocationID].vsUV = tc_in[gl_InvocationID].vsUV;
|
||||
tc_out[gl_InvocationID].vsWorldPos = tc_in[gl_InvocationID].vsWorldPos;
|
||||
tc_out[gl_InvocationID].vsNormal = tc_in[gl_InvocationID].vsNormal;
|
||||
tc_out[gl_InvocationID].vsBiTangent = tc_in[gl_InvocationID].vsBiTangent;
|
||||
tc_out[gl_InvocationID].vsTangent = tc_in[gl_InvocationID].vsTangent;
|
||||
tc_out[gl_InvocationID].vsTBN = tc_in[gl_InvocationID].vsTBN;
|
||||
tc_out[gl_InvocationID].vsChunkID = tc_in[gl_InvocationID].vsChunkID;
|
||||
tc_out[gl_InvocationID].vsMaterialID = tc_in[gl_InvocationID].vsMaterialID;
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// invocation zero controls tessellation levels for the entire patch
|
||||
if (gl_InvocationID == 0)
|
||||
{
|
||||
|
||||
int divs = 63;
|
||||
gl_TessLevelOuter[0] = divs;
|
||||
gl_TessLevelOuter[1] = divs;
|
||||
gl_TessLevelOuter[2] = divs;
|
||||
gl_TessLevelOuter[3] = divs;
|
||||
gl_TessLevelInner[0] = divs;
|
||||
gl_TessLevelInner[1] = divs;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user