Сделал 32-битную BMPшку с альфа-каналом: типа значок радиации на прозрачнм фоне. Сам значок радиации в альфа-канале - белым, все остальное - черным. Пытаюсь подгрузить в OpenGL - выходит фигня, не видит он альфа-каналов, все так, как будто их нет вообще. Что делать?
Загрузка такстур сделана так: GLvoid LoadGLTextures(char* texpath, GLuint* texture) { // Загрузка картинки AUX_RGBImageRec* texture2;
texture2 = auxDIBImageLoadA(texpath); glBindTexture(GL_TEXTURE_2D, *texture); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, 3, texture2->sizeX, texture2->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, texture2->data); // glEnable(GL_TEXTURE_2D); }
Налепка текстуры сделана так: glBlendFunc(GL_SRC_ALPHA,GL_ONE); glEnable(GL_BLEND); glEnable(GL_TEXTURE_2D); glColor3f(1,1,1);
glBindTexture(GL_TEXTURE_2D, texture[10]); glBegin(GL_POLYGON); glTexCoord2f(0,0); glVertex3f(camera.x - WINDOWHOR/2, camera.y - WINDOWVERT/2,0.01); glTexCoord2f(1,0); glVertex3f(camera.x + WINDOWHOR/2, camera.y - WINDOWVERT/2,0.01); glTexCoord2f(1,1); glVertex3f(camera.x + WINDOWHOR/2, camera.y + WINDOWVERT/2,0.01); glTexCoord2f(0,1); glVertex3f(camera.x - WINDOWHOR/2, camera.y + WINDOWVERT/2,0.01); glEnd(); glDisable(GL_BLEND); glDisable(GL_TEXTURE_2D); glPushMatrix(); glTranslatef(camera.x-WINDOWHOR/2, camera.y - WINDOWVERT/2,0); glPopMatrix();
Кто знает, где же глюк?