در تصویربرداری دیجیتال، تصاویر با شفافیت معمولاً با استفاده از «آلفا مستقیم» ذخیره میشوند. این بدان معناست که فایل شامل چهار کانال مجزا است: قرمز، سبز، آبی و آلفا (RGBA). کانال های رنگی کاملا مستقل از کانال شفافیت هستند. به عنوان مثال، پیکسلی که 50٪ سفید شفاف است به صورت R:255، G:255، B:255، A:127 ذخیره میشود (زیرا 127 تقریباً نیمیاز 255 است). این قالب به طور جهانی توسط بینندگان تصویر و مرورگرهای وب استاندارد قابل درک است، و آن را به عنوان پیشفرض برای فایلهای استاندارد PNG و WebP تبدیل میکند.
با این حال، وقتی توسعهدهندگان بازی و مهندسان گرافیک با موتورهای رندر مانند WebGL، OpenGL، Unity یا Unreal Engine کار میکنند، Straight Alpha مشکلات محاسباتی و بصری قابلتوجهی را معرفی میکند. برای ترکیب یک بافت آلفای مستقیم روی پسزمینه، GPU باید یک محاسبه پیچیده را انجام دهد: رنگ بافت را در آلفای آن ضرب میکند، رنگ پسزمینه را در معکوس آلفا ضرب میکند و آنها را با هم جمع میکند. وقتی هزاران ذره شفاف همپوشانی دارید - مانند دود، آتش، یا طلسمهای جادویی در یک بازی ویدیویی - انجام این ضرب در زمان واقعی برای هر پیکسل به شدت بر نرخ فریم و GPU عملکرد تأثیر میگذارد.
این جایی است که Alpha Premultiplied ضروری است. یک تصویر از پیش ضرب شده، اولین مرحله ضرب را مستقیماً در دادههای بافت قبل از رسیدن به موتور ایجاد میکند. با استفاده از مثال قبلی ما از یک پیکسل سفید شفاف 50٪، یک نسخه از پیش ضرب شده مقادیر RGB (255) را در درصد آلفا (0.5) ضرب میکند و پیکسل را به صورت R:127، G:127، B:127، A:127 ذخیره میکند. با انجام این محاسبات پیش از موعد با استفاده از ابزار رایگان آلفای پیش ضرب، GPU را از انجام آن محاسبه در طول زمان صرفهجویی میکنید، و در نتیجه ترکیب آلفا بسیار کارآمدتر و عملکرد بازی روانتر میشود.