La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

FERNANDO BASELLO, ERNESTO FABIÁN CELDEIRO, SANTIAGO MARTÍN VILAR. Desarrollo para consolas XNA.

Presentaciones similares


Presentación del tema: "FERNANDO BASELLO, ERNESTO FABIÁN CELDEIRO, SANTIAGO MARTÍN VILAR. Desarrollo para consolas XNA."— Transcripción de la presentación:

1 FERNANDO BASELLO, ERNESTO FABIÁN CELDEIRO, SANTIAGO MARTÍN VILAR. Desarrollo para consolas XNA

2 Sistemas de coordenadas Múltiples sistemas de coordenadas. ¿Para qué? Abstraen los problemas. Simplifican las cuentas. Por ejemplo: Mundo. Cómo se ubican los diferentes objetos en el espacio. Local, del Objeto o Modelo. Para trabajar con respecto a un objeto determinado en el mundo. Vista. Delimita el frustum de la cámara. Proyección. Sirve para determinar la relación entre los vértices en el espacio (3D) y dónde se dibujarán en la pantalla (2D).

3 Sistema de Coordenadas XNA La regla de la mano derecha determina la dirección positiva del eje Z cuando se conoce la dirección de los ejes X y Y en un sistema de coordenadas 3D. Esta misma regla también determina la dirección positiva de rotación alrededor de un eje en el espacio 3D. Para determinar la dirección positiva del eje Z, se coloca la mano derecha de manera que el dedo pulgar indique la dirección positiva del eje X. Los dedos índice y del medio se colocan como se muestra en la figura anterior, de manera que el índice indique la dirección positiva del eje Y. Cuando se tengan los dedos así colocados, el dedo del medio indicará la dirección positiva del eje Z. XNA Utiliza un Sistema de Coordenanas Right-Handed

4 Vectores Definición matemática: Un vector es una lista de números. Para 3D usamos vectores de 3 componentes: x, y y z v = { v x, v y, v z }

5 Vectores Definición geométrica: Un vector es un segmento orientado, que tiene: dirección: una recta paralela al segmento, sentido: hacia donde está orientado el segmento, y módulo: la longitud del segmento.

6 Vértices Los vértices son puntos en el espacio. Los vértices no son vectores, pero pueden representarse como tales. Es decir, si se traza un vector desde el origen de coordenadas hasta el punto, se obtiene un vector numéricamente idéntico al punto. P O PxPx PyPy

7 Matrices Definición matemática: Una matriz es una grilla rectangular de números organizados en filas y columnas. m11m12m13m14 m21m22m23m24 m31m32m33m34 m41m42m43m44 M =

8 Matrices Definición geométrica: Las matrices representan transformaciones. Una matriz cuadrada de n dimensiones representa una transformación lineal en el espacio de n dimensiones. Por ejemplo: rotación, escala, proyección ortográfica, reflexión. La traslación no es una transformación lineal. Se utiliza una matriz de 4x3 o 4x4 para trasladar en 3D.

9 Transformaciones Matriz de transformación M 44 Describe todas las transformaciones: traslación, escalado, rotación, deformación. La composición de transformaciones se realiza mediante el producto de matrices Se pueden obtener los valores de la transformación a partir de la matriz: desplazamiento, escala y giro. XNA utiliza

10 3D: Traslación x´1000x y´0100y z´0010z 1t x t y t z 11 x´=x+t x y´=y+t y z´=z+t z

11 3D: Escalado x´= s x ·x y´= s y ·y z´= s z ·z x´s x 000x y´0s y 00y z´00s z 0z 100011

12 3D: Rotacion

13 3D: Matrices de rotación Rotación en x x´cos θ 0sin θ 0x y´0100y z´-sin θ 0cos θ0z 100011 Rotación en y x´ cos θ-sin θ00x y´sin θcos θ00y z´0010z 100011 Rotación en z x´cos θ 0sin θ 0x y´0100y z´-sin θ 0cos θ0z 100011 Rotación en y

14 Matriz Traslacion XNA tMatrix = Matrix.CreateTranslation(x, y, z);

15 Matrices de Rotacion XNA rotationMatrix = Matrix.CreateRotationZ(90.0f); rotationMatrix = Matrix.CreateRotationX(90.0f); rotationMatrix = Matrix.CreateRotationY(90.0f);

16 Matriz de Escala XNA sMatrix = Matrix.CreateScale();

17 Input En Xna tenemos el poder de cotrolar 3 tipos de dispositivos de entrada. Mouse Teclado XBOX Controller

18 Mouse Input El Metodo para controlar el estado del mouse se resume a solo uno: Mouse.GetState() Las propiedades de la clase Mouse, nos van a permitir obtener los datos del mismo en el frame actual Ejemplo de Utilizacion: //devuelve la posicion en X del puntero del Mouse int a = Mouse.GetState().X; // permite controlar el estado de los botones del mouse if(Mouse.GetState().LeftButton == ButtonState.Pressed)

19 Input Teclado Los metodos para controlar el Teclado son: IsKeyUp() IsKeyDown() Ejemplo de Utilizacion: //esta apretada la barra espaciadora? if(Keyboard.GetState().IsKeyDown(Keys.SPACE)) Tambien se puede asignar el GetState() de Keyboard a una variable tipo KeyboardState, pasando a quedar el codigo de la siguiente forma. KeyboardState state = Keyboard.GetState(); if(state.IsKeyDown(Keys.SPACE))

20 Xbox Controller Los metodos para controlar el pad de XBOX son un poco mas rebuscados que los otros, aunque todo se toma de la interface GetState() Ejemplo de Utilizacion: GamePadState state = GamePad.GetState(PlayerIndex.One); //triggers //devuelven un valor float de los gatillos del pad. float a = state.Triggers.Right; //esta apretado el Boton A? if(state.Buttons.A == Buttons.Pressed) //movimiento de Sticks //devuelve un vector2 con la direccion del movimiento del stick Vector2 vec = state.Sticks.Right; //Hacer vibrar el Pad. GamePad.SetVibration(PlayerIndex.One, 0,5f, 0,5f);


Descargar ppt "FERNANDO BASELLO, ERNESTO FABIÁN CELDEIRO, SANTIAGO MARTÍN VILAR. Desarrollo para consolas XNA."

Presentaciones similares


Anuncios Google