0

ETC1 テクスチャに問題があります。ETC1 テクスチャをロードするには、ETC1 画像の生データをロードする独自のコードを使用し、次に GL 操作を使用してデータを GPU メモリにロードしますGLES20.glCompressedTexImage2D(GLES20.GL_TEXTURE_2D, 0, 0x8D64, textureWidth, textureHeight, 0, rawSize, data); が、デバイスが PowerVR SGX540 GPU を使用した場合、寸法 512x512 のテクスチャのみが正しく描画されます。そして、私はその理由を理解していません。OpenGL ES 2.0 標準では、非 2 次元のテクスチャを使用できると規定されています。私の問題を解決するのを手伝ってください。

4

1 に答える 1

1

OpenGL ES 2.0 に 2 のべき乗の制限がないことは事実ですが、ラップ モードと最小フィルターは制限されています。http://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexParameter.xmlのメモを読んでください 。

同様に、テクスチャ イメージの幅または高さが 2 の累乗ではなく、GL_TEXTURE_MIN_FILTER がミップマップを必要とする関数のいずれかに設定されているか、GL_TEXTURE_WRAP_S または GL_TEXTURE_WRAP_T が GL_CLAMP_TO_EDGE に設定されていない場合、テクスチャ イメージ ユニットは (R 、G、B、A) = (0、0、0、1)。

また、この質問に対する回答とコメントを読むことをお勧めします: OpenGL ES は非ベース 2 次元のテクスチャをレンダリングできますか?

于 2013-06-24T15:30:05.657 に答える