Haruskah dinding dibuat sebagai pesawat atau sebagai kotak?

22

Apa manfaat tembok sebagai pesawat atau kotak? Haruskah saya menggunakan pesawat dengan collider kotak, bukan mesh collider?

Pichi Wuana
sumber

Jawaban:

15

Akan ada beberapa hal berbeda yang perlu Anda pertimbangkan.

Catatan: bahwa manfaat dari optimasi yang dijelaskan di bawah ini hanya masalah dengan satu ton dinding. Pada titik itu, mungkin bijaksana untuk mempertimbangkan solusi yang berbeda seperti partisi ruang biner (BSP) untuk membuat dinding Anda dalam gim Anda. Ini akan membuat level Anda sangat dioptimalkan untuk rendering (jika dirancang dengan benar) dan untuk fisika (karena Anda memiliki definisi yang sangat baik tentang apa yang bertabrakan dan apa yang tidak.

Rendering

Sebuah kotak akan mengambil lebih banyak untuk membuat daripada pesawat. Ini memiliki lebih banyak simpul dan segitiga yang berarti vertex shader Anda dan rasterizer harus dijalankan lebih banyak data. Karena itu, gunakan hanya kotak ketika Anda perlu dalam hal visibilitas. Hapus wajah sesuai kebutuhan untuk apa yang perlu dilihat pemain.

Fisika

Anda harus selalu menggunakan yang BoxColliderbertentangan dengan MeshColliderketika Anda bisa. MeshColliderharus menerapkan tumbukan per wajah (atau sebagai cembung lambung) dari mesh dan membuat raycasting dan fisika lebih lambat (tapi jumlah yang diabaikan hanya untuk satu kotak). Hal lain dengan itu BoxCollidersadalah bahwa jauh lebih sulit bagi pemain untuk fase melalui mereka ketika mereka berjalan sangat cepat. Bahkan dengan tabrakan terus menerus, jika Anda masih memiliki fase hal melalui dinding, Anda selalu dapat hanya memperluasBoxColliders

Produktifitas

Jika Anda bekerja lebih cepat dengan pesawat MeshColliders(karena Anda tidak perlu menyesuaikan semua BoxCollidersuntuk menyesuaikan dengan dimensi mereka) mungkin akan baik-baik saja untuk menggunakannya jika Anda mendapatkan kinerja yang Anda inginkan.

Coburn
sumber
10

Memperluas sedikit poin "Coburn" :

Rendering : Jika Anda menjadikan dinding hanya sebagai bidang, maka dinding hanya akan terlihat dari satu sisi, karena bidang (atau lebih tepatnya wajahnya) hanya memiliki satu sisi yang dirender. Jadi jika pemain dapat bergerak di sekitar dinding, Anda akan membutuhkan beberapa pesawat untuk menutupi semua sisi, yang berarti Anda tetap memiliki sebuah kotak.

Fisika : Penumbuk geometri sederhana (bola, kotak, dll.) Selalu lebih cepat untuk dihitung dibandingkan dengan penumbuk jala penuh karena tidak semua permukaan jala harus diperiksa secara terpisah. Alih-alih, "siaran sederhana" dapat digunakan atau penghitungan jarak (mis. Jarak ke pusat bola dikurangi ukuran bola).

Untuk mesin fisika lain yang memiliki "pesawat collider" yang terpisah (yang tidak dimiliki Unity), tidak ada yang "lebih baik". Sebuah pesawat mungkin sedikit lebih cepat kinerjanya, tetapi Anda mungkin kemudian mengalami masalah objek cepat melewatinya tanpa benar-benar bertabrakan. Kemudian Anda dibiarkan memiliki colliders yang lebih tebal (jadi kotak daripada pesawat) atau pindah ke Continous Collission Detection (CCD), seperti yang dijelaskan di sini .

Philip Allgaier
sumber
Anda hampir selalu dapat mematikan backface.
Bálint
2
@ Bálint Benar. Pengguna kemudian dapat melihat dinding juga dari sisi lain meskipun dengan pencahayaan yang salah dalam kasus itu (cahaya dikirim oleh sumber dari sisi lain / ruang, bukan yang dia berdiri).
Philip Allgaier
Pada poin kedua Anda, Anda tidak benar-benar menentukan apakah itu pro atau kontra dan untuk apa. Sebuah pesawat tampak lebih sederhana secara geometris daripada sebuah kotak, jadi apakah itu maksud Anda?
Bakuriu
@ Bakuriu Sejauh yang saya tahu, Unity tidak memiliki "collider pesawat", jadi "box" adalah hal terdekat. Saya menambahkan catatan untuk mesin fisika lainnya.
Philip Allgaier
0

Saya selalu diberitahu bahwa jika Anda akan memiliki bayangan yang terbaik untuk membuatnya padat untuk membantu dengan pendarahan ringan karena perbedaan kedalamannya adalah kecil dan akan berdarah.

Saya bisa saja salah, tapi saya membuat semua dinding dan hal-hal seperti itu dua sisi, dinding hanya akan menjadi beberapa verts sehingga tidak semestinya menghemat dengan memiliki pesawat.

Ada beberapa hal yang saya tinggalkan tetapi sebagian besar bagian bawah atau atas yang memiliki banyak barang di sekitarnya untuk membantu pendarahan ringan.

Saya melakukan hal yang sama untuk fisika, tidak setiap orang benar-benar memikirkannya tetapi bagi saya sepertinya tepat untuk menggunakan dinding sebagai dinding dan pesawat sebagai pesawat tetapi itu hanya saya

Justin William Stanley Bryant
sumber