2017-09-14 56 views
0

請幫忙。下面的簡單頂點着色器代碼有什麼問題。 0(12):錯誤C1068:在類型構造太多數據opengl vertext着色器錯誤:類型構造函數中的數據太多

#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

可以初始化在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 } 
}; 

如果不知道你注意到了你的例子中的故意錯誤。最後一行有一個逗號,它應該有一個「。」。

+0

謝謝。愚蠢的錯誤。 –