Bonjour je lis le livre sur la physique dans les jeux videos.
Dans ce livre il donne un algorithme pour la resolution de collision qui est comme ceci =>
Je trouve cet algorithme pas du tout optimise car on est obliger de reparcourir a chaque fois tout le tableau de contact.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 iterationUsed = 0; while (iterationUsed < itearation) { float max = 0; maxIndex = maxContacts; for (int i = 0 ; i< numContacts; i++) { separatingVelocity = contactArray[i].calculSepVel(); if (separatingVelocity < max) { max = separatingVelocity; maxIndex = i; } } contactArray[maxIndex].resolve(duration); iterationUsed++; }
Mais cependant resoudre un contact peut changer la vitesse de separation d'autres contact donc reparcourir le tableau a chaque fois semble justifier...
Y-a-t-il une solution plus optimisee ?
Merci
Partager