NEWS         TESTS         INTERVIEWS         DOSSIERS         GALLERY 3D         3D SITES
 Q&A MICROSOFT 3D XAML & WPF (Windows Presentation Foundation)
Mitsuru FURUTA - Microsoft FRANCE
mai 2007
 

 

"WPF amène la 3D dans l’interface de nos applications dans le but de créer de nouvelles ergonomies. On peut par exemple imaginer la 3D pour animer des transitions ou bien même pour simuler un comportement naturel tel qu’un bloc-notes dont on ferait tourner les pages.
Sous Vista avec le thème Aero activé, l’ensemble du bureau s’affiche via la technologie WPF (applications .Net ou natives)."

< Le mode Aero de Windows Vista utilise WPF

   
Q1 Quel est le rôle de de WPF ?
A1 WPF (Windows Presentation Foundation) est la nouvelle API de programmation d’interface Windows. J’entends par là, toutes les interfaces de type client riche allant du simple tracé, aux formulaires applicatifs. Le but de WPF est d’apporter une expérience utilisateur plus riche via des possibilités graphiques avancées, la gestion des médias, du son et des documents. Techniquement, ce moteur repose sur DirectX pour accéder physiquement à l’écran. Les impacts directs en sont des capacités d’affichage vectorielles indépendantes de la résolution de l’écran, une accélération matérielle de l’affichage (tracés, gradients, transparence alpha, 3D, etc) et donc une meilleure utilisation du processeur graphique libérant ainsi le processeur central.
WPF apporte également la possibilité de définir ses interfaces de manière externalisée sous forme de texte à travers le format XAML. Ce schéma xml particulier mappe les fonctions de l’API binaire rendant ainsi leur définition portable et indépendante de .Net.
   
Q2 Grâce à WPF, des éléments 3D peuvent-ils être plus facilement intégrés dans des applications .Net?
A2 Oui, tout à fait. WPF supporte la 3D et des éléments entiers peuvent être convertis en objects WPF (via xaml) par de nombreux designers/convertisseurs de modèles 3D. Ces objets ainsi définis en xaml sont tout simplement ajoutés à une application WPF qui va les manipulés comme s’ils avaient été écrits par code.
J’ajouterai cependant un bémol car WPF n’est pas fait pour manipuler des modèles très complexes, donc n’imaginez pas importer dans vos applications WPF des polygones à 1 millions de triangles.
   
Q3 Est-ce que WPF est uniquement présent sur plateforme Vista?
A3 Non, WPF est une des briques de la version 3.0 de .Net. Cette version est native et obligatoire dans Vista mais s’installe également sous Windows XP SP2 et Windows Server 2003 SP1.
Les applications sont 100% compatibles quelque soit la plateforme qui porte le framework 3.0. Dans le cas d’exécution simultanée de plusieurs applications WPF (directX en fait), les ressources seront beaucoup mieux gérées sous Windows Vista. Les versions antérieures de Windows ont une implémentation de DirectX qui n’est pas optimisée pour manipuler de multiples fenêtre simultanément.
   
