Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.140.185.123] |
|
Сообщ.
#1
,
|
|
|
При отображении текстуры с альфа каналом изображение искажается, похоже что не хватает данных именно с альфа.
AUX_RGBImageRec *FormLoadBMP(char filename[256]) { FILE *file = NULL; if (!filename) { return NULL; } file = fopen(filename, "r"); if (file) { fclose(file); return auxDIBImageLoad(filename); } return NULL; } // ... AUX_RGBImageRec *TextureImage[1]; memset(TextureImage, 0, sizeof(void *)*1); for (i=0; i<1; i++) { glGenTextures(1, &e::texture[i]); glBindTexture(GL_TEXTURE_2D, e::texture[i]); glTexImage2D(GL_TEXTURE_2D, 0, 4, TextureImage[i]->sizeX, TextureImage[i]->sizeY, 0, GL_RGBA, GL_UNSIGNED_BYTE, TextureImage[i]->data); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); } // для RGB все работает нормально // glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[i]->sizeX, TextureImage[i]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[i]->data); Как правильно загрузить текстуру с альфа каналом ? |
Сообщ.
#2
,
|
|
|
Нашел как загружается файл, но становится прозрачным не только фон(где альфа черное) но и рисунок.
data = (unsigned char*) malloc(64 * 64 * 4); fread(data, 54, 1, file); fread(data, 64 * 64 * 4, 1, file); glGenTextures(1, &e::texture[i]); glBindTexture(GL_TEXTURE_2D, e::texture[i]); glTexImage2D(GL_TEXTURE_2D, 0, 4, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); // ... glEnable(GL_ALPHA_TEST); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // если менять в этой функции аргументы, то появляется картинка но прозрачная картинка а не фон... |
Сообщ.
#3
,
|
|
|
Уважаемые коллеги, можете проверить правильный ли альфа канал в рисунке bmp ?
Прикреплённый файлpic.rar (3,65 Кбайт, скачиваний: 153) |
Сообщ.
#4
,
|
|
|
В твоём bmp альфаканал есть, но он чистый - нули.
Вот как-то так должно быть: Прикреплённый файлpic1.zip (415 байт, скачиваний: 161) |
Сообщ.
#5
,
|
|
|
Сообщ.
#6
,
|
|
|
рисунок в архиве с большим разрешением
Прикреплённый файлphotoshop.rar (27,52 Кбайт, скачиваний: 153) |
Сообщ.
#7
,
|
|
|