Je suis en train d'écrire un système de détection de collision pour un jeu vidéo de plateforme 3D. Toutes les bases fonctionnent bien. Mais quand le personnage atterrit sur un polygone à forte pente, j'ai besoin qu'ils glissent sur la pente du polygone. Je peux faire la plupart de ceci, mais je ne peux pas savoir comment calculer le vecteur descendant qui correspond à la pente du polygone donné avec lequel ils sont entrés en collision. J'ai cherché de nombreux forums, y compris celui-ci, mais je ne trouve pas la réponse.Comment calculer le vecteur de pente descendante d'un polygone 3D?
Chaque polygone est composé de 3 sommets (x, y, z) dans l'espace monde. J'ai également la surface normale pour chaque polygone, et je suis familier avec les produits dot et croisés.
Je peux aussi calculer une valeur d'angle simple pour le polygone en prenant les arcs du produit scalaire de la face normale et du vecteur monde, ce qui donne l'angle de la pente du polygone à partir du sol, comme 60 degrés . Si l'angle est inférieur à 60 degrés, je décide que le personnage doit glisser sur la pente. Mais j'ai besoin du vecteur descendant qui correspond à la pente du polygone, afin que je puisse appliquer sa position dans le temps et ainsi glisser vers le bas. Je crois que le vecteur de pente devrait être perpendiculaire à la surface normale, mais je ne vois pas comment le calculer étant donné les informations que j'ai.
Merci pour toute aide ...
+1 Je l'ai fait de cette façon dans le passé. Si vous définissez la magnitude de votre vecteur descendant égale à votre force gravitationnelle, alors le vecteur nonUnitAnswer non normalisé sera la composante de la force gravitationnelle qui agit dans la direction descendante - une valeur utile. –