Я пытаюсь загрузить растровое изображение в текстуру OpenGL и отобразить его на экране, но когда я это делаю, значения красного и синего, кажется, меняются (например, синее изображение отображается оранжевым, зеленые изображения остаются неизменнымитак далее..).Эта проблема существует только при загрузке растровых изображений, я могу загрузить .pngs относительно без ошибок.
Это код, который я использую для загрузки растровых изображений и установки текстур.Я использую 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)
оба вызываются ранее в программе, среди других менее значимых функций.Любая помощь в поиске причины (и, мы надеемся, исправлении) проблемы будет принята с благодарностью.