2009-07-23 14 views
16

Estoy comenzando con XNA y Blender y estoy tratando de encontrar información de buena calidad y actualizada sobre los diversos formatos de archivos 3D que se usan en el desarrollo de juegos.Formatos de archivos 3D para juegos

Claramente, muchos juegos se desarrollan con formatos de archivos 3D múltiples y personalizados, pero estoy interesado en elegir una buena solución utilizando un formato más comúnmente compatible.

¿Cuáles son los formatos más populares y qué los distingue?

NOTA Idealmente, deberían admitir animaciones, pero también me interesarían otros formatos que pudieran usarse para construir mapas u objetos estáticos.

+0

Awesome question. Muy útil. Solo digo ... :-) –

Respuesta

10

En XNA, la penalización de intentar hacer algo por tu cuenta (cargar formatos de datos en particular) es mucho más alta que vivir con imperfecciones de las compatibles desde el primer momento, al menos así es como se ve la documentación, y lo que escuché de alguien que dobló la tubería de contenido para apoyar lo que necesita (generación de geometría de tiempo de ejecución) y en quien confío para saber lo que está haciendo. Así que supongo que .X y .FBX van a ser bastante. Ambos apoyan la animación esquelética, y creo que también morping vértice. No estoy exactamente seguro de qué características exactamente Blender puede exportar en ellas, pero puedo investigar si lo desea.

Blender 2.5 finalmente tendrá un buen soporte de Collada (el actual no tiene armaduras y se divide de muchas maneras), y Autodesk proporciona una buena herramienta para Collada < -> Conversión FBX.

Si observa la comunidad de desarrollo de hobbies, verá que los formatos de datos del software Id son bastante populares. Por un lado, los formatos de animación de personajes morphing MD2 y MD3, formato de animación esquelética MD5, cuyas necesidades están obviamente cubiertas por lo anterior, y por otro lado el formato de archivo BSP, que describe los niveles del juego.

Una cosa que habla para BSP es que hay un buen editor disponible (GTKRadiant y derivados). Este es un formato eficiente que puede eliminar la geometría oculta. Sin embargo, el costo de tiempo de ejecución de construir geometría personalizada en XNA es significativo, y con los límites de estos formatos son bastante modestos en 64k vértices y 64k polígonos en todo el nivel de juego, que es algo que puedes volcar en la tarjeta gráfica hoy en día y sin la caída del rendimiento será notable. Por lo tanto, no obtiene ningún beneficio al apoyarlo directamente.

Dudo que existan formatos y herramientas potentes, modernos y disponibles para el diseño optimizado de niveles de eliminación, cuyos beneficios de rendimiento se traducirían en XNA.

Un par de enlaces es posible que desee comprobar hacia fuera, si no lo ha hecho:

3D World Studio content pipeline

Quake port

Todo sin mantenimiento y fuera de fecha, ni idea de cómo optimizar o no.

+0

¡Gracias por la excelente información! –

5

Es probable que desee ver en la Collada, que es un estándar ampliamente utilizado en el desarrollo de juegos 3D:

http://en.wikipedia.org/wiki/COLLADA

+0

COLLADA es un desastre para analizar. Si debe seguir esta ruta, obtenga algún tipo de biblioteca de análisis. – Ricket

+0

Sí, como FCollada http://www.feelingsoftware.com/content/view/62/76. – zebrabox

6

Si está utilizando XNA, entonces la mejor opción es probablemente FBX. La razón principal por la que digo esto es que es el único, no específico de XNA, format supported natively by XNA en la canalización de creación de contenido.

+0

Gracias por el consejo, aunque todavía estoy interesado en otros formatos, especialmente si alguien más ya ha creado un importador/procesador de código abierto –

+0

@ The Lame Duck: ¿Por qué querría algo más si puede obtener los mejores resultados utilizando fbx ¿formato? Como mencionó Reed, XNA lo apoyará de forma nativa, y si Blender exporta a ese formato, esa sería probablemente su mejor opción. – tomzx

+0

@tomzx - Muy cierto, fbx puede ser la mejor opción. Todavía tengo curiosidad de cómo se compara con .md3 o .md5 o incluso con COLLADA. ¿Admite las mismas características? –

0

No es un experto (ni mucho menos, solo jugó).

Supongo que el formato 3d studio max (.3ds) es bastante utilizado, así como también el archivo RIB renderman. También me gustaba el formato de archivo AC3D (es texto sin formato).

6

Los ya mencionados COLLADA y FBX son los únicos formatos estándar que han alcanzado una adopción significativa en la industria de los juegos. Sin embargo, pocos juegos los cargarán directamente: generalmente se usan como formatos intermedios para exportar de las aplicaciones DCC y luego se procesan en formatos de tiempo de ejecución más optimizados que generalmente son personalizados y específicos del motor.

Los desarrolladores aficionados suelen utilizar formatos de archivo de los juegos populares como punto de partida. El modelo y los formatos de mapa de Quake 3 fueron bastante populares por un tiempo. El formato .X de Microsoft también fue bastante popular para los proyectos de aficionados debido a la disponibilidad de varios exportadores y soporte de carga en el marco D3DX.

0

Desde hace muchos años la DirectX file format (extensión .x) es muy popular y Blender contiene un exportador incorporado para esto.

+1

Esto generalmente no se considera un buen formato, pero para aprender sobre las API 3D será más que adecuado para el trabajo. – Skizz

0

PMD file. Se utilizan para animaciones MMD y mucho más. sólo la búsqueda en torno Deviantart.com para cosas como "modelos MMD"

PMD y PMX Y OBJ

2

podría valer la pena dar un vistazo glTF.

También hay una versión glTF 2.0 en las obras que agrega soporte de renderizado basado en física. Borrador en el sitio de Khronos.

Assimp tiene compatibilidad 'parcial' para ello. No estoy seguro de lo que falta.

También hay un montón de cargadores para diferentes idiomas (C++, WebGL/JS, Rust, Go) en el github.

También hay un convertidor COLLADA to gltf.

Utiliza un archivo JSON como un tipo de manifiesto y luego carga los datos en otros archivos como .bin para imágenes binarias, varias y glsl para sombreadores. Sin embargo, hay un binary extension.

Por supuesto, ya que es nuevo (y aún está en desarrollo) el soporte no será tan bueno. La última vez que miré COLLADA también fue bastante acertada.

También hay Declarative 3D.

Ver this paper that covers both.

Ambos formatos tienen un poco de un enfoque web, pero también deberían estar bien para los juegos.

Cuestiones relacionadas