<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr-FR"><title type="html">Guillaume Randon's WebLog</title><subtitle type="html" /><id>http://blogs.msdn.com/guillaumerandon/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/guillaumerandon/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2006-06-09T09:59:00Z</updated><entry><title>WPF, DirectX 10 et génération d'une géométrie par la carte vidéo</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2008/03/11/wpf-directx-10-et-g-n-ration-d-une-g-om-trie-par-la-carte-vid-o.aspx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2008/03/11/wpf-directx-10-et-g-n-ration-d-une-g-om-trie-par-la-carte-vid-o.aspx</id><published>2008-03-11T22:19:00Z</published><updated>2008-03-11T22:19:00Z</updated><content type="html">&lt;P&gt;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 : &lt;A href="http://msdn2.microsoft.com/fr-fr/directx/cc304595.aspx"&gt;http://msdn2.microsoft.com/fr-fr/directx/cc304595.aspx&lt;/A&gt;&amp;nbsp;. Cet article traite plus spécialement&amp;nbsp;de la génération à l'aide du GPU&amp;nbsp;d'un maillage représentant des metaballs. La méthode utilisée pour récupérer ces données et les&amp;nbsp;afficher à l'aide de WPF y est aussi détaillé.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;N'hésitez pas à me faire pars de vos remarques en me contactant à l'adresse suivante : &lt;A href="mailto:guillara@microsoft.com"&gt;guillara@microsoft.com&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Bonne journée et bonne semaine,&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8158197" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author><category term="WPF 3D" scheme="http://blogs.msdn.com/guillaumerandon/archive/tags/WPF+3D/default.aspx" /><category term="procedural geometry" scheme="http://blogs.msdn.com/guillaumerandon/archive/tags/procedural+geometry/default.aspx" /></entry><entry><title>WPF &amp; DirectX 10</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2007/09/10/wpf-directx-10.aspx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2007/09/10/wpf-directx-10.aspx</id><published>2007-09-10T11:45:00Z</published><updated>2007-09-10T11:45:00Z</updated><content type="html">&lt;P&gt;Vous pourrez trouver un premier article décrivant l'utilisation de DirectX 10 à partir d'une application WPF à l'adresse suivant : &lt;A href="http://msdn2.microsoft.com/fr-fr/library/54bf6e00-b066-4fe9-bdc9-279ebb49b9f4.aspx" mce_href="http://msdn2.microsoft.com/fr-fr/library/54bf6e00-b066-4fe9-bdc9-279ebb49b9f4.aspx"&gt;http://msdn2.microsoft.com/fr-fr/library/54bf6e00-b066-4fe9-bdc9-279ebb49b9f4.aspx&lt;/A&gt;&amp;nbsp;. L'exemple de code le plus récent est attaché au post précédent.&lt;/P&gt;
&lt;P&gt;Bonne semaine à tous,&lt;/P&gt;&lt;FONT color=#a52a2a&gt;
&lt;P&gt;Here is a first&amp;nbsp;article (in French) on how to use Direct X 10 from within a WPF application : &lt;A href="http://msdn2.microsoft.com/fr-fr/library/54bf6e00-b066-4fe9-bdc9-279ebb49b9f4.aspx" mce_href="http://msdn2.microsoft.com/fr-fr/library/54bf6e00-b066-4fe9-bdc9-279ebb49b9f4.aspx"&gt;http://msdn2.microsoft.com/fr-fr/library/54bf6e00-b066-4fe9-bdc9-279ebb49b9f4.aspx&lt;/A&gt;&amp;nbsp;. The code sample is attached to the previous post.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Have a great week,&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;guillaume randon&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4852163" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author></entry><entry><title>WPF 3D / DirectX 10 sample</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2007/07/31/wpf-3d-directx-10-sample.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="285407" href="http://blogs.msdn.com/guillaumerandon/attachment/4148891.ashx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2007/07/31/wpf-3d-directx-10-sample.aspx</id><published>2007-07-31T16:55:00Z</published><updated>2007-07-31T16:55:00Z</updated><content type="html">&lt;P&gt;Bonjour,&lt;/P&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 300px; HEIGHT: 300px" height=300 src="http://blogs.msdn.com/photos/guillara/images/4148797/original.aspx" width=300 mce_src="http://blogs.msdn.com/photos/guillara/images/4148797/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;Bonne journée et bonne semaine,&lt;/P&gt;
&lt;P&gt;guillaume randon&lt;/P&gt;&lt;FONT color=#a52a2a&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;Have a good day and a good week,&lt;/P&gt;
&lt;P&gt;guillaume randon&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4148891" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author><category term="WPF 3D DirectX 10 Ink" scheme="http://blogs.msdn.com/guillaumerandon/archive/tags/WPF+3D+DirectX+10+Ink/default.aspx" /></entry><entry><title>WPF 3D &amp; DirectX 10</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2007/07/23/wpf-3d-directx-10.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="279058" href="http://blogs.msdn.com/guillaumerandon/attachment/4006631.ashx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2007/07/23/wpf-3d-directx-10.aspx</id><published>2007-07-23T09:27:00Z</published><updated>2007-07-23T09:27:00Z</updated><content type="html">&lt;P&gt;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:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Comment utiliser DirectX 10 au sein d'une applicaiton WPF 3D par le biais de HwndHost.&lt;/LI&gt;
&lt;LI&gt;Comment utiliser la fonctionnalité de StreamOut de DirectX 10 pour faire calculer la géométrie à afficher par la carte graphique elle même.&lt;/LI&gt;
&lt;LI&gt;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.&lt;/LI&gt;
&lt;LI&gt;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.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Je décris cet exemple de code plus en profondeur dans une suite de petits articles&amp;nbsp;à 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&amp;nbsp;sur celui-ci:&amp;nbsp;&lt;A href="http://www.microsoft.com/france/msdn/directx" mce_href="http://www.microsoft.com/france/msdn/directx"&gt;http://www.microsoft.com/france/msdn/directx&lt;/A&gt; . 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 &lt;A href="mailto:guillara@microsoft.com" mce_href="mailto:guillara@microsoft.com"&gt;guillara@microsoft.com&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Bonne journée et bonne semaine à tous&lt;/P&gt;
&lt;P mce_keep="true"&gt;Une petite image quand même pour finir:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 430px; HEIGHT: 245px" height=600 src="http://blogs.msdn.com/photos/guillara/images/4006804/original.aspx" width=800 mce_src="http://blogs.msdn.com/photos/guillara/images/4006804/original.aspx"&gt;&lt;/P&gt;&lt;FONT color=#a52a2a&gt;
&lt;P mce_keep="true"&gt;The sample attached to this post shows:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;How to use DirectX 10 for display from within a WPF application using HwndHost and C++/CLI.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;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.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;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.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;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 &lt;A href="mailto:guillara@microsoft.com"&gt;guillara@microsoft.com&lt;/A&gt; &lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4006631" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author><category term="WPF 3D" scheme="http://blogs.msdn.com/guillaumerandon/archive/tags/WPF+3D/default.aspx" /></entry><entry><title>Deuxième partie sur DirectX 10</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2006/12/22/deuxi-me-partie-sur-directx-10.aspx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2006/12/22/deuxi-me-partie-sur-directx-10.aspx</id><published>2006-12-22T16:04:00Z</published><updated>2006-12-22T16:04:00Z</updated><content type="html">&lt;P&gt;Ca y est la deuxième partie de la présentation de DirectX 10 est en ligne à l'adresse suivante:&lt;BR&gt;&lt;A href="http://www.microsoft.com/france/msdn/directx/directx10-point-de-vue-du-developpeur.mspx" mce_href="http://www.microsoft.com/france/msdn/directx/directx10-point-de-vue-du-developpeur.mspx"&gt;http://www.microsoft.com/france/msdn/directx/directx10-point-de-vue-du-developpeur.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Elle fait suite à la première partie plus courte sur le modèle de driver:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/france/msdn/directx/modele-de-driver.mspx" mce_href="http://www.microsoft.com/france/msdn/directx/modele-de-driver.mspx"&gt;http://www.microsoft.com/france/msdn/directx/modele-de-driver.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Sinon le webcast enregistré lors du mercredi du développement consacré à DirectX est ici:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/france/msdn/evenements/directx/mercredis-developpement-presentation.mspx" mce_href="http://www.microsoft.com/france/msdn/evenements/directx/mercredis-developpement-presentation.mspx"&gt;http://www.microsoft.com/france/msdn/evenements/directx/mercredis-developpement-presentation.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Attention un certain nombre de personne ont trouvé la première partie sur MDX, XNA et DirectX10&amp;nbsp;un peu soporifique. Sans doute trop de contenu par rapport&amp;nbsp;au temps alloué aux code et aux&amp;nbsp;démonstrations. Je suis d'ailleurs preneur de tout avis sur le&amp;nbsp;sujet.&amp;nbsp;Vous pouvez toujours aller directement à la partie 8 qui correspond au début de la présentation beaucoup plus visuelle de &lt;A href="http://www.bewise.fr/" mce_href="http://www.bewise.fr/"&gt;David Catuhe&amp;nbsp;&lt;/A&gt;sur MDX et le moteur Nova.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Bonne fin de semaine et bonne fin d'année,&lt;/P&gt;
&lt;P&gt;guillaume randon&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1347618" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author></entry><entry><title>DirectX 10</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2006/11/30/directx-10.aspx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2006/11/30/directx-10.aspx</id><published>2006-11-30T10:26:00Z</published><updated>2006-11-30T10:26:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Bonjour,&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;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 : &lt;A href="http://www.microsoft.com/france/msdn/directx/default.mspx" mce_href="http://www.microsoft.com/france/msdn/directx/default.mspx"&gt;http://www.microsoft.com/france/msdn/directx/default.mspx&lt;/A&gt;&amp;nbsp;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;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. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;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 (&lt;A href="http://www.vertice.fr/" mce_href="http://www.vertice.fr/"&gt;http://www.vertice.fr/&lt;/A&gt;)&amp;nbsp; 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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Merci bonne semaine à tous,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;guillaume&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1176496" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author><category term="WPF 3D" scheme="http://blogs.msdn.com/guillaumerandon/archive/tags/WPF+3D/default.aspx" /></entry><entry><title>Tutorial sur les shaders en C# avec MDX1.1</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2006/09/07/744272.aspx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2006/09/07/744272.aspx</id><published>2006-09-07T14:36:00Z</published><updated>2006-09-07T14:36:00Z</updated><content type="html">&lt;P&gt;Pour les personnes souhaitant s'initier aux shaders voici un petit tutorial sur le sujet:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/france/msdn/directx/Shaders-avec-Managed-DirectX_1.mspx"&gt;http://www.microsoft.com/france/msdn/directx/Shaders-avec-Managed-DirectX_1.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;Bonne journée et bonne semaine,&lt;/P&gt;
&lt;P&gt;&lt;A href="mail://guillara@microsoft.com"&gt;guillaume&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=744272" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author></entry><entry><title>Encore un peu de XNA </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2006/09/06/742350.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="1834488" href="http://blogs.msdn.com/guillaumerandon/attachment/742350.ashx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2006/09/06/742350.aspx</id><published>2006-09-06T09:54:00Z</published><updated>2006-09-06T09:54:00Z</updated><content type="html">&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;Bonne semaine à tous,&lt;/P&gt;
&lt;P&gt;guillaume&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#a52a2a&gt;Collision detection work slightly better now. The other remarks from my previous post still apply to this new version of the sample.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#a52a2a&gt;Have a good week everyone,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#a52a2a&gt;guillaume&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;a href="http://blogs.msdn.com/photos/guillara/picture740841.aspx" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/photos/guillara/images/740841/thumb.aspx" border="0"&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=742350" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author></entry><entry><title>Un peu de XNA...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2006/09/05/740862.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="1707886" href="http://blogs.msdn.com/guillaumerandon/attachment/740862.ashx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2006/09/05/740862.aspx</id><published>2006-09-05T12:08:00Z</published><updated>2006-09-05T12:08:00Z</updated><content type="html">&lt;P&gt;La beta1 du XNA framework est disponible depuis la semaine dernière à l'adresse suivante &lt;A href="http://msdn.microsoft.com/directx/XNA/default.aspx"&gt;http://msdn.microsoft.com/directx/XNA/default.aspx&lt;/A&gt;&amp;nbsp;.&lt;/P&gt;
&lt;P&gt;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 : &lt;A href="http://www.microsoft.com/france/msdn/directx/tutoriel/part1.mspx"&gt;http://www.microsoft.com/france/msdn/directx/tutoriel/part1.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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).&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;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 &lt;A href="http://www.microsoft.com/france/events/event.aspx?EventID=1032307074"&gt;http://www.microsoft.com/france/events/event.aspx?EventID=1032307074&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Bonne journée et bonne semaine à tous,&lt;/P&gt;
&lt;P&gt;N'hésitez pas à me faire pars de vos remarques ou questions à l'adresse suivante &lt;A href="mailto:guillara@microsoft.com"&gt;guillara@microsoft.com&lt;/A&gt; .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#a52a2a&gt;Beta1 of XNA framework has been out for a week now. You can found it here &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/directx/XNA/default.aspx"&gt;&lt;FONT color=#0000ff&gt;http://msdn.microsoft.com/directx/XNA/default.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#a52a2a&gt;&amp;nbsp;. You will found attached to this post a small sample which can show how to display 3D objects, use effects and shaders&amp;nbsp;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&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/france/msdn/directx/tutoriel/part1.mspx"&gt;&lt;FONT color=#0000ff&gt;http://www.microsoft.com/france/msdn/directx/tutoriel/part1.mspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#a52a2a&gt;&amp;nbsp;, it is in french but in case you read that language it gives additional details on various portion of the code.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#a52a2a&gt;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.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#a52a2a&gt;I hope this sample will be useful to you, please feel free to send any comments or question to &lt;/FONT&gt;&lt;A href="mailto:guillara@microsoft.com"&gt;&lt;FONT color=#0000ff&gt;guillara@microsoft.com&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;A href="http://blogs.msdn.com/photos/guillara/picture740841.aspx" target=_blank&gt;&lt;IMG src="http://blogs.msdn.com/photos/guillara/images/740841/thumb.aspx" border=0&gt;&lt;/A&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=740862" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author></entry><entry><title>Un peu d'anglais...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2006/08/29/729841.aspx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2006/08/29/729841.aspx</id><published>2006-08-29T13:59:00Z</published><updated>2006-08-29T13:59:00Z</updated><content type="html">&lt;P&gt;Bonjour,&lt;/P&gt;
&lt;P&gt;Le rythme de mes posts c'est un peu ralenti courant Aout, je prépare un article d'introduction&amp;nbsp;au shaders en managed directX qui devrait être posté sous peu sur le site msdn français&amp;nbsp;&lt;A href="http://www.microsoft.com/france/msdn/directx/default.mspx"&gt;http://www.microsoft.com/france/msdn/directx/default.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;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:&lt;/P&gt;
&lt;P&gt;&lt;FONT style="BACKGROUND-COLOR: #ffffff" color=#a52a2a&gt;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)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class=MsoNormalTable style="MARGIN: auto auto auto 4.5pt; WIDTH: 99.04%; mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width="99%" border=0&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 0in; BORDER-TOP: #f0f0f0; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 100%; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" width="100%"&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#385b86&gt;&lt;FONT face=Cambria&gt;Loading a Collada File in a DirectX application&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;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. &lt;/SPAN&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;This code sample is meant to be used with C#, .Net 2.0 and MDX1.1.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;Here is a small screenshot of the result: &amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;A href="http://blogs.msdn.com/photos/guillara/picture668171.aspx" target=_blank&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: windowtext; FONT-FAMILY: 'Calibri','sans-serif'; TEXT-DECORATION: none; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; text-underline: none"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id=Picture_x0020_1 style="VISIBILITY: visible; WIDTH: 75pt; HEIGHT: 56.25pt; mso-wrap-style: square" type="#_x0000_t75" o:button="t" target="_blank" href="http://blogs.msdn.com/photos/guillara/picture668171.aspx" o:spid="_x0000_i1025"&gt;&lt;v:fill o:detectmouseclick="t"&gt;&lt;/v:fill&gt;&lt;v:imagedata src="file:///D:\Users\guillara\AppData\Local\Temp\msohtmlclip1\01\clip_image001.jpg" o:title=""&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;And here is the code to writte in your own application to use the class called ColladaLoader included in the zip file&amp;nbsp;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;collada = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;ColladaLoader&lt;/SPAN&gt;(e.Device);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;collada.Load(&lt;SPAN style="COLOR: maroon"&gt;"Villada.dae"&lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;Puis utiliser le code suivant pour effectuer le rendu de ce qui a été chargé:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;IDictionaryEnumerator&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt; enumGeometrie = collada.colladaGeometries.GetEnumerator();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;while&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt; (enumGeometrie.MoveNext())&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ColladaGeometry&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt; collGeom = enumGeometrie.Value &lt;SPAN style="COLOR: blue"&gt;as&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;ColladaGeometry&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt; (collGeom == &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt; (&lt;SPAN style="COLOR: teal"&gt;LoadedEntity&lt;/SPAN&gt; entity &lt;SPAN style="COLOR: blue"&gt;in&lt;/SPAN&gt; collGeom.models)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt; (entity.materials.Length == 0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt; (entity.textures.Length == 0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.SetTransform(&lt;SPAN style="COLOR: teal"&gt;TransformType&lt;/SPAN&gt;.World, &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Matrix&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;.Multiply(&lt;SPAN style="COLOR: teal"&gt;Matrix&lt;/SPAN&gt;.Scaling(0.1f, 0.1f, &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:metricconverter ProductID="0.1f" w:st="on"&gt;0.1f&lt;/st1:metricconverter&gt;),&amp;nbsp;&lt;SPAN style="COLOR: teal"&gt;&amp;nbsp;Matrix&lt;/SPAN&gt;.Translation(0.0f, 5.0f, &lt;st1:metricconverter ProductID="0.0f" w:st="on"&gt;0.0f&lt;/st1:metricconverter&gt;)));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.Indices = entity.iBuff;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.SetStreamSource(0, entity.vBuff, 0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.Material = entity.materials[0];&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;device.SetTexture(0, entity.textures[0]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.DrawIndexedPrimitives(&lt;SPAN style="COLOR: teal"&gt;PrimitiveType&lt;/SPAN&gt;.TriangleList, 0, 0, &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entity.numVertices, 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;entity.numPrimitives);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;Feel free to contact me if you have any remark or question at &lt;A href="mailto:guillara@microsoft.com"&gt;&lt;FONT color=#0000ff&gt;guillara@microsoft.com&lt;/FONT&gt;&lt;/A&gt; . &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 4"&gt;&lt;B&gt;&lt;SPAN lang=FR style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class=MsoNormalTable style="WIDTH: 92.3%; mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 width="92%" border=0&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 0in; BORDER-TOP: #f0f0f0; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 100%; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" width="100%"&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=5&gt;&lt;FONT color=#385b86&gt;&lt;FONT face=Cambria&gt;&amp;nbsp;Loading a Collada file in a WPF application&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;TABLE class=MsoNormalTable style="MARGIN: auto auto auto 0.5in; mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: #f0f0f0; PADDING-RIGHT: 0in; BORDER-TOP: #f0f0f0; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 100%; PADDING-TOP: 0in; BORDER-BOTTOM: #f0f0f0; BACKGROUND-COLOR: transparent" width="100%"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;The attached code sample process the &amp;lt;triangles&amp;gt; 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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;I wish a good week to anyone reading this.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'"&gt;For any comment or question regarding this please feel free to send me an email at &lt;A href="mailto:guillara@microsoft.com"&gt;&lt;FONT color=#0000ff&gt;guillara@microsoft.com&lt;/FONT&gt;&lt;/A&gt; .&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=729841" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author></entry><entry><title>DirectX Et Collada</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2006/07/17/668182.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="5056" href="http://blogs.msdn.com/guillaumerandon/attachment/668182.ashx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2006/07/17/668182.aspx</id><published>2006-07-17T14:54:00Z</published><updated>2006-07-17T14:54:00Z</updated><content type="html">&lt;P&gt;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.&lt;/P&gt;
&lt;P&gt;Voici le résultat sur le fichier utilisé pour le post précédent:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/photos/guillara/picture668171.aspx" target=_blank&gt;&lt;IMG src="http://blogs.msdn.com/photos/guillara/images/668171/thumb.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;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.&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;collada = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;ColladaLoader&lt;/FONT&gt;&lt;FONT size=2&gt;(e.Device);&lt;/P&gt;
&lt;P&gt;collada.Load(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"Villada.dae"&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Puis utiliser le code suivant pour effectuer le rendu de ce qui a été chargé:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IDictionaryEnumerator&lt;/FONT&gt;&lt;FONT size=2&gt; enumGeometrie = collada.colladaGeometries.GetEnumerator();&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;while&lt;/FONT&gt;&lt;FONT size=2&gt; (enumGeometrie.MoveNext())&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ColladaGeometry&lt;/FONT&gt;&lt;FONT size=2&gt; collGeom = enumGeometrie.Value &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;ColladaGeometry&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/FONT&gt;&lt;FONT size=2&gt; (collGeom == &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;LoadedEntity&lt;/FONT&gt;&lt;FONT size=2&gt; entity &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;in&lt;/FONT&gt;&lt;FONT size=2&gt; collGeom.models)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/FONT&gt;&lt;FONT size=2&gt; (entity.materials.Length == 0)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/FONT&gt;&lt;FONT size=2&gt; (entity.textures.Length == 0)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;continue&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.SetTransform(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;TransformType&lt;/FONT&gt;&lt;FONT size=2&gt;.World, &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008080 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Matrix&lt;/FONT&gt;&lt;FONT size=2&gt;.Multiply(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Matrix&lt;/FONT&gt;&lt;FONT size=2&gt;.Scaling(0.1f, 0.1f, 0.1f),&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;&amp;nbsp;Matrix&lt;/FONT&gt;&lt;FONT size=2&gt;.Translation(0.0f, 5.0f, 0.0f)));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.Indices = entity.iBuff;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.SetStreamSource(0, entity.vBuff, 0);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.Material = entity.materials[0];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.SetTexture(0, entity.textures[0]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.DrawIndexedPrimitives(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;PrimitiveType&lt;/FONT&gt;&lt;FONT size=2&gt;.TriangleList, 0, 0, &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entity.numVertices, 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;entity.numPrimitives);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;N'hésitez pas à me faire pars de vos remarques,&lt;/P&gt;
&lt;P&gt;Bonne semaine,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;guillaume&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=668182" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author></entry><entry><title>Chargement de fichiers Collada dans une application WPF </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2006/06/26/647294.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="502716" href="http://blogs.msdn.com/guillaumerandon/attachment/647294.ashx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2006/06/26/647294.aspx</id><published>2006-06-26T14:30:00Z</published><updated>2006-06-26T14:30:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 4; tab-stops: list .5in"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;SPAN lang=FR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class=MsoNormalTable style="MARGIN: auto auto auto 0.5in; mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 100%; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="100%"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;Dans&amp;nbsp;mon précédent post je listais des outils&amp;nbsp;qui permettent de générer des fichiers xaml contenant des objets 3D.&amp;nbsp;Ce n'est bien sur pas le seul moyen d'obtenir des objets 3D&amp;nbsp;dans une application WPF. &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;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&amp;nbsp;mesure de charger&amp;nbsp;tous les fichiers Collada existant loin de la mais devrait récupérer correctement les informations&amp;nbsp;associées au tag &amp;lt;triangles&amp;gt; d'un&amp;nbsp;tel fichier. La capture d'écran incluse dans le fichier zip montre l'affichage d'un fichier appelé&amp;nbsp;MissionDolores.dae contenu dans&amp;nbsp;le fichier MissionDolores.kmz récupéré sur le&amp;nbsp;web. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;Il est intéressant de noter&amp;nbsp;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;Bonne semaine a tous,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: 'Times New Roman','serif'; mso-ansi-language: FR; mso-fareast-font-family: 'Times New Roman'"&gt;guillaume&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=647294" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author></entry><entry><title>XAML comme format 3D ?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2006/06/19/636774.aspx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2006/06/19/636774.aspx</id><published>2006-06-19T16:06:00Z</published><updated>2006-06-19T16:06:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;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.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;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.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;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&amp;nbsp;:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;A href="http://www.erain.com/products/ZAM3D/DefaultPDC.asp"&gt;&lt;FONT color=#22229c&gt;&lt;FONT face=Calibri&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;http://www.erain.com/produ&lt;/SPAN&gt;cts/ZAM3D/DefaultPDC.asp&lt;/FONT&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;A href="http://www.mobiform.com/" target=_blank&gt;&lt;FONT color=#22229c&gt;http://www.mobiform.com/&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Soit utiliser un modeleur géométrique pour lequel il existe un add-in permettant l’export vers des fichiers XAML&amp;nbsp;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Pour Blender (&lt;A href="http://www.blender.org/"&gt;&lt;FONT color=#22229c&gt;http://www.blender.org&lt;/FONT&gt;&lt;/A&gt; )&amp;nbsp;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;A href="http://blogs.msdn.com/danlehen/archive/2006/01/14/513012.aspx"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;http://blogs.msdn.com/danlehen/archive/2006/01/14/513012.aspx&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;Pour &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Maya (&lt;/FONT&gt;&lt;A href="http://usa.autodesk.com/adsk/servlet/index?id=6905396&amp;amp;siteID=123112"&gt;&lt;FONT face=Calibri&gt;http://usa.autodesk.com/adsk/servlet/index?id=6905396&amp;amp;siteID=123112&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; )&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;A href="http://www.thomasgoddard.com/"&gt;&lt;FONT face=Calibri&gt;http://www.thomasgoddard.com/&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;Ou alors utiliser des outils de conversion de fichiers, comme &lt;/FONT&gt;&lt;A href="http://www.ab3d.si/MainForm.aspx?page=Converter"&gt;&lt;FONT face=Calibri&gt;http://www.ab3d.si/MainForm.aspx?page=Converter&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; qui permet de convertir les fichiers 3DS.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;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.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;X3D &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;(&lt;/FONT&gt;&lt;A href="http://www.web3d.org/"&gt;&lt;FONT face=Calibri color=#22229c&gt;http://www.web3d.org&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; ) rencontre un certain succès pour la 3D sur le web et pour tous ce qui est application ou documentation scientifique. Collada (&lt;/FONT&gt;&lt;A href="http://www.khronos.org/"&gt;&lt;FONT face=Calibri&gt;http://www.khronos.org/&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; ) 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&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;qui sont par ailleurs décrit de façon géométrique. 3D XML de Dassault &lt;/FONT&gt;&lt;A href="http://www.3ds.com/home"&gt;&lt;FONT face=Calibri&gt;http://www.3ds.com/home&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; se destine plus au monde industriel et contient lui des informations ayant trait à la structure d’un produit manufacturé.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri&gt;Il est intéressant se demander comment XAML en tant que support aux données 3D pourrait&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;se positionner par rapport à ces différents formats. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;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é. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;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.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=636774" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author></entry><entry><title>DirectX ou WPF 3D : à l'heure du choix ? </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/guillaumerandon/archive/2006/06/09/623551.aspx" /><link rel="enclosure" type="image/gif" length="21217" href="http://blogs.msdn.com/guillaumerandon/attachment/623551.ashx" /><id>http://blogs.msdn.com/guillaumerandon/archive/2006/06/09/623551.aspx</id><published>2006-06-09T10:59:00Z</published><updated>2006-06-09T10:59:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;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.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;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.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;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).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;Certains programmeurs préfèreront faire de &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:PersonName w:st="on" ProductID="la 3D"&gt;la 3D&lt;/st1:PersonName&gt; 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&amp;nbsp;(encore une fois il ne s’agit que d’une opinion personnelle):&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: FR"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: FR"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;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é.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: FR"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: FR"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;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. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;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.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;Donc en fait je vois l’avenir de DirectX plutôt brillant. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; FONT-FAMILY: Wingdings; mso-ansi-language: FR"&gt;J&lt;/SPAN&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;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é.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;Le blog de &lt;/FONT&gt;&lt;/SPAN&gt;&lt;A href="http://blogs.msdn.com/greg_schechter/default.aspx"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;&lt;FONT face=Calibri color=#800080&gt;Greg Schechter's &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;(en anglais) donne des informations très intéressantes concernant WPF, DirectX et le nouveau modèle de driver WDDM&amp;nbsp;: &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/greg_schechter/default.aspx"&gt;&lt;FONT face=Calibri color=#800080&gt;http://blogs.msdn.com/greg_schechter/default.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=FR style="COLOR: #1f497d; mso-ansi-language: FR"&gt;&lt;FONT face=Calibri&gt;Bonne journée et bonne semaine,&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=623551" width="1" height="1"&gt;</content><author><name>guillara</name><uri>http://blogs.msdn.com/members/guillara.aspx</uri></author></entry></feed>