J'ai essayé de faire une formule pour la matrice de projection où votre axe vertical est projeté orthographiquement mais votre axe horizontal aura une perspective.
Le point de vue ressemblerait donc à ceci:
J'ai étudié comment les formules de projection orthographique et de projection en perspective et comment elles étaient réalisées. Et j'ai essayé de les modifier pour essayer d'atteindre la projection que je voulais. Il me semblait qu'il n'était pas possible d'avoir une échelle d'axe à Z et l'autre pas (ou de les faire évoluer à un facteur différent).
Est-il possible d'atteindre la perspective que je veux? Si oui, à quoi ressemblerait la matrice de projection?
3d
rendering
projection-matrix
Pepijn Willekens
la source
la source
Réponses:
Cette matrice de projection devrait faire l'affaire:
r = la moitié de la largeur du plan proche
t = la moitié de la hauteur du plan proche
f = distance au plan éloigné
n = distance jusqu'au plan proche
Par exemple, essayez de choisir:
r = 0,1 (la largeur sera de 0,2)
t = 0,5 (la hauteur sera de 1,0)
f = 1000 (plan éloigné à une distance de 1000)
n = 1 (près du plan à la distance 1)
la source
Malheureusement, je ne pense pas que cela soit possible en modifiant simplement la matrice de projection. Après la matrice de projection, les coordonnées finales de l'écran sont calculées en divisant (x, y, z) par w. Pour une matrice de perspective, w est défini sur z. Pour une matrice orthographique, w est défini sur 1. Vous ne pouvez pas avoir de valeurs w différentes pour horizontal par rapport à vertical. L'autre réponse à cette question est juste une matrice orthographique standard.
Si vous avez accès au shader lui-même et souhaitez ajouter une autre étape, vous pouvez simplement utiliser une projection orthographique mais effectuer la correction de perspective horizontale manuellement.
la source