opengl vertext着色器错误:类型构造函数中的数据太多

时间:2017-09-14 14:28:49

标签: opengl shader

请帮忙。下面的简单顶点着色器代码有什么问题。 0(12):错误C1068:类型构造函数中的数据太多

#version 450

void main()
{   
    const vec2[6] Q = { vec2(-0.5,-0.5),
                        vec2( 0.5,-0.5),
                        vec2(-0.5, 0.5),

                        vec2(-0.5, 0.5),
                        vec2( 0.5,-0.5),
                        vec2( 0,5, 0.5)
    };
    gl_Position = vec4(
        Q[ gl_VertexID ].x,
        Q[ gl_VertexID ].y,
        0.0,
        1.0
    );
}

1 个答案:

答案 0 :(得分:3)

你可以像这样在glsl中初始化一个数组(类似于C ++ 11):

const vec2 Q[6] = { 
    { -0.5, -0.5 },
    {  0.5, -0.5 },
    { -0.5,  0.5 },
    { -0.5,  0.5 },
    {  0.5, -0.5 },
    {  0.5,  0.5 }
};

不确定您是否注意到示例中的故意错误。最后一行有一个逗号,它应该有一个“。”。