Sebagai latihan pembelajaran saya telah menulis mesin rendering yang ditangguhkan. Sekarang saya ingin menambahkan grafik adegan ke mesin ini, tetapi saya agak bingung bagaimana melakukan ini.
Pada normal (mesin rendering maju) saya hanya akan menambahkan semua item (Semua menerapkan IDrawable dan IUpdateAble) ke grafik adegan saya, daripada melakukan perjalanan adegan-grafik lebih dulu dan memanggil Draw () di mana-mana.
Namun dalam mesin rendering yang ditangguhkan saya harus memisahkan panggilan imbang. Pertama saya harus menggambar geometri, lalu kastor bayangan dan kemudian lampu (semua untuk target render berbeda), sebelum saya menggabungkan semuanya. Jadi dalam hal ini saya tidak bisa hanya bepergian grafik adegan dan hanya memanggil menggambar. Cara saya melihatnya, saya juga harus melakukan perjalanan di seluruh grafik adegan 3 kali, memeriksa apa jenis objek yang harus ditarik, atau saya harus membuat 3 grafik adegan terpisah yang entah bagaimana terhubung satu sama lain. Kedua solusi ini tampaknya buruk, saya ingin menangani objek pemandangan lebih transparan.
Satu solusi lain yang saya pikirkan adalah bepergian melalui grafik adegan seperti biasa dan menambahkan item ke 3 daftar terpisah, memisahkan geometri, kastor bayangan dan lampu, dan kemudian mengulangi daftar ini untuk menggambar barang yang benar, apakah ini lebih baik, dan apakah itu bijaksana untuk mengisi kembali 3 daftar setiap frame?