Bagaimana orang-orang di EA DICE menciptakan lingkungan yang dapat dirusak di Battlefield Bad Company 2 dan Battlefield 3?
Apakah mereka hanya merakit bangunan dari sub-wilayah yang telah ditentukan, yang pecah ketika ada ledakan atau yang serupa? Saya tidak bisa memikirkan hal lain.
Jawaban:
Sederhananya ya itu yang mereka lakukan. Tapi panjangnya ekstra untuk menutupi ujung lurus menggunakan masker penghancur . Setelah menghapus bagian geometri, mereka menambahkan jala rinci di sekitar bagian yang dihancurkan untuk membuatnya terlihat dapat dipercaya.
Inilah cara kerjanya,
Ketika menghancurkan bagian dari rumah ini, mereka mulai dengan menghapus sepotong geometri
Kemudian menambahkan detail jerat di sekitar bagian yang hancur.
Dan langkah terakhir adalah menambahkan topeng penghancuran.
Mereka juga menggunakan efek partikel dan serpihan jaring untuk tampilan yang lebih dramatis.
(Semua referensi diambil dari 2 publikasi yang saya sebutkan di komentar)
sumber
Ini adalah CSG - Constructive Solid Geometry (walaupun dalam kasus ini, itu destruktif, secara tegas), jika Anda ingin melakukan penelitian lebih lanjut tentang bagaimana sebenarnya algoritma bekerja.
Pendekatan standar adalah dengan menggunakan dua jerat A & B yang ada (rumah dan volume "ledakan" yang dikurangkan) untuk menghasilkan "jala" ketiga (grafik) di mana dua bidang jerat dan tepi berpotongan, C - yang menggambarkan area mereka berbagi. Dalam 2D:
A adalah rumah, B adalah volume ledakan, C adalah persatuan / titik potong antara A dan B. G adalah tanah.
Matematika / logika di baliknya tidak sepele, karena ada banyak kasus tepi yang harus dihadapi dan setengah atau lebih dari tugas ini hanya mengenali jenis grafik hasil yang mungkin merupakan kasus khusus yang perlu dipenuhi dalam kode. Saya telah melihat masalah yang dijelaskan oleh para veteran di gamedev.net sebagai "masalah yang sangat sulit" dan saya dapat memberitahu Anda dari mencoba dalam 2D, bahkan, dan memiliki tingkat keberhasilan yang moderat di mana hanya beberapa kasus tepi yang gagal, bahwa itu bukan tugas kecil.
Cara yang mungkin lebih mudah adalah dengan menggunakan algoritma dekomposisi poligon, dan gunakan geometri yang dibuat sebagai dasar untuk penghancuran geometri Anda.
sumber