2011-01-24 14 views
6

Nexus Oneで動作するOpenGLコードは、Nexus Sでは正常に動作しません。 テクスチャはレンダリングされていないように見えます。Nexus SのOpenGL ESブラックテクスチャ

誰でもアイデアがありますか?

+1

コードを貼り付けることをお勧めします。まず、テクスチャユニットを有効にしていますか? –

答えて

2

accepted answer given hereアドレスでなければなりませんが、この黒い画面の問題はネクサスから起こるんがS(および他のいくつかのデバイス)が2の累乗テクスチャについて厳密である場合、は、テクスチャがPo2の寸法を持つ必要があるということを意味しません。テクスチャローディングコードで

、一方が次の行有していてもよい:

 GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); 
     GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST); 

をこのコードをクランプするための2つの行を追加するように変更された場合、その後電話支持nPo2テクスチャは、一つを提供しますですクランプでOK。追加されたクランプを使用したコードは次のとおりです。

 GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); 
     GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST); 
     GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); 
     GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); 
0

Nexus Sは、OpenGL ESのテクスチャとして使用されるイメージのサイズよりも厳密です。私は意志よりも

テクスチャはもう少し深さでこの問題2^n個のサイズ(例えば256、512、1024など)

+1

GL_CLAMP_TO_EDGEを使用してこの問題を回避することはできますか? –