Saya tahu pertanyaan ini mungkin terdengar agak mudah dijawab tetapi itu membuat saya gila. Ada terlalu banyak kemungkinan situasi yang harus ditangani oleh mekanisme pencampuran alfa yang baik, dan untuk setiap Algoritma saya dapat memikirkan ada sesuatu yang hilang.
Ini adalah metode yang saya kira sejauh ini:
Pertama-tama saya berpikir tentang penyortiran objek berdasarkan kedalaman, yang satu ini hanya gagal karena Objek bukan bentuk yang sederhana, mereka mungkin memiliki kurva dan mungkin loop di dalam satu sama lain. Jadi saya tidak bisa selalu tahu mana yang lebih dekat dengan kamera.
Kemudian saya berpikir tentang menyortir segitiga tetapi yang ini juga mungkin gagal, saya pikir saya tidak yakin bagaimana menerapkannya, ada kasus langka yang lagi-lagi menyebabkan masalah, di mana dua segitiga saling melewati. Sekali lagi tidak ada yang tahu yang mana yang lebih dekat.
Hal berikutnya adalah menggunakan buffer kedalaman, setidaknya alasan utama kita memiliki buffer kedalaman adalah karena masalah dengan penyortiran yang saya sebutkan tetapi sekarang kita mendapatkan masalah lain. Karena objek mungkin transparan, dalam satu piksel mungkin ada lebih dari satu objek yang terlihat. Jadi untuk objek mana saya harus menyimpan kedalaman piksel?
Saya kemudian berpikir mungkin saya hanya bisa menyimpan kedalaman objek paling depan, dan menggunakan itu menentukan bagaimana saya harus memadukan panggilan menggambar berikutnya pada piksel itu. Tapi sekali lagi ada masalah, pikirkan tentang dua pesawat semi transparan dengan pesawat padat di tengahnya. Saya akan membuat pesawat solid pada akhirnya, orang bisa melihat pesawat yang paling jauh. Perhatikan bahwa saya akan menggabungkan setiap dua pesawat sampai hanya ada satu warna yang tersisa untuk piksel itu. Jelas saya dapat menggunakan metode penyortiran juga karena alasan yang sama saya jelaskan di atas.
Akhirnya satu-satunya hal yang saya bayangkan dapat bekerja adalah untuk membuat semua objek menjadi target render yang berbeda dan kemudian mengurutkan lapisan-lapisan itu dan menampilkan hasil akhirnya. Tapi kali ini saya tidak tahu bagaimana saya bisa mengimplementasikan algoritma ini.