Problema con bones - DotNetClubs
en

DotNetClubs

Comunidades de estudiantes entusiastas de la tecnología

Problema con bones

Último artículo 06-02-2009 20:46 escrito por blau. 6 respuestas.
Página 1 de 1 (7 elementos)
Ordenar mensajes: Anterior Siguiente
  • 05-24-2009 2:34

    • blau
    • Contribuyente Top 25
    • Se unió el 02-17-2008
    • Envíos: 58
    • Puntos: 1,010

    Problema con bones

    Buenas, ando liado con un sistema de animacion esqueletal.

    Hasta ahora he conseguido:

    - Leer toda la informacion del modelo, con sus bones, helpers, attachements, ... con sus correspondientes interpoladores.

    - Leer las diferentes secuencias.

    - Mostrar el modelo en estatico.

    Ahora estoy renderizando las secuencias, y las rotaciones y las traslaciones creo que las hago bien. Pero el escalado de los distintos geosets no lo hace bien.

    El codigo que uso es:

    TranslationVector = Translation.GetValue(Time);

    RotationVector = Rotation.GetValue(Time);

    ScalingVector = Scaling.GetValue(Time);

    Matrix mPivotPoint = Matrix.CreateTranslation(PivotPoint);

    Matrix mScaling = Matrix.CreateScale(ScalingVector);

    Matrix mRotation = Matrix.CreateFromQuaternion(RotationVector.ToQuaternion());

    Matrix mTranslation = Matrix.CreateTranslation(TranslationVector);

    Matrix mPivotPointInverse = Matrix.Invert(mPivotPoint);

    Transform = mPivotPointInverse * mScaling * mRotation * mPivotPoint * mTranslation;

     if (Parent != null && Parent.NodeId != -1) {

        Transform= Matrix.Multiply(Parent.Transform, Transform);

    }foreach (BaseNode child in Children) {

        child.BuildTransformMatrix(Time);

    }

    ¿Es correcto esto?

     

    Para mas datos, si visualizo el modelo en estatico, es decir, sin transformar los vertices. Sale todo correcto.

    Incluso si visualizo los bones, estos se corresponden mas o menos con el modelo, pero cuando transformo los nodos, las escalas se van a tomar por ...

    Tb agradeceria noticias de alguna documentacion sobre el tema.

    Un saludo.

    PD: Creo q voy a acostarme, quizas mañana con la cabeza despejada....

     

     

     

     

     

    • Puntos de post: 5
  • 05-24-2009 18:09 en respuesta a

    • blau
    • Contribuyente Top 25
    • Se unió el 02-17-2008
    • Envíos: 58
    • Puntos: 1,010

    Re: Problema con bones

    Solucionado. :)

    El problema lo tenia cuando aplicaba multiples matrices a un vertice.

    Al tener que interpolar las posiciones y las normales obtenidas,

    en vez de interpolar con el numero de bones que contiene el "grupo" al que pertenece el vertice , interpolaba con el numero de "grupos de bones" que tenia el geoset

    Una chorrada de esas que te hacen perder un tiempo precioso.

    En fin, que ya veo los modelos del warcraft  3 animados, por los menos en wireframe.

    Ahora toca texturar. ;)

     

     

    Archivado en:
    • Puntos de post: 5
  • 05-30-2009 11:57 en respuesta a

    • blau
    • Contribuyente Top 25
    • Se unió el 02-17-2008
    • Envíos: 58
    • Puntos: 1,010

    Re: Problema con bones

    Aqui dejo un video que muestra lo que llevo hecho. Wink

    http://www.youtube.com/watch?v=zQmCE1AXeFQ 

     

    Archivado en:
    • Puntos de post: 20
  • 05-30-2009 14:56 en respuesta a

    • Javi
    • Contribuyente Top 10
    • Se unió el 10-11-2006
    • Sevilla
    • Envíos: 649
    • Puntos: 11,225
    • DotNetClub_Coordinadores
      DotNetClub_Miembros
      DotNetClubs_AdminTeam
      WG_XNACommunity

    Re: Problema con bones

     Enhorabuena Blau,

     está muy chulo el video, te lo estas currando XD. A ver si luego te animas a subirlo a XNACommunity para que todos podamos usar esos modelos en algunas demos.

    • Puntos de post: 20
  • 05-30-2009 20:34 en respuesta a

    • blau
    • Contribuyente Top 25
    • Se unió el 02-17-2008
    • Envíos: 58
    • Puntos: 1,010

    Re: Problema con bones

    Gracias.

    Me queda todavia mucho para tener un content importer de mdx decente como para poder subirlo a algun lado.

    El de las texturas blp si lo tengo ya mas maduro, pero por ejemplo, ahora me da un error en la carga de algunos modelos,

    cuando asigno a un BasicEffect una textura de 64x64 o menor. Y la verdad no se por que, porque si uso un spritebatch

    puedo pintar sin problemas la textura.

     Aqui dejo un video con el progreso de hoy, ya se ve algo mejor, sin filtros, (no hay trasparencias, ni adiciones), pero texturado.

    http://www.youtube.com/watch?v=pkey2ZlqmeU

    Lo proximo es hacer un shader propio para todo el tema de los filtros, las sombras, la iluminacion, y ver si me quito el problema ese de las texturas de encima.
     
     
     
     
     

     

     

    Archivado en:
    • Puntos de post: 20
  • 06-02-2009 17:48 en respuesta a

    • RiZo666
    • Contribuyente Top 50
    • Se unió el 02-20-2009
    • Envíos: 40
    • Puntos: 755

    Re: Problema con bones

    Guapísismo tío. ¿Todo eso está hecho en XNA? Qué envidia me dais algunos, parece que avanzo muy lento en comparación de lo que sabe hacer la gente.

    Yo estoy intentando descifrar el código del Skinned Model de creators, para poder modificarlo un poco a mi gusto, y mi trabajo me cuesta... y llegas tú y te haces uno desde cero para un formato distinto al .FBX

     Ains... en fin, felicidades, mola mucho Smile

    • Puntos de post: 20
  • 06-02-2009 20:46 en respuesta a

    • blau
    • Contribuyente Top 25
    • Se unió el 02-17-2008
    • Envíos: 58
    • Puntos: 1,010

    Re: Problema con bones

    Gracias,

    pero siento defraudarte, no lo he hecho desde cero, porque cuando ya leia el formato, habia muchas cosas que no entendia para lo que eran y buscando encontre un editor con el codigo fuente.

    Y aunque ese codigo no es ejcutable, porque faltaban muchas librerias, me ha servido como algoritmo. Y me lo he estado trillando mucho para ver como se hacia todo.

    La verdad es que estoy contento con el codigo que me ha quedado. 

    Ahora tengo ya casi implementado todo el tema de texturado, solo me falta el filtro que hace el blend entre el color del equipo y parte del modelo. 

    Que me falla por un tema de alfas, que no se calculan bien.

    Y despues a por el content importer de mdx. ;)

    PD: Lo de las texturas  de  64x64 era una chorrada, era que cargaba unas texturas por defecto para los colores de los equipos y para sustituir las texturas no encontradas por una tipo bandera a cuadros, y lo hacia en el constructor de Game, he postpuesto la carga y ya esta.

     

    • Puntos de post: 5
Página 1 de 1 (7 elementos)
(c) DotNetClubs 2008
Ofrecido por Community Server (Commercial Edition)