Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





¿en Que Se Basa La Animacion Por Esqueleto?

Iniciado por AGONY, 23 de Julio de 2003, 10:52:22 PM

« anterior - próximo »

AGONY

 Pues eso, si alguien sabe algo sobre el tema y me lo puede decir.

tiutiu

 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
b>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos

AGONY


tamat

 para cada vertice interpolar dos matrices?! eso suena muy costoso, como se hace?
Por un stratos menos tenso

BeRSeRKeR

 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.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

ethernet

 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

tiutiu

 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.
b>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos

CoLSoN2

 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.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

tiutiu

 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
b>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos






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.