.net - sobre - ¿Direct3D administrado o XNA para la programación de gráficos 3D no relacionados con el juego?
todo sobre xna (6)
De todos modos, no soy un experto, pero cuando metí la pata con ambos, encontré XNA mucho mejor. Simplemente jugueteo con mis juegos de Zune y PC. No tuve tiempo suficiente para meterme con DirectX y encontré muchos más ejemplos para XNA.
También tienes toda una comunidad para ayudarte.
¿Cuál es el enfoque preferido para hacer la programación de gráficos .NET 3D: Direct3D o XNA parecen ser las tecnologías actuales, pero que es mejor para la programación no relacionada con el juego?
Además, ¿se ha suspendido Managed Direct 3D? XNA realmente no parece ser apropiado para el desarrollo sin juegos.
Si no está relacionado con el juego, ¿de qué se trata? Si responde esto, podríamos darle una buena respuesta, de todos modos, dependiendo de la aplicación, WPF podría ser una buena respuesta.
Yap, qué mal MS suspendió MDX. Actualmente estoy usando SlimDX para nuestro desarrollo sin juegos. No es un reemplazo inmediato para MDX, pero al menos el diseño de la API es bastante intuitivo en comparación con la API de MDX v1.1. He usado MDX v1.1 + .Net v1.1 para la versión 1 de nuestro producto. En cuanto a la versión 2, estamos migrando a .Net 2.0. MDX v1.1 no funciona bien con .Net 2.0, además tiene otro problema inherente. Por lo tanto, tuvimos que buscar alternativas.
Inicialmente, XNA fue nuestra mejor opción. Entonces, dado que tiene como objetivo el mercado de los juegos y la compatibilidad con xbox 360, descubrimos que tenemos que escribir una gran cantidad de soluciones / hacks para que funcione para nosotros. Lo peor es la interoperabilidad con DirectShow, que utilizamos ampliamente en nuestro producto. MS creó una gran brecha entre la tecnología existente y la nueva, donde el último reemplazo para MDX y DirectShow no es lo suficientemente potente como para reemplazar los antiguos en este momento, y no podemos permitirnos esperar a la próxima versión.
No diría que SlimDX es el mejor para el desarrollo sin juegos. Pero para mi caso, lo es. Y dado que es OpenSource, siempre podemos hacer cambios a los lugares que consideremos adecuados. Existen problemas técnicos cuando utilizamos SlimxDX + DirectShow.Net. Estos fallos técnicos no existen cuando utilizamos MDX 1.1 + DirectShow.Net. Mi suposición es que, internamente, MS metió un montón de hacks para que funcione.
De todos modos, si no está utilizando DirectShow en absoluto, considere Ogre3D / MOgre3D . MOgre3D es una envoltura manged para Ogre3D, un motor 3D bien construido. Fue nuestra primera opción, pero no podemos usarlo porque no es compatible con DirectShow.
Xna es Managed DirectX de Microsoft. Lamentablemente, no han escrito mucho sobre su uso para cosas que no están relacionadas con el juego, pero se puede hacer.
Lamentablemente, no puedo encontrar ningún recurso bueno en línea que muestre cómo hacerlo ahora mismo.
Managed DirectX no fue tan abandonado como se reescribió como XNA. Es cierto que XNA fue diseñado pensando en Xbox 360, pero XNA es tan apropiado como para usarlo en la programación 3D sin juegos como cualquier otro framework 3D que haya usado. No pase por alto el canal de importación de contenido enormemente conveniente de XNA ... Puede obtener sus modelos y sombreadores en la tarjeta y renderizar con gran facilidad.
Como se mencionó anteriormente, la comunidad de Creaters Club es muy rica, y sus tutoriales de Winforms probablemente le interesen.
La respuesta simple aquí es tal vez XNA. Y tal vez WPF. Depende.
Si está buscando algo que sea remotamente parecido a un juego, XNA es una solución realmente buena, ya que le brinda un marco que combina muy bien con casi cualquier implementación de un mundo interactivo en 3D. Además de manejar todo el material visual en 3D, obtienes cosas como detección de colisión, iluminación, sincronización y cámaras que se conectan fácilmente. Si lo que estás trabajando es algún tipo de espacio virtual en 3D, lo que tienes probablemente sea muy parecido a ser un juego de todos modos y XNA te dará mucho más, además del final de gráficos.
De lo contrario, si está buscando la interfaz de usuario 3D o la visualización de datos, es probable que WPF sea más de lo que desea. Hay menos sobrecarga innecesaria y las otras cosas que se incluyen como commanding o enlace de datos probablemente sean más útiles para usted de todos modos. Según tengo entendido, está configurado para usar la aceleración de hardware en el backend y manejará sombreadores de materiales y varios efectos 3D a través del software si es necesario para que el usuario obtenga una experiencia visualmente consistente.
Si tienes un ejemplo que realmente no encaja bien en ninguno de estos campos, realmente me interesaría saberlo. Podría ser una buena oportunidad para alguien que quería escribir una biblioteca de gráficos útil ...