Должен ли я использовать предварительно умноженную альфу? Читая статью Тома Форсайта, он, похоже, не разбирается. Предварительно умноженная альфа (добавка AKA) превосходна во всех смыслах.
Тем не менее, у предварительно умноженной альфы, похоже, есть один существенный недостаток: она плохо поддерживается инструментами.
Используете ли вы / есть предварительно умноженную альфу?
Как поддерживается инструмент?
В частности, я не думаю, что gimp будет хорошо редактировать предварительно умноженные альфа-изображения. Есть ли какие-нибудь плагины gimp для экспорта предварительно умноженной альфы? Как насчет внешнего инструмента?
Ответы:
В настоящее время я использую XNA 3.1 с предварительно умноженной альфой (в 4.0 была добавлена встроенная поддержка Premultiplied Alpha).
В основном это экономит мое время и позволяет убедиться, что прозрачные области моих изображений имеют правильные цвета. Я также портирую на Silverlight, который по умолчанию выполняет предварительное умножение.
У XNA есть конвейер контента, который делает добавление предварительно обработанной предварительной обработки альфа очень простым.
Эта ссылка содержит код для преобразования. Для каждого пикселя:
Многое можно сказать о наличии конвейера контента. Если вы не используете XNA, но используете Visual Studio, вы можете собрать его самостоятельно . Любые другие IDE / процессы сборки также должны быть в состоянии.
И, наконец, если у вас нет шага обработки контента в вашей сборке (и, скорее всего, у вас не так много контента в любом случае), вы можете так же легко выполнить предварительное умножение во время выполнения при загрузке текстур. Это добавит некоторый постоянный фактор к времени загрузки вашей текстуры.
(Если смысл не ясен: вам, вероятно, не следует редактировать предварительно умноженные альфа-изображения. Экспортируйте их, если можете, предварительно умножив, или, что еще лучше, предварительно обработайте их.)
источник
Если вы используете XNA, есть небольшая поддержка предварительно умноженной альфы. Обычно преобразование выполняется в конвейере содержимого, но ничто не мешает вам сделать это самостоятельно.
источник
Я использую предварительно умноженную альфа по умолчанию в своем движке (художник может принудительно не умножить в файле определения материала, если это необходимо для какого-то специального эффекта)
Инструменты, как вы заметили, плохо справляются с предварительно умноженным альфа-каналом - художник может устанавливать цвет и альфа-каналы совершенно независимо. Я настроил все так, чтобы мой художник мог создавать текстурные изображения с предварительной премией альфа (что, по-видимому, легче для ума художника), а инструмент, который конвертирует в формат текстур движка, умножает альфа по умолчанию. Там есть переключатель, поэтому без предварительного умножения может быть сгенерирован, если это абсолютно необходимо.
источник