Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: NeCRoMaNCeR en 02 de Febrero de 2005, 09:21:59 AM

Título: Robots A C++ ?
Publicado por: NeCRoMaNCeR en 02 de Febrero de 2005, 09:21:59 AM
 Buenas, Tengo una duda, estoy diseñando un videojuego high poly y quiero introducir robots a base de sistemas mecanicos , es posible esto?
Ya que por lo que vi y estudie los engines basados en directx y opengl necesitan si o si bones para reconocer movimiento de vertex´s.
                                                                                     Saludos.
Título: Robots A C++ ?
Publicado por: CoLSoN2 en 02 de Febrero de 2005, 10:18:27 AM
 
CitarBuenas, Tengo una duda, estoy diseñando un videojuego high poly y quiero introducir robots a base de sistemas mecanicos , es posible esto?
No se que quieres decir exactamente con sistemas mecánicos, pero me arriesgo a decir que sí.

CitarYa que por lo que vi y estudie los engines basados en directx y opengl necesitan si o si bones para reconocer movimiento de vertex´s.
Pues no necesariamente, con DX u OGL también puedes usar keyframe animation (como Quake 2 o 3), pero para esto que quieres hacer necesitas bones.
Título: Robots A C++ ?
Publicado por: NeCRoMaNCeR en 02 de Febrero de 2005, 11:03:20 AM
 Bones? para un robot mecanico? jaja , creo que se podria pero con limitacion de mecanismos , eso de key frame seria lo ideal , una serie de keys frame para un movimiento, dime sabes donde puedo pillar eso ? porque lo eh buscado durante mucho tiempo y preguntado a programadores sin obtener respuesta.
Título: Robots A C++ ?
Publicado por: DevilYago en 02 de Febrero de 2005, 11:39:52 AM
 Hace tiempo me plantee una duda similar a la que comentas, no se exactamente el tipo de mecanismos o robots que deseas hacer. Un robot (ya sea un brazo robotico industrial o el robot ese de honda que bailaba) usa un sistema de movimiento bastante parecido a lo que en este sector conocemos como animacion por bones, pero de un modo un tanto especial. En un robot no hablamos de materiales organicos que se deformen de una manera realista en funcion del angulo en que tengamos el brazo, los dedos de la mano o una pierna. En un robot hablamos de subestructuras mecanicas indeformables, unidas por juntas (simil de bone), mientras en un modelo "humano" los calculos referentes a el esqueleto interno modifica los vertices uno  auno, en un sistema mecanico, este calculo deberia ser capaz de modificar esta subestructura mecanica, modicar la matriz de este subconjunto en funcion de la union en la que nos encontramos., ofreciendo una posicion/rotacion de todo el conjunto mecanico.

No se si me explico de forma correcta, pero vamos, yo te diria:

- Si usa bones y sobretodo
- Olvidate de todo tipo de calculo para hacer que este bone afecte a X vertices, deberia afectar a todo un subconjunto (cabeza, antebrazo, pie, etc).
- Y recuerda este simil, en un robot el concepto bone es una union mecanica.
Título: Robots A C++ ?
Publicado por: NeCRoMaNCeR en 02 de Febrero de 2005, 11:49:22 AM
 mmmmmmmmm, Intentare exportar al C la animacion del robot como bone influence y hacerla visible.
Título: Robots A C++ ?
Publicado por: NeCRoMaNCeR en 02 de Febrero de 2005, 11:51:21 AM
 Si mal no recuerdo probando el ogre3d creo que hasta vi una animacion de bones coloreada , si es asi esta pregunta estuvo de mas aunque le seria muy util a un newbie de los games, si obtengo respuesta la postearé.
Título: Robots A C++ ?
Publicado por: BeRSeRKeR en 02 de Febrero de 2005, 12:33:55 PM
 Evidentemente no son necesarios los bones para conseguir eso aunque también los puedes utilizar sin problemas (yo los utilizaría :)). La cuestión es que en este caso, un bone sólo afectaría a una parte del robot (base, brazo, etc).

Si no utilizas bones tendrás igualmente que de alguna forma definir la jerarquía del robot (normalmente en el propio modelador 3D), es decir, la relación padre/hijo entre los elementos que lo componen. Teniendo eso y las transformaciones relativas al padre de cada uno de los elementos, podrás articular los elementos del robot sin problemas, es decir, si mueves la base del robot, todo se moverá junto a él, si rotas el brazo, la mano también rotará, etc.

Saludos.
Título: Robots A C++ ?
Publicado por: NeCRoMaNCeR en 02 de Febrero de 2005, 12:56:30 PM
 Yo buscaria la forma de no usar los bones , seria horriblemente tedioso editar las envolventes para un robot lleno de mecanismos complejos.
En cambio jerarquizando se obtienen maravillas con los sistemas mecanicos muy facilmente.