Nexus sのOpenGL ESブラックテクスチャ
-
23-10-2019 - |
質問
Nexus Oneで動作するOpenGLコードは、Nexus Sで適切に機能しません。テクスチャはレンダリングされていないようで、テクスチャがあるはずの黒だけが残っています。
誰かがアイデアを持っていますか?
解決
ここで与えられた答えを受け入れました この問題は私よりもわずかに深みで対処しますが、この黒い画面の問題は、2つのパワーテクスチャについて厳格であるNexus S(および他のデバイス)から発生しますが、 テクスチャが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テクスチャは、クランプで問題なく提供されます。クランプが追加されたコードは次のとおりです。
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);
他のヒント
Nexus Sは、OpenGL ESのテクスチャとして使用される画像のサイズについてより厳格です。
テクスチャは2^nのサイズでなければなりません(たとえば256、512、1024など)
所属していません StackOverflow