Ho letto alcune informazioni sulle simulazioni fisiche e ho trovato una possibile soluzione. Funziona suddividendo ogni passaggio di fisica in tre fasi:
1. Pre-passaggio:
Ad ogni passo di fisica, una finestra crea quattro trasformazioni, due per ciascun lato della connessione:
- una trasformazione di input che trasforma la posizione, la velocità (e possibilmente la dimensione e il peso) di un oggetto nel sistema di coordinate di destinazione e
- una trasformazione di output che trasforma le forze nel sistema originale dell'oggetto.
(Le finestre statiche devono farlo solo una volta.)
Inoltre, gli oggetti in ciascun sistema di coordinate sono divisi in tre gruppi:
Raggruppamento di fisica http://content.wuala.com/contents/Tamschi/Stack%20Exchange/WindowGrouping.png
Oggetti davanti alla finestra (verde).
Un oggetto viene conteggiato anche in questo gruppo se interseca il piano della finestra o è probabile che lo attraversi da dietro la finestra (non mostrato).
Oggetti che intersecano la finestra o che probabilmente la intersecano in questo passaggio di fisica (arancione).
Oggetti dietro la finestra (blu). Se un oggetto vola verso il lato posteriore della finestra, viene comunque contrassegnato come membro del gruppo tre.
Il raggruppamento può essere semplificato se la finestra si trova sul bordo della simulazione.
2. Fase principale:
La fisica viene calcolata principalmente come al solito, con alcune eccezioni:
Gli oggetti del secondo gruppo non si scontrano mai con quelli del terzo e viceversa.
La trasformazione di input della finestra viene utilizzata sugli oggetti del secondo gruppo e i risultati vengono valutati rispetto agli oggetti frontali e intersecanti dal sistema di destinazione. La forza risultante viene trasformata utilizzando la trasformazione di output e applicata all'oggetto originale.
(Se un oggetto viene colpito durante il calcolo, deve essere raggruppato!)
3. Post-Step:
Se un oggetto del secondo gruppo ha attraversato la finestra, viene spostato nel sistema di destinazione utilizzando la trasformazione di input.
Pensieri aggiuntivi:
Se le trasformazioni vengono conservate dopo il calcolo della fisica, possono essere utilizzate per accelerare il rendering e per calcoli AI più semplici. Il raggruppamento potrebbe essere utilizzato per rimuovere i piani di clip dal processo di rendering.
L'aspetto negativo di questa soluzione è che le finestre devono essere aggiunte direttamente nel motore fisico.