Unity 6.3
0 онлайн 25 гостей 3 в системе
Вход

Основанный на обследовании CCD

Алгоритм Sweep-based CCD является CCD алгоритмом для режимов Непрерывный и Непрерывная динамика.

Использование Непрерывный у физических тел, которые сталкиваются только с неподвижными статическими коллайдерами (то есть с GameObject без Rigidbody). Используйте Непрерывная динамика на физических телах, которые сталкиваются с движущимися динамическими коллайдерами (то есть, GameObjects, которые имеют динамический Rigidbody).

Непрерывный и Непрерывный Динамический являются наиболее точными режимами обнаружения столкновений. Однако они также являются наиболее вычислительно требовательными. Кроме того, они работают только для столкновений, которые происходят в результате линейного движения; они не могут обнаружить столкновения, которые происходят в результате вращения физического тела (например, столкновение пинбола с мячом, когда он вращается на своей оси).

Понимание Sweep-основанного CCD

Основанный на обследовании CCD использует Время-Удар (TOI) алгоритм для вычисления потенциальных столкновений. Для этого алгоритм «размахивает» или обнаруживает вдоль траектории движения объекта вперед на текущей скорости объекта.

Обнаружение столкновений на основе Sweep, от одного временного шага к следующему. Подробнее см. в легенде ниже.
Обнаружение столкновений на основе Sweep, от одного временного шага к следующему. Подробнее см. в легенде ниже.

На приведенном выше изображении:

  • A: Объект в исходном положении
  • B: Прогнозируемая область, через которую пройдет объект между настоящим моментом и следующим шагом времени, основанная на текущей скорости объекта
  • C: Объект в новом положении после одного физического шага времени

Если есть контакты в направлении движения объекта, алгоритм вычисляет время удара и перемещает объект до этого времени. Алгоритм может выполнять подшаги с этого времени и далее; самое главное, он может пересчитать скорость после удара и затем пересчитать на новой траектории.

Обнаружение столкновения на основе сканирования, когда алгоритм обнаруживает препятствие. Подробнее см. ниже.
Обнаружение столкновения на основе сканирования, когда алгоритм обнаруживает препятствие. Подробнее см. ниже.

На приведенном выше изображении:

  • A: Объект в исходном положении
  • B: Объект в положении, в котором основанный на сканировании алгоритм CCD прогнозирует столкновение
  • C: Первоначальное предсказанное положение после одного физического временного шага
  • D: Collider прерывающий линейный путь, обнаруженный алгоритмом CCD, основанным на методе sweep

Основанный на Sweep CCD может иметь значительное влияние на производительность, особенно при широком использовании в проекте. Если большое количество высокоскоростных объектов с основанным на Sweep CCD находятся в непосредственной близости друг от друга, накладные расходы CCD быстро возрастают, потому что физике нужно выполнять больше Sweep и больше CCD подшагов.

Ограничением основанного на CCD метода является то, что он может выполнять только линейное (или направленное) сканирование, а не угловое (или вращающееся) сканирование, что означает, что он не может предсказать столкновения, которые могут произойти, если физическое тело вращается. Например, флиппер в пинбольной машине зафиксирован на одном конце и вращается вокруг фиксированной точки; он имеет только угловое движение, а не линейное движение. Если вам также нужно учесть вращение объекта, используйте спекулятивный CCD.