Saat ini saya sedang mengerjakan tesis master saya tentang penyederhanaan LOD dan mesh, dan saya telah membaca banyak makalah akademis dan artikel tentang subjek ini. Namun, saya tidak dapat menemukan informasi yang cukup tentang bagaimana LOD digunakan dalam game modern. Saya tahu banyak game menggunakan semacam LOD dinamis untuk medan, tetapi bagaimana dengan di tempat lain?
Level Detail untuk Grafik 3D misalnya menunjukkan bahwa LOD diskrit (di mana seniman menyiapkan beberapa model sebelumnya) banyak digunakan karena overhead kinerja LOD kontinu. Namun buku itu diterbitkan pada tahun 2002, dan saya bertanya-tanya apakah semuanya berbeda sekarang. Ada beberapa penelitian dalam melakukan LOD dinamis menggunakan geometri shader ( makalah ini misalnya, dengan implementasinya di ShaderX6), akankah itu digunakan dalam game modern?
Untuk meringkas, pertanyaan saya adalah tentang keadaan LOD dalam video game modern, algoritma apa yang digunakan dan mengapa? Secara khusus, apakah penyederhanaan kontinu bergantung tampilan digunakan atau apakah overhead runtime menjadikan penggunaan model diskrit dengan campuran yang tepat dan peniru merupakan solusi yang lebih menarik? Jika model diskrit digunakan, apakah algoritma yang digunakan (mis. Pengelompokan verteks ) untuk membuatnya offline, apakah seniman secara manual membuat model, atau mungkin kombinasi dari kedua metode digunakan?
sumber
Jawaban:
Untuk saat ini tampaknya LOD diskrit masih lebih disukai, tetapi masih harus dilihat apakah ini akan berubah dengan generasi berikutnya dari perangkat keras konsol.
Untuk apa nilainya Tom Forsyth telah menulis banyak tentang LOD terus menerus, yang ia sebut "progressive meshing". Pemrograman Game Permata 2 bermaksud memiliki salah satu dari artikel ini, tetapi tampaknya dicerminkan di sini .
Saya percaya salah satu game Tom dikirim menggunakan progressive meshing pada hardware konsol generasi terakhir. Saya tidak berpikir itu perhitungan overhead yang dikhawatirkan orang dengan LOD yang berkelanjutan. Saya pikir lebih dari LOD diskrit lebih mudah. Continuous LOD lebih berat mengangkat dalam pipa alat dan tidak memiliki keuntungan yang cukup jelas.
Adapun generasi LOD diskrit, kami menggunakan kombinasi alat otomatis dan pembuatan artis. DirectX SDK hadir dengan beberapa hal untuk mengurangi geometri secara otomatis dan saya percaya kami menggunakannya sebagai pass pertama, jika kualitasnya tidak cukup baik maka seniman membuat LOD diskrit dengan tangan atau menggunakan alat tambahan di Maya.
sumber
LOD tidak hanya digunakan untuk medan, tetapi juga untuk siluet struktur yang jauh dan untuk pandangan mata elang dari game strategi / simulasi. Saya tidak tahu detail algoritme, dan saya rasa itu adalah bagian utama dari pertanyaan Anda, tetapi saya ingin memberi Anda beberapa contoh keadaan LOD dalam video game modern.
sumber
Salah satu pendekatan modern untuk LOD terus menerus adalah tessellation perangkat keras. Tessellation perangkat keras diimplementasikan dalam DirectX 11 dan pada dasarnya menyediakan subdivisi permukaan yang dapat diprogram. Karena ini diterapkan pada GPU, ini memungkinkan untuk detail yang jauh lebih tinggi daripada yang disediakan oleh tessellation yang dihasilkan CPU. Dengan membagi permukaan berdasarkan jarak pandang, misalnya, Anda dapat memberikan bentuk LOD kontinu.
Tessellation perangkat keras adalah fitur GPU yang sangat baru dan tidak ada banyak game yang menggunakannya. Saya menduga bahwa gim-gim yang menggunakannya sebagian besar sebagai drop-in untuk pemetaan bump - daripada bump map dalam pixel shader, Anda dapat memodifikasi geometri yang sebenarnya. Mungkin ada banyak ruang untuk penelitian lebih lanjut tentang penyederhanaan dan peningkatan mesh menggunakan tessellation perangkat keras.
Beberapa sumber lagi:
sumber
Berikut adalah saran alternatif, agar tetap menarik. Dekomposisi cembung dapat membuat perkiraan geometri dengan cukup cepat, dan biasanya untuk jerat tabrakan. Jerat ini bekerja dengan baik sebagai LOD dan masuk akal sebagai penipisan waktu nyata untuk mempercepat saluran pipa.
http://codesuppository.blogspot.com/2009/11/convex-decomposition-library-now.html
sumber
LOD adalah tentang menjaga agar jumlah pemrosesan konstan dari waktu ke waktu. Tingkat detail hierarkis adalah satu-satunya cara melakukan ini untuk adegan dengan detail yang cukup besar. Jika Anda cukup dekat ke suatu objek, itu terurai menjadi beberapa objek. LOD rekursif ini tidak hanya menyediakan mekanisme sederhana untuk menangani titik-titik transisi untuk beralih ke level detail baru, tetapi juga memungkinkan jumlah panggilan render tetap sama, tidak peduli seberapa jauh / dekat Anda dengan objek dunia Anda.
Sangat baik memiliki LOD yang bagus untuk jerat dan tekstur Anda, tetapi dalam setidaknya satu game yang saya kirim di PS2, cara saya menghemat waktu hanya untuk menyatukan semua dedaunan di sektor menjadi panggilan undian tunggal. Pengundian panggilan yang lebih besar ini memakan waktu hampir 90% lebih sedikit daripada merender semua varian penginapan rendah, bahkan dengan transisi material yang tertata dengan cermat dan rendering batch setiap jenis mesh. Jadi, pertimbangkan LOD dengan hati-hati. Ini bukan hanya tentang objek individual. Ini tentang fase render keseluruhan.
sumber
Subjek lain yang perlu dibahas di makalah Anda (meskipun seluruh tesis dapat dengan mudah ditulis hanya pada subjek ini saja) adalah pembuatan medan secara prosedural.
Banyak proyek modern mulai menggunakan generasi medan prosedural waktu-nyata untuk menghasilkan bentangan medan yang luas (Outerra, Infinity (INovae), dan beberapa yang paling menonjol). Diskrit LOD bukanlah pilihan, karena sifat prosedural jerat.
Medan ini sering menggunakan struktur partisi heirarkis seperti quadtrees untuk menentukan LOD, dan menghasilkan mesh resolusi yang sesuai berdasarkan kedalaman node pohon.
Tanpa menggunakan LOD yang berkesinambungan, proyek-proyek luar biasa ini tidak akan mungkin terjadi.
sumber