Làm thế nào tôi có thể tạo một shader hình học có thể xử lý nhiều nguyên thủy? Ví dụ: khi tạo một shader hình học cho các hình tam giác, tôi định nghĩa một bố cục như sau:
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
Nhưng nếu tôi sử dụng trình đổ bóng này thì các đường hoặc điểm sẽ không hiển thị. Vì vậy, thêm:
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
layout(lines) in;
layout(line_strip, max_vertices=2) out;
Trình đổ bóng sẽ biên dịch và chạy, nhưng sẽ chỉ hiển thị các dòng (hoặc bất cứ điều gì nguyên thủy cuối cùng được xác định là).
Vậy làm thế nào để tôi xác định một shader hình học duy nhất sẽ xử lý nhiều loại nguyên thủy? Hoặc là không thể và tôi cần phải tạo nhiều chương trình đổ bóng và thay đổi chương trình đổ bóng trước khi vẽ từng loại?