Apa manfaat tembok sebagai pesawat atau kotak? Haruskah saya menggunakan pesawat dengan collider kotak, bukan mesh collider?
Apa manfaat tembok sebagai pesawat atau kotak? Haruskah saya menggunakan pesawat dengan collider kotak, bukan mesh collider?
Jawaban:
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.
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.
Anda harus selalu menggunakan yang BoxCollider
bertentangan dengan MeshCollider
ketika Anda bisa. MeshCollider
harus 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 BoxColliders
adalah 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
Jika Anda bekerja lebih cepat dengan pesawat MeshColliders
(karena Anda tidak perlu menyesuaikan semua BoxColliders
untuk menyesuaikan dengan dimensi mereka) mungkin akan baik-baik saja untuk menggunakannya jika Anda mendapatkan kinerja yang Anda inginkan.
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 .
Satu hal lagi tentang Rendering: Ketika Anda memiliki implementasi pemetaan bayangan Anda sendiri, dinding yang terbuat dari kotak dapat lebih unggul dari dinding yang terbuat dari pesawat karena peter-panning yang dapat muncul dengan pesawat.
Berikut penjelasan gejalanya:
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/#peter-panning
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