Tessellation makes point

Started by
2 comments, last by a_dipino 11 years, 10 months ago
[color=#000000][font=Arial,]A little problem with my tessellation shader. I try to implement a simple tessellation shader but it only makes points.[/font]
[color=#000000][font=Arial,]Here's my vertex shader :[/font]

[source lang="cpp"]out vec4 ecPosition;
out vec3 ecNormal;
void main( void )
{
vec4 position = gl_Vertex;

gl_Position = gl_ModelViewProjectionMatrix * position;
ecPosition = gl_ModelViewMatrix * position;
ecNormal = normalize(gl_NormalMatrix * gl_Normal);
}[/source]


[color=#000000][font=Arial,]My tessellation control shader :[/font]

[source lang="cpp"]layout(vertices = 3) out;
out vec4 ecPosition3[];
in vec3 ecNormal[];
in vec4 ecPosition[];
out vec3 myNormal[];
void main()
{
gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
myNormal[gl_InvocationID] = ecNormal[gl_InvocationID];
ecPosition3[gl_InvocationID] = ecPosition[gl_InvocationID];
gl_TessLevelOuter[0] = float(4.0);
gl_TessLevelOuter[1] = float(4.0);
gl_TessLevelOuter[2] = float(4.0);
gl_TessLevelInner[0] = float(4.0);
}[/source]


[color=#000000][font=Arial,]And my Tessellation Evaluation shader:[/font]

[source lang="cpp"]layout(triangles, equal_spacing, ccw) in;
in vec3 myNormal[];
in vec4 ecPosition3[];
out vec3 ecNormal;
out vec4 ecPosition;

void main()
{
float u = gl_TessCoord.x;
float v = gl_TessCoord.y;
float w = gl_TessCoord.z;
vec3 position = vec4(gl_in[0].gl_Position.xyz * u +
gl_in[1].gl_Position.xyz * v +
gl_in[2].gl_Position.xyz * w );
vec3 position2 = vec4(ecPosition3[0].xyz * u +
ecPosition3[1].xyz * v +
ecPosition3[2].xyz * w );
vec3 normal = myNormal[0] * u +
myNormal[1] * v +
myNormal[2] * w );
ecNormal = normal;
gl_Position = vec4(position, 1.0);
ecPosition = vec4(position2, 1.0);
}[/source]


[color=#000000][font=Arial,]Here's a screenshot : http://img4.imagesha...nstitrektht.png[/font]
[color=#000000]Thanks all!
Advertisement
For me your image is almost pitch black...
Do you set the primitives to GL_PATCHES and set the glPatchParameteri ?
Yes I have set all the parameters.

This topic is closed to new replies.

Advertisement