Bonne question. La réponse est cela dépend ! !
Sur une note plus utile, je peux dire ceci : Il y a quelques années, j'ai développé une application de rendu 3D de type CAO en OpenGL. Il s'agissait d'afficher des modèles CAO de plates-formes pétrolières comportant jusqu'à 1 000 000 d'objets et de permettre à l'utilisateur de zoomer sur les détails, de dézoomer, de déplacer les objets, etc. Je peux dire avec certitude que WPF ne conviendrait pas à ce type d'application car il serait trop lent. Cette application a été développée à l'aide de C++/CLI et est passée d'une interface graphique .NET (barre d'outils, fenêtre) à C++ et à OpenGL (surface de rendu), et même cela a entraîné une baisse des performances par rapport à une application C++/OpenGL native pour les raisons suivantes coups de poing . Donc, si vous voulez les meilleures performances, vous ne pouvez pas battre le C++ natif avec DirectX ou OpenGL.
WPF peut fournir des graphiques 3D de haute performance et une interactivité fluide pour les applications 3D plus simples. Par exemple, une surface graphique 3D ou un carrousel 3D, voire un visualiseur de modèle CAO 3D, à condition que le modèle soit assez simple. Une fois que le nombre d'objets commence à augmenter, vous remarquerez que le moteur de rendu ne peut pas le gérer - c'est alors que vous devez passer à un moteur de rendu qui permet un accès direct au GPU.
Pour une solution à mi-chemin (managed + DirectX), essayer SharpDX . Il s'agit essentiellement d'une mise en œuvre open source de Managed DirectX, qui est extrêmement puissante et polyvalente. L'impact sur les performances de la gestion par rapport au C++ natif est mineur (~5%) et, lorsqu'il est bien fait, le DirectX géré peut être extrêmement performant.
Nous avons intégré DirectX directement à WPF par l'intermédiaire de D3DImage . Nous y sommes parvenus dans un Contrôle graphique WPF 3D qui utilise DirectX11 pour le dessin (et non WPF3D). Ce partage se fait directement de DirectX natif vers WPF mais vous pouvez obtenir d'aussi bons résultats avec SharpDX que nous avons utilisé pour créer un système à haut débit. Plugin de dessin WPF ici.
Pour une démonstration de WPF3D je vous suggère d'essayer ce lien . Comme vous l'avez remarqué, WPF3D peut réaliser des exemples extrêmement attrayants sur le plan visuel et parfois complexes, mais vous n'y trouverez aucune plate-forme pétrolière à 1 000 000 d'objets ;)
Enfin, qu'est-ce que vous vouliez faire dans WPF 3D ? C'est juste un point d'intérêt ou vous avez un projet spécifique à mettre en œuvre et vous voulez savoir si cela vous conviendrait ?
Meilleures salutations,