0

マルチテクスチャを使用していくつかのオブジェクトを描画したいシーンがあります。また、gl.glDrawArrays(GL10.GL_LINES..。..のみを使用していくつかのオブジェクトを描画したいと思います。

ただし、2つのテクスチャが適用されているオブジェクトを画面に追加すると、GL_LINESまたは単色を使用するすべてのオブジェクトがフェードします。

すべてのオブジェクトが同じ描画メソッドを使用する簡単なデモをまとめようとしました(単純化しようとしているときに混乱が生じないことを願っています)。

Model.javaでマルチテクスチャリングを処理しますが、関連するセクションは次のとおりです。

// Texture 1
gl.glClientActiveTexture(GL10.GL_TEXTURE0);
gl.glActiveTexture(GL10.GL_TEXTURE0);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTexture[0]);
gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_MODULATE);
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, mTexCoordBuffer1);
gl.glEnable(GL10.GL_TEXTURE_2D);

// Texture 2
gl.glClientActiveTexture(GL10.GL_TEXTURE1);
gl.glActiveTexture(GL10.GL_TEXTURE1);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTexture[1]);
gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_DECAL);
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, mTexCoordBuffer2);
gl.glEnable(GL10.GL_TEXTURE_2D);

どんな助けでも大歓迎です。

注:マルチテクスチャオブジェクトがない場合、三角形1と4の輪郭は実線になります。これが私がアウトラインを見せたい方法です。 マルチテクスチャリングを使用して画面上にオブジェクトがない場合のアウトラインが表示されます

注:マルチテクスチャオブジェクト(三角形3)を使用すると、三角形1と4の輪郭が薄くなります。 画面にマルチテクスチャのオブジェクトがあると、輪郭が薄く見えます

4

1 に答える 1

0

この前の質問で、私が無関係だと思っていた解決策を見つけました。

理由はわかりませんが、電話する必要がありました。

gl.glActiveTexture(GL10.GL_TEXTURE0);

Texture2ブロックの後。

于 2012-12-04T03:55:27.607 に答える