Développement XNA pour la XBox et le PC
266
attend en paramètre les différentes mesures qui constituent la pyramide tronquée de la
projection. Comme l’angle du champ de vision doit être passée en radians, utilisez la
méthode ToRadians() de la classe MathHelper, ou comme ici, une des constantes prédéfinies.
Il faut également définir le rapport (la variable aspectRatio) entre la largeur de l’écran et
sa hauteur. Enfin, le dernier paramètre attendu est une référence vers la matrice où le
résultat de cette méthode sera stocké.
float aspectRatio = graphics.GraphicsDevice.Viewport.Width /
➥graphics.GraphicsDevice.Viewport.Height;
Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, aspectRatio, 0.001f, 1000f,
➥out projection);
La matrice de vue
La deuxième étape concerne la matrice de vue. Vous utiliserez cette fois-ci la méthode
CreateLookAt () qui attend trois paramètres :
• la position de la caméra ;
• la direction visée par la caméra ;
• la rotation de la caméra.
Ces trois paramètres sont de type Vector3. Ainsi, dans l’extrait de code suivant, vous définissez les objets pour placer une caméra qui regarde vers l’origine du monde en 3D sans
rotation particulière.
Vector3 cameraPosition = new Vector3(0, 0, 3);
Vector3 cameraTarget = Vector3.Zero;
Vector3 cameraUpVector = Vector3.Up;
Là encore, il existe une version de la méthode statique qui attend comme dernier paramètre
la matrice résultat.
Matrix.CreateLookAt(ref cameraPosition, ref cameraTarget, ref cameraUpVector, out
➥view);
En pratique
Il existe une version non statique de cette méthode. L’intérêt d’utiliser la méthode statique se situe dans les
performances : le résultat est directement stocké dans la matrice de destination et ne passe pas par une
matrice intermédiaire, ce qui procure un gain de mémoire.
=Labat FM.book Page 266 Vendredi, 19. juin 2009 4:01 16
266
attend en paramètre les différentes mesures qui constituent la pyramide tronquée de la
projection. Comme l’angle du champ de vision doit être passée en radians, utilisez la
méthode ToRadians() de la classe MathHelper, ou comme ici, une des constantes prédéfinies.
Il faut également définir le rapport (la variable aspectRatio) entre la largeur de l’écran et
sa hauteur. Enfin, le dernier paramètre attendu est une référence vers la matrice où le
résultat de cette méthode sera stocké.
float aspectRatio = graphics.GraphicsDevice.Viewport.Width /
➥graphics.GraphicsDevice.Viewport.Height;
Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, aspectRatio, 0.001f, 1000f,
➥out projection);
La matrice de vue
La deuxième étape concerne la matrice de vue. Vous utiliserez cette fois-ci la méthode
CreateLookAt () qui attend trois paramètres :
• la position de la caméra ;
• la direction visée par la caméra ;
• la rotation de la caméra.
Ces trois paramètres sont de type Vector3. Ainsi, dans l’extrait de code suivant, vous définissez les objets pour placer une caméra qui regarde vers l’origine du monde en 3D sans
rotation particulière.
Vector3 cameraPosition = new Vector3(0, 0, 3);
Vector3 cameraTarget = Vector3.Zero;
Vector3 cameraUpVector = Vector3.Up;
Là encore, il existe une version de la méthode statique qui attend comme dernier paramètre
la matrice résultat.
Matrix.CreateLookAt(ref cameraPosition, ref cameraTarget, ref cameraUpVector, out
➥view);
En pratique
Il existe une version non statique de cette méthode. L’intérêt d’utiliser la méthode statique se situe dans les
performances : le résultat est directement stocké dans la matrice de destination et ne passe pas par une
matrice intermédiaire, ce qui procure un gain de mémoire.
=Labat FM.book Page 266 Vendredi, 19. juin 2009 4:01 16
