À quelles fins utilisons-nous la matrice de projection Model View? Pourquoi les shaders nécessitent-ils une matrice de projection Model View?
À quelles fins utilisons-nous la matrice de projection Model View? Pourquoi les shaders nécessitent-ils une matrice de projection Model View?
Réponses:
Les matrices de modèle, de vue et de projection sont trois matrices distinctes. Modélisez les cartes de l'espace de coordonnées locales d'un objet dans l'espace du monde, vue de l'espace du monde vers l'espace de la caméra, projection de la caméra à l'écran.
Si vous composez les trois, vous pouvez utiliser le seul résultat pour mapper tout le chemin de l'espace objet à l'espace écran, ce qui vous permet de déterminer ce dont vous avez besoin pour passer à l'étape suivante d'un pipeline programmable à partir des positions de sommet entrantes.
Dans les anciens pipelines de fonctionnalités fixes, vous appliquiez le modèle et la vue ensemble, puis travailliez l'éclairage en utilisant un autre résultat dérivé d'eux (avec quelques corrections de sorte que, par exemple, les normales soient toujours une longueur unitaire, même si vous avez appliqué une certaine mise à l'échelle à l'objet. ), puis appliquez la projection. Vous pouvez voir cela reflété dans OpenGL, qui ne sépare jamais le modèle et les matrices de vue - en les conservant comme une seule pile de matrices de vue de modèle. Vous voyez donc aussi parfois cela reflété dans les shaders.
Donc: la matrice de projection de vue de modèle composée est souvent utilisée par les shaders pour mapper les sommets que vous avez chargés pour chaque modèle à l'écran. Ce n'est pas obligatoire, il existe de nombreuses façons de réaliser la même chose, c'est juste habituel car cela permet toutes les transformations linéaires possibles. Pour cette raison, une version moins composée de celui-ci était également la norme dans l'ancien monde des pipelines fixes.
Parce que les matrices sont pratiques. Les matrices aident à convertir les emplacements / directions par rapport à différents espaces (un espace peut être défini par 3 axes perpendiculaires et une origine).
Voici un exemple d'un livre spécifié par @ legends2k dans les commentaires.
Les habitants de Cartesia utilisent une carte de leur ville avec l'origine centrée assez sensiblement au centre de la ville et les axes dirigés le long des points cardinaux de la boussole. Les habitants de Dyslexia utilisent une carte de leur ville avec les coordonnées centrées en un point arbitraire et les axes fonctionnant dans des directions arbitraires qui semblaient probablement une bonne idée à l'époque. Les citoyens des deux villes sont assez satisfaits de leurs cartes respectives, mais l'ingénieur des transports de l'État chargé de gérer un budget pour la première autoroute entre Cartesia et Dyslexia a besoin d'une carte montrant les détails des deux villes, qui introduit donc une troisième coordonnée système qui lui est supérieur, mais pas nécessairement à quiconque.
Voici un autre exemple,
Supposons que vous ayez créé un objet voiture dans un jeu avec ses positions de sommet en utilisant les coordonnées du monde. Supposons que vous deviez utiliser cette même voiture dans un autre jeu dans un monde entièrement différent, vous devez redéfinir les positions et les calculs deviendront complexes. C'est parce que vous devez à nouveau calculer les positions de la fenêtre, du capot, des phares, des roues, etc., dans la voiture par rapport au nouveau monde.
Regardez cette vidéo pour comprendre les concepts de modèle, de vue et de projection. (hautement recommandé)
Ensuite, voyez ceci pour comprendre comment les sommets du monde sont représentés sous forme de matrices et comment ils sont transformés.