Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Matemática Aplicada

Iniciado por deadLock++, 22 de Octubre de 2003, 02:54:36 PM

« anterior - próximo »

deadLock++

 ¿Alguien sabría decirme alguna aplicación directa en programación de juegos de los siguientes temas de Álgebra lineal?:

Transformaciones lineales
Espacios vectoriales

Muchas gracias.

Astat

 Todos los calculos basicos de cualquier juego en 3D (dibujado de objetos, operaciones sobre objetos, operaciones con la camara), usa intensamente algebra.

Un saludo.

deadLock++

 Entiendo el uso del álgebra en la programación gráfica.

Entiendo para que y cuando se utilizan los vectores (normales para iluminación y colisiónes, aplicación en subsistema de física, ...), las determinantes (intersección entre segmentos, colisiones, ...), las matrices (pipeline, matrices de mundo, vista y proyección, creación de matrices con componentes de traslación, rotación y escalamiento, ...), cuando es necesaria obtener la inversa de una matriz (picking).

El asunto es que una profesora de álgebra me pregunta específicamente en donde se utilizan las trasnformaciones lineales y el concepto de espacios/subespacios en la programación de juegos. Y no se me ocurren ejemplos concretos.

Entiendo que muchos conceptos son partes de un todo que forman parte de la base matemática requerida en esta ciencia pero esto sólo no me sirve. Si a alguien se le ocurre un ejemplo concreto o una punta para poder investigar, estaré muy agradecido.

Saludos.

BeRSeRKeR

 Una aplicación de los espacios vectoriales podría ser por ejemplo la de crearte tu propio espacio vectorial para la detección de colisiones. Por ejemplo, Telemachos, en su  tutorial sobre detección de colisiones, utiliza un espacio vectorial por el cual, un elipsoide pasa a tener radio 1 (esfera unidad) para facilitar los cálculos de las colisiones. Evidentemente tiene que haber una forma de pasar de R3 a espacio elipsoidal y viceversa. Si no recuerdo mal, todo eso lo explica en dicho tutorial. Precisamente hay una sección introductoria sobre espacios vectoriales.

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

BeRSeRKeR

 Por cierto, con respecto a las transformaciones lineales pues supongo que rotación y escalado ya son transformaciones lineales. Una vez leí que transformaciones lineales son todas aquellas que se pueden expresar en una matriz de orden 3. Por ejemplo la traslación no sería una transformación lineal (matriz de orden 4).

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

Mars Attacks

 También puedes, por ejemplo, controlar los bones como si de un brazo de robot se tratara, a base de aplicar multiplicaciones de matrices con los datos de la rotación del hombro, del codo y de la muñeca (que viene a ser ir cambiando el eje de coordenadas de las transformaciones mediante transformaciones algebraicas).

deadLock++

 Muchísimas gracias a todos.

¡El paper de colisiones no tiene desperdicios!

tiutiu

Cita de: "BeRSeRKeR"Por ejemplo la traslación no sería una transformación lineal (matriz de orden 4).
No exactamente. Si te fijas en el algoritmo Vector3*Matrix4 lo que hace es multiplicar por la matriz de rotacion (que es la submatriz de 3x3 m00 a m33) y luego simplemente le suma el vector m40 m43.

Lo d los espacios vectoriales pues se usa mucho el cambio de base para las transformaciones de objetos o para cambiar de espacio (de 3D a 4D en cuaterniones y de 3D a 3D en el ejemplo d las elipsoides).
Yo le encontre mucha utilidad a la asignatura. De hecho la aprobe gracias a ir haciendo analogias con lo q sabia d programacion 3d xDD
b>:: Pandora's Box project ::
Notas e ideas sobre desarrollo de engines para juegos

FoS

  Esta es mi primera participación en el foro de Stratos, así que espero aclarar algo tu pregunta! En  primer lugar presentarme, soy un alumno de Ingenieria Informática en la Universidad de Alicante.
   
Como ha dicho más arriba Mars Attack, esto se suele usar mucho en robotica. Así para indicar la orientación de un sistema O con respecto a otro M  se realiza con una matriz de rotación de 9 elementos, con esto por ejemplo podemos indicar la posición del extremo de un brazo robotico (el sistema O) con respecto a su base (el sistena M). Además como el robot no va a estar sujeto a un punto, también hemos de considerar la matriz de traslación. Y con un conjunto de matrices de traslación y rotación averiguar la posición exacta del extremo después de una serie de movimientos (rotaciones y traslaciones sucesivas).
(nooo) No se si me estoy expresando muy bien!!!!
Estos conceptos también se usan en aeronáutica (o sea que tb podremos hacer juegos de simulación, y me imagino que quien controle mejor esto del diseño de videojuegos sacará más partido a estos conceptos), aunque en esta disciplina se suelen utilizar coordenadas eulerianas en lugar de cartesianas.
  Bueno, no voy a añadir lo de cálculo de colisiones porque ya lo han dixo por ahi  (asco)

 He intentado no extenderme mucho, pero de todas formas si quieres más información sobre estos temas, contacta conmigo!!!  
he best way to predict the future is to invent it (Alan Kay)

FoS

          Esta es mi primera participación en el foro de Stratos, así que espero aclarar algo tu pregunta! En  primer lugar presentarme, soy un alumno de Ingenieria Informática en la Universidad de Alicante.
   
     Como ha dicho más arriba Mars Attack, esto se suele usar mucho en robotica. Así para indicar la orientación de un sistema O con respecto a otro M  se realiza con una matriz de rotación de 9 elementos, con esto por ejemplo podemos indicar la posición del extremo de un brazo robotico (el sistema O) con respecto a su base (el sistena M). Además como el robot no va a estar sujeto a un punto, también hemos de considerar la matriz de traslación. Y con un conjunto de matrices de traslación y rotación averiguar la posición exacta del extremo después de una serie de movimientos (rotaciones y traslaciones sucesivas).
(nooo) No se si me estoy expresando muy bien!!!!

   Finalmente, y abreviando podemos decir que unimos la rotación y traslación que realiza un objeto en una sola matriz, denominada matriz homogénea:

    (TODOS NOS IMAGINAMOS QUE ES UNA MATRIZZ!!!)
     
       rotacion (3*3)           traslación (3*1)

       perspectiva(1*3)       escalado(1*1)
     
        Estos conceptos también se usan en aeronáutica (o sea que tb podremos hacer juegos de simulación, y me imagino que quien controle mejor esto del diseño de videojuegos sacará más partido a estos conceptos), aunque en esta disciplina se suelen utilizar coordenadas eulerianas en lugar de cartesianas.


  Bueno, no voy a añadir lo de cálculo de colisiones porque ya lo han dixo por ahi  (asco)

       He intentado no extenderme mucho, pero de todas formas si quieres más información sobre estos temas, contacta conmigo!!!
he best way to predict the future is to invent it (Alan Kay)

FoS

  Dos veces el mismo rollo, jeje!
he best way to predict the future is to invent it (Alan Kay)






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.