Q4 Quel est le rôle de 3D XAML ? Existe t-il des passerelles avec d'autres formats tels que Dassault 3D XML, X3D, Collada (qui sont des formats 3D sous syntaxe XML) ?
A4 3D XAML n’est pas un format ! C’est du XAML ! De même que l’ensemble du schéma XAML est à la limite entre xml et objets, les tags 3D du schéma xaml ne font que référencer des objets de Direct3D.
Nous pouvons donc considérer « 3D XAML » comme un sous-ensemble de XAML dédié à la définition des modèles et des scènes 3D.
On peut trouver sur le web un bon nombre de convertisseurs (http://blogs.msdn.com/mswanson/articles/WPFToolsAndControls.aspx) et même des plugins directement intégrés pour les outils de design majeurs.
Ces différents outils générent en général un fichier de ressources XAML qu’il suffit ensuite t’attacher au projet.
   
Q5 Le déploiement d'applications WPF est-il possible sur le web ou sur équipements embarqués (UMPC, Smartphones...)?
A5 Je vais majoritairement dire non. Les applications WPF ne s’exécutent que sur les OS cités dans la question 3, accompagnés du framework .Net 3.0. Il existe cependant une possibilité qui consiste à développer des applications navigationnelles (xbap) qui facilitent l’intégration dans un navigateur (navigation en séquence, historique). Le référencement de l’application se fait bien via une URL mais la technologie sous jacente est ClickOnce qui va assuré le déploiement transparent de l’application sur le poste client. On ne peut donc pas vraiment parler d’application Web…
Le framework 3.0 de .Net n’existant pas sur les équipements embarqués, il n’est pas possible d’y faire tourner des applications WPF.
   
Q6 Quel est le lien entre DirectX et WPF ? Est-ce que WPF peut être utilisé par des applications ludiques (jeux) ?
A6 WPF utilise la technologie DirectX pour s’afficher à l’écran.
La principale différence se fait au niveau de la philosophie de développement.
DirectX est une API de bas niveau (bien que passant par COM). Son but est d’offrir au développeur à accès complet à toutes les possibilités de la carte graphique. Ainsi une application DirectX peut interroger le hardware sur ses capacités et impacter l’exécution. Le développeur construit ainsi frame par frame son interface graphique.
A l’opposé, WPF offre une abstraction quasi complète du hardware. Le but est de fournir au développeur d’applications windows GDI, les mêmes principes de programmation.
Ainsi WPF apporte :
Un modèle de composants.
Une classe Application qui masque la boucle principale des messages et la connexion à la fenêtre windows sous-jacente.
Des contrôles de haut niveaux (boutons, listes, panels, treeview, etc) qui respectent le thème de windows.
Tous les principes d’interface windows (focus, tabulation, capture de la souris, etc).
L’abstraction complète de l’affichage frame par frame.
Quant à la question des jeux, à moins que le jeu ne soit vraiment très simple, on arrive très vite aux limites de WPF en matière de nombre de triangles et également de synchronisation des informations de WPF avec DirectX. En effet, tous les systèmes automatiques de WPF pour l’abstraction du hardware ont un coût. Ce coût limite donc WPF à l’usage de scènes 3D relativement simples mais qui bénéficieront de fonctionnalités avancées (binding sur tous les éléments, moteur d’animations, « Click » de souris sur les éléments 3D !!).
   
Q7 La 3D est de plus en plus présente chez Microsoft : l'interface Aero de Windows Vista, XNA game studio... La 3D constitue-t-elle un nouvel axe de développement pour Microsoft?
A7 On peut voir ça comme ça. WPF amène la 3D dans l’interface de nos applications dans le but de créer de nouvelles ergonomies. On peut par exemple imaginer la 3D pour animer des transitions ou bien même pour simuler un comportement naturel tel qu’un bloc-notes dont on ferait tourner les pages.
Sous Vista avec le thème Aero activé, l’ensemble du bureau s’affiche via la technologie WPF (applications .Net ou natives). Les API DesktopWindowManagement permettent d’interagir avec ce nouveau bureau mais n’offre pour le moment que peu de fonctionnalités. On peut imaginer que cela s’améliore dans l’avenir.
De manière plus générale (hors WPF), l’essor des technologies 3D est toujours d’actualité chez Microsoft. Le framework XNA cible un unique développement pour une exécution soit sur Windows soit sur XBOX tout en s’appuyant sur la puissance, la flexibilité et la facilité de développement de .Net.
DirectX 10 apporte quand à lui une révolution en matière de qualité de rendu en tirant les bénéfices du nouveau format des drivers graphiques de Windows Vista.
Voici une description détaillée de DirectX 10 en français pour les spécialistes :
http://www.microsoft.com/france/msdn/directx/modele-de-driver.mspx.
http://www.microsoft.com/france/msdn/directx/directx10-point-de-vue-du-developpeur.mspx
   
Q8 Des animations 3D WPF peuvent être lues par Internet Explorer. Quels nouveaux usages visez-vous ?
A8 Toujours le même principe, nous pouvons en effet intégrer des applications WPF dans Internet Explorer mais ce n’est pas une technologie web. Le poste client requiert le framework .Net 3.0.
Nous sommes cependant en train de développer une technologie rendant portable les technologies .Net et WPF. Pour être plus exact, cette technologie ne sera pas compatible avec WPF mais avec un sous-ensemble de Xaml.
Toutes les informations ici : http://silverlight.net/
   
   
 
  Search on 3d-test with Google
      A PROPOS DE 3D-TEST            INFORMATIONS LEGALES               LINKS              TRANSLATE WITH GOOGLE
 
© 2001-2007 3d-test, Panorama of web 3D technologies, 3d-test is edited by Westimages Realtime 3D Solution Provider