Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ayuda. Física en el billar

Iniciado por elmarkis, 28 de Noviembre de 2008, 11:45:24 AM

« anterior - próximo »

elmarkis

Hola! Aqui sigo con mi juego de billar y con la física >.<

Durante unos dias he estado probando que valores de restitucion, rozamiento, etc, son los más adecuados para que el efecto de los rebotes y desplazamiento de la bola sean lo mas semejantes posible a la realidad. Probando y buscando he encontrado alguna pagina en la que se indican los valores reales de estas medidas:

http://billiards.colostate.edu/threads/physics.html#properties

Partiendo de la base de que estos datos son correctos me surge el siguiente problema:
A la hora de definir, por ejemplo, el coeficiente de rozamiento de una bola de billar ha de hacerse para cada cuerpo rigido en particular. Yo todo lo que he encontrado son datos de estos valores por pares de objetos, por ejemplo, coeficiente de rozamiento bola-bola. ¿Exsite alguna forma de saber como convertir este valor (entre pares de cuerpos rigidos) a un valor individual para cada cuerpo?

Por si no me he explicado muy bien pongo un ejemplo:
Coeficiente de restitucion bola-bola=0.93, pero el engine me exige que yo defina el coeficiente para una sola bola ???. En principio si supiese la ecuacion que utiliza el motor podria calcular todos los valores , ya que en el caso de bola-bola tan solo aparece una incognita y de ahi calcularia lo demás...

Gracias de antemano y saludos.
Marcos.

carlos

Cita de: elmarkis en 28 de Noviembre de 2008, 11:45:24 AM
En principio si supiese la ecuacion que utiliza el motor podria calcular todos los valores
qué motor usas? no tienes el código fuente? le he echado un vistazo al código del box2d para flash y parece que hace esto (archivo b2contact.as):

m_friction = Math.sqrt(m_shape1.m_friction * m_shape2.m_friction);
m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution);

[EX3]

José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

elmarkis

OK, he dado por hecho la relación entre este post y el que postee el otro día. Uso el engine physX de ageia para Director 11 ( hay un poco mas de informacion en el post que ha linkado EX3) . El lunes en el curro pruebo utilizando este par de formulas que me has pasado a ver que tal va la cosa. Muchas gracias.

Salu2.
Marcos.

elmarkis

Buenas...

He estado probando el par de formulitas que me dejaste y al menos la de la restitución no es correcta ...
Imaginemos el siguiente caso:
restitucion de la bola:0.95
restitucion de la mesa 0.5
Si la formula fuese esta, aunque yo cambiase la restitucion de la mesa (por ejemplo a 0.85), la bola botaria siempre lo mismo, ya que cogeria el valor mayor de los dos, en este caso 0.95. Pero no es así. El motor calcula el factor de rebote en función de los dos cuerpos que chocan.
Empleando un metodo un poco pesado "ajustar los valores y ver como queda" estoy consiguiendo aproximar bastante los rebotes, efectos y demas aspectos fisicos del billar. No obstante, si alguien consigue las especificaciones del engine me vendrían genial.

Gracias por vuestra ayuda.
Salu2
Marcos.

carlos

La verdad es que no tengo ni idea :), el código ese lo saque de las fuentes del port del box2d para actionscript, y a lo mejor utiliza un método más simplificado que el PhysX... prueba a bajarte el SDK, a lo mejor en la documentación están las fórmulas que utiliza.






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.