Я текстурировал сферу с изображением .bmp. Проблема в том, что когда изображение отображается на сфере, цвет изображения выглядит инвертированным. Подобно RED, становится BLUE, а BLUE становится RED. Я пробовал использовать GL_BGR вместо GL_RGB, но его бесполезно. Должен ли я изменить код для загрузки изображения. Потому что он дает предупреждение для использования функции fopen(), а также не думаю, что это имеет значение для того, что я прошу. Изображение, которое я получаю после сопоставления texured sphere with inverted colorsЗагрузка и картирование текстуры
Это то, что я попытался загрузить изображение и применил некоторые материалы для текстурирования.
GLuint LoadTexture(const char * filename, int width, int height)
{
GLuint texture;
unsigned char * data;
FILE * file;
//The following code will read in our RAW file
file = fopen(filename, "rb");
if (file == NULL) return 0;
data = (unsigned char *)malloc(width * height * 3);
fread(data, width * height * 3, 1, file);
fclose(file);
glGenTextures(1, &texture); //generate the texturewith the loaded data
glBindTexture(GL_TEXTURE_2D, texture); //bind thetexture to it’s array
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,GL_MODULATE); //set texture environment parameters
// better quality
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR_MIPMAP_LINEAR);
//Here we are setting the parameter to repeat the textureinstead of clamping the texture
//to the edge of our shape.
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T,GL_REPEAT);
//Generate the texture with mipmaps
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height,GL_RGB, GL_UNSIGNED_BYTE, data);
free(data); //free the texture
return texture; //return whether it was successfull
}
void FreeTexture(GLuint texture)
{
glDeleteTextures(1, &texture);
}
Возможный дубликат [Как загрузить BMP на GLUT, чтобы использовать его в качестве текстуры?] (Http://stackoverflow.com/questions/12518111/how-to-load-a-bmp-on-glut- to-use-it-as-a-texture) – teivaz