GLSLで配列を使うには

glsl-array.png

C++の場合

vec3 vecVertices[8]= 
{ {1.0,1.0,1.0},
{1.0,1.0,0.0},
{1.0,0.0,1.0},
{ 0.0,1.0,1.0},
{0.0,1.0,0.0},
{1.0,0.0,0.0},
{0.0,0.0,1.0},
{0.0,0.0,0.0}};

error C7549: OpenGL does not allow C style initializers

これはエラーに成った

vec2 edges[12]={
    {0,1},
    {1,2},
    {2,3},
    {3,0},
    {0,4},
    {1,5},
    {2,6},
    {3,7},
    {4,5},
    {5,6},
    {6,7},
    {7,4}
};

こっちならok
vec2 edges[12]=vec2[](
    vec2(0,1),
    vec2(1,2),
    vec2(2,3),
    vec2(3,0),
    vec2(0,4),
    vec2(1,5),
    vec2(2,6),
    vec2(3,7),
    vec2(4,5),
    vec2(5,6),
    vec2(6,7),
    vec2(7,4)
);

OpenGL ES系の場合

シェーダー内で配列を使うには#version 120 が必要
だけどサポートされていない端末がおおい

サポートサイト Wikidot.com