J'ai appris OpenGL (en fait OpenTK) depuis environ un mois et j'ai commencé à jouer avec des shaders de géométrie. J'ai d'abord écrit un shader beaucoup plus compliqué, qui n'a pas fonctionné, j'ai donc tout dépouillé d'un simple shader passthrough, ce qui ne marche toujours pas.GLSL Passthrough Geometry Shader
Vertex Shader:
#version 420 core
layout (location = 0) in vec3 position;
uniform mat4 transform;
void main()
{
gl_Position = transform * vec4(position, 1);
}
Géométrie Shader:
#version 420 core
layout (triangles) in;
layout (triangle_strip) out;
void main()
{
int i;
for(i = 0; i < gl_in.length(); i++)
{
gl_Position = gl_in[i].gl_Position;
EmitVertex();
}
EndPrimitive();
}
Fragment Shader:
#version 420 core
layout (binding = 0) uniform sampler2D diffuse;
layout(location = 0) out vec4 color;
void main()
{
color = vec4(1, 1, 1, 1);
}
Il devrait dessiner un carré blanc en bas à droite de la fenêtre, et sans le shader de la géométrie, c'est ce que je veux Je m'attends à Avec le Shader Geometry, il ne rend rien. Les journaux d'information montrent tout compile et liens bien.
Qu'est-ce qui me manque?
ne peut pas voir d'erreurs évidentes, mais avez-vous vérifié la compilation de shader et les erreurs de liaison? – Rabbid76
Oui, j'ai vérifié après chaque compilation et après la liaison; pas d'erreurs –
Essayez 'layout (triangle_strip, max_vertices = 3) out;' – Rabbid76