c# .net 3d modeling

c# - ¿Cómo debo empezar a jugar con 3D?



.net modeling (7)

Soy desarrollador desde hace casi 6 meses, y desde que disfruto de la programación, comencé pequeños programas como encripters, calculadoras, herramientas, cosas para jugar con DropBox (jeje), cosas que juegan con mapas de bits, gráficos de dibujo y incluso un programa para actualizar la imagen de visualización de MSN de acuerdo con la ilustración de la música que estás escuchando en iTunes.

¡Una de mis otras aficiones es el modelado 3D ( completamente amateur ) y me gustaría mezclar estas aficiones juntas! Así que leí un poco sobre eso y pensé que tendría que tener buenas nociones sobre geometría, matemáticas, posición espacial puntual (lo que hago, de mi experiencia de modelado 3D), pero no sé cómo usar API para Es así que ''simulé'' 3d simple con un programa simple que he creado (un cubo giratorio ).

Aquí hay algunas preguntas:
1) ¿Cuál sería una buena herramienta de desarrollo 3D para un programador .NET como yo?
2) ¿Hay alguna forma de usar modelos 3D hechos en 3DS Max? (Tengo la intención de modelar personajes)
3) ¿Qué conocimiento debo tener para renderizarlo y moverlo?
4) ¿Qué API debo usar?

NOTA: No es una trampa, le estoy pidiendo direcciones específicas para el desarrollo de .NET posiblemente utilizando 3ds MAX, y hasta ahora no había preguntas al respecto

EDITAR:

Tengo tres respuestas que parecen bastante agradables, así que permítame especificar un poco y quizás pueda decirme cuál es la herramienta más apropiada.
Lo que me gustaría construir pronto sería:

  • portátil (click''n''run, no es necesario instalarlo, y (con suerte) no es necesario enviar archivos DLL)
  • "Incrustación 3D" en la aplicación winforms, como un cuadro de imágenes en el que podrías renderizar.
  • Forma de aplicación real (con todas las API del sistema como IO, Drawing y etc.)

El entorno de desarrollo sería bueno si:

  • Tenía la posibilidad de importar modelos 3D existentes (no es obligatorio, sino un plus)
  • Tenía la capacidad de crear modelos 3D programáticamente (un deber)
  • Posiblemente tenga una herramienta para materiales y texturas (que sería una gran ventaja)
  • Es bien conocido (alta disponibilidad de tutoriales, preguntas en SO, foros ...)

Y sería muy bueno si pudiera usar C # todo el camino :)


Aunque ya hay excelentes sugerencias en esta publicación (como SlimDX y XNA), me gustaría mencionar OpenTK .

OpenTK está más cerca de OpenGL que de Direct3D, pero podría ser la mejor solución para aplicaciones 3D .NET multiplataforma.


Mi voto va para Povray . Es un renderizador 3D con un lenguaje de sintaxis tipo c. No satisface sus necesidades de .net, pero si es genial, menos para la representación 3D. Si tienes algún tipo de interactividad, XNA es probablemente tu mejor opción. Pero estoy interesado en tus hallazgos.


Personalmente, encontré a XNA un poco "Game Centric" para mi gusto. Estaba más interesado en el diseño / usos de tipo de arquitectura.

Puede encontrar SlimDX más a su gusto.


Re: "Tiene la capacidad de crear modelos 3D programáticamente (un deber)"

Algunos punteros:

No hay bibliotecas .NET que conozca que le permitan utilizar las bibliotecas / técnicas mencionadas anteriormente. Deberá usar PInvoke o C ++ / CLI para hacer llamadas a estas bibliotecas desde el mundo administrado.


Voto, prueba Blender. www.blender.org

Es gratis, de código abierto, y tiene una gran comunidad tanto en foros como en IRC. El progreso en la aplicación es impulsado por importantes proyectos comunitarios cada año, algunos de los cuales son películas y juegos y han ganado algunos premios. Está ganando aceptación en la industria como una forma de modelar extremadamente rápido.

Desventajas: no se considera "pro" como Maya o ZBrush, y tiene un cerebro muy diferente acerca de la interfaz. La curva de aprendizaje puede ser interesante, dependiendo de cómo aprendas y de cuánta ayuda recibas.

Ventajas: es gratis, excelente comunidad, se actualiza regularmente, muchos tutoriales y proyectos comunitarios para trabajar.

Comunidad:

Proyectos comunitarios anteriores:


Voy a dar otro voto para XNA. El comentario de que es demasiado "centrado en el juego" es un no iniciador: proporciona un bucle de renderizado con comentarios sobre la rapidez con la que se está ejecutando todo para que pueda ajustar su renderización para tratar de mantener una tasa de cuadros específica (si lo desea). Esto no está particularmente centrado en el juego, ya que es algo por lo que la mayoría de las aplicaciones 3D deberían preocuparse. Lo único realmente centrado en el juego es que proporciona un fácil acceso a los controladores del juego. Siéntase libre de ignorar ese bit si no quiere usarlo.

El único inconveniente para usted al usar XNA es su requisito de que sea click''n''run, XNA tiene un redistributable que tiene que preocuparse. Tenga en cuenta que Win7 tiene esto instalado de forma predeterminada, pero Vista y anteriores no.

EDIT: XNA está hecho para aplicaciones que son estrictamente 3D. Como tal, no admite de forma nativa el uso de controles de ventanas típicos dentro de un proyecto XNA. Pero, hay maneras de evitar esto ... Algunos enlaces útiles. Incrustación de XNA en un formulario de ganancias: http://forums.xna.com/forums/p/6471/34180.aspx#34180 Controles de WPF directamente dentro de un proyecto de XNA: http://www.c-sharpcorner.com/UploadFile/iersoy/256/Default.aspx


Ya que está utilizando C # .Net, la biblioteca XNA será excelente para usted. Es gratis en el sitio web de Microsoft y se integra en el VS IDE. Un montón de tutoriales disponibles alrededor para ayudar a empezar.

Además, si recuerdo bien. para usar un modelo 3d en XNA, simplemente exporte el modelo completado como (.X). A continuación, se puede cargar en su trabajo.