Я создаю 2-мерное приложение для iPad с использованием OpenGL ES и имею некоторые проблемы с рисованием прозрачных изображений.
Я использую изображения png-24 с полной прозрачностью.Я также меняю цвет некоторых текстур, которые являются белыми, а некоторые области прозрачными или полупрозрачными.Все это прекрасно работает.
Когда я пытаюсь установить альфа-значение одной из этих текстур, она работает не совсем правильно.Цвета слишком насыщенные, и если значение альфа = 0, у меня остается белое, а не прозрачное изображение на светло-сером фоне.Когда такое прозрачное изображение находится над темным изображением, темное изображение приобретает цвет, аналогичный цвету прозрачного изображения.
Я пробовал множество комбинаций параметров glTexEnvi
и glBlendFunc
безуспех.
Я не очень разбираюсь в OpenGL, поэтому, если у кого-то есть какие-либо предложения, это было бы здорово.Дайте мне знать, если есть какие-либо подробности, которые могли бы помочь.
Спасибо.
Вот инициализация OpenGL
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glDisable(GL_DEPTH_TEST);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_BLEND);