Я рисую нетекстурированные треугольники, чья альфа явно установлена на 0,5 в пиксельном шейдере для тестирования. Мое приложение основано на префабе Opengl ES, предоставленном Xcode. Я не коснулся своего класса EAGLView.
я звоню
glEnable(GL_ALPHA)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SC_ALPHA)
glDrawArrays(...)
Мой clearColor - 0,0,0,1, а формат CAEAGLayer - RGBA8.
В результате я вижу, что никакого смешивания не происходит, и нарисованные пиксели просто заменяют то, что находится под ними. Я также пытался использовать GL_ONE, GL_ONE.
Я попытался установить для свойства opaque моего CAEAGLayer значение false. В результате получается, что независимо от режима наложения цвет нарисованных пикселей смешивается с белым на основе значения альфа. Таким образом, gl_FragColor 1,0,0,1 получается как 1,0,0,1, а 1,0,0,0 получается как 1,1,1,?
Это поведение согласовано на устройстве и симуляторе. Что здесь может быть не так?