Apa itu "bidang jarak" dan bagaimana mereka berlaku untuk deteksi tabrakan?

12

Saya melihat beberapa metode yang efisien untuk mendeteksi tabrakan dalam sebuah adegan dengan objek statis dan dinamis ketika saya menemukan "bidang jarak."

Saya mencoba mencari dan memahami konsep ini, tetapi saya hanya dapat menemukan makalah yang ditulis dalam bahasa yang sangat kompleks. Dapatkah seseorang menjelaskan dengan mudah kata-kata apa bidang jarak itu dan bagaimana mereka dapat digunakan untuk deteksi tabrakan?

Muhammad Omer
sumber
maksud Anda peta jarak?
LearnCocos2D

Jawaban:

13

Bidang jarak ( atau jarak mengubah atau peta jarak ) adalah struktur grid di mana setiap sel di grid merupakan jarak terpendek dari yang sel ke sel dengan beberapa properti lainnya. Paling sering bahwa "properti lain" adalah tipe sel batas, seperti dinding yang tidak bisa dilewati pemain, atau permukaan jaring.

Bidang jarak memiliki banyak penerapan. Anda dapat membayangkan, misalnya, bagaimana mereka dapat digunakan untuk menerapkan panduan gerakan (dengan membuat peta jarak ke objek berbahaya atau yang diinginkan dan mengambil keputusan berdasarkan pergerakan mereka).

Namun, Anda secara khusus bertanya tentang tabrakan. Menggunakan bidang jarak untuk melakukan deteksi tabrakan antara dua objek yang bergerak dapat dengan cepat menjadi agak tidak efisien, karena membangun kembali bidang jarak dapat menjadi sangat lambat ketika ruang lingkup bidang tumbuh (terutama dalam 3D, meskipun metode untuk meningkatkan waktu pembuatan adalah bidang penelitian ).

Tabrakan medan jarak dengan demikian digunakan terutama untuk mendeteksi tabrakan objek dinamis dengan yang statis. Paling sering, saya pernah melihat ini dilakukan untuk mendeteksi tumbukan benda-benda kain (atau cacat lainnya) dengan benda-benda tetap lainnya di tempat kejadian .

Secara kasar, ini dicapai dengan menggunakan bidang jarak yang ditandatangani untuk objek statis di mana satu tanda (sering negatif) mewakili sel di dalam jala dan yang lain (jelas sering positif) mewakili sel di luar jala. Partikel-partikel mesh kain dapat ditransformasikan menjadi ruang lokal mesh statis, dan posisi "sebelum" dan "setelah" suatu partikel selama langkah simulasi kain yang diberikan dapat diperiksa terhadap bidang jarak untuk menentukan apakah tanda berubah (dan sehingga terjadi tabrakan). Ini adalah metode yang dibahas dalam makalah ini pada simulasi kain , misalnya.

Perhatikan bahwa saya tidak akan menyarankan menggunakan bidang jarak sebagai satu-satunya metode deteksi tabrakan. Mereka bisa cukup efisien untuk apa yang mereka kuasai, tetapi mereka tidak pandai dalam segala hal. Cara terbaik untuk mencapai deteksi tabrakan yang efisien adalah sering menggunakan beberapa metode, secara hierarkis, dengan peningkatan presisi saat Anda menelusuri hierarki.


sumber
5

Apa itu bidang jarak?

Dalam geometri dan grafik komputer dan juga digunakan dalam pemrosesan gambar, bidang jarak (dengan kata-kata sederhana), adalah label pada setiap sel (piksel dalam pemrosesan gambar) dengan jarak objek poligon terdekat atau piksel dengan properti khusus dalam pemrosesan gambar .

Dengan kata lain itu adalah label untuk setiap sel yang memiliki nilai objek terdekat dengan properti khusus yang ditentukan oleh peta. Objek bervariasi tergantung pada aplikasi.

masukkan deskripsi gambar di sini

Gambar di atas berisi peta Jarak untuk piksel batas. Perhatikan bagaimana setiap piksel berisi jarak ke piksel batas terdekat. Jarak dihitung menggunakan jarak Manhattan.

Ada berbagai cara untuk menghitung jarak, pendekatan khas meliputi:

Bagaimana ini berlaku dalam deteksi tabrakan?

Dengan mempertahankan peta jarak untuk objek dalam adegan, Anda dapat memeriksa apakah dua objek bertabrakan berdasarkan jarak di sana. Sayangnya pemeliharaan peta seperti itu mahal. Dan ini biasanya digunakan pada objek berpotongan sendiri seperti simulasi kain agar peta jarak dapat dipertahankan dan diperbarui lebih efisien karena sifat objek.

concept3d
sumber
Mengapa ini bisa dilakukan "lebih efisien" pada objek yang berpotongan sendiri?
lucidbrot