Tôi đang cố gắng để viết một hình học đơn giản shader những gì chỉ đi qua đỉnh trước khi cố gắng sửa đổi công cụ.GLSL 1.5 Hình học đơn giản shader
vertex của tôi là
#version 150 core
in vec3 inPosition;
in vec4 inColor;
out vec4 vertexColor;
void main() {
vertexColor = inColor;
gl_Position = vec4(inPosition, 1.0);
}
geometry shader của tôi là
#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();
}
Và shader mảnh của tôi là
#version 150 core
in vec4 vertexColor;
out vec4 fragColor;
void main() {
fragColor = vertexColor;
}
Nếu không có sự đổ bóng hình học liên kết trong, mọi thứ đều hoạt động tốt. Tuy nhiên, khi tôi liên kết trong trình đổ bóng hình học, nó sẽ ngừng hoạt động. Tôi đang thiếu cái gì? Trình tạo hình học của tôi có yêu cầu đầu vào cho vertexColor
từ trình đổ bóng đỉnh của tôi không và nếu được thực hiện thì sao?
http://en.wikipedia.org/wiki/GLSL#A_sample_trivial_GLSL_geometry_shader? – n0rd
Điều đó không trả lời được câu hỏi của tôi. Trình đổ bóng hình học của tôi chính xác giống như hình được liệt kê trên trang đó ngoại trừ vòng lặp for đã bị xóa. Tuy nhiên nó không hoạt động. Không có gì được rút ra. Ngoài ra các vertex và fragment shaders hiển thị trên trang đó là cho glsl 1.20 Có một vấn đề liên kết tất cả những điều này với nhau mà tôi không hiểu và tôi có thể tìm thấy bất kỳ thông tin nào về cách khắc phục. – user1139069