Разбиране на Premultiplied Alpha: Пълно ръководство за разработчици
При дигиталните изображения тези с прозрачност обикновено се съхраняват с 'Straight Alpha'. Това означава, че файлът съдържа четири отделни канала: Червен, Зелен, Син и Алфа (RGBA). Цветовите канали са напълно независими от канала за прозрачност. Например, пиксел с 50% прозрачно бяло се съхранява като R:255, G:255, B:255, A:127 (тъй като 127 е приблизително половината от 255). Този формат се поддържа от всички софтуери за преглед на изображения и стандартни уеб браузъри, което го прави избор по подразбиране за PNG и WebP файлове.
Въпреки това, когато разработчиците на игри и графичните инженери работят с енджини за рендериране като WebGL, OpenGL, Unity или Unreal Engine, Straight Alpha създава сериозни вычислителни и визуални проблеми. За да смеси текстура със Straight Alpha върху фон, графичният процесор (GPU) трябва да извърши сложно изчисление: умножава цвета на текстурата по нейната алфа, умножава цвета на фона по обратната стойност на алфата и ги събира. Когато имате хиляди припокриващи се прозрачни частици — като дим, огън или магии в видеоигра — извършването на това умножение в реално време за всеки пиксел сериозно натоварва честотата на кадрите и производителността на GPU.
Точно тук Premultiplied Alpha става от съществено значение. Изображението с предварително умножена алфа вгражда тази първа стъпка директно в данните на текстурата. Използвайки предишния пример за 50% прозрачен бял пиксел, предварително умножената версия умножава RGB стойностите (255) по процента алфа (0.5), съхранявайки пиксела като R:127, G:127, B:127, A:127. Извършвайки тази математика предварително с нашия безплатен инструмент, спестявате на GPU необходимостта да прави това изчисление по време на работа, което води до много по-ефективно композиране и по-гладка производителност.