2009-10-24 8 views
-1

du monde que je veux projeter une grille sur le plan XZ comme montré ici:projet une grille dans screenspace sur le plan

im

Pour ce faire, j'ai créé une grille de sommet avec x et z plage [-1 | 1]. Dans le shader, je multiplie la coordonnée de l'écran xz d'un sommet par l'inverse de la matrice View-Projection. Ensuite, je veux ajuster la hauteur, en fonction des coordonnées du nouveau monde xz et enfin, je transforme ces coordonnées en espace écran en les multipliant avec la matrice View-Projection. Je ne sais pas pourquoi, mais j'ai un avion très étrange sur l'écran. Les oprations mathématiques que j'utilise sont-elles correctes?

Répondre

0

La grille que vous créez initialement est-elle dans l'espace de projection ou dans les coches d'écran réelles? Cela semble être dans l'espace de projection puisque vous ne le transformez que par l'inverse de la matrice vue-projection pour entrer dans les coordonnées du monde. Je pense que vous devez également inclure la matrice "Fenêtre", c'est-à-dire les transformer par l'inverse de la matrice Fenêtre-Projection-Fenêtre (et de la même façon sur le chemin de retour vers les coches d'écran).

Edit:

Je ne suis probablement pas comprendre exactement ce que vous essayez de le faire voici quelques questions en arrière. :)

Etes-vous en train d'essayer de prendre la grille affichée dans la capture d'écran de votre question et de la projeter sur les coordonnées z-x du monde? Si oui, alors pourquoi commencez-vous avec une grille de valeurs z-x? En outre, si vous appliquez une matrice de vue inverse à ceux alors sûrement vous finiriez avec une ligne puisque la caméra regarde z bien que vos secondes captures d'écran montrent que vous obtenez un avion. Je suis un peu confus.