Buena pregunta. La respuesta es depende !!
En una nota más útil, puedo decir lo siguiente: Hace algunos años desarrollé una aplicación de renderizado 3D de estilo CAD en OpenGL. Esto tenía que mostrar modelos CAD de plataformas petrolíferas con hasta 1,000,000 de objetos y permitir al usuario acercarse al detalle, o alejar, mover objetos, etc. ... Puedo decir con cierta certeza que WPF no sería adecuado para esto tipo de aplicación, ya que sería demasiado lento. Esta aplicación fue desarrollada usando C++/CLI y puenteada desde .NET GUI (Toolbar, ventana) a C++ a OpenGL (superficie de renderizado) e incluso eso introdujo un golpe de rendimiento sobre una aplicación nativa de C++/OpenGL debido a thunking. Por lo tanto, si desea el máximo rendimiento, , no puede vencer a C++ nativo con DirectX u OpenGL.
WPF puede proporcionar gráficos 3D de alto rendimiento y una interactividad fluida para aplicaciones 3D más simples. Por ejemplo, una superficie de gráfico 3D o un carrusel 3D, incluso un visor de modelo CAD en 3D, siempre y cuando el modelo sea bastante simple. Una vez que el conteo de objetos comience a aumentar, se dará cuenta de que el motor de renderizado no puede manejarlo, es entonces cuando debe cambiar a un motor de renderizado que permita el acceso directo a la GPU.
Para una solución de casa a mitad de camino (administrado + DirectX), intente SharpDX. Esta es básicamente una implementación de código abierto de Managed DirectX y es extremadamente poderosa y versátil. El rendimiento alcanzado de C++ administrado frente a nativo es menor (~ 5%) y cuando se hace bien, DirectX administrado puede ser extremadamente eficiente.
Algo que hemos hecho es integrar DirectX directamente con WPF a través de D3DImage. Hemos logrado esto en un WPF 3D Chart Control que usa DirectX11 para el dibujo (no WPF3D). Esto se comparte directamente desde DirectX nativo a WPF, pero puede obtener resultados igualmente buenos con SharpDX, que hemos utilizado para crear una alta velocidad WPF Drawing Plugin aquí.
Para una muestra de WPF3D, sugiero que intente this link. Como se observa WPF3D puede hacer muy sugerente visualmente y, a veces complejos ejemplos pero no se encontró ningún plataformas petrolíferas 1000000 objeto en allí;)
Por último, ¿qué es lo que quería hacer en WPF 3D? ¿Solo un punto de interés o tiene un proyecto específico para implementar y desea saber si sería adecuado?
Saludos,
Gracias por la respuesta, y mi pregunta es solo un punto de interés, pero sería útil en el futuro si tuviera que implementar algo en 3D. – SpeedBirdNine
@SpeedBirdNine sin problemas. Sugiero revisar este enlace http://helixtoolkit.codeplex.com/, ya que parece tener un escaparate bastante bueno sobre las capacidades 3D de WPF. Saludos cordiales –
¡Gracias de nuevo por el enlace! – SpeedBirdNine