Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: AGONY en 23 de Julio de 2003, 10:52:22 PM

Título: ¿en Que Se Basa La Animacion Por Esqueleto?
Publicado por: AGONY en 23 de Julio de 2003, 10:52:22 PM
 Pues eso, si alguien sabe algo sobre el tema y me lo puede decir.
Título: ¿en Que Se Basa La Animacion Por Esqueleto?
Publicado por: tiutiu en 24 de Julio de 2003, 12:57:35 PM
 Hay algun thread por aqui en Programacion grafica 3D sobre el tema, asi q t hare un resumen muy por encima:

Tu tienes una malla con tus verteices, para animar es un curro d la ostia mover los vertices uno a uno, asi q t haces un esqueleto q consiste en una especie de "muñeco de palo", cada segmento es un hueso (bone).

Lo que haces luego es asignar vertices a cada hueso para que este los controle, asi que simplemente tienes q mover un hueso para que los vertices se muevan (lo que haces es aplicar la matriz d transformacion d un hueso a todos los vertices q controla). Imagina tu esqueleto, el femur controla todos los puntos (musculos, piel, materia, celulas) de tu muslo, no? pues esto lo mismo.

Eso en cuanto a animacion simple, luego hay animacion por huesos en la q asignas un peso a cada vertice, es decir q un vertice puede estar controlado por mas d un hueso (generalmente 2, puedes tener mas pero es un engorro para los calculos) en un porcentaje (sobre 1) indicado por el peso. Con lo cual la transformacion se aplica dependiendo de dos matrices (si tiene 2 huesos asignados ese vertice) en vez d una. De hecho la animacion q t he descrito al principio (la simple) seria con un peso de 1.0 y 1 solo hueso asignado por vertice.

Mirate esta guia, Character Animation FAQ a mi me ayudo bastante, aunq tb lei por gamedev y flipcode q hay tutos e info wena sobre vertex blending (las encuaciones para transformar los vertices con mas d 1 hueso asignado).

De todos modos en stratos hay algun q otro thread sobre esto
Título: ¿en Que Se Basa La Animacion Por Esqueleto?
Publicado por: AGONY en 24 de Julio de 2003, 06:11:46 PM
 Gracias tiutiu me ha servido de mucho.
Título: ¿en Que Se Basa La Animacion Por Esqueleto?
Publicado por: tamat en 24 de Julio de 2003, 07:37:38 PM
 para cada vertice interpolar dos matrices?! eso suena muy costoso, como se hace?
Título: ¿en Que Se Basa La Animacion Por Esqueleto?
Publicado por: BeRSeRKeR en 24 de Julio de 2003, 10:11:30 PM
 Bájate este documento y ve al apartado 6 (Basic Vertex Blending). Ahí te explica brevemente cómo se le aplica a los vértices los pesos.

Lo bueno es que en estos momentos puedes realizar todas esas transformaciones en la GPU a través de un vertex shader con la consiguiente ganancia de rendimiento.

Saludos.
Título: ¿en Que Se Basa La Animacion Por Esqueleto?
Publicado por: ethernet en 25 de Julio de 2003, 07:05:06 AM
 Eso en tarjetas q lo soporten, algunos aun "jugamos" con voodoo. Desde luego la mayoria de juegos q merecen la pena funcionan en mi voodoo3. saludos
Título: ¿en Que Se Basa La Animacion Por Esqueleto?
Publicado por: tiutiu en 29 de Julio de 2003, 11:07:36 AM
 tamat, siempre se pueden aplicar "truquillos" xDD por ejemplo, hacerlo sobre papel y sacas la formula simplificada, aunq si eres un geek de la POO pues usas tu supero-dupero-class-matrix4 y multiplicas usando tu operator* xDD

En flipcode hay un articulo sobre vertex blending, ahora lo busco... buscando... buscando... ya ta es este. El articulo explica el blending por shaders, pero como somos muy machos nos la suda y nos vamos al final del articulo dnd con unos gifs animados muy wapos nos explica las formulas q hay detras, asi q en vez d programar un shader pues programamos eso en el engine y ya tienes tu vertex blending por software.
Título: ¿en Que Se Basa La Animacion Por Esqueleto?
Publicado por: CoLSoN2 en 29 de Julio de 2003, 11:12:16 AM
 y ya que estais hacedlo con quaterniones que molan más y se interpolan que da gusto :D
Luego a la hora de renderizar los conviertes a matrices y listo.
Título: ¿en Que Se Basa La Animacion Por Esqueleto?
Publicado por: tiutiu en 29 de Julio de 2003, 02:02:37 PM
 Para eso lo haces directamente con matrices, es tonteria usar cuaterniones si luego vas a pasarlo a matriz. No se, en mi opinion los cuaterniones no son necesarios si tienes bien hechas las funciones d matrices ;)

Eso si, cada uno como mejor le vaya