Основанный на обследовании CCD
Алгоритм Sweep-based CCD является CCD алгоритмом для режимов Непрерывный и Непрерывная динамика.
Использование Непрерывный у физических тел, которые сталкиваются только с неподвижными статическими коллайдерами (то есть с GameObject без Rigidbody). Используйте Непрерывная динамика на физических телах, которые сталкиваются с движущимися динамическими коллайдерами (то есть, GameObjects, которые имеют динамический Rigidbody).
Непрерывный и Непрерывный Динамический являются наиболее точными режимами обнаружения столкновений. Однако они также являются наиболее вычислительно требовательными. Кроме того, они работают только для столкновений, которые происходят в результате линейного движения; они не могут обнаружить столкновения, которые происходят в результате вращения физического тела (например, столкновение пинбола с мячом, когда он вращается на своей оси).
Понимание Sweep-основанного CCD
Основанный на обследовании CCD использует Время-Удар (TOI) алгоритм для вычисления потенциальных столкновений. Для этого алгоритм «размахивает» или обнаруживает вдоль траектории движения объекта вперед на текущей скорости объекта.
На приведенном выше изображении:
- A: Объект в исходном положении
- B: Прогнозируемая область, через которую пройдет объект между настоящим моментом и следующим шагом времени, основанная на текущей скорости объекта
- C: Объект в новом положении после одного физического шага времени
Если есть контакты в направлении движения объекта, алгоритм вычисляет время удара и перемещает объект до этого времени. Алгоритм может выполнять подшаги с этого времени и далее; самое главное, он может пересчитать скорость после удара и затем пересчитать на новой траектории.
На приведенном выше изображении:
- A: Объект в исходном положении
- B: Объект в положении, в котором основанный на сканировании алгоритм CCD прогнозирует столкновение
- C: Первоначальное предсказанное положение после одного физического временного шага
- D: Collider прерывающий линейный путь, обнаруженный алгоритмом CCD, основанным на методе sweep
Основанный на Sweep CCD может иметь значительное влияние на производительность, особенно при широком использовании в проекте. Если большое количество высокоскоростных объектов с основанным на Sweep CCD находятся в непосредственной близости друг от друга, накладные расходы CCD быстро возрастают, потому что физике нужно выполнять больше Sweep и больше CCD подшагов.
Ограничением основанного на CCD метода является то, что он может выполнять только линейное (или направленное) сканирование, а не угловое (или вращающееся) сканирование, что означает, что он не может предсказать столкновения, которые могут произойти, если физическое тело вращается. Например, флиппер в пинбольной машине зафиксирован на одном конце и вращается вокруг фиксированной точки; он имеет только угловое движение, а не линейное движение. Если вам также нужно учесть вращение объекта, используйте спекулятивный CCD.