CCD memastikan bahwa tubuh bergerak cepat bertabrakan dengan benda-benda yang lewat, atau terowongan, melalui benda-benda tersebut. Unity menyediakan metode CCD berikut:
Untuk menggunakan CCD berbasis menyapu, pilih RigidBodyKomponen yang memungkinkan GameObject untuk dipengaruhi oleh gravitasi simulasi dan kekuatan lainnya. More info
Lihat di Glossary di jendela InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary dan set Collision DetectionProses otomatis yang dilakukan oleh Unity yang menentukan apakah yang bergerak GameObject dengan komponen kaku dan collider telah masuk ke kontak dengan sari lainnya. More info
Lihat di Glossary ke Continuous atau Continuous Dynamic. Untuk CCD spekulatif, set Collision Detection ke Continuous Speculative.
CCD berbasis sapuan menggunakan algoritma Time Of Impact (TOI) untuk menghitung potensi collisionstabrakan terjadi ketika mesin fisika mendeteksi bahwa tabrakan dari dua GameObjects membuat kontak atau tumpang tindih, ketika setidaknya satu memiliki komponen kaku dan bergerak. More info
Lihat di Glossary untuk objek dengan menyapukan trajectory majunya menggunakan kecepatan saat ini. Jika ada kontak di sepanjang arah bergerak objek, algoritma menghitung waktu dampak dan memindahkan objek sampai saat itu. Algoritme dapat melakukan sub langkah dari waktu itu ke depan, mengkomputasikan kecepatan setelah TOI kemudian menangis kembali, dengan biaya siklus CPU lebih.
Namun, karena metode ini bergantung pada menyapu linier, diabaikan gerakan sudut tubuh, yang dapat menyebabkan efek terowongan saat benda berputar pada kecepatan. Misalnya, mesin flipper dalam mesin pinball tetap pada satu ujung dan berputar di sekitar titik tetap. flipper hanya memiliki gerakan sudut dan tidak ada gerakan linier. Oleh karena itu, dapat dengan mudah melewatkan tabrakan dengan pinball:
Masalah lain dengan metode ini adalah kinerja. Jika Anda memiliki sejumlah besar benda berkecepatan tinggi dengan CCD di dekat kedekatan, overhead CCD meningkat cepat karena penyapu ekstra, dan physics engineSebuah sistem yang mensimulasikan aspek sistem fisik sehingga benda dapat mempercepat dengan benar dan dipengaruhi oleh tabrakan, gravitasi dan kekuatan lainnya. More info
Lihat di Glossary harus melakukan lebih banyak sub-langkah CCD.
CCD spektif bekerja dengan meningkatkan sumbu sumbu fase lebar objek yang menyelaraskan kotak pengikat minimum (AABB), berdasarkan gerakan linier dan sudut objek. Algoritme spekulatif karena memilih semua kontak potensial selama langkah fisika berikutnya. Semua kontak kemudian dimasukkan ke dalam pemecahan, yang memastikan bahwa semua kendala kontak puas sehingga objek tidak terowongan melalui tabrakan.
Diagram berikut menunjukkan bagaimana bidang bergerak dari t0 bisa memiliki posisi yang diharapkan pada t1 jika tidak ada dinding di jalannya. Dengan meningkatkan AABB dengan targetnya, algoritma spekulatif mengambil dua kontak dengan normal n1 dan n2. Algoritme kemudian memberitahu pemecahan untuk menghormati kontak tersebut sehingga bidang tidak terowongan melalui dinding.
ABB yang digemukan berdasarkan kecepatan saat ini membantu mendeteksi semua kontak potensial di sepanjang lintas bergerak, yang memungkinkan pemecahan untuk mencegah terowongan.
CCD spekulatif umumnya lebih murah daripada metode berbasis menyapu karena kontak hanya sebanding selama fase deteksi tabrakan, tidak selama fase pemecahan dan mengintegrasikan. Juga, karena CCD spekulatif memperluas AABB fase luas berdasarkan gerakan linear dan sudut objek, menemukan kontak yang berbasis CCD dapat melewatkan.
Namun, CCD spekulatif dapat menyebabkan tabrakan, di mana gerakan objek dipengaruhi oleh titik kontak spekulatif ketika seharusnya tidak. Ini karena CCD spekulatif mengumpulkan semua kontak potensial berdasarkan algoritma titik terdekat, sehingga kontak normal kurang akurat. Hal ini sering dapat membuat objek kecepatan tinggi slide di sepanjang fitur tabrakan dan melompat, meskipun mereka seharusnya tidak. Sebagai contoh, dalam diagram berikut, sphere dimulai pada t0 dan bergerak secara horizontal ke arah kanan, dengan posisi yang diprediksi pada t1 setelah integrasi. AABB yang berkelok-kelok sepanjang kotak b0 dan b1, dan CCD menghasilkan dua kontak spekulatif pada c0 dan c1. Karena CCD spekulatif menghasilkan kontak menggunakan algoritma titik terdekat, c0 memiliki normal yang sangat cenderung, yang tampaknya menjadi jalan ke pemecahan.
Penyebab normal yang sangat cenderung t1 untuk melompat ke atas setelah integrasi, daripada bergerak ke depan lurus:
CCD spekulatif juga dapat menyebabkan tunneling karena kontak spekulatif hanya sebanding selama fase deteksi tabrakan. Selama pemecahan kontak, jika objek mendapatkan terlalu banyak energi dari pemecahan, itu mungkin berakhir di luar AABB yang digemukan awal setelah integrasi. Jika ada tabrakan di luar AABB, objek akan terowongan segera.
Misalnya, diagram berikut menunjukkan bidang bergerak kiri dari t0 sementara tongkat berputar searah jarum jam. Jika sphere mendapatkan terlalu banyak energi dari dampak, itu mungkin berakhir keluar dari AABB yang berkembang (merah persegi panjang) pada t1. Jika ada tabrakan di luar AABB, seperti yang ditunjukkan oleh kotak biru di bawah ini, sphere dapat berakhir tunneling tepat melalui itu. Ini karena pemecahan hanya mengimbangi kontak di dalam AABB yang meningkat, dan deteksi tabrakan tidak dilakukan selama pemecahan dan mengintegrasikan fase.
2018-10-12 Sitemap
Deteksi tabrakan spekulatif ditambahkan dalam NewIn20183