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