Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Sentadilla De Un Elipsoide

Iniciado por Pogacha, 05 de Mayo de 2005, 05:31:21 PM

« anterior - próximo »

Pogacha

 Que tul...
Hace tiempo que no hay preguntas tecnicas sobre programacion fisico/geometrica, así que aca les va una.

Estoy con un motor 2d en este momento, pero el mismo problema tuve y no supe resolver en mi motor 3d.

Yo determino colisiones entre los personajes usando elipsoides,  cuando un personajes se agacha, el tamaño de la elipsoide disminuye ... no habiendo ningun problema.

El problema es cuando el personaje intenta pararse, ... si hay algo arriva debiera empujarlo, pero si la cosa es muy pesada o estructural debería quedarse en el molde y esperar a que esto se retirará para poder erguirse. Ademas de esto el elipsoide debe seguir respondiendo al mundo ...  O_O
Se me ocurren una larga succeción de euristicas para resolver este problema pero quebraria la elegancia del codigo y su buena predispocicion a cambios y mejoras.

Como se puede manejar esto de manera elegante ?
Alguíen a solucionado este problema ?

Saludos y gracias.

CoLSoN2

 No se si te he entendido bien, ¿te refieres a que la masa del objeto influya en la reacción a la colisión?  
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

zupervaca

 a mi me parece que el problema es que al levantarse estando agachado si tiene algo encima no podria o deberia de moverlo, pero me parece muy simple para que pregunten esto

si es esto, es mirar que hay encima del personaje

saludos

Pogacha

 Haber si logro aclarar mi pregunta:

Tengo un elipsoide, con un vector radios, si contraigo estos radios con el vector dradios/dt con cada componente negativa no habra problemas pues la ocupación del elipsoide sera menor, la cual ya estaba asegurada, el tema es cuando dradios/dt tiene una componente positiva, o sea, quiero hacer crecer el elipsoide.

Lo que quiero es un metodo robusto, no quiero euristicas!, siempre aparece el caso que te rompe el esquema.

Por ahora las soluciones que tengo:

1 - Proyectas el elipsoide en su estado final y si no hay nada crece caso contrario no. Implica romper el esquema de protección de integridad fisica (un objeto no tiene acceso al mundo exterior, deben ser ciegos). No resuelve el caso de empujar. Usada en el HL, con lo cual se aprovechan para hacer los totems.

2 - Arrojar una copia del elipsoide hacia los crecientes radios ... resuelve el empuje, pero requiere creación de entidades extras, y constricción entre entidades, o sea requiere que entidades se simulen juntas como regla. Es muy complicada y no es robusta, funciona para dt pequeños y requiere recreación de propiedades fisicas auxiliares, practicamente durante el crecimiento se deben remplazar las funciones basicas fisicas.

A esta opcion ya la descarte por sus complicaciones, aun que es rapida, solo en 2d lograria su cometido.

3 -  Transformaciones inversas de radios para evaluar la forma en constante (un circulo o esfera) y lo que se modifica es el mundo. Robusta y generalizada, pero no atiende a la masa de la esfera, o sea, el "levantarse" no es una fuerza sino un impulso, y si se levanta rapidamente enviará lo que tenga encima a las nubes, supongo que con las matrices de transformación se podrá  calcular una variable impulsiva la cual normalize el impulso pero está por sobre mi capacidad matemática.

Esta es lo que estoy probando ultimamente pero no se ... supongo habra un sistema mejor, algún estudioso de simulación física que me comente.

Saludos.









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.