2
、私は100個の頂点を持っている場合、私は600台の山車を渡したいということを意味OpenGLの頂点シェーダの属性配列に値を渡すにはどうすればよいですか?私の頂点シェーダで
in float data[6];
を持っています。 glVertexAttribPointer
は最大4までのサイズしかサポートしません。サイズ1を使用すると、6つの要素が自動的に選択されますか?
、私は100個の頂点を持っている場合、私は600台の山車を渡したいということを意味OpenGLの頂点シェーダの属性配列に値を渡すにはどうすればよいですか?私の頂点シェーダで
in float data[6];
を持っています。 glVertexAttribPointer
は最大4までのサイズしかサポートしません。サイズ1を使用すると、6つの要素が自動的に選択されますか?
glslの属性配列は、連続する属性位置を持つ独立した属性の数として扱われます。それぞれの頂点属性ポインタを個別に設定する必要があります。
idx = glGetAttribLocation(program_index, "data")
で最初の要素の場所を照会すると、の位置はidx + 1
になります。その後、それらをループすることができ、glVertexAttribPointer*
を、各配列要素のインデックスと正しいバイトオフセットで呼び出すことができます。