Menggunakan pengaturan berikut untuk efek partikel OpenGL:
SRC: GL_SRC_ALPHA
DST: GL_ONE
Menciptakan campuran aditif, yang terlihat spektakuler pada latar belakang hitam tetapi mengerikan pada warna yang lebih cerah, karena memudar menjadi putih.
Saya kemudian menggunakan alpha blending:
SRC: GL_SRC_ALPHA
DST: GL_ONE_MINUS_SRC_ALPHA
Hal ini memungkinkan latar belakang lain untuk digunakan tanpa mempengaruhi warna partikel, tetapi partikel itu sendiri terlihat kusam dibandingkan dengan campuran aditif. Bagaimana saya bisa mencapai efek api yang baik dengan alpha blending dan partikel?
Aditif:
Alfa:
MEMPERBARUI:
Mengikuti saran David di bawah ini, saya membuat tekstur terpisah dan kemudian menggunakan campuran aditif pada efek partikel sebelum menggambar ke tekstur. Masalahnya adalah bahwa menggambar pada tekstur alpha = 0 hanya menghasilkan bagian berwarna dari partikel yang muncul di depan peta dunia saya, karena biasanya Anda memiliki latar belakang hitam. Caranya adalah dengan menggunakan dua tekstur. Saya menciptakan tekstur hitam dan kemudian menggambar partikel di atasnya. Lalu saya menghapus lapisan alfa partikel dari tekstur ini, secara efektif menghilangkan semua hitam pekat di sekitarnya dan memudar sebagian partikel yang terlihat, sambil meninggalkan hitam yang mendasarinya seperti yang Anda harapkan saat membuat partikel campuran aditif pada latar belakang hitam. Singkatnya, proses yang melelahkan, tetapi saya akhirnya sampai di sana:
Inilah utas tempat saya memposting proses saya: http://www.cocos2d-iphone.org/forum/topic/28707?replies=8#post-141528