未知布局说明符'三角形'

时间:2015-11-19 21:15:29

标签: opengl geometry glsl shader

我刚刚开始测试几何着色器。我想为每个点绘制一个三角形。这是我的着色器:

#version 150

layout (points) in;
layout(triangles, max_vertices = 3) out;

void main(void)
{
    gl_Position = gl_in[0].gl_Position + vec4(0, 0, 0, 0);
    EmitVertex();
    gl_Position = gl_in[0].gl_Position + vec4(0.1, 0, 0, 0);
    EmitVertex();
    gl_Position = gl_in[0].gl_Position + vec4(0, 0.1, 0, 0);
    EmitVertex();
    EndPrimitive();
}

这是错误消息:

  

错误C3008:未知布局说明符'三角形'

当用“点”替换“三角形”时它有用,但显然它是绘图点。

1 个答案:

答案 0 :(得分:4)

根据标准,输出的唯一允许原语类型是

  • line_strip
  • triangle_strip

所以你想要的是

layout(triangle_strip, max_vertices = 3) out;