Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Simulación De Sistema Físicos

Iniciado por Haddd, 08 de Noviembre de 2004, 09:51:59 AM

« anterior - próximo »

Haddd

 Busco documentación sobre este tema, si es posible en castellano  :P

¡¡Venga, muchas gracias!!


Haddd


seryu

 te has leido los game physics? hay varios libros de fisica aplicada a juegos, aunqe lo mejor es estudiar fisica e investigar la mejor forma de aplicarlos xD

obviamente, librerias como ODE sirven para aprender.. como otros lo hanhecho y como puedes hacerlo tu.

de todas formas, si hacer un motor 3d es todo un mundo, hacer un motor fisico es otro tambien, te vas a cambiar de campo, haddd?  

Trancos

 Yo no te recomiendo que intentes aprender física y programarla tú mismo, porque yo ya lo intenté y no pude.

Conozco 3 motores de física:

ODE ( Open Dynamics Engine )
Es un derivado libre de una versión antígua de Mathengine sin mal no recuerdo. Es de gran calidad, permite simular cualquier sistema mecánico. Es utilizada en varias piezas de software, entre videojuegos conocidos y aplicaciones de simulación dinámica, arquitectura etc... Para trabajar en tiempo real es demasiado lento. Además, está programado sin orientar a objetos y dicen que su manejo es complicado. La licencia BSD admite el uso comercial.

Tokamak Physics
Este de aquí lo he usado yo. Es libre, de un manejo sencillo y muy rápido, pero está bastante bugeado todavía y además la documentación es una basura. Tienes que ponerte esotérico y adivinar como funciona o patearte los forums, donde otros ya patalearon con tus mismos problemas. También se recomienda el tutorial de Tokamak de Adam Dowes, al que se puede acceder desde la misma web de Tokamak. La licencia de Tokamak admite el uso comercial pero hay que poner el logo de Tokamak en el juego.

Newton Game Dynamics
Este de aquí no lo he probado pero es el que tiene mejor pinta de los 3. Se parece mucho a Tokamak. Me lo he bajado y las demos están muy bien, parece que es facil de usar, está bien documentado. La licencia es calcada a la de Tokamak. Sospeché incluso que podría ser un plagio de Tokamak pero las demos me despejaron las dudas. El pabo que lo hizo se llama Julio Jerez, podría ser Español.





Haddd

 Gracias. He pedido un libro a Amazon, parece ser que este tema hay que conocerlo ya. <_<  

Pogacha

 Que tal, yo estoy con el mismo dilema.
El motor de fisica tengo que meterlo en mi estructura de mundo, tener dos estructuras de mundos separadas seria realmente ineficiente y si no, terminarás usando una estructura de mundo general que es ineficiente tambien.

Mi experiencia:
* Todos tienen estructuras de mundos como coleccion de objetos independientes.

* Los objetos tienen como datos forma geometrica de colision (la cual puede ser una aproximación o distinta a su forma grafica), su peso, su momento de inercia (como una matriz donde se componen los tres momentos correspondientes a los ejes), y dinamicamente los vectores posicion, velocidad, aceleracion, suma_de_fuerzas_aplicadas, y una matriz o un quaternion para la rotación.

* Llos objetos se interrelacionan con los otros a travez de restricciones, como pueden ser una visagra (con un eje), un rotor de dos ejes o una union puntual (como las de las cadenas), hay otras pero no las recuerdo, ademas de uniones elasticas y otras cosas así.

* Previo al Idle del Motor de Fisica se acumulan fuerzas sobre el obejto (esto lo haria el juego).

* Despues el Motor detecta colisiones y arregla las fuerzas según las colisiones y restricciones.

* Al final se integran las fuerzas de todos los objetos.

* El problema "grande" no esta en la parte de fisica, sino en la matematica que debes usar, pues hay varios metodos, hay de aproximaciones succesivas, que se basa en restricciones geometricas, estos aplican las fuerzas y luego acomodan sucecivamente según las restricciones. También están los que usan un método analítico, pero estos son la muerte del CPU, crean una enorme matriz con los datos de los objetos colisionantes y luego la invierten para encontrar las fuerzas resultantes (no me pregunten por que ni como).

Me gustaria mucho que alguien me corriguiese o contara su experiencia en motores de simulación fisica, tengo que implementar uno y no quiero usar uno ageno de ser posible.

Saludos

Haddd

 Pues cuando lo vaya implementando ya te contaré. Primero me tienen que llegar los libros, luego tener tiempo para leerlos, luego entenderlos y finalmente implementarlos... :(

Pronto!

_Grey

 Tengo el  "Physics for Game Developers", y lo explica a un nivel muy sencillo. Si desconoces el tema te puede poner al dia, y tener al poco tiempo tus esferitas rebotando una con otras con poco que te pongas, pero eso si, a un nivel basico, es decir que deveria hacer alguna pregunta por el foro para ciertas dudillas. Pero podras tener algo funcional y es muy sencillo de entender.

Desde hace algo de tiempo que me interesa el Game Physics (Interactive 3d Technology Series) y el Collision Detection in Interactive 3D Environments (Morgan Kaufmann Series in Interactive 3D Technology), por que el sistema para calcular el "momento" en el tiempo de la colision del primer libro espero que pueda hacerse de forma mas eficiente, y para profundizar en el tema de fisica. Asi que si has pedido estos podrias poner tu opinion, para ver si profundiza mas que el primero y tal, si has pedido otro de fisica y piensas que esta bien, comentanoslo estaria bien conocerlo.

Saludos, y suerte con tus implementaciones.

Haddd

 He pedido el Game Physics. El otro también lo había cogido, pero ha sido sustituido en el último momento por GPU Gems  :blink:  

_Grey

 OK! esperamos tus comentarios sobre el Game Physics  (ole) , el GPU Gems dudo que tenga nada sobre fisicas, pero quiza te sirva para el motor 3D de C# que estais haciendo ;) .

Chao!

Jikan

 

       El Game Physics es muy bueno, pero muy teórico. Incluye código fuente interesante (cuya última versión se puede descargar de la página del autor, David Eberly, que por cierto ha vuelto a NDL ó Gamebryo como se llama ultimamente) pero no lo definiría como un libro que te enseñe a hacer algo como ODE.

       El "Collision detection" es muy bueno también y dentro de poco se va a publicar otro libro en la misma serie: "Real Time Collision Detection" que promete ser buenísimo.

       Los libros de David Eberly ya se sabe... Lots of math   (genial)

       Sobre el desarrollo de un simulador de física, en mi opinión, es un trabajo bastante más complejo que un motor 3D, y una de los problemas principales es la precisión de los cálculos en punto flotante. El problema de los cuerpos en reposo también es difícil de afinar. Y el problema no sólo de la detección de colisiones sino de la respuesta a las colisiones es complejo.

       Para empezar, una buena idea es hacer una simulación de algo sencillo, por ejemplo, de una tela (modelo de partículas con muelles) y ver cómo funciona la simulación, qué problemas plantea, cómo se resuelven, problemas de estabilidad en las soluciones, y lo mejor de todo, enfrentarse a nuestro limitado conocimiento del mundo físico. Esto último es muy curioso, pero al final las simulaciones se tienen que "ajustar" porque si no, "explotan" (la tela salta en pedazos o tiembla sin parar, etc).

              - Jikan






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.