6

Nexus Oneで動作するOpenGLコードは、Nexus Sでは正しく動作しません。テクスチャがレンダリングされていないようで、テクスチャがあるべき場所に黒が残っています。

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

4

2 に答える 2

2

ここで受け入れられた答えは、私よりも少し深くこの問題に対処していますが、この黒い画面の問題は、Nexus 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行を追加すると、1つがクランプに問題がなければ、電話機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);
于 2012-11-06T22:24:06.107 に答える
0

Nexus Sは、OpenGLESでテクスチャとして使用される画像のサイズについてより厳密です。

テクスチャは2^nのサイズである必要があります(例:256、512、1024など)

于 2011-01-24T11:50:41.797 に答える