これは問題になるかもしれません。私が理解するように、glBindAttribLocation(...、AAA、...)は、AAAが一意である限り、プログラム内の属性をAAAのロケーションIDにバインドします。私は次のコードをお持ちの場合:GLES2 glBindAttribLocation()は必要ですか?
glBindAttribLocation(..., 0, "XXX");
glBindAttribLocation(..., 1, "YYY");
これは、ロケーションID 0と1に私の2つの変数をバインドしますが、私はそれから呼び出します。
はglBindBuffer(GL_ARRAY_BUFFER, VBId);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBId);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 6, 0);
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 6, (void *) 0 + sizeof(float) * 3);
glEnableVertexAttribArray(1);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
はこれまで、私は理解しているのIDを0と1は最初のパラメータとしてglVertexAttribPointer()に渡されます。
上記のようにglGetAttribLocation()呼び出しによって属性のロケーションIDを取得した場合、返されるIDは0と1ではなく5と6になり、5を渡すことができます6をglVertexAttribPointer()とglEnableVertexAttribArray()の代わりに0と1 ??