J'utiliseprojection en perspective inverse
worldview_inverse * (projection_inverse * vector)
pour transformer l'espace de coordonnées d'écran en coordonnées spatiales du monde. Je suppose que
(x,y,1,1)
transformerait en un point sur le plan loin, tandis que
(x,y,-1,1)
se transforme en un point sur le plan près, et la connexion de la ligne, je peux interroger tous les objets dans la vue frustum qui croisent la ligne. Après la transformation, je divise les points résultants par leur composante .w respective. Cela fonctionne pour le plan lointain, mais le point sur le plan proche est en quelque sorte transformé en l'origine de l'espace mondial.
Je pense que cela a à voir avec les composants de 1 que je nourris dans la projection inverse, car il est généralement 1 avant la projection, pas après, et je fais la projection inverse. Qu'est-ce que je fais mal?
Je pense que vous avez besoin de plus d'exemples de code. Surtout la partie qui définit votre point de départ à l'origine –
Aussi, pourriez-vous fournir la matrice de projection que vous utilisez? Est-ce compensé? – Coincoin