http://www3.ntu.edu.sg/home/ehchua/programming/android/Android_3D.htmlでチュートリアルをフォローしていますが、問題が発生しました。
次の両方の例を機能させることができました。
2.7例5:3D形状-回転するカラーキューブとピラミッド(Neheレッスン5:3D形状)例2:Cube2.java
2.8例6:テクスチャ(Neheレッスン6:テクスチャ)
しかし、色付きの立方体とテクスチャ付きの立方体の両方を描画しようとすると、次のようになります。
http://i.imgur.com/Smbsa.png (画像の最初の部分)
色付きの立方体は表示されませんが、テクスチャキューブをクリップし、テクスチャキューブのテクスチャは、色付きの立方体の最後の色(黄色)で色付けされます。
基本的に、両方の立方体を次のように描画します。
// ----- Render the Color Cube -----
gl.glLoadIdentity(); // Reset the model-view matrix
gl.glTranslatef(0.0f, 0.0f, -6.0f); // Translate right and into the screen
gl.glScalef(0.5f, 0.5f, 0.5f); // Scale down (NEW)
gl.glRotatef(angleCube, 1.0f, 1.0f, 0.0f); // rotate about the axis (1,1,1) (NEW)
cube.draw(gl); // Draw the cube (NEW)
// Update the rotational angle after each refresh (NEW)
angleCube += speedCube; // (NEW)
// ----- Render the Texture Cube -----
gl.glLoadIdentity(); // Reset the model-view matrix
gl.glTranslatef(-1.0f, 0.0f, -6.0f); // Translate right and into the screen
gl.glScalef(0.5f, 0.5f, 0.5f); // Scale down (NEW)
gl.glRotatef(angleCube, 1.0f, 1.0f, 0.0f); // rotate about the axis (1,1,1) (NEW)
texturecube.draw(gl); // Draw the cube (NEW)
パート「 2.9例6a:フォトキューブ」から3番目のいわゆる「フォトキューブ」を追加してみました。
(2つのリンクのみを投稿できます上記のimgurリンクを確認してください)
追加した:
gl.glColor4f(0.0f, 0.0f, 1.0f, 1.0f);
テクスチャキューブに移動し、青い色がフォトキューブに「こぼれる」ことに気づきました。
追加すると:
gl.glColor4f(1.0f, 1.0f, 1.0f, 0.0f);
次のテクスチャは色付けされなくなりましたが、これは過去の色を削除するための大雑把な方法のように感じます。
削除すると:
texturecube.loadTexture(gl, context); // Load image into Texture (NEW)
photocube.loadTexture(gl); // Load image into Texture (NEW)
gl.glEnable(GL10.GL_TEXTURE_2D); // Enable texture (NEW)
これは起こります:
(2つのリンクのみを投稿できます上記のimgurリンクを確認してください)
カラーキューブが戻ってきて、他のすべての表面が着色されています。
私の質問:
色付きの立方体が消えたとき、私は何を間違っていますか?(テクスチャと色の両方を同時に使用できるはずだと思います)
「gl.glColor4f(1.0f、1.0f、1.0f、0.0f);」以外の以前のキューブ/オブジェクトから色を「クリア」するためのより良い方法はありますか?