Я загружаю PNG, используя:
theImage = [NSBitmapImageRep imageRepWithContentsOfFile:imagePath];
, из которого я могу успешно создать текстуру gl и правильно визуализировать без какой-либо прозрачности.Однако, когда я включаю смешивание, используя:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
Текстура отображается с правильным прозрачным фоном, но цвета изображения неправильные.
Я пробовал несколько вариантов в функции смешивания,GL_SRC_ALPHA
, GL_ONE_MINUS_SRC_ALPHA
, GL_ONE
, GL_DST_ALPHA
и т. Д.
Меня учили, может быть, мне нужно переупорядочить биты в данных изображения, возможно, каналы были перепутаны, но я быне ожидайте, что он будет правильно отображаться, когда смешивание отключено в этом случае.
В качестве альтернативы, я мог бы использовать libPNG, но я хотел бы попробовать NSBitmapImageRep
, если это возможно.