Является ли это правильным способом использования предварительно умноженного альфа для альфа-смешивания в GL-ES? - PullRequest
1 голос
/ 20 февраля 2010

Как я знаю, в альфа-композиции в основном используется прямая альфа. Но все примеры кодов смешивания GLES, которые я видел, используют предварительно умноженную альфа. Это правильный и правильный способ сделать это? Является ли предварительное умножение альфа обычным способом в графике в реальном времени?

1 Ответ

4 голосов
/ 28 февраля 2010

Если пример смешанного кода, который вы видели, нацелен на iPhone OS, то это потому, что Core Graphics и Core Animation работают с предварительно умноженным альфа-каналом, поэтому при рисовании в CGBitmapContext создаются предварительно умноженные данные, а содержимое непрозрачного представления должно быть в предварительно умноженный альфа-формат для правильной компоновки поверх других представлений. Однако, если вы просто пытаетесь смешать содержимое в непрозрачном виде, тогда любой из этих подходов будет работать, если ваше смешивание соответствует формату данных изображения.

Есть плюсы и минусы предварительно умноженных альфа-данных. У Тома Форсайта есть хорошее объяснение многих полезных свойств предварительно умноженной альфа . Основным недостатком является то, что некоторые этапы обработки фрагментов с фиксированными функциями (окружение текстур, туман и т. Д.) Построены вокруг предварительно неумноженного альфа-значения и могут не дать желаемых результатов, если вы попытаетесь использовать их с предварительно умноженными данными.

...