Estoy planteandome añadirle soporte para meshes a mi framework (aunque inicialmente iba dirigido al 2D). La cuestión es que entre tanto formato se hace dificil decantarse por uno.
Supongo que debería elegir el formato que sea más compatible con el programa que pretenda usar para modelar pero por el momento no tengo muy claro cual usar, me encanta Sketch Up para diseñar entornos pero es muy basico y no permite texturizar en serio. Me gustaba milkshape para cosas sencillas, los demás son demasiado pesados para un coder como yo.
En fin, mi pregunta es cual es el formato más compatible entre programas, más comodo de leer, y que tenga las features más elementales. Yo como coder que soy me interesa que guarde la UV y la Normal de cada vertice, que puedas tener diferentes materiales (muy básicos, textura, color, emisive, y poco más), que no tenga que estar navegando entre chunks de basura que no necesito para nada.
Gracias.
Yo creo que el formato obj es el más extendido, aunque habrán exporters que exporten más datos que otros. Por ejemplo MAX9 parece que tiene un exporter a obj muy completo.
Saludos.
yo personalmente prefiero usar un formato propio, lo que hago es hacer un exportador, de obj u otros a mi formato y asi no me complico :P.
A ver si alguien puede comentar algo sobre collada
En Jad vamos a usar Collada, pero es un trabajo de chinos utilizarlo. Estamos parseando el Collada a un formato binario propio, y luego eso es lo que cargamos, pero vamos, que parsear y manejar el Collada no es fácil (tampoco es muy difícil, pero es larguísimo...).
Un saludo!
Vicente
A todo esto, como puedo crear un formato propio? ya que los que hay por ahi no me convencen demasiado, o son muy grandes (.MAX por ejemplo) o no tienen todo lo que quiero y/o necesitare, quiero tener libertad y asi porder elejir que contendra ese formato para hacerlo lo mas ligero posible.
Saludos.
hazte una clase mesh con todos los datos que quieras y luego solo es volcar lo que tengas en la clase a un archivo y viceversa.
Por si te sirve de orientacion, ahi va el formato que estoy usando yo en mi motor:
Tipo Descripcion Comentario
---------------------- --------------------------- --------------------------
<HEADER>
4 bytes Firma "MESH"
1 byte Version 1
1 byte Encriptacion '!' sin encriptacion, 'R' Rijndael (AES)
</HEADER>
<INFO>
1 dword Vertices Total de vertices >0
1 dword Caras Total de caras >0
1 dword Bones
1 byte Canales UV >0
1 dword Materiales >0
1 dword Flag
</INFO>
<VERTICES>
3 float Posicion
3 float Normal
1 dword Color ARGB
1 dword BoneIdx
<UVs>
2 float Coordenadas de textura
...
</UVs>
1 int Numero de influencias
<INFLUENCIAS>
1 int ID del bone
1 float Peso (1.0 == 100%)
...
</INFLUENCIAS>
1 float Fisica (0.0 == rigido) Para pelos o telas
...
</VERTICES>
<MATERIALES>
1 byte Longitud de nombre <64
X byte Nombre del material
1 dword Flag
1 dword Numero de caras
<CARAS>
3 dword Cara
...
<CARAS>
...
</MATERIALES>
<BONES>
1 byte Longitud del nombre <64
X bytes Nombre del nodo
1 word Indice al padre
3 floats Posicion del bone en estatico
4 floats Rotacion del bone en estatico
...
</BONES>