Leksykon IT › Programowanie › Wykrywanie kolizji

Wykrywanie kolizji

Programowanie Svenska → Zaktualizowano: 2026-10-06

Ustalanie, które z tysięcy obiektów faktycznie się stykają, bez porównywania każdej pary z każdą.

Naiwna implementacja ma złożoność O(n²) i przewraca się przy kilku tysiącach obiektów, więc pracę dzieli się na dwie fazy. Faza szeroka (broad phase) szybko odsiewa obiekty za pomocą zgrubnych przybliżeń — prostopadłościanów ograniczających wyrównanych do osi, podziału przestrzeni, drzew BVH czy algorytmu sweep and prune — i przekazuje krótką listę par, które mogą się stykać. Faza wąska (narrow phase) sprawdza je dokładnie, zwykle algorytmem GJK lub twierdzeniem o osi rozdzielającej.

Klasyczny błąd to tunelowanie: szybki pocisk przeskakuje przez ścianę, bo kolizja istnieje tylko między dwiema klatkami i nigdy nie zostaje „spróbkowana”. Remedium to ciągłe wykrywanie kolizji, które przesuwa bryłę wzdłuż toru i kosztuje sporo — dlatego silniki włączają je zwykle tylko dla pocisków i pojazdów.

← Wróć do leksykonu