La 3D c'est facile ! Découvrez le développement XNA en une heure top chrono. Nous aborderons le développement en trois dimensions sur différentes plateformes de l'univers du jeu vidéo à la sauce Microsoft..
2. Introduction à la 3D avec
XNA
Date
Valentin Billotte
MVP Xna
GraphicStream
valentin@graphicstream.fr
3. Sommaire
Présentation Xna
Mathématiques 3D
Pipeline et carte graphique
Effets
Texturing
4. XNA : Qu’est-ce donc ?
XNA is Not Acronymed
Technologie multiplateformes pour l’accès aux
ressources graphiques (2D/3D) matérielles de
Microsoft
PC / Surface
Xbox 360
Windows Phone 7 / Zune
Silverlight 5
5. XNA : Qu’est-ce donc ?
XNA
DirectX 9 .NET CLR
“Low Level”
Système d’exploitation / Matériel
6. XNA : Ou commencer ?
XNA Game Studio 4.0:
http://create.msdn.com/en-us/home/getting_started
http://create.msdn.com/en-US/
http://msdn.microsoft.com/fr-fr/directx/default.aspx
http://msdn.microsoft.com/fr-fr/xna
8. Quart d’heure mathématiques
Les points (vertices) sont
définis par un vecteur de 3
valeurs (x,y,z)
Les vertices sont rassemblés
au sein de faces
Les faces forment des
meshes (objets/modèles)
9. Vertices et indices
(0,1,2)//face devant
(0,2,3)
(3,2,4)//face droite
(3,4,5)
(5,4,7)//face arrière
(5,7,6)
(6,7,1)//face gauche
(6,1,0)
(6,0,3)//face bas
(6,3,5)
(1,7,4)//face haut
(1,4,2)
11. Repères modèle, monde et écran
Repère du modèle
de l’écran
monde
Vertices placés par
Les modèles sont (X,Y)
coordonnées
rapport origine le à
ont pour
placés par rapport
à l’origine lors de lade :
point haut commune
une originegauche
modélisation monde
l’écran
Le repère du
12. Pipeline de rendu
Vertex Pixel
Shader Shader
Traitement Traitement de la Traitement Rendu des
Vertices géométrie
des vertices des pixels pixels
Samplers de
Indices
textures
Texture
13. Vertices
Traitement Traitement de la Traitement Rendu des
Vertices géométrie
des vertices des pixels pixels
Vertex buffer : Indices
Samplers de
Stockage des vertices textures
Le format d’un vertex est Texture
flexible
Position
Couleur
Coordonnées de textures
…
14. Indices
Traitement Traitement de la Traitement Rendu des
Vertices géométrie
des vertices des pixels pixels
Samplers de
Index buffer :
Indices
textures
Stockage des indices Texture
Une face contient donc:
3 entiers
Un entier le numéro
du vertex dans le vertex
buffer
19. Traitement des vertices
Traitement Traitement de la Traitement Rendu des
Vertices géométrie
des vertices des pixels pixels
Samplers de
Indices
textures
Shaders: Texture
Programmes qui s’exécutent sur le GPU
Langage HLSL
Vertex shader : Transformation et éclairage
sur le contenu des vertex buffers
20. Transsssfoooormmmatiooon
Transformations des coordonnées
Monde de Monde Monde de la Espace Espace de
l’objet global caméra/vue projeté l’écran
World View Projection Viewport
Matrix Matrix Matrix
21. Traitement de
la géométrie Traitement Traitement de la Traitement Rendu des
Vertices géométrie
des vertices des pixels pixels
Samplers de
Suppression des
Indices
textures
vertices hors champ Texture
Suppression des
surfaces tournant le dos
à la vue
22. Traitement de
la géométrie Traitement Traitement de la Traitement Rendu des
Vertices géométrie
des vertices des pixels pixels
Rasterisation :
Samplers de
Indices
textures
Génération des pixels Texture
par interpolation
23. Pixels
Traitement Traitement de la Traitement Rendu des
Vertices géométrie
des vertices des pixels pixels
Samplers de
Indices
textures
Traitement des pixels
Texture
Les pixel shaders traitent les vertices en entrée et
produisent une couleur de sortie.
Rendu des pixels
Le rendu final prend la couleur d’un pixel et gère:
Alpha testing/blending
Profondeur
Brouillard
24. BasicEffect
Traitement Traitement de la Traitement Rendu des
Vertices géométrie
des vertices des pixels pixels
Samplers de
Indices
textures
Texture
Encapsule des shaders de base
Fournit un service de rendu complet
3 lumières directionnelles
Brouillard
Une texture
Transparence
Couleur d’ambiant, émissif, spéculaire et diffus
26. Custom effect
Objectif : Rassembler en seul fichier le pipeline
complet en termes de shaders
Structure:
Définition des constantes
Définition des structures (Vertex et Pixel)
Vertex Shader
Pixel Shader
Technique
Facilite le passage des paramètres
27. Technique
Définition d’un couple Vertex shader/Pixel shader +
états
Peut contenir plusieurs passes
31. Texturation
Usage
Couleur d’un objet
Normal (bump) maps
Light maps
Détails
Sampler de textures: Outil permettant de lire des
texels dans une texture
Coordonnées de texture: (u, v) entre (0, 0) et (1, 1)