Що таке "відстані поля" і як вони застосовні для виявлення зіткнень?


12

Я переглядав деякі ефективні методи виявлення зіткнень у сцені як зі статичними, так і з динамічними об'єктами, коли натрапляв на "поля відстані".

Я намагався шукати та розуміти це поняття, але я міг знайти лише документи, написані дуже складною мовою. Чи може хтось простими словами пояснити, що таке поля відстані і як їх можна використовувати для виявлення зіткнень?


ви мали на увазі карти відстаней?
LearnCocos2D

Відповіді:


13

Поле відстані ( або перетворення відстані чи карта відстані ) - це сітчаста структура, де кожна комірка в сітці являє собою найкоротшу відстань від цієї комірки до комірки з деяким іншим властивістю. Найчастіше, що "інша властивість" - це межовий тип комірки, наприклад стіна, яку гравець не може пройти, або поверхня сітки.

Відстанні поля мають багато застосовних. Ви можете собі уявити, наприклад, як вони можуть використовуватися для здійснення наведення руху (шляхом створення відстаней до небезпечних або бажаних об'єктів і зважування ними рішень щодо руху).

Однак ви спеціально запитали про зіткнення. Використання дистанційних полів для виявлення зіткнення між двома рухомими об'єктами може швидко стати досить неефективним, оскільки відновлення полів відстані може ставати дуже повільним у міру зростання сфери дії (особливо в 3D, хоча методи покращення часу генерації - це область досліджень ).

Зіткнення поля на відстані використовується, головним чином, для виявлення зіткнення динамічного об'єкта зі статичним. Найчастіше я це бачив для виявлення зіткнення тканинних (або інших деформованих) предметів з іншими нерухомими предметами в сцені .

Грубо це досягається за допомогою підписаного поля відстані для статичного об'єкта, де один знак (часто негативний) являє собою комірку всередині сітки, а інший (очевидно, часто позитивний) являє собою клітинку поза сіткою. Частинки тканинної сітки можуть бути перетворені в локальний простір статичної сітки, а положення "до" і "після" частинки під час даного етапу моделювання полотна можна перевірити на відстані поля, щоб визначити, чи змінився знак (і таким чином сталося зіткнення). Це метод, про який йдеться у цій статті, наприклад, про моделювання тканини .

Зауважте, що я б не пропонував використовувати поля відстані як єдиний метод виявлення зіткнень. Вони можуть бути досить ефективними в тому, в чому вони хороші, але не в усьому хороші. Найкращий спосіб досягти ефективного виявлення зіткнень - це використання декількох методів, ієрархічно, із збільшенням точності, коли ви рухаєтесь за ієрархією.


5

Що таке поля відстані?

У геометрії та комп’ютерній графіці, а також використовується в обробці зображень, поле відстані (простими словами) - це мітка на кожній комірці (піксель при обробці зображення) з відстанню найближчого полігонального об'єкта або пікселя зі спеціальними властивостями в обробці зображення .

Іншими словами, це мітка для кожної комірки, яка має значення найближчого об'єкта зі спеціальним властивістю, визначеним картою. Об'єкт змінюється залежно від програми.

введіть тут опис зображення

Наведене вище зображення містить карту відстані для граничних пікселів. Зверніть увагу, як кожен піксель містить відстань до найближчого граничного пікселя. Відстань обчислюється, використовуючи відстань Манхеттена.

Існують різні способи розрахунку відстані, типові підходи включають:

Як це застосовується при виявленні зіткнень?

Підтримуючи карту відстані для об’єктів у сцені, ви можете перевірити, чи стикаються два об’єкти на основі відстані, що існує. На жаль, підтримувати таку карту дорого. І це зазвичай використовується в самопересічних об'єктах, як моделювання тканини, якщо карти відстаней можна підтримувати та оновлювати ефективніше через характер об'єкта.


Чому це можна зробити «ефективніше» в об'єктах, що перетинаються між собою?
lucidbrot
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.