"Mais ton problème c'est que les objet rentrent parfois dans le mesh complexe? Tu peut utiliser les normales des triangles pour déterminer si l'objet est rentré a l'interieur du mesh, eventuellement."
Se baser sur les normales des facettes ça ne marche que pour les objets convexes.
Une solution que je propose pour savoir si un point appartient bien à un maillage non convexe, c'est de remplir les "renfoncements" du maillage non convexe avec des objets virtuels convexes. Une fois les renfoncements comblés, on obtient un nouvel objet, convexe, qui est composé du maillage non-convexe initial et de tous les objets qui ont permis de combler les renfoncements. Le problème est alors plus simple : on teste si ce nouvel objet contient le point, si oui alors on teste qu'il n'appartienne pas à un des sous-objets convexes qui ont permis de remplir les renfoncements.
Illustration :
1ère image : un polygone non convexe
2ème image : on crée un second polygone convexe (en rouge) pour former un tout qui est convexe
3ème image : le point vert appartient à ce tout et n'appartient pas au polygone rouge, donc il appartient au polygone noir
4ème image : le point vert appartient bien au tout, mais appartient également au polygone en rouge, donc il n'appartient pas au polygone noir.