ビットマップをOpenGLテクスチャにロードして画面に表示しようとしていますが、そうすると、赤と青の値が切り替わったように見えます(たとえば、青の画像がオレンジ色で表示され、緑の画像が変更されないなど)。 )。この問題は、ビットマップをロードするときにのみ発生します。.pngを比較的エラーなしでロードできます。
これは、ビットマップをロードしてテクスチャを設定するために使用しているコードです。私はDevIlを使用していますが、別のシステムを使用したときに問題が発生したため、それがどれほど関連性があるかはわかりません(何を使用したかはよく覚えていませんが、window.hの関数だったと思います)。
ilOriginFunc(IL_ORIGIN_LOWER_LEFT);
ilEnable(IL_ORIGIN_SET);
ILuint image;
ilGenImages(1, &image);
ilBindImage(image);
ilLoad(IL_BMP, "Data/NeHe.bmp"); // Incidentally, loading a png, although it fixes the problem,
// rotates the image 180 degrees. Not sure if that's important or not,
// But it's why I added the first line of code
glGenTextures(3, &_texture[0]);
glBindTexture(GL_TEXTURE_2D, _texture[0]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, 3, ilGetInteger(IL_IMAGE_WIDTH), ilGetInteger(IL_IMAGE_HEIGHT), \
0, GL_RGB, GL_UNSIGNED_BYTE, ilGetData());
ilInit()
とglEnable(GL_TEXTURE_2D)
は、他のあまり関連性のない機能の中でも、プログラムの早い段階で呼び出されます。問題の原因を見つける(そしてうまくいけば修正する)助けをいただければ幸いです。