2011-08-27 7 views
0

私はOpenGLでの経験はありませんが、問題を解決するにはちょっとしたスニペットが必要です。私はメッシュ、四角形を持っており、2つのテクスチャ:1 FrontSideと1 BackSideを適用する必要があります。 これは、テクスチャの表側を適用するためのコードです:OpenGLテクスチャリングメッシュFrontSideとBackSide

mTextureIds = new int[1]; 
gl.glGenTextures(1, mTextureIds, 0); 
// Set texture attributes. 
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTextureIds[0]); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE); 
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTextureIds[0]); 
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, mBitmapFrontSide, 0); 
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); 
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, mTexCoords); 

誰かが私を助けることができますか?
1]表面の2つの異なるテクスチャ1の前面と背面の1つが可能ですか?
2]スニペットを投稿したり、チュートリアルやその他の資料を表示できる人がいますか?
ありがとうございます。

答えて

2

シェイダーを使用しているようには見えないので、最も簡単な方法はバックカリングを使用することです。一方の面をカリングしてオブジェクトをレンダリングし、次にテクスチャを変更し、反対側の面をレンダリングしてレンダリングします。

+0

メッシュが「柔軟な」sqareであり、同時に両面を見ることができるため、テクスチャをランダウンに変更するソリューションは解決策ではありません。だから唯一の他のソリューションは、使用シェーダですか? – Neo1975

+0

@ Neo1975:三角形は、定義上、平面である。個々の三角形の片側しか見ることはできません。したがって、一方の面をカリングしてレンダリングされた三角形は、必然的に他方の面にレンダリングされません。したがって、メッシュの各三角形コンポーネントが2つのパスのうちの1つのみで表示されるため、説明したようにメッシュをレンダリングできることが保証されています。 –

+0

@Nicoleそうです。私はこれについて調査しなければならない。読んで何かを提案してくれるのですか?他のバンドでは、同じ座標で2つの正方形を使って、私のクエストを解決できますか? – Neo1975