2

私は iPhone OpenGLES 実装で作業しており、単純な表面 (長方形を構成する 2 つの三角形) でテクスチャを際限なくスクロールしたいと考えています。これは簡単なはずですが、これは私が以前に行ったことではなく、何かが欠けているに違いありません。テクスチャをうまく回転できますが、変換はまったく機能しません。マイナーな実装上の問題がありますか、それとも何か根本的に間違っていますか?

// テクスチャを移動
 glMatrixMode(GL_TEXTURE);
 glPushMatrix();
 glLoadIdentity();

    // オフセットをインクリメントします - デモ用のリセットはありません
 壁オフセット += 1.0;

    // テクスチャを移動 - これは機能しません
 glTranslatef(wallOffset,wallOffset,0.0);

    // テクスチャを回転 - これは機能します
 //glRotatef(wallOffset, 1.0, 0.0, 0.0);

 glMatrixMode(GL_MODELVIEW);

 glBindTexture(GL_TEXTURE_2D, WallTexture.name);
 glTexCoordPointer(2, GL_FLOAT, 0, 座標);

 // 簡単な描画コード
 glNormalPointer(GL_FLOAT, 0, 法線);
 glVertexPointer(3, GL_FLOAT, 0, 頂点);
 glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

    // マトリックスを押し戻す
 glMatrixMode(GL_TEXTURE);
 glPopMatrix();
 glMatrixMode(GL_MODELVIEW);
4

1 に答える 1

8

テクスチャ オフセットをインクリメントしています1.0f。ただし、テクスチャ座標は範囲内と見なされる[0, 1]ため、実際にはテクスチャ座標を変更していません (何らかのラッピングを有効にしていると仮定します)。

その増分を変更してみて (.01fまたはフレームレートに応じて何かを試してください)、それが機能するかどうかを確認してください。そうでない場合は、有効にしたテクスチャ パラメータに関係している可能性があります。

于 2009-05-24T19:43:23.043 に答える