LOD dalam game modern [tertutup]


14

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?


Saya sarankan menambahkan tag 'rendering', karena Anda benar-benar tertarik pada grafis LOD, sedangkan LOD juga dapat diterapkan pada fisika, AI, dan area lain di mana kepentingan dapat diperkecil berdasarkan jarak ke sesuatu atau kinerja.
Kaj

@ Kaj: Poin bagus. Saya berbicara tentang penyederhanaan mesh poligonal khususnya.
Firas Assaad

Oh, sepertinya kami mengedit pada saat yang sama (saya lupa saya bisa menambahkan tag, jangan ragu untuk menghapus pemrograman grafis: o \). Saya akan mencoba memberikan jawaban nanti - saya sedang kesal hari ini.
Kaj

Jawaban:


9

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.


1
Saya pikir Mesias menggunakan penyatuan progresif secara luas, sepertinya berabad-abad yang lalu dunia merasa bingung tentang hal itu. Tapi saya setuju, penginapan statis sepertinya masih lazim di mana saya melihat. Sulit untuk secara algoritmik menentukan detail apa yang penting untuk dilestarikan, meskipun banyak makalah SigGraph telah ditulis tentang hal itu karena saya yakin OP tahu. Selain itu, metode lucu yang selalu saya ingat adalah bab 'penipu sejati' di salah satu permata Pemrograman Game yang saya percaya ... di mana mereka menggunakan penipu dengan pemetaan oklusi parralax. Saya tahu saya telah melihat lebih banyak makalah yang ditulis dengan metodologi yang sama (mungkin Fabio Policarpo?)
Kaj

1
Serangan lain terhadap LOD terus menerus adalah jumlah memori tetap yang tersedia di lingkungan konsol. Objek diskrit memungkinkan Anda membuang model hi-res dan semua tekstur / pembayangnya yang bergantung dan bertukar dalam model biaya yang jauh lebih rendah dengan shader sederhana dan tekstur lebih kecil yang digabungkan sebelumnya. Dalam judul dunia terbuka memperebutkan data apa yang mengisi memori yang tersedia terbatas seringkali merupakan perjuangan yang lebih besar daripada siklus CPU / GPU.
wkerslake

6
  • Panglima Tertinggi (1 & 2) - RTS ini membanggakan dirinya sendiri karena Anda dapat dengan lancar memperkecil semua cara untuk melihat peta medan perang, dan kemudian memperbesar semua jalan di area dan mengelolanya. Ini menggunakan LOD dengan sangat baik saat Anda memperbesar dan memperkecil agar kartu grafis tidak kelebihan muatan, dan pada tingkat zoom out tertentu jerat diganti dengan gambar 2D dari jenis unit apa mereka, sehingga peta medan perang dapat dengan jelas tunjukkan di mana semuanya berada (karena jelas jala 3D yang sangat rendah pada ketinggian 20.000 kaki tidak dapat dibedakan). Anda dapat melihat efek penggantian 2D dengan cukup jelas dalam beberapa detik pertama video ini .
  • RollerCoaster Tycoon 3 - Mirip dengan Supreme Commander, game ini memungkinkan Anda untuk memperbesar dan memperkecil sesuka hati, melihat seluruh taman hiburan Anda atau mengelola satu coaster. Itu tidak menggunakan penggantian gambar 2D tetapi karena LOD semuanya tetap lancar; tidak hanya jerat besar mengurangi kualitas, tetapi detail kecil seperti orang-orang yang berjalan-jalan menghilang ketika Anda memperkecil cukup jauh.
  • Legend of Zelda: Wind Waker - Saat Anda berlayar di laut terbuka, Anda dapat melihat-lihat dan melihat pulau terdekat dengan Anda; mereka hanya siluet pulau, dan model 3D yang sebenarnya tidak dimuat sampai Anda mendekati sebuah pulau. Fitur lain dari pulau itu juga memuat, seperti musuh dan topan di perairan terdekat; sayangnya pemain dapat melihat mereka "muncul" saat dia semakin dekat, tetapi secara keseluruhan itu adalah teknik yang baik yang mencegah dari membebani perangkat keras Nintendo GameCube sambil memberi pemain perasaan yang cukup akurat berlayar di laut dan mampu membedakan pulau-pulau landmark di jarak.
  • Penatua Scrolls IV: Oblivion - Saya belum pernah memainkan game ini dalam waktu yang lama tetapi saya tahu itu memang menggunakan siluet atau model yang sangat detail untuk struktur tengara yang jauh, seperti menara tinggi di salah satu kota, dan gunung yang jauh. .

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.


4

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:


Sampai sekarang saya akan menganggapnya lebih sebagai teknologi showcase daripada praktis karena Anda benar-benar tidak termasuk banyak audiens target. Tapi ya, prosedural mungkin jalan ke depan dalam beberapa bentuk atau bentuk tidak yakin itu implementasi MS saat ini. Waktu akan menjawab.
Kaj


3

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.


1

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.