Lessico IT › Programmazione › Contatti speculativi

Contatti speculativi

Programmazione Svenska → Aggiornato: 2026-10-24

Un modo per impedire che oggetti veloci attraversino i muri: creare in anticipo vincoli di contatto per le coppie che potrebbero scontrarsi, invece di tornare indietro al momento dell'impatto.

Il normale rilevamento discreto delle collisioni verifica solo dove si trovano i corpi alla fine di un frame, quindi un proiettile che salta da un lato all'altro di un muro in un solo passo non vede il muro affatto. I contatti speculativi risolvono il problema osservando la distanza tra due forme e la loro velocità relativa: se potrebbero incontrarsi prima della fine del passo, viene aggiunto subito un vincolo di contatto, con un limite che agisce solo se la distanza viene davvero colmata.

La tecnica fu resa popolare da Paul Firth intorno al 2011 ed è presente, tra l'altro, in Box2D. È più economica che avanzare fino al momento esatto dell'impatto, perché riutilizza il normale solver di vincoli, ma il prezzo sono le collisioni fantasma: un corpo può essere frenato da un ostacolo che in realtà avrebbe mancato.

← Torna al lessico