Je développe un moteur physique basé sur les impulsions, mais j'ai un problème avec les objets de grande différence de masse.Physique basée sur les impulsions - Empilement d'objets lourds sur un objet léger
À chaque cadre, le moteur applique des impulsions pour gérer les collisions. Les impulsions sont appliquées sur un certain nombre d'itérations, entre chaque paire d'objets en collision. Cela fonctionne bien si les objets ont à peu près la même masse.
Mais le problème est que lorsque vous placez un objet lourd, au-dessus d'un objet léger, l'objet lourd forcera alors l'objet léger dans le sol.
La cause du problème est que les impulsions appliquées entre les deux objets sont trop petites, donc même sur un certain nombre d'itérations, il ne suffira pas de contrer la gravité sur l'objet lourd.
Je crois qu'il existe des moyens de calculer avec précision les impulsions nécessaires, mais je crains que ce soit trop compliqué? Donc, la plupart du temps, je cherche des astuces pour contrer ce problème, mais je ne change pas le fonctionnement du moteur.
Merci pour vos idées!
Vous auriez besoin de supporter (au moins) la déformation élastique des corps et du sol. – dmckee
Comment calculez-vous les impulsions? – Beta
Je calcule l'impulsion, à chaque collision, comme si elle n'était pas affectée par une autre collision. Mais en itérant, il trouvera généralement la bonne "impulsion totale". – LaZe