Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Colisiones Con Traslaciones

Iniciado por Vanch, 21 de Diciembre de 2003, 12:28:51 AM

« anterior - próximo »

Vanch

 Si todos los objetos que utilizo nunca muevo sus vertices, sino que los traslado con las funciones adecudas. Despues puedo detectar colisiones ?.

Grancias  :(  
anch!!! Vanch!!!, don't let me alone.

ProD

 Si por cada objeto tienes un bounding sphere o un bounding box tendrás que recalcularlos por cada transformación que hagas a los vértices.

Un saludo
as ideas son capitales que sólo ganan intereses entre las manos del talento

Vanch

 :(  :(  :( cachis ...  :(  :(  :(

es lo que me temia, mejor muevo los objetos 'fisicamente' (sus vertices) en vez de trasladarlos.

thanks.
anch!!! Vanch!!!, don't let me alone.

MChiz

 No acabo de entender muy bien tu pregunta.
Si te refieres a si puedes utilizar un bounding volume en varios sitios, trasladandolo, rotandolo y lo que quieras, si que puedes. Porque no?

Vanch

 A ver si me explico mejor:

El objeto A se desplaza en hacia el fondo. Es decir:

( pseudocodigo )

PAINT

tanslateZ ( tZ );
Render ( objeto );
tZ--;

cada vez que se pinte el objeto, este se traslada cada vez más al fondo, pero sus coordenadas son las mismas. Si miro  objeto.vertices?[?] tendre siempre los mismo resultados, " no se movio 'fisicamente' ".

Si ahora quiero que choke este objeto con otro ? que comparo ? pueden colisionar visiblemente sin que comparando que sus coordenadas me lo chiven.

Un saludo.
anch!!! Vanch!!!, don't let me alone.

ALBSIM

  No entiendo lo que quieres decir, si el objeto se desplaza sobre el eje z, cómo no van a cambiar sus coordenadas, es decir, el objeto tiene un sist. de referecia local en el cual sus coordenadas no cambian, pero las traslaciones que le aplicas hacen que sus coordenadas de mundo sí lo hagan.

MA]Mestre


Loover

 La clave está en lo que te ha dicho Albsim. Estas confundiendo el sistema de referencia local del objeto (es decir, sus coordenadas locales respecto a un punto que suele ser el centro del objeto) con las coordenadas que ocupa una vez multiplicado por la matriz de mundo (una vez que está situado en algún sitio con una traslación, rotación o lo que sea).
Por supuesto que no cambian los valores cuando accedes a objeto.vertices?[?]. Esas son coordenadas locales ;)

Un saludo!
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

BeRSeRKeR

 
Cita de: "Vanch"cada vez que se pinte el objeto, este se traslada cada vez más al fondo, pero sus coordenadas son las mismas. Si miro  objeto.vertices?[?] tendre siempre los mismo resultados, " no se movio 'fisicamente' ".
Son las mismas porque lo que se está transformando no es la copia de la geometría que tienes en memoria de sistema sino la copia que hay en la memoria de video. Si quieres tener una copia transformada, deberás transformar los vértices por tí mismo, multiplicándolos por la matriz de transformación.

Cita de: "Vanch"Si ahora quiero que choke este objeto con otro ? que comparo ? pueden colisionar visiblemente sin que comparando que sus coordenadas me lo chiven.

Para averiguar si dos objetos colisionan, puedes utilizar sus bounding volumes que siempre serán menos costosos de transformar. Otra cosa es que una vez sepas que ambos objetos han colisionado, quieras detectar la colisión triángulo-triángulo.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!






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.