Transformation de la matrice du modèle
Pour définir la position et l'orientation d'un objet dans une scène 3D, on utilise généralement la matrice du modèle. Bien que glm::lookAt() soit une fonction pratique pour configurer une matrice de vue, elle peut ne pas être directement applicable à la matrice de modèle.
Transformation du modèle
Le la matrice de modèle transforme les positions des sommets de l'espace modèle (le système de coordonnées local de l'objet) vers l'espace mondial (le système de coordonnées de la scène entière). Il comprend trois éléments principaux :
Création d'une matrice de modèle
Au lieu de en utilisant glm::lookAt(), vous pouvez définir manuellement une matrice de modèle en utilisant ce qui suit structure :
[ X-axis.x, X-axis.y, X-axis.z, 0 ] [ Y-axis.x, Y-axis.y, Y-axis.z, 0 ] [ Z-axis.x, Z-axis.y, Z-axis.z, 0 ] [ trans.x, trans.y, trans.z, 1 ]
Par exemple, si vous souhaitez positionner un objet à (0,4, 0,0, 0,0) et le faire pivoter de 45 degrés autour de l'axe des x, vous définirez la matrice du modèle comme :
[ 1.0, 0.0, 0.0, 0.0 ] [ 0.0, 0.707, 0.707, 0.0 ] [ 0.0, -0.707, 0.707, 0.0 ] [ 0.4, 0.0, 0.0, 1.0 ]
Implémentation du Shader
Dans votre vertex shader, vous pouvez ensuite transformer le position du sommet en utilisant la matrice du modèle comme suit :
gl_Position = CameraMatrix * ModelMatrix * Pos;
Où :
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!