2017-09-14 13 views
0

助けてください。下の単純な頂点シェーダコードの問題点 0(12):エラーC1068:型コンストラクタでも多くのデータOpenGL Vertex Shaderエラー:型コンストラクタにデータが多すぎます

#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 
    ); 
} 
+2

[データ型(GLSL)](https://www.khronos.org/opengl/wiki/Data_Type_(GLSL))については、「イニシャライザリスト」と「配列コンストラクタ」の章を参照してください。 – Rabbid76

答えて

3

あなたは(C++ 11と同様に)このようなGLSLで配列を初期化することができます。if

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 } 
}; 

わかりませんあなたの例の意図的なエラーに気づいた。最後の行にはカンマがあり、 "。"が必要です。

+0

ありがとうございます。愚かなエラー。 –

関連する問題