Nexus Oneで動作するOpenGLコードは、Nexus Sでは正しく動作しません。テクスチャがレンダリングされていないようで、テクスチャがあるべき場所に黒が残っています。
誰かアイデアがありますか?
Nexus Oneで動作するOpenGLコードは、Nexus Sでは正しく動作しません。テクスチャがレンダリングされていないようで、テクスチャがあるべき場所に黒が残っています。
誰かアイデアがありますか?
ここで受け入れられた答えは、私よりも少し深くこの問題に対処していますが、この黒い画面の問題は、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);
Nexus Sは、OpenGLESでテクスチャとして使用される画像のサイズについてより厳密です。
テクスチャは2^nのサイズである必要があります(例:256、512、1024など)