Это геометрический шейдер, который я сделал, который из моего понимания должен просто передать 3 вершины на фрагмент-шейдер? Когда я удаляю geom shader и передаю значения прямо в frag shader, он работает и отображает то, что я хочу. Я рисую местности с треугольниками, каждый вызов отрисовки проходит 6 вершин (2 треугольники) через, возможно, это что-то делать с ним, однако я не могу понять, что такоеГеометрия проходит через шейдер, не отображая ничего, однако просто использование шейдера frag и vert отображает то, что я рисую
#version 330
layout(triangles) in;
layout(triangle_strip, max_vertices = 3)out;
in float gHeight;
in vec4 gSurfacePosition;
in float gTerrainHeight;
in vec2 gTexCoords[3];
in vec4 gNormal[3];
out float oTerrainHeight;
out float oHeight;
out vec4 oNormal;
out vec4 oSurfacePosition;
out vec2 oTexCoords;
void main()
{
oSurfacePosition=gSurfacePosition;
oHeight=gHeight;
oTerrainHeight=gTerrainHeight;
for(int i = 0; i < 3; i++)
{
gl_Position = gl_in[i].gl_Position;
oNormal = gNormal[i];
oTexCoords = gTexCoords[i];
EmitVertex();
}
}
Вы проверили ошибки компиляции? Потому что я уверен, что GS не может скомпилировать. И это, конечно, ничего не может сделать. –
Да, он не предназначен для ВСЕХ, это просто проход, да, он компилируется. – galaban