J'ai lu quelques informations sur les simulations physiques et trouvé une solution possible. Il fonctionne en divisant chaque étape physique en trois phases:
1. Pré-étape:
À chaque étape de la physique, une fenêtre crée quatre transformations, deux de chaque côté de la connexion:
- une transformation d'entrée qui transforme la position, la vitesse (et éventuellement la taille et le poids) d'un objet dans le système de coordonnées de destination et
- une transformation de sortie qui transforme les forces dans le système d'origine de l'objet.
(Les fenêtres statiques ne doivent le faire qu'une seule fois.)
De plus, les objets de chaque système de coordonnées sont divisés en trois groupes:
Groupement de physique http://content.wuala.com/contents/Tamschi/Stack%20Exchange/WindowGrouping.png
Objets devant la fenêtre (vert).
Un objet est également compté dans ce groupe s'il coupe le plan de la fenêtre ou est susceptible de le traverser par derrière la fenêtre (non illustré).
Objets coupant la fenêtre ou susceptibles de la croiser dans cette étape physique (orange).
Objets derrière la fenêtre (bleu). Si un objet vole vers l'arrière de la fenêtre, il est toujours marqué comme membre du groupe trois.
Le regroupement peut être simplifié si la fenêtre est au bord de la simulation.
2. Étape principale:
La physique est calculée principalement comme d'habitude, à quelques exceptions près:
Les objets du deuxième groupe n'entrent jamais en collision avec ceux du troisième et vice-versa.
La transformation d'entrée de la fenêtre est utilisée sur les objets du deuxième groupe et les résultats sont évalués par rapport aux objets avant et entrecroisés du système de destination. La force résultante est transformée à l'aide de la transformation de sortie et appliquée à l'objet d'origine.
(Si un objet est touché pendant le calcul, il doit être regroupé!)
3. Après l'étape:
Si un objet du deuxième groupe a traversé la fenêtre, il est déplacé dans le système de destination à l'aide de la transformation d'entrée.
Réflexions supplémentaires:
Si les transformations sont conservées après le calcul de la physique, elles peuvent être utilisées pour accélérer le rendu et pour des calculs d'IA plus faciles. Le regroupement pourrait être utilisé pour supprimer les plans de clips du processus de rendu.
L'inconvénient de cette solution est que les fenêtres doivent être ajoutées directement dans le moteur physique.