0
私は、ココアでOpenGLプログラムを作成しており、インターリーブされた頂点配列を使ってレンダリングするのに問題があります。 OpenGLはNSOpenglviewを使ってセットアップされ、個々のオブジェクトによって特定のレンダリングが行われます。レンダリングは静的な 'キューブ'オブジェクトで動作します。このオブジェクトは次のコードと同様に設定されますが、インデックス付きの描画やivaは使用されません。IVDでglDrawElementsからの出力がありません
私の初期化コード
node = [[Octnode alloc]initWithTreeHeight:0 nodeSize:1.0 orign:&origin memoryPointer:vertexData];
indexArray[0] = 0;
indexArray[1] = 1;
indexArray[2] = 2;
glGenBuffers(1, &vertexBufferObject);
glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObject);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertexData), vertexData, GL_DYNAMIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glGenBuffers(1, &indexBufferObject);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBufferObject);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, 36 * sizeof(unsigned int), indexArray, GL_DYNAMIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glGenVertexArraysAPPLE(1, &vertexArrayObject);
glBindVertexArrayAPPLE(vertexArrayObject);
glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObject);
glEnableVertexAttribArray(0);
glEnableVertexAttribArray(1);
glEnableVertexAttribArray(2);
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(colouredNormalVertex), 0);
glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, sizeof(colouredNormalVertex), (void*)sizeof(vertex));
glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, sizeof(colouredNormalVertex), (void *) (sizeof(vertex) + sizeof(colour)));
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBufferObject);
glBindVertexArrayAPPLE(0);
レンダリングコード glBindVertexArrayAPPLE(vertexArrayObject)。 glDrawElements(GL_LINES、3、GL_UNSIGNED_INT、0); glBindVertexArrayAPPLE(0);
アレイのデータが追加されるのはoctnode initであり、bebuggerを使って検査すると、私が期待していることが示されます。