2009-04-23 19 views
5

Necesito desarrollar una parte de una aplicación comercial de una manera llamativa. Por lo tanto, quería ver si puedo usar DirectX. Esto es lo que obtuve.Programación de DirectX en Windows, ¿cuál es la forma preferida?

  1. Primero leí cómo el uso de C/C++ es como pegarse un tiro en el pie y que debe utilizar DirectX.NET lugar. No podría estar en desacuerdo Es el siglo XXI.

  2. Se descargó DirectX SDK pero no pudo encontrar los ensamblados de .NET allí. La búsqueda en la red ahora reveló que DirectX .NET (llamado MDX) ahora está obsoleto (lanzado en 2006). Y que debería usar XNA en su lugar, que fue desarrollado principalmente para XBOX.

  3. Descargado XNA. Pero no se instalará porque no tengo C# .NET Express 2005 SP1. SP1 instalado en mi VS Pro 2005. Pero no se instalará aún. Necesita Express 2005 y exactamente esa versión única, no Pro, claramente no 2008.

  4. Frustrado intentó descargar C# .NET Express que es gratis. Pero el enlace de MS dice que C# .2005 en realidad descarga C# .2008, porque C# .2005 ahora está obsoleto.

  5. Y ahora leo que MS ahora está poniendo su fuerza detrás de WPF/silverlight. Y XNA no es compatible con DX10 y Vista no viene con DX9.

Ahora tiene dos opciones:

  1. Ir hace 15 años y de código en el viejo y simple en C/C++. Al menos C ha demostrado ser intemporal.

  2. Pruebe silverlight.

¿Cuál sería su consejo? ¿O me estoy perdiendo algo?

Udpate: Me gustaría añadir que el DX10 no es compatible con versiones anteriores de cualquier otra versión DX. SlimeDX parece realmente prometedor. Pero como un paquete muy nuevo, no estoy seguro de lo útil que será la documentación y los tutoriales.

Udpate 2: Parece que el primer enlace de descarga que google muestra al buscar la descarga de XNA, que he usado, no es el más reciente. Gracias a DouglasH por proporcionar el enlace a v.3. Descargandolo. Probablemente funcionará.

Pero luego agian. ¿Debería cambiar a WPF/Silverlight? O ir con XNA? ¿Cuál está mejor documentado y futuro profe?

Más actualización: Vista realmente no viene con DirectX 9 preinstalado [verificando por google]. Al menos no lo hizo en mi máquina el año pasado. Buscando en Google reveló que tengo que instalar DirectX 9 manualmente en Vista después de descargarlo de MS. Pero mi error fue que los controladores de hardware para DX9/vista faltaban o no funcionaban. Tengo la idea de que no es compatible tan bien.

+0

bien con XNA tienes la opción de escribir juegos para xbox 360, pc y Zune. ¿Prueba de futuro? ¿Hay algo que sea verdaderamente a prueba de futuro? C++/direct X es donde los juegos de computadora True 3D estarán en el nivel más bajo solo por el rendimiento. aunque Mono ha hecho algún trabajo con SSE y otros aspectos del juego. http://tirania.org/blog/archive/2009/Apr-09.html. Yo personalmente digo que use la mejor herramienta para el trabajo y esa podría ser alguna de esas tecnologías. – DouglasH

+0

en directx 9 en Vista. DWM puede vincular en las DLL que necesita, pero está basado en DirectX 9, y es la razón por la que se requiere hardware de DirectX 9 o superior para que Aero funcione. http://msdn.microsoft.com/en-us/library/bb757031.aspx – DouglasH

+0

Es cierto que nada es a prueba de futuro. En realidad estaba siendo paranoico al descubrir que una tecnología se abandona justo después de 2 años de comenzar el desarrollo. – CDR

Respuesta

1

par de puntos, qué versión de XNA descargaste. Aquí está el enlace para XNA Studio 3.0 que se ejecutará en Visual Studio 2008. http://www.microsoft.com/downloads/details.aspx?FamilyId=7D70D6ED-1EDD-4852-9883-9A33C0AD8FEE&displaylang=en

En segundo lugar, espero que Vista tenga Direct X 9, ya que esa es la versión de X directa que ejecuta DWM en Vista. Creo que encontrará las DLL para Direct X 9 y anteriores y las DLL para DirectX 10 cargadas en Vista. O para eso importa Windows 7 que también tendrá directX 11 (edit 2 tenga en cuenta que el DWM está basado en DirectX10, con un emulador de software para sistemas que no tienen hardware de video 3D, controladores dx10ondx9 para aquellos con tarjetas Directx 9 y de curso completo soporte para tarjetas directx 10).

edición,

Además, si ha descargado el SDK de marzo de DirectX, descargar, DirectX 9.0c, DirectX 10, 10.1 y la beta de DirectX 11. y yo tendría que comprobar si DirectX 8.x es todavía incluido o no, aunque DirectX 9 es compatible con la mayoría de esa plataforma.

4

MS ha dejado de admitir las bibliotecas DirectX de .net. Hay una alternativa de código abierto llamada SlimDX, y funciona bien. La documentación deja algunos que desear, pero se puede confundir al usar la documentación de DirectX C++ y algo de sentido común.

4

WPF hace bastante buenas cosas en 3D, y hay muchos paneles de ojo de pez y código fuente disponibles para WPF, sí, ya que MS se ha alejado de su tecnología, en términos de hoy, no podemos centrarnos en una sola tecnología por MS para hacer toda una aplicación comercial.

Claro que también estamos cansados ​​de usar múltiples versiones diferentes de tecnologías incluso para hacer partes más pequeñas, pero creo que están haciendo un gran trabajo al servir millones de máquinas, seguro que no es fácil pero WPF y .NET parecen ser las tecnologías más estables por microsoft y también están gastando un buen dinero en hacer un sistema operativo completamente administrado también.

2

Si alguna vez vuelve a C o C++, es posible que desee comprobar Simple DirectMedia Layer (SDL).

En mi humilde opinión, es mucho más fácil que DirectX.

URL: http://www.libsdl.org/

+0

Sería el segundo SDL. Hay un gran tutorial aquí: http://www.lazyfoo.net/SDL_tutorials/index.php – Skilldrick

2

DirectX es totalmente compatible. Cualquier aplicación DX9 se ejecutará en Vista y DX10. En cuanto a XNA y VS2005, es un poco raro. Eso haría que XNA sea efectivamente inútil. Verifica si no te has perdido algo.

+1

DirectX 10 no es compatible con versiones anteriores de DirectX 9. Aunque todo era compatible entre sí antes de DX10. MS rompió eso en DX10. – CDR

+0

Pero las aplicaciones DX9 aún se ejecutan en Vista. Entonces, ¿por qué no usar eso? –

1

Aunque nunca trabajé directamente con DirectX (poco con OpenGL) - tomaría WPF. La menos dolorosa de implementar (transparencia, gradientes, pinceles, animaciones, etc.) y proporciona un rendimiento sólido a partir de lo que he visto y experimentado. Pero sí, no es independiente de la plataforma.

Cuestiones relacionadas