J'ai une application de modélisation 3D. En ce moment je dessine les mailles à double face, mais je voudrais passer en recto lorsque l'objet est fermé.Un maillage polygonal fermé est-il retourné?
Si le maillage polygonal est fermé (pas de bordures/complètement périodique), il semble que je devrais toujours être capable de déterminer si l'objet est actuellement retourné et de corriger automatiquement. Etre retourné signifie que mes normales pointent dans l'objet au lieu de sortir de l'objet. Être retourné est le résultat d'une discordance entre mes règles d'enroulement et le réglage actuel de la face avant, mais je calcule les normales directement à partir de la géométrie, donc regarder les normales est un moyen simple de le détecter. Une chose que je pensais était de prendre le cadre de délimitation, de trouver le point le plus élevé, et de voir si sa normale pointe vers le haut ou vers le bas - si elle est en baisse, alors l'objet est retourné.
Mais il semble que cette solution pourrait être sujette à des erreurs de géométrie dégénérée, ou à une erreur de virgule flottante, car je ne regarderais qu'un seul point. Je suppose que je pourrais obtenir tous les 6 axes alignés, mais cela semble être un peu mieux kludge, et pas une bonne solution.
Existe-t-il un moyen simple et robuste de le faire? Robuste et dur travaillerions aussi .. :)
Je pense que vous devriez expliquer mieux ce que vous voulez dire par «retourné», c'est-à-dire que vous avez retourné x, y ou z? –
Je pense qu'il veut dire que si les normales pointent vers l'intérieur (puisqu'elles devraient pointer vers l'extérieur). –
Vous écrivez l'application, alors pouvez-vous introduire la convention que tous les triangles obéissent à la "règle de la main droite"? c'est-à-dire: si vous deviez enrouler votre main droite autour du triangle du point 0 au point 2, la normale pointerait dans la direction de votre pouce. –