Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ayuda con Director y el engine physX

Iniciado por elmarkis, 26 de Noviembre de 2008, 05:32:10 PM

« anterior - próximo »

elmarkis

Hola a todos.

Aprovecho para presentarme: me llamo Marcos (elmarkis por la red) y estoy empezando en el mundo de los videojuegos de la mano de Exelweiss.

Estoy realizando un juego de bolos 3D para el portal mundijuegos usando Lingo y su engine de física physX. Lo que me gustaría principalmente es que me dijerais webs, tutoriales, y todo este tipo de cosas donde poder ponerme en marcha , no con Director, sino con el tema de su engine de fisica y demás. También me gustaría saber si hay por aqui algún experto en el tema al que poder ir consultándole mis dudas, ahora mismo estoy un poco atascado con la física ^_^'  y no consigo solucionarlo a pesar de llevar ya unos dias buscando por internet alguna solución...

En resumen, estoy atascado en lo siguiente:
he creado una mesa y una bola y les he dado todas sus propiedades tal y como serían en el mundo real (coeficiente de rozamiento, restitucion, gravedad, etc) . Tras aplicarle una fuerza a al bola en su centro de masas la bola se mueve y comienza a rodar, llegando a rebotar en la pared varias veces. Pero llega un momento en el que la bola se queda pegada a la pared y no rebota, me pasa cuando la velocidad lineal es < de 2m/s. he probado ya cambiando las propiedades de los rigidBodies, la gravedad, aplicando la fuerza en diferentes direcciones,etc.. no se me ocurre que mas hacer. Si quereis que concrete algo mas o que muestre el codigo ya me decis algo.

Un saludo y espero que nos vayamos conociendo poco a poco.

Mars Attacks

Bienvenido al foro. No sé si he entendido bien tu duda. ¿Es el caso, por ejemplo, de un billar en el que la bola se te quede parada contra la pared cuando choca contra ella a menos de una determinada velocidad?

Así a bote pronto se me ocurren algunos flancos donde mirar. El primero, si en algún sitio se está haciendo algún tipo de casting implícito a entero (y con valores menores que 1 te devuelve 0). El segundo, si eliminando rozamiento, restitución y gravedad (y dejándolo en un pong) sigue ocurriendo.

elmarkis

Para variar la mayor tontería es lo que má faena te da!!! :grrr:

Gracias Mars Attacks porque me diste la pequeña idea que me faltaba para solucionar mi pequeña lucha con los robotes.
Como dije,  estoy utilizando valores del mundo real, expresando las medidas y valores usando el Sistema Internacional (metros, metros/segundo2, kg, etc.) Po ello la velocidad estaba expresada en metros/segundo, tomando valores relativamente pequeños teniendo en cuenta que hablamos de la velocidad de una bola de billar. Cuando la velocidad era menor que 2m/s pusiera el rozamiento, coeficiente de restitucion, gravedad... que pusiera la bola no rebotaba al chocar con la pared. Internamente, el motor debe calcular la velocidad de rebote de tal manera que un valor "tan pequeño" acaba dando 0... no se. Lo que se es que expresando las medidas en cm he conseguido solucionar el problema ya que ahora hablamos de velocidades de 200cm/s aprox.

Muchas gracias por la ayuda, por fin puedo seguir avanzando!!

PD: He intentado encontrar, no se si existira, algun documento que explique como el motor de ageia realiza los calculos. Si alguien sabe donde podria buscar me vendría de pm.

Ciao

Mars Attacks

Esa solución me parece rarísima. ¿Estás usando enteros para las velocidades?

elmarkis

No, que va. Utilizo una precisión de 4 decimales (además, también probé con una precisión de 8 decimales).

A mi también me parece muy rara la solución, la única explicación que le encuentro es que internamente el motor calcule la velocidad de rebote de tal forma que cuando la velocidad con la que la bola llega a la pared es tan pequeña (<2) el rebote sea nulo. Si pudiese saber como lo calcula!!.

A parte  de pasar todo a cm no hice nada más y todo funcionó a la perfección. Igual el hecho de trabajar en pulgadas en lugar de en metros tiene algo que ver... en algunos ejemplos que he visto las medidas estan en pulgadas...aunque esto debería ser indifirente!

Salu2.
Marcos.






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.