Estoy tratando de escribir un sombreador de geometría simple que simplemente pasa a través de vértices antes de intentar modificar cosas.GLSL 1.5 Sombreador de geometría simple
Mi vertex shader es
#version 150 core
in vec3 inPosition;
in vec4 inColor;
out vec4 vertexColor;
void main() {
vertexColor = inColor;
gl_Position = vec4(inPosition, 1.0);
}
Mi shader de geometría es
#version 150 core
layout (triangles) in;
layout (triangle_strip, max_vertices=3) out;
void main() {
gl_Position = gl_in[0].gl_Position;
EmitVertex();
gl_Position = gl_in[1].gl_Position;
EmitVertex();
gl_Position = gl_in[2].gl_Position;
EmitVertex();
EndPrimitive();
}
Y mi fragmento shader es
#version 150 core
in vec4 vertexColor;
out vec4 fragColor;
void main() {
fragColor = vertexColor;
}
Sin el shader de geometría vinculado en, todo funciona bien. Sin embargo, cuando hago un enlace en el sombreador de geometría, deja de funcionar. ¿Qué es lo que me estoy perdiendo? ¿Mi sombreador Geometry requiere una entrada para el vertexColor
de mi sombreador de vértices y, de ser así, cómo se hace?
http://en.wikipedia.org/wiki/GLSL#A_sample_trivial_GLSL_geometry_shader? – n0rd
Eso no responde mi pregunta. Mi shader de geometría es exactamente el mismo que el que figura en esa página, con la excepción del bucle for eliminado. Sin embargo, no funciona. Nada se dibuja. También los sombreadores de vértices y fragmentos que se muestran en esa página son para glsl 1.20 Existe un problema al vincular todos estos elementos que no entiendo y no puedo encontrar información sobre cómo solucionarlo. – user1139069