2

DXT1テクスチャをByteBufferにロードしていて、Openglでロードしようとしています

int tID = glGenTextures();
glBindTexture(GL_TEXTURE_2D, tID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, w, h, 0, imageData);
System.out.println(gluErrorString(glGetError()));

glCompressedTexImage2D呼び出しで「無効な操作」というエラーが発生します。理由がわからないようです。

4

1 に答える 1

1

わかりました、私は問題が何であったかを理解しました。imageDataのサイズが正しくありませんでした。DXT1は1ピクセルあたり4ビットなので、w * h*4である必要があると考え続けました。w*h* 1/2(4ビットは1/2バイト)である必要があります。

于 2011-04-24T17:13:36.187 に答える