Ответ 1
Большинство режимов смешивания фотошоп основаны на Blendmodes Porter-Duff.
Для этого требуется, чтобы все ваши изображения (текстуры, renderbuffer) находились в предварительно умноженном цветовом пространстве. Обычно это делается путем умножения всех значений пикселей на альфа-значение перед их сохранением в текстуре. Например. полный прозрачный пиксель будет выглядеть черным в невозмущенном цветовом пространстве. Если вы не знакомы с этим цветовым пространством, проведите час или два, прочитав об этом в Интернете. Это аккуратная и хорошая концепция и требуется для фотошоп-подобных композиций.
В любом случае - если у вас есть изображения в этом формате, вы можете включить SCREEN, используя:
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR)
Полный режим MULTIPLY невозможен с конвейером OpenGL | ES. Если вы работаете только с полными непрозрачными пикселями, вы можете подделать его, используя:
glBlendFunc(GL_ZERO, GL_SRC_COLOR)
Результаты для прозрачных пикселей как в вашей текстуре, так и в вашем фреймбуфере будут ошибочными.