をしたいときGLColorPointerは色の虹を作成します。私は、これはすべて赤で私のオブジェクトをレンダリングすることを期待するオープンGLES 1.1 - 私はちょうど私がこのようなオブジェクトをレンダリングしています赤
for (int i = 0; i < COLOR_ARRAY_SIZE; i += 4) {
colors[i] = 1.0f;
colors[i + 1] = 0.0f;
colors[i + 2] = 0.0f;
colors[i + 3] = 1.0f;
}
// Clear color and depth buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Set GL11 flags:
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnable(GL_DEPTH_TEST);
// make sure nothing messes with the colour
glDisable(GL_BLEND);
glDisable(GL_DITHER);
glDisable(GL_FOG);
glDisable(GL_LIGHTING);
glDisable(GL_TEXTURE_2D);
glShadeModel(GL_FLAT);
// Load projection matrix:
glMatrixMode(GL_PROJECTION);
glLoadMatrixf(projectionMatrix);
// Load model view matrix and scale appropriately
int kObjectScale = 300f;
glMatrixMode(GL_MODELVIEW);
glLoadMatrixf(modelViewMatrix);
glTranslatef(0.5f, 0.5f, 0.5f);
glScalef(kObjectScale, kObjectScale, kObjectScale);
// Draw object
glVertexPointer(3, GL_FLOAT, 0, (const GLvoid*) &vertexPositions[0]);
glNormalPointer(GL_FLOAT, 0, (const GLvoid*) &vertexNormals[0]);
glColorPointer(4, GL_FLOAT, 0, (const GLvoid*) &colors[0]);
glDrawElements(GL_TRIANGLES, 11733, GL_UNSIGNED_SHORT,
(const GLvoid*) &indices[0]);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
、代わりにそれはですさまざまな色の虹。なぜ誰が知っていますか?私は "色"の配列バッファに何か問題があると推測しますが、私の人生はそれが何であるか見ることができません。実際の頂点はうまく描画されているようです。
私は間違って実験をしている間にストライドを1に設定し、投稿する前にそれを変更するのを忘れました、残念です - それを変更します。その方法でcolors配列を塗りつぶして、各頂点の赤を表すR、G、B、Aの値のバッファを取得します。私は色を混乱させる理由をデバッグできるようにこれをやっています。最終的に私は本当の色配列のためにこの "赤"バッファを交換したいと思っています。 COLOR_ARRAY_SIZE == 15644. –
素晴らしいです。喜んで助けてください。 :) –
それは動作する必要がありますか?私はストライドを0に戻して、まだ多色効果を得ています。確かに私の配列を1.0,0.0,0.0,1.0で塗りつぶすと、各頂点の赤が表示されますか? –