Ecrire un moteur 3D pour Windows 8 avec DirectX et C# David Catuhe Technical Evangelist Lead Microsoft France email : davca@microsoft.com / twitter : @deltakosh blog : http://blogs.msdn.com/eternalcoding
Agenda Introduction 15’ Pipeline de rendu 30’ Les acteurs Intégration à Windows 8 Modern UI Initialisation de DirectX Pipeline de rendu 30’ Buffers Shaders Notre premier rendu Intégration de fichiers externes 15’ L’enfer des formats Intégration via un pipeline offline
Introduction Présentation des acteurs
Les acteurs API 2D/3D : DirectX 11.1 Matériel supporté : DirectX 9.1 DirectX 11.1
Intégration à Windows 8 Modern UI Produire une application 3D pour Windows 8 : C++ / DirectX Intégration avec C#/.NET : SharpDX Mode pur ou intégration avec XAML : SwapChainBackgroundPanel SurfaceImageSource
Initialisation de DirectX Device Swap Chain Render Target Depth Buffer Viewport
Démonstration Initialisation de DirectX
Pipeline de rendu Ou comment piloter le GPU pour faire notre premier dessin
Comprendre la géométrie Les bases Le point (le vertex) Le triangle (la face) Les objets (meshes)
Système de coordonnées
Comprendre le pipeline Vertex Shader Pixel Shader Pipeline complet
Compiler ses shaders La formule secrète: "C:\Program Files (x86)\Windows Kits\8.0\bin\x86\fxc" /Tvs_4_0_level_9_1 /EVS /Fo "$(ProjectDir)\shader_vs.fxo« "$(ProjectDir)\shader.fx"
Mise en place du pipeline de rendu Vertex & Index buffers Topologie Vertex & Pixel shaders Draw Primitives
Démonstration Dessin de notre premier triangle
Intégration de fichiers externes Le triangle est mort ! Vive le triangle !
L’enfer des formats Pas de normalisation Plusieurs dizaines de formats FBX semble sortir du lot
L’enfer des formats Importation online vs. offline Faites votre propre format (!!) Support d’optimisations lourdes Simplification du moteur de chargement
Intégration via un pipeline offline Utilisation de l’importation de XNA (basé sur le SDK FBX) FBX / OBJ / Collada / X Génération d’un format maison performant Intégration dans le moteur via un importateur unique
Démonstration Importer un objet à dessiner
4/22/2017 4:08 PM © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.