Saya menggunakan XNA 3.1 pada saat ini dengan alfa yang telah mengalami multiplikasi (dukungan Premultiplied Alpha asli ditambahkan pada 4.0).
Sebagian besar menghemat waktu saya melalui dan memastikan area transparan gambar saya memiliki warna yang benar. Saya juga port ke Silverlight, yang melakukan pra-aplikasi secara default.
XNA memiliki pipa konten yang membuat menambahkan preprocessing alfa pra-tanam super mudah.
Tautan itu berisi kode untuk melakukan konversi. Untuk setiap piksel:
c.R = (byte)(c.R * c.A / 255);
c.G = (byte)(c.G * c.A / 255);
c.B = (byte)(c.B * c.A / 255);
Ada banyak yang bisa dikatakan untuk memiliki pipa konten. Jika Anda tidak menggunakan XNA, tetapi menggunakan Visual Studio, maka Anda bisa melakukannya sendiri . Semua proses IDE / build lain juga harus mampu.
Dan akhirnya, jika Anda tidak memiliki langkah pemrosesan konten di build Anda (dan kemungkinan Anda juga tidak memiliki banyak konten), Anda dapat dengan mudah melakukan pra-aplikasi saat runtime ketika Anda memuat tekstur Anda. Ini akan menambah beberapa faktor konstan pada waktu pemuatan tekstur Anda.
(Jika implikasinya tidak jelas: Anda mungkin tidak boleh mengedit gambar alfa yang telah di-prapultiplied. Ekspor terlebih dahulu jika Anda bisa, atau lebih baik lagi memprosesnya.)