2011-07-28 3 views

Répondre

1

Ceci n'est pas trivial. Vous devrez croiser votre forme avec le rayon. Vous pouvez le faire dans plusieurs espaces:

Je suppose que votre Ray est dans l'espace du monde. Si c'est le cas, vous pouvez transformer le rayon en espace objet avec l'inverse de la matrice ObjectToWorld (en prenant soin de transformer correctement la normale). Ou bien, vous transformez votre objet en ViewSpace et y faites les calculs.

Pouvez-vous être plus précis? Parle-t-on d'une forme analytique ou d'un maillage?

+0

J'ai un carré (0-0 -> 1000-1000) que je traduis et que je fais pivoter. Mon appareil photo ne bouge pas. Je clique sur le carré, dénoue le résultat qui me donne un rayon. Et j'aimerais connaître les coordonnées de l'intersection. J'ai déjà le code pour faire l'intersection, mais je manque le code pour transformer les coordonnées de l'objet dans ViewSpace. Toute aide appréciée. Je vous remercie ! –

+0

Si votre caméra ne bouge pas, je suppose que vous ne définissez pas votre matrice d'espace de vue, donc c'est la matrice d'identité? Dans ce cas, le plus simple serait probablement de transformer votre carré en espace mondial. Si votre matrice de vue est l'identité, votre rayon devrait déjà être dans l'espace du monde. Vous devriez déjà avoir cette transformation, c'est la même que celle que vous utilisez pour rendre le carré. –

+0

Veuillez ne pas utiliser le mot "espace" pour les cadres de coordonnées. C'est tout autre chose quand on parle de mathématiques vectorielles ... – ltjax

Questions connexes