Transformer le modelMatrix
Dans un pipeline de rendu typique, les transformations sont appliquées aux objets d'une scène à l'aide d'une séquence de matrices :
Coordonnées de l'objet (espace modèle) :
- L'espace local d'un seul objet. Les positions des sommets sont définies dans cet espace.
Coordonnées mondiales :
- Le système de coordonnées global de la scène, où tous les objets sont positionnés.
Matrice de modèle :
- Transforme un objet de l'espace modèle en espace mondial. Définit son emplacement, son orientation et sa mise à l'échelle.
Espace de visualisation (coordonnées des yeux) :
- Le système de coordonnées basé sur la position et la direction du spectateur. , et vers le haut.
Voir la matrice :
- Se transforme de l'espace mondial à l'espace de visualisation, fournissant la perspective de la « caméra ».
Coordonnées de découpage :
- Coordonnées homogènes utilisées pour le découpage par rapport au tronc de vue.
Matrice de projection :
- Se transforme de l'espace de visualisation en espace de découpage, mappant des points 3D en points 2D sur la fenêtre.
Coordonnées normalisées de l'appareil (NDC) :
- Coordonnées de l'espace de découpage divisées par le composant w, utilisées pour la division en perspective.
Coordonnées de la fenêtre (coordonnées de l'écran) :
- Coordonnées du rectangle de la fenêtre d'affichage, où l'image finale est dessinée.
Transformation de la matrice du modèle avec glm
While glm::lookAt () est principalement conçu pour définir la matrice de vue, certaines modifications peuvent être appliquées pour l'utiliser pour la matrice de modèle :
Transformations en position d'adresse :
- Annulation des éléments de la troisième colonne de la matrice résultante : m_Orientation[3][0] = -m_Orientation[3][0] ; ...
Transformation du Vertex Shader :
- Multiplication de la matrice de la caméra, de la matrice du modèle et de la position du sommet : gl_Position = CameraMatrix * ModelMatrix * Pos
Remarque : Bien que cette approche puisse atteindre le résultat souhaité, elle n'est pas optimale pour définir la matrice du modèle. Il est généralement recommandé d'utiliser des fonctions spécifiques fournies par les bibliothèques ou de créer votre propre fonction pour gérer les transformations matricielles du modèle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn