Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Character Studio -> Md5

Iniciado por BeRSeRKeR, 25 de Diciembre de 2004, 09:05:51 PM

« anterior - próximo »

donald

 Canales UV, es curioso... :)

max podía hasta con 99, aunque no recuerdo para qué versión...
Me paso por aquí de cuando en cuando (1 vez cada 3 o 4 meses) ...así que si no respondo a algo no es por antipático. ;) Posteo, y me acuerdo del foro tres meses después... ;)    :-S

BeRSeRKeR

Cita de: "donald"Canales UV, es curioso... :)

max podía hasta con 99, aunque no recuerdo para qué versión...
La última vez que miré el tema de los canales de mapeado seguía habiendo 99, con la versión 6.0. Supongo que eso no habrá cambiado con la versión 7.0.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

 
CitarPD: una cosa, como sabrás, en MAX las listas de coordenadas de vértice y de textura no tienen por qué coincidir en número, es decir, no hay una equivalencia por lo que hay que realizar un proceso para consolidar esos datos. ¿Sabes si IGame ya te da estos datos consolidados?, es decir, una coordenada de textura para una coordenada de vértice.

CitarTiene una lista de coordenadas de vértice, otra de coordenadas de textura, otra de índices a coordenadas de vértice y otra de índices a coordenadas de textura. Estas dos últimas son las que indican la equivalencia entre coordenadas de vértice y coordenadas de textura. Pero claro hay reconstruir toda esa información para tener una única lista de índices y una única lista de vértices para que sea digerible por las API 3D.

He estado leyendo la ayuda de la interfaz IGame y por lo que veo BeRSeRKeR está equivocado, porque aparte de los medotos para obtener los datos como el comenta , he visto lo siguiente en la clase IGameMesh:

virtual int  GetNumberOfFaces ()=0
virtual FaceEx *  GetFace (int index)=0

y luego la clase FaceEx:



class FaceEx{
   DWORD  vert [3]
   DWORD  texCoord [3]
   DWORD  norm [3]
   DWORD  color [3]
   DWORD  illum [3]
   DWORD  alpha [3]
   DWORD  smGrp
  int  matID
  DWORD  flags
  int  meshFaceIndex
}



Asi que si yo entiendo bien esto con la interfaz IGame te permite obtener una lista unificada de caras con las coordenadas de textura, normales y vertices, cosa que facilita infinitamente el hacer un plugin de exportación con respecto al SDK de toda la vida.

Ademais hay por ahí un sample que es un plugin que exporta a XML, asi que no hay mas que partir de ese y modificarlo cada uno a su gusto.

Ademais tambien he leido esto:

Citar
IGameSkin

A skin wrapper Class.

This class provides an unified interface to the various skin options present in Max. This include Physique and Skin All the data from skin and physique are stored in the same way, but options exist to find out what skinning option was used The vertex indexes used here are the same as those for the actual mesh, so this provides a one to one corelation.
The version of the Character Studio that is used for IGame is 3.2.1 - Anything earlier will cause problems
NB: The bones need to be parsed by IGame before this interface can be used.

Vamos que parece que la IGame es una maravilla.

Saludos.

martiño

 Joer siempre me olvido de logear, ese era yo.

BeRSeRKeR

 
Cita de: "Guest"He estado leyendo la ayuda de la interfaz IGame y por lo que veo BeRSeRKeR está equivocado, porque aparte de los medotos para obtener los datos como el comenta , he visto lo siguiente en la clase IGameMesh...
¿Equivocado?. Lo que yo he dicho es que tanto utilizando el SDK de MAX como MAXScript, hay una lista de coordenadas de vértices, y otra (o tantas como canales de mapeado haya) de coordenadas de texturas, y además tenemos una lista de índices a coordenadas de vértices y otra (o tantas como canales de mapeado haya) de índices a coordenadas de textura. Entonces hay que coger todo eso y reestructurarlo. Bien, eso como he dicho pasa con el SDK de MAX y con MAXScript. De ahí que te preguntara si la interface IGame te facilitaba esa tarea. Por lo tanto no se donde está mi error.

De todas formas la he descargado y he probado el ejemplo que exporta a XML y ésta es la salida que me ha dado para un cubo (sólo pongo la lista de coordenadas de vértice y texturas):


  <Vertices Count="8">
   <vertex index="0">-25,000000 0,000000 -25,000000</vertex>
   <vertex index="1">25,000000 0,000000 -25,000000</vertex>
   <vertex index="2">-25,000000 0,000000 25,000000</vertex>
   <vertex index="3">25,000000 0,000000 25,000000</vertex>
   <vertex index="4">-25,000000 50,000000 -25,000000</vertex>
   <vertex index="5">25,000000 50,000000 -25,000000</vertex>
   <vertex index="6">-25,000000 50,000000 25,000000</vertex>
   <vertex index="7">25,000000 50,000000 25,000000</vertex>
  </Vertices>
  <TextureCordinates Count="12">
   <tVertex index="0">0,000000 0,000000</tVertex>
   <tVertex index="1">1,000000 0,000000</tVertex>
   <tVertex index="2">0,000000 -1,000000</tVertex>
   <tVertex index="3">1,000000 -1,000000</tVertex>
   <tVertex index="4">0,000000 0,000000</tVertex>
   <tVertex index="5">1,000000 0,000000</tVertex>
   <tVertex index="6">0,000000 -1,000000</tVertex>
   <tVertex index="7">1,000000 -1,000000</tVertex>
   <tVertex index="8">0,000000 0,000000</tVertex>
   <tVertex index="9">1,000000 0,000000</tVertex>
   <tVertex index="10">0,000000 -1,000000</tVertex>
   <tVertex index="11">1,000000 -1,000000</tVertex>
  </TextureCordinates>


Como se puede ver el número de vértices y de coordenadas de textura no coinciden por lo que (aunque IGame te da en una sola face los índices necesarios para construir los vértices) estamos en el mismo caso que el SDK de MAX y MAXScript, es decir, hay que reconstruir esa información para obtener una lista final de vértices e índices lista para ser utilizada en Direct3D, OpenGL o lo que sea. De momento la única utilidad (que yo conozca) que te exporta la geometría lista para ser utilizada en un API 3D es Flexporter.

De todas formas la interface ésta parece interesante y como has puesto y he podido leer en la documentación,  te abstrae del sistema que se utilice para skinnear un modelo lo cual está muy bien, sin duda.

El único inconveniente es que, si he leído bien, sólo te permite crear exporters. Por ejemplo ahora mismo tenemos un plugin desarrollado en MAXScript que crea un nuevo tipo de material igual al standard pero con propiedades extra y me parece que eso no se podría hacer con IGame. Pero bueno, para exportar parece que está muy bien y desde luego parece que te evita el "infierno" del SDK de MAX...por eso escogí MAXScript en su día (¡gracias Ithaqua! :)), además de que me permitía desarrollar herramientas para gmax.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

martiño

 
Cita de: "BeRSeRKeR"
Cita de: "ethernet"
Cita de: "BeRSeRKeR"

PD: una cosa, como sabrás, en MAX las listas de coordenadas de vértice y de textura no tienen por qué coincidir en número, es decir, no hay una equivalencia por lo que hay que realizar un proceso para consolidar esos datos. ¿Sabes si IGame ya te da estos datos consolidados?, es decir, una coordenada de textura para una coordenada de vértice.
Entonces usa varios campos en el índice ?

saludos
Tiene una lista de coordenadas de vértice, otra de coordenadas de textura, otra de índices a coordenadas de vértice y otra de índices a coordenadas de textura. Estas dos últimas son las que indican la equivalencia entre coordenadas de vértice y coordenadas de textura. Pero claro hay reconstruir toda esa información para tener una única lista de índices y una única lista de vértices para que sea digerible por las API 3D.

Saludos.
De esto yo entiendo que le estas contestando a ethernet y hablas de la IGame, si no es asi pues te he entendido mal.

En cualquier caso la IGame parece que soluciona ese problema, y aunque el exportador ese de XML hace lo que dices eso es porque la IGameMesh tambien proporciona metodos para acceder a los datos a como en el max normal, pero ademas proporciona lo que he citado antes para acceder a la malla consolidada, ya que te da una lista unificada de caras, no una para los vertices y otra para las coordenadas de textura.

Si y claro es para exporters, para el resto de las cosas sigue habiendo que pelearse con el (horrible) api de toda la vida.

Saludos.

BeRSeRKeR

Cita de: "martiño"De esto yo entiendo que le estas contestando a ethernet y hablas de la IGame, si no es asi pues te he entendido mal.
Sí, ha sido un malentendido, yo a ethernet le hablaba del SDK de MAX y de MAXScript, de ahí que te preguntara lo de la IGame.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

martiño

 He estado mirando un poco mas la IGame y:

- El problema de la malla consolidada sigue ahí, lo que dije hasta ahora es todo falso. Porque aunque hay una lista unificada de caras, ese no era el problema, el problema es que los indices para los vertices, las coordenadas de textura y las normales no son iguales y hay que hacer todo a mano.

- Ademas no he visto que se pueda pillar la malla en un instante concreto de tiempo, por lo que si se quieres exportar una malla para vertex morphing (del estilo MD2 o MD3), creo que no se puede hacer (si alguien sabe como que me lo diga).

Saludos. Martiño.

BeRSeRKeR

 
Cita de: "martiño"- Ademas no he visto que se pueda pillar la malla en un instante concreto de tiempo, por lo que si se quieres exportar una malla para vertex morphing (del estilo MD2 o MD3), creo que no se puede hacer (si alguien sabe como que me lo diga).
La verdad es que si eso es así, es un problema sí. No para animación por bones (que supongo que la animación de bones y demás tipos de nodos sí lo soportará) que es un sólo mesh pero sí para animación por vertex tweening, como bien has dicho.

Gracias por el dato.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Lord Trancos 2

Cita de: "BeRSeRKeR"
Cita de: "Lord Trancos 2"Por cierto, BeRSeRKeR, ¿cuando crees (mas o menos) q tendras una beta del exporter pa probarla?  ;)
Mañana a lo mejor te pongo un enlace por aquí aunque aún no creo que la haga pública en Doom3World. Al menos hasta que me asegure que funciona en unos cuántos casos más. Como dije sólo lo he probado en el modelo que mostré arriba.
*ejems* *ejems*  :rolleyes:  
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

BeRSeRKeR

 Vaya, se me olvidó poner el exporter. :D

Lo puedes descargar de aquí. No lo he probado mucho así que a ver qué tal te va...

Por cierto, el archivo IPhysique.gup es la interface para manejar physique a través de MAXScript. Tendrás que copiar ese archivo en la carpeta "plugins" de MAX. El archivo mzp es el script que tienes que ejecutar desde MAX.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Lord Trancos 2

 Me sale el famoso "Error 404" (nooo) alias "Página no encontrada."
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

BeRSeRKeR

 Vaya, y eso que me aseguré que funcionaba el enlace pero por alguna razón el archivo había sido eliminado del FTP. Bueno, ya está en la misma dirección que antes.

Saludos.

¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Lord Trancos 2

 :huh: q cabrones, va y te borran el fichero alegremente ?

Bueno, lo he estado probando un poco y pinta muy bien :D

Solo he tenido un par de problemas:
 - Un par de vertices (de la cadera) no se me mueven correctamente; aunque MUY probablemente esto sea culpa mia de no haber puesto bien el esqueleto  :rolleyes:   Sin embargo, en el Max se ve (mas o menos) correctamente.... Tambien podria ser culpa de mi visor MD5.... o del Mesh... que creo q tiene algo corrupto...  (nooo)
 - Los botones "Add" y "Remove" no los puedo pulsar. Aparecen dentro (en el borde inferior) del listbox que tiene los nodos para exportar. Y cuando intento apretarlos no me hace ni caso; es como si hiciera clic en el listbox. Los he tenido que mover de sitio (modificando el script) un poco mas abajo para poder usarlos. Esto tal vez sea pq tengo las fuentes grandes  :P

Weno, voy a hacer algunas pruebas mas y si sale algo mas te cuento.
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

BeRSeRKeR

Cita de: "Lord Trancos 2"- Un par de vertices (de la cadera) no se me mueven correctamente; aunque MUY probablemente esto sea culpa mia de no haber puesto bien el esqueleto  :rolleyes:   Sin embargo, en el Max se ve (mas o menos) correctamente.... Tambien podria ser culpa de mi visor MD5.... o del Mesh... que creo q tiene algo corrupto...  (nooo)
Probablemente no sea un problema del mesh sino del exporter.

En una de las pruebas también tuve un problema de ese tipo. Uno de los vértices se quedaba bloqueado en el origen de coordenadas (el modelo lo probé en el propio D3 o sea que... :D).

Tal vez aumentando la influencia del bone sobre esa zona se solucione pero de todas formas le echaré un vistazo. Quizás el problema esté en la falta de precisión de MAXScript ya que sólo permite una precisión máxima de 6 decimales, por eso tal vez aumentando la influencia del bone sobre el vértice se solucione.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.