저는 한 달 정도 OpenGL을 배웠고, 기하학 쉐이더로 게임을 시작했습니다. 원래는 더 복잡한 셰이더를 작성 했으므로 작동하지 않았습니다. 그래서 모든 것이 단순한 패스 스루 쉐이더로 제거되었습니다. 여전히 작동하지 않습니다.GLSL 패스 스루 기하학 쉐이더
버텍스 쉐이더 :
#version 420 core
layout (location = 0) in vec3 position;
uniform mat4 transform;
void main()
{
gl_Position = transform * vec4(position, 1);
}
지오메트리 쉐이더 :
#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();
}
조각 쉐이더 :
#version 420 core
layout (binding = 0) uniform sampler2D diffuse;
layout(location = 0) out vec4 color;
void main()
{
color = vec4(1, 1, 1, 1);
}
그것은 윈도우의 오른쪽 하단에 흰색 사각형을 그리고 한다 지오메트리 셰이더가 없다면, 그것은 무엇입니까? uld는 기대한다. Geometry Shader를 사용하면 아무것도 렌더되지 않습니다. 정보 로그는 모든 것이 컴파일되고 잘 링크되어 있음을 보여줍니다.
무엇이 누락 되었습니까?
은 명백한 오류를 볼 수 없지만 셰이더 컴파일 및 링크 오류를 확인 했습니까? – Rabbid76
그래, 각 컴파일 후에 링크를 확인했다. 오류 없음. –
'layout (triangle_strip, max_vertices = 3)을 시도해라. ' – Rabbid76