Guillaume Randon's WebLog

  • WPF, DirectX 10 et génération d'une géométrie par la carte vidéo

    Le deuxième article décrivant l'exemple de code associé à un de mes posts précédents vient d'être mis en ligne à l'adresse suivante : http://msdn2.microsoft.com/fr-fr/directx/cc304595.aspx . Cet article traite plus spécialement de la génération à l'aide du GPU d'un maillage représentant des metaballs. La méthode utilisée pour récupérer ces données et les afficher à l'aide de WPF y est aussi détaillé. 

     N'hésitez pas à me faire pars de vos remarques en me contactant à l'adresse suivante : guillara@microsoft.com

    Bonne journée et bonne semaine,

  • WPF & DirectX 10

    Vous pourrez trouver un premier article décrivant l'utilisation de DirectX 10 à partir d'une application WPF à l'adresse suivant : http://msdn2.microsoft.com/fr-fr/library/54bf6e00-b066-4fe9-bdc9-279ebb49b9f4.aspx . L'exemple de code le plus récent est attaché au post précédent.

    Bonne semaine à tous,

    Here is a first article (in French) on how to use Direct X 10 from within a WPF application : http://msdn2.microsoft.com/fr-fr/library/54bf6e00-b066-4fe9-bdc9-279ebb49b9f4.aspx . The code sample is attached to the previous post.

     Have a great week,

    guillaume randon

  • WPF 3D / DirectX 10 sample

    Bonjour,

    J'ai apporté quelques changements à l'exemple de code mis en ligne le 23/07. Il est maintenant possible de sauver la géométrie crée dans un fichier Xaml ou d'annoter une vue fixe de cette géométrie et de sauver l'image correspondante:

    Bonne journée et bonne semaine,

    guillaume randon

    I have done a few small changes to the piece of sample code I had posted on this blog on the 23/07. It is now possible to save the generated geometry to a Xaml file. To generate a still image from the geometry and write annotations on it thanks to the InkCanvas.

    Have a good day and a good week,

    guillaume randon

  • WPF 3D & DirectX 10

    Récement j'ai pu avoir un peu plus de temps pour expérimenter avec WPF 3D et DirectX 10. L'exemple de code attaché à ce post montre:

    • Comment utiliser DirectX 10 au sein d'une applicaiton WPF 3D par le biais de HwndHost.
    • Comment utiliser la fonctionnalité de StreamOut de DirectX 10 pour faire calculer la géométrie à afficher par la carte graphique elle même.
    • Puis comment il est alors possible de récupérer le résultat de ce calcul en mémoire système pour éventuellement l'utiliser à d'autre fin que de l'afficher. Dans le cas présent l'exemple réutilise les valeurs pour créer et afficher la même géométrie en utilisant WPF 3D.
    • Enfin ce petit programme utilise le système de query directX 10 pour intéroger la carte est lui demander si le Geometry Shader aurait éventuellement généré plus de primitives (dans notre cas des triangles) s'il avait eu plus de mémoire vidéo.

    Je décris cet exemple de code plus en profondeur dans une suite de petits articles à paraitre normalement dans la section DirectX du site msdn français. Si vous êtes intéressé vous pouvez vérifier s'ils ont ou non été mis en ligne sur celui-ci: http://www.microsoft.com/france/msdn/directx . Comme toujours je suis friand de remarques et de commentaires me permettant d'améliorer ces exemples de code aussi n'hésitez pas à m'écrire à l'adresse suivante guillara@microsoft.com

    Bonne journée et bonne semaine à tous

    Une petite image quand même pour finir:

    The sample attached to this post shows:

    • How to use DirectX 10 for display from within a WPF application using HwndHost and C++/CLI.
    • How to use the D3D10 stream out functionnalities to generate completely a geometry on your card and then get back that geometry for any other use. Here the information we get back from the card are used to generate the same geometry using classes from WPF 3D.
    • Also in the code there is a very limited usage of D3D10 queries to discover whether the geometry shader would have outputted more primitives if there was more video memory or not.

    As usual I like to get feedbacks that might help me to improve this kind of code samples, so please feel free to contact me at guillara@microsoft.com

  • Deuxième partie sur DirectX 10

    Ca y est la deuxième partie de la présentation de DirectX 10 est en ligne à l'adresse suivante:
    http://www.microsoft.com/france/msdn/directx/directx10-point-de-vue-du-developpeur.mspx

    Elle fait suite à la première partie plus courte sur le modèle de driver:

    http://www.microsoft.com/france/msdn/directx/modele-de-driver.mspx

    Sinon le webcast enregistré lors du mercredi du développement consacré à DirectX est ici: 

    http://www.microsoft.com/france/msdn/evenements/directx/mercredis-developpement-presentation.mspx

    Attention un certain nombre de personne ont trouvé la première partie sur MDX, XNA et DirectX10 un peu soporifique. Sans doute trop de contenu par rapport au temps alloué aux code et aux démonstrations. Je suis d'ailleurs preneur de tout avis sur le sujet. Vous pouvez toujours aller directement à la partie 8 qui correspond au début de la présentation beaucoup plus visuelle de David Catuhe sur MDX et le moteur Nova. 

    Bonne fin de semaine et bonne fin d'année,

    guillaume randon

  • DirectX 10

    Bonjour,

     Il y a peu d'activité sur ce blog depuis un certain temps maintenant. J'en suis désolé, ces derniers j'ai consacré beaucoup d'énergie à travailler sur la nouvelle version de DirectX. Vous trouverez un premier article sur le sujet à l'adresse suivante : http://www.microsoft.com/france/msdn/directx/default.mspx .

    Cet article résume certains changement qui me paraissent intéressants au niveau du modèle de driver. Il devrait être suivi dans les deux premières semaines de décembre d'une deuxième partie traitant plus du pipeline et de l'API en elle même.

    Par ailleurs toujours sur le site msdn français consacré à DirectX vous pourrez trouver un webcast traitant de XNA. Ce webcast est l'enregistrement d'une présentation effectuée en Septembre dernier par un développeur du produit. Dans les semaines à venir vous devriez aussi trouver sur le même site un webcast correspondant à l'enregistrement d'une présentation effectué par David Catuhe (http://www.vertice.fr/)  et moi même sur DirectX9, Managed DirectX et DirectX 10. Suite à cette présentation des personnes présentent dans la salle ont trouvé que ma partie de la présentation aurait pu être plus vivante. J'avais beaucoup de contenu à couvrir ce qui est souvent difficile mais si vous étiez présent et que vous avez effectivement eu cette impression je suis intéressé par avis plus détaillé, ce qui me permettra d'améliorer la présentation correspondante en conséquence.

     

    Merci bonne semaine à tous,

    guillaume

     

  • Tutorial sur les shaders en C# avec MDX1.1

    Pour les personnes souhaitant s'initier aux shaders voici un petit tutorial sur le sujet:

    http://www.microsoft.com/france/msdn/directx/Shaders-avec-Managed-DirectX_1.mspx

    Ce tutorial est basé sur Managed DirectX 1.1 mais ce qu'il contient peut s'appliquer assez facilement au framework XNA dont la beta1 a été rendue publique la semaine dernière. Pour les personnes plus spécialement intéressé par ce dernier framework, l'application d'exemple de ce tutorial portée sur le framework XNA est attachée à mon précédent post.

    Bonne journée et bonne semaine,

    guillaume

  • Encore un peu de XNA

    La détection des collisions avec le sol fonctionne un peu mieux maintenant. La nouvelle version de l'exemple est attaché à ce post. Les autres remarques du post précédent continuent de s'appliquer.

    Bonne semaine à tous,

    guillaume

    Collision detection work slightly better now. The other remarks from my previous post still apply to this new version of the sample.

    Have a good week everyone,

    guillaume

  • Un peu de XNA...

    La beta1 du XNA framework est disponible depuis la semaine dernière à l'adresse suivante http://msdn.microsoft.com/directx/XNA/default.aspx .

    Vous trouverez attaché à ce post un petit exemple tournant sur cette beta1. Cet exemple reprend peu ou prou l'application d'exemple de mon tutorial directX disponible à l'adresse suivante : http://www.microsoft.com/france/msdn/directx/tutoriel/part1.mspx

    Le framework XNA n'étant pas en tout point comparable à MDX l'exemple diffère cependant sur plusieurs points. D'abord les géométries ne sont pas chargées à partir de fichier .X mais à partir de fichier Collada. Il sera possible de charger des fichiers .X dans une application s'appuyant sur le framework XNA lorsque le 'content pipeline' sera disponible mais dans cette beta1 il faut soit créer les géométries de façon procédurale soit écrire le code pour lire ces informations dans un fichier.

    Pour l'instant l'exemple est loin d'être parfait. La détection d'une collision entre une ligne et les triangles contenu dans le fichier Collada est effective mais la distance et le point de collision retourné sont pour l'instant faux (j'espère corriger cela sous peu). Malgrès cela je pense que cet exemple peut-être utile pour démarer. Il montre commant afficher et animer des objets 3D, comment utiliser des fichiers d'effet et les shaders qu'ils contiennent (ici par exemple l'eau réfléchi les géométries émergés et refracte ce qui est sous l'eau (mais en l'occurence il n'y a rien)). Par contre le calcul de l'image réfléchie utilise les clip planes et je n'ai pas encore trouvé le moyen de les activer.

    Ce petit exemple fonctionne sur PC. Pour charger les géométries j'utilise le namespace System.XML, celui-ci existe sur XBOX mais je n'ai pas vérifier que toutes les fonctionnalitées de ce namespace que j'utilise sont présentes. Par ailleurs actuellement le programme ne gère que les entrées clavier (donc pour un PC).

    Une dernière remarque, le programme charge correctement les fichiers Collada contenant des listes de triangles et provenant de XSI ou Sketchup. Je n'ai pas essayer de charger des fichiers générés avec d'autre modeleurs.

    Par ailleurs pour les personnes intéressés par le framework XNA un développeur du groupe XNA fera une présentation en français sur ce sujet le 13 Septembre, vous trouverez tout les détails à l'adresse suivante http://www.microsoft.com/france/events/event.aspx?EventID=1032307074.

    Bonne journée et bonne semaine à tous,

    N'hésitez pas à me faire pars de vos remarques ou questions à l'adresse suivante guillara@microsoft.com .

     

    Beta1 of XNA framework has been out for a week now. You can found it here http://msdn.microsoft.com/directx/XNA/default.aspx . You will found attached to this post a small sample which can show how to display 3D objects, use effects and shaders using the XNA Framework. The objects in the scene are loaded from Collada files. Collision detection with the triangle soup loaded from the Collada file is not yet fully working, it does detect collision all right but reports incorrect collision point. Still I though this preliminary sample could be of interest to some people. Please note that if your card don't support pixel shader version 2.0 the water will be very ugly (not reflection no refraction). The generate of what is reflected in the water uses clip planes. I haven't found the correct way to enable them yet although I have found the ClipPlanes property. If anyone has any suggestion around that please let me know. This sample is a port of a small MDX sample that I describe more in details here  http://www.microsoft.com/france/msdn/directx/tutoriel/part1.mspx , it is in french but in case you read that language it gives additional details on various portion of the code.

    This sample works on PC. To load the Collada files I use the namespace System.XML, this namespace exists on XBOX but I have checked that all the functionnalities I use are supported there. Also at the moment this sample handles keyboard inputs, nothing else. Arrows let you control one of the two sphere, then Z,Q,S,D let you control the other one. On an english keyboard you might want to change that you just have to change the content of the CheckGameKeys method.

    I hope this sample will be useful to you, please feel free to send any comments or question to guillara@microsoft.com

  • Un peu d'anglais...

    Bonjour,

    Le rythme de mes posts c'est un peu ralenti courant Aout, je prépare un article d'introduction au shaders en managed directX qui devrait être posté sous peu sur le site msdn français http://www.microsoft.com/france/msdn/directx/default.mspx

    Sinon, on m'a demandé à plusieurs reprise une traduction en langue anglaise de mes deux posts précédents. Pour les personnes intéressées vous la trouverez ci-dessous:

    I have been asked several time for a translation to english of my two previous posts. For anyone interested here it is: (for the source code please check the zip files associated with the original posts)

    Loading a Collada File in a DirectX application

    Last week I did show a small code sample that was loading some information from a Collada file and displaying 3D objects in a WPF application. Here is another small sample which process the same information from the Collada file but which this time generates the DirectX Index, Vertex buffer and Textures to display the same 3D objects easily in a DirectX application. This code sample is meant to be used with C#, .Net 2.0 and MDX1.1.

    Again the code included in the zip file only process triangles from the Collada file and doesn’t make any attempt at reading complex material properties. Still I tend to think it can be easily modified to server any purpose you might have in mind.

    Here is a small screenshot of the result:  

    And here is the code to writte in your own application to use the class called ColladaLoader included in the zip file :

    collada = new ColladaLoader(e.Device);

    collada.Load("Villada.dae");

    Puis utiliser le code suivant pour effectuer le rendu de ce qui a été chargé:

    IDictionaryEnumerator enumGeometrie = collada.colladaGeometries.GetEnumerator();

    while (enumGeometrie.MoveNext())

    {

       ColladaGeometry collGeom = enumGeometrie.Value as ColladaGeometry;

       if (collGeom == null)

          continue;

       foreach (LoadedEntity entity in collGeom.models)

       {

                if (entity.materials.Length == 0)

                   continue;

                if (entity.textures.Length == 0)

                   continue;

                device.SetTransform(TransformType.World,

                            Matrix.Multiply(Matrix.Scaling(0.1f, 0.1f, 0.1f),  Matrix.Translation(0.0f, 5.0f, 0.0f)));

                device.Indices = entity.iBuff;

                device.SetStreamSource(0, entity.vBuff, 0);

                device.Material = entity.materials[0];

                device.SetTexture(0, entity.textures[0]);

                device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0,

                            entity.numVertices, 0,   entity.numPrimitives);

           }

    }

    Feel free to contact me if you have any remark or question at guillara@microsoft.com .

     

     Loading a Collada file in a WPF application

    The attached code sample process the <triangles> information from a Collada file and displays them in a WPF application. The code run on WPF Beta2 it might requires some modification to run correctly on newer version of WPF. The screenshot on the blog displays the result of reading the file MissionDolores.dae that can be easily found on the web. Texture coordinates are not right yet. WPF handle textures in a somewhat different way that DirectX does and I still have to invest some more time on that to get them to display correctly.

    The dae file in the attached zip file was generated using the free version of Sketchup. To zoom use the right mouse button, to rotate the objet the left one.

    This code sample doesn’t make any attempt at reading material properties from the Collada file. Still it might be useful as a starting point for people who would like to use in a WPF application 3D objects they have created with applications that don’t export to the XAML format yet. By the way as instances of WPF classes can be serialized to XAML and vice versa I was initially thinking I could use this application to save the geometries displayed on screen to XAML without much work. In the current version of WPF it is not so and it would in fact require more work to reach that result. If anyone has done some work in that direction I would be happy to hear about it.

    I wish a good week to anyone reading this.

    For any comment or question regarding this please feel free to send me an email at guillara@microsoft.com .

  • DirectX Et Collada

    Suite à mon dernier post concernant l'affichage de fichier Collada dans une application WPF j'ai transformé le code parsant le fichier collada pour générer un vertexBuffer, un indexBuffer et à charger les textures appropriées pour pouvoir afficher le contenu d'un fichier collada dans une application managed directX. Le fichier collada n'est correctement parsé que s'il contient des informations sur les normales, sur les coordonnées de texture est si la géométrie y est décrite sour la forme d'une liste de triangles.

    Voici le résultat sur le fichier utilisé pour le post précédent:

     

    Pour utiliser la classe dans le fichier attaché il faut taper le code suivant pour assurer le chardement des informations contenu dans le fichier dae.

    collada = new ColladaLoader(e.Device);

    collada.Load("Villada.dae");

    Puis utiliser le code suivant pour effectuer le rendu de ce qui a été chargé:

    IDictionaryEnumerator enumGeometrie = collada.colladaGeometries.GetEnumerator();

    while (enumGeometrie.MoveNext())

    {

       ColladaGeometry collGeom = enumGeometrie.Value as ColladaGeometry;

       if (collGeom == null)

          continue;

       foreach (LoadedEntity entity in collGeom.models)

       {

                if (entity.materials.Length == 0)

                   continue;

                if (entity.textures.Length == 0)

                   continue;

                device.SetTransform(TransformType.World,

                            Matrix.Multiply(Matrix.Scaling(0.1f, 0.1f, 0.1f),  Matrix.Translation(0.0f, 5.0f, 0.0f)));

                device.Indices = entity.iBuff;

                device.SetStreamSource(0, entity.vBuff, 0);

                device.Material = entity.materials[0];

                device.SetTexture(0, entity.textures[0]);

                device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0,

                            entity.numVertices, 0,   entity.numPrimitives);

           }

    }

    N'hésitez pas à me faire pars de vos remarques,

    Bonne semaine,

     

    guillaume

  • Chargement de fichiers Collada dans une application WPF

     

    Dans mon précédent post je listais des outils qui permettent de générer des fichiers xaml contenant des objets 3D. Ce n'est bien sur pas le seul moyen d'obtenir des objets 3D dans une application WPF.

    L'exemple de code attache à ce post illustre une approche différente ou les données sont lues directement dans un fichier Collada. Cette application WPF n'est pas en mesure de charger tous les fichiers Collada existant loin de la mais devrait récupérer correctement les informations associées au tag <triangles> d'un tel fichier. La capture d'écran incluse dans le fichier zip montre l'affichage d'un fichier appelé MissionDolores.dae contenu dans le fichier MissionDolores.kmz récupéré sur le web.

    Il est intéressant de noter que la géométrie est correctement lue mais les textures sont pour l'instant incorrectement mappées sur certaines portions du bâtiment. Le mappage des textures donne pour l'instant des résultats très différents que l'on travaille sur la CTP de février ou la beta 2 de WPF.

    Le fichier zip attaché contient par ailleurs un fichier .dae qui peut être charge dans l'application en guise de test. Ce fichier a été généré avec la version gratuite du logiciel Sketchup. Pour effectuer un zoom pour voir l'ensemble de la géométrie vous pouvez utiliser le bouton droit de la sourie, pour effectuer des rotations de l'objet, le bouton gauche.

    Même si cet exemple de code se limite a extraire uniquement certaines informations d'un fichier Collada sans tenter de récupérer les propriétés des matériaux, les effets ou les propriétés physique qui peuvent être sauvegarde sous ce format, j'espère qu'il pourra tout de même être utile comme base de travail a ceux qui souhaiteraient utiliser ce format dans une application WPF. Et accessoirement utile à ceux qui aimeraient récupérer dans leur application WPF le travail qu'ils ont pu effectuer dans des logiciels ne supportant pas encore directement le format xaml.

    Bonne semaine a tous,

    guillaume

  • XAML comme format 3D ?

    Je vois de plus en plus d’articles sur le web qui compare XAML à certains formats de fichier 3D basés sur XML comme X3D, Collada ou 3D XML. De sorte qu’au moment de sélectionner un type de fichier pour son application le choix peut être dur car il apparait à priori comme vaste.

    XAML est plus un modèle de programmation qu’un format de fichier destiné à contenir uniquement des données. Un fichier XAML va contenir une hiérarchie de classes WPF. Le mappage entre un fichier XAML et le code .Net qui va instancier les classes correspondantes et peupler leurs propriétés est immédiat. A ce titre, par le biais des classes WPF supportant les fonctionnalités 3D, un fichier XAML peut effectivement être utilisé pour spécifier un contenu 3D à afficher. Compte tenu du nombre d’information à générer il n’est pas très intéressant de les écrire à la main dans un fichier texte aussi pour choisir son format il est intéressant de connaitre les outils qui permettent de générer facilement du contenu.

    Dans le cas de XAML, il y a plusieurs approches possibles. Soit utiliser un outil spécialisé sur WPF qui peut importer des données 3D à partir de formats de fichiers 3D comme le format Wavefront (.obj) et générer en sorti des fichiers XAML :

    http://www.erain.com/products/ZAM3D/DefaultPDC.asp

    http://www.mobiform.com/

    Soit utiliser un modeleur géométrique pour lequel il existe un add-in permettant l’export vers des fichiers XAML :

    Pour Blender (http://www.blender.org ) :

    http://blogs.msdn.com/danlehen/archive/2006/01/14/513012.aspx

    Pour  Maya (http://usa.autodesk.com/adsk/servlet/index?id=6905396&siteID=123112 )

    http://www.thomasgoddard.com/

    Ou alors utiliser des outils de conversion de fichiers, comme http://www.ab3d.si/MainForm.aspx?page=Converter qui permet de convertir les fichiers 3DS.

    Par ailleurs lorsque l’on regarde les différents formats 3D existants basés sur XML, il est amusant de voir qu’aucun ne s’impose par rapport aux autres mais qu’ils rencontrent tous un certains succès dans un domaine d’application.

    X3D  (http://www.web3d.org ) rencontre un certain succès pour la 3D sur le web et pour tous ce qui est application ou documentation scientifique. Collada (http://www.khronos.org/ ) a rapidement eu du succès comme format d’échange de données entre outils de production de contenu pour les jeux vidéo ou les applications de réalité virtuelle. Ce format peut contenir entre autre des informations spécifique au comportement physique des objets  qui sont par ailleurs décrit de façon géométrique. 3D XML de Dassault http://www.3ds.com/home se destine plus au monde industriel et contient lui des informations ayant trait à la structure d’un produit manufacturé.

    Il est intéressant se demander comment XAML en tant que support aux données 3D pourrait  se positionner par rapport à ces différents formats.  Son réel avantage est de permettre de spécifier tous les aspects de ce qui doit être présenté à un utilisateur et la façon dont celui-ci va pouvoir interagir avec ce contenu, qu’il s’agisse de contenu 2D ou 3D. En ce sens il sort du cadre adressé par les formats précédemment cité.  Par ailleurs il présente l’immense avantage à terme d’être directement visualisable sur toute machine où est installé WPF. Pour les autres formats il faudra utiliser une brique logicielle supplémentaire à même de lire le format de fichier en question et d’afficher sont contenu. Il reste qu’il n’a pas d’autres buts que de spécifier ce qui peut se voir et il ne fait pas de tentatives pour supporter des données supplémentaires qui pourraient être associées aux objets présentés comme leurs propriétés physiques où leur structure (même s'il est bien sûr toujours possible de créer ses propres classes pour prendre soit même ces aspects en compte). Ces deux caractéristiques le différencient finalement de façon assez marqué des autres formats décrits ici et permettent sans doute en fonction de ses besoins de définir quel est le type de fichier le plus à même d’y répondre.

  • DirectX ou WPF 3D : à l'heure du choix ?

    On m’a demandé récemment quel pouvait être l’avenir de DirectX et plus précisément de Direct3D alors que WPF approche et permet aussi un affichage 3D.  Lorsque j’ai travaillé pour la première fois sur WPF je me suis moi aussi demandé comment ces deux modèles de programmation pouvaient se positionner l’un par rapport à l’autre. Voici mon point de vue sur la question qui au demeurant n’engage absolument que moi.

     

    Pour commencer WPF utilise Direct3D. Se travail est effectué dans Milcore.dll (cf. le diagramme attaché à ce post représentant les différentes ‘couches’ de WPF).

     

    Certains programmeurs préfèreront faire de la 3D en utilisant uniquement le modèle de programmation exposé par PresentationFramework.dll et PresentationCore.dll mais il est probable qu’un grand nombre continueront à utiliser le SDK DirectX (donc la boite appelé D3D du schémas attaché) pour leurs besoins d’affichage 3D pour les raisons suivantes (encore une fois il ne s’agit que d’une opinion personnelle):

     

    ·         Ces développeurs souhaitent généralement avoir un accès le plus complet possible au matériel et aux dernières fonctionnalités graphique. Pour l’instant le SDK DirectX est le modèle de programmation qui permet cela. WPF est basé sur une ultime déclinaison de DX9 et nous aurons en même temps la sortie de DX10.

    ·         Le modèle de programmation de WPF promeut une séparation forte entre la spécification de ce que l’on souhaite voir à l’écran et la façon dont tous cela va être afficher (la façon dont on va le communiquer à la carte graphique) hors la pluparts des applications 3D ont besoin du maximum de performance et souhaitent pouvoir contrôler en même temps ce qui va être affiché et comment cela va être affiché.

    ·         Un contrôle activeX ou un contrôle winform utilisant DX pour l’affichage devrait pouvoir s’insérer facilement dans une application WPF. Et c’est très certainement là voie qui sera choisie pour les applications ayant une vue faisant un usage intensif de la 3D.

    ·         Enfin et c’est malheureusement le point que je trouve le plus limitant aujourd’hui avec les fonctionnalités 3D exposée par WPF, il n’y a à ma connaissance pas de possibilité d’utiliser aujourd’hui des shaders hors c’est devenu très utile pour une multitude d’usages.

     

    Pour résumer, WPF et DX utilise DX (plus spécifiquement D3D) pour gérer l’affichage. Le SDK DirectX permet d’y accéder plus directement, il continuera certainement d’exister longtemps pour ceux qui auront besoin de continuer à accéder aux hardware graphique avec une API de bas niveau.

     

    Il est aussi possible que d’ici quelques années les fonctionnalités exposées par Milcore.dll changent suffisamment peu d’une version à une autre pour devenir un troisième choix entre WPF (très haut niveau) et DirectX (très bas car colle au hardware) mais c’est pas sûr.

     

    En fait DirectX va reste à mon sens le choix de prédilection pour ceux qui auront des besoins d’affichage 3D un peu plus intensif ou spécifique à leur application que les autres.

     

    Donc en fait je vois l’avenir de DirectX plutôt brillant. J

    Vu que le desktop entier de Vista va même reposer dessus on peut même être assurer qu’un surcroit d’efforts (si tenté que cela soit possible) va lui être consacré.

     

    Le blog de Greg Schechter's (en anglais) donne des informations très intéressantes concernant WPF, DirectX et le nouveau modèle de driver WDDM : http://blogs.msdn.com/greg_schechter/default.aspx

     

    Bonne journée et bonne semaine,


© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker