Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: blau en 24 de Mayo de 2009, 03:04:03 AM

Título: Bones
Publicado por: blau en 24 de Mayo de 2009, 03:04:03 AM
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:

Código (csharp) [Seleccionar]

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....


Título: Re: Bones
Publicado por: blau en 24 de Mayo de 2009, 06:28:53 PM
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. ;)


Título: Re: Bones
Publicado por: Prompt en 25 de Mayo de 2009, 02:20:05 PM
Blau usted está genialmente chalado!

No existe una libreria de modelos y animacion para el WOW?
Estas haciendo una libreria de animacion y datos de render por bones?
Te aburres? Es un reto personal?

Me parecen muy interesantes estos retos, yo ni siqueira quise meterme en hacerlo, prefiero usar CAL3D o COLLADA. Pero, para que estas cacharreando ? :P
Título: Re: Bones
Publicado por: blau en 25 de Mayo de 2009, 08:38:35 PM
 :)

La verdad que es más un reto que otra cosa, y como lo mio es por hobby, pues a echarle horas.

Sí, existen librerias para el wow y para los modelos del war3.

Por cierto, que la  MdxLib (http://home.magosx.com/index.php?topic=20.0) en c# salio cuando ya leia yo toda la estructurra del mdx a pelo, hara ya 1 año. y se me cayo el mundo encima. Pero despues me ha venido bien, porque habia cosas que no entendia y me ayudo a comprenderlas.

Me ha servido de mucha ayuda el codigo fuente de un editor, aunque yo lo he ido orientando mas a un juego.

De todas formas la sensacion de ver el caballero del warcraft3 en wireframe en tu pantalla y sabiendo que es tu codigo el que lo esta animando, es insustituible.

Ademas mi idea no es quedarme ahi, ahora me queda texturizar, que lo tengo chupado, porque ya hice el importer para las texturas en formato .blp,  "solo" tengo que hacer el shader.

Y despues quiero meterme en hardware instancing para poner un monton de modelos iguales en pantalla.

Mi idea es hacer un tower defense multijugador en xna, y hacerme millonario.

Aunque quizas sea mas facil hacerme millonario, y pagar para que me hagan el juego, asi que ire comprando loteria.  ;)
Título: Re: Bones
Publicado por: Prompt en 26 de Mayo de 2009, 01:54:12 PM
xD

Ains... que cosas. Si te metes de lleno en ello, yo lo enfocaría de otra forma, pero claro nada de usar C# :P
Título: Re: Bones
Publicado por: blau en 26 de Mayo de 2009, 08:15:27 PM
Pues yo creo que elegi muy bien.

aunque hace tiempo toque c y c++, ahora mismo no estoy muy rodado, y enfrentarme a los punteros de c++ y a reservar memoria y liberarla y todo ese pontencial de problemas, puff, como que no me apetece.  ::)

Que voy a tener problemas de rendimiento? Pues ya se andara.   ^_^'

Ahora mismo prefiero productividad para los ratitos que le echo al tema.


Título: Re: Bones
Publicado por: blau en 30 de Mayo de 2009, 12:08:12 PM
Dejo un video a lo que llevo hecho.

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

;)
Título: Re: Bones
Publicado por: TrOnTxU en 30 de Mayo de 2009, 06:09:48 PM
Esta chulo :)
Yo también me tengo que poner con los modelos skinned en breve.

Por cierto, chula la interfaz de forms :D
A ver si le hago algo parecido al animador.

dew
Título: Re: Bones
Publicado por: Prompt en 01 de Junio de 2009, 02:08:55 AM
estas fatal de la cabeza xd,está sapo el video :)
Título: Re: Bones
Publicado por: blau en 01 de Junio de 2009, 08:11:53 PM
Otro video, ya con sus texturas y todo.

No texturiza como blizzard manda, pero algo es algo.  :)


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

Título: Re: Bones
Publicado por: Prompt en 07 de Junio de 2009, 12:32:25 PM
Que wapo! :) Lo tienes ya muy avanzado!