Tema 2: Programación de entornos gráficos y herramientas PDF
Document Details
![PrincipledParable764](https://quizgecko.com/images/avatars/avatar-13.webp)
Uploaded by PrincipledParable764
Escuela Politécnica Superior de Linares
Tags
Summary
This document is lecture notes about programming of graphical environments and tools.
Full Transcript
Tema 2: Programación de entornos gráficos y herramientas Dpto. Ingeniería de Telecomunicación EPS Linares Tema 2/ Sesión 4 1 Índice 1. Conceptos básicos. Renderizado, vistas, texturas, materiales, iluminación. 2. Represen...
Tema 2: Programación de entornos gráficos y herramientas Dpto. Ingeniería de Telecomunicación EPS Linares Tema 2/ Sesión 4 1 Índice 1. Conceptos básicos. Renderizado, vistas, texturas, materiales, iluminación. 2. Representación basada en jerarquías nodos. 3. Construcción de geometrías. Operaciones básicas. 4. Propiedades básicas: Color, material, texturas e iluminación. 5. Mecanismos de interacción. Desarrollo de una GUI con interacción básica (teclado, ratón). Detección de colisiones. 6. Aspectos especiales. Importación de modelos 3D, animación, LOD. 7. Virtualización y Realidad Aumentada. Incorporación de imágenes reales en un entorno virtual y de objetos virtuales en un entorno real. 8. Herramientas de desarrollo. De OpenGL, a GLUT, ARToolkit pasando por Java 3D, Ogre, hasta Unity. Tema 2/ Sesión 4 2 Objetivos Conocer los componentes básicos de un entorno de realidad virtual. Conocer cómo estructurar los objetos e incorporar modelos creados con distintos programas. Conocer cómo incluir interacción básica. Analizar las distintas herramientas existentes para la creación de entornos virtuales. Tema 2/ Sesión 4 3 Organización 7 horas de clases presenciales + horas de estudio 3 hora de trabajo autónomo 3 horas de prácticas Evaluación: - Breves preguntas en la plataforma. - Entrega de trabajo propuesto. Tema 2/ Sesión 4 4 2.1Conceptos básicos. Renderizado: convertir la descripción de una escena en 3D en 2D- “redibujado de la escena”. Una escena estática puede estar descrita por: Geometrías 3D y transformaciones. Superficies. Representación matemática de los objetos. Cámara. Situación del visor (posición, rotación). El plano de imagen define el resultado del renderizado. Fuentes de luz. Emiten rayos y en función del modo de simulación del impacto que tienen en los objetos (ecuación de render), se tiene distintos métodos de renderizado. Propiedades de las superficies/materiales. Propiedades de materiales y texturas que describen el modelo de rebote de los rayos en las superficies. 2.1 Conceptos Básicos Tema 2/ Sesión 4 5 2.1 Renderizado. Las primitivas geométricas mas comunes en gráficos requieren trabajar con: Vértices (puntos en 3D) y las normales (vector unidad asociado con el vértice). Triángulos (conjunto de 3 vértices)-> Millones o billones en alta resolución. ¿Donde se realiza el renderizado? 2.1 Conceptos Básicos Tema 2/ Sesión 4 6 2.1Conceptos básicos. 2.1 Conceptos Básicos Tema 2/ Sesión 4 7 2.1Arquitectura de gráficos de RV Capa de Aplicación (Aceleración de CPU) Librerías de interfaces de usuario. Código de simulación/comportamiento. Algoritmia e Especificación de la interacción con el usuario. Inteligencia Artificial Simulación física Capa de Gráficos o Geometría(Aceleración de la CPU y GPU) Especificación del grafo de escena. Motor de física de los objetos. Caracterización de los objetos gráficos en distintas coordenadas. Capa de Renderizado/Rasterización (Aceleración de la GPU) Código de gráficos de bajo nivel Renderizado de polígonos/píxeles. Interfaz con la tarjeta gráfica y el buffer de trama (imágenes). 2.1 Conceptos Básicos Tema 2/ Sesión 4 8 2.1Conceptos básicos. ¿Dónde se realiza el renderizado? 2.1 Conceptos Básicos Tema 2/ Sesión 4 9 2.1Conceptos básicos. Mediante un proceso de rasterización una imagen descrita en un formato vectorial se convierte en un conjunto de píxeles. Escaneado de rasterización. La pantalla actualiza el contenido línea a línea de arriba ¿Qué son los píxeles? Tienen dos abajo leyendo el valor del color de cada pixel del buffer de trama. propiedades: color y posición. Color: Se almacena en frame buffer (se usan dos- front y back). La frecuencia de refresco o refesh rate es a la que se realiza el rasterizado. Coordenadas 2D de la pantalla. Una imagen se llama también trama o frame. 2.1 Conceptos Básicos Tema 2/ Sesión 4 10 2.1Conceptos básicos. Rasterización y escaneado RayCasting o Mapeado Inverso Uso de Zbuffer para guardar la Primera propuesta. coordenada Z (menor distancia a Evoluciona a RayTracing (Síntesis todos los fragmentos de la de imagen hiperrealista). escena). Puntos de intersección y Usado para motores de evaluación-modelo de visualización de aplicaciones iluminación. interactivas. Elevado coste computacional (horas -fotograma). 2.1 Conceptos Básicos Tema 2/ Sesión 4 11 2.1 Pipeline gráfico. Pipeline Gráfico: Etapas funcionales de renderizado. Sistemas de Referencia: Sistema Universal o Global. Sistema Local. Sistema de Visualización. Plano de proyección Sistema del dispositivo, recorte o ventana. 2.1 Conceptos Básicos Tema 2/ Sesión 4 12 2.1 Pipeline gráfico. Pipeline Gráfico: Etapas funcionales de renderizado. Aplicación. Se ejecuta en CPU (multinúcleo). Diferentes hilos de ejecución. Tareas: Cálculo de posición. Simulaciones físicas. Detección de colisiones. Gestión de entrada del usuario (teclado, ratón, joystick, etc.). Uso de estructuras de datos para aceleración- reducción del numero de polígonos (texturas, sprites asociados a interfaz o avatares). 2.1 Conceptos Básicos Tema 2/ Sesión 4 13 2.1 Pipeline gráfico. Pipeline Gráfico: Etapa de geometría. Procesado de vértices: transforma y procesa vértices individuales y normales. Es programable y se suele realizar en la tarjeta gráfica. Se parte de vértices y primitivas. Transformaciones de los sistemas de coordenadas: Transformación de modelado (varias instancias del mismo objeto se reposicionan). 2.1 Conceptos Básicos Tema 2/ Sesión 4 14 2.1 Pipeline gráfico. Pipeline Gráfico: Etapa de geometría: Transformación de modelado. Los objetos se crean en sus espacios locales. Hay que llevárselos al espacio de coordenadas universales mediante transformaciones afines (traslación, rotación, escalado). 2.1 Conceptos Básicos Tema 2/ Sesión 4 15 2.1 Pipeline gráfico. Pipeline Gráfico: Etapa de geometría: Transformación de visualización. Posición y orientación de la cámara determinan los objetos visibles. Objetivo: Posicionar la cámara en el origen de SRU apuntando en dirección negativa de Z y con eje Y hacia arriba. (Transformación y rotación) 2.1 Conceptos Básicos Tema 2/ Sesión 4 16 2.1 Pipeline gráfico. Pipeline Gráfico: Etapa de geometría: Sombreado de Vértice y transformación de proyección. Sombreado: Obtener la representación del material del objeto, modelando las transformaciones en las fuentes de luz, vectores normales, información de color, etc..(Uso de coordenadas del modelo) Transf. de Proyección. Asociado al campo de visión y el aspecto (tipo de lentes y cámara). Volumen de visualización. 2.1 Conceptos Básicos Tema 2/ Sesión 4 17 2.1 Pipeline gráfico. Pipeline Gráfico: Etapa de geometría: Transformación de proyección. Volumen de proyección. Ortográfica y perspectiva. Se obtienen coordenadas normalizadas para volumen de visualización. Proyección de 3D a 2D. Coordenada Z en Z-buffer. 2.1 Conceptos Básicos Tema 2/ Sesión 4 18 2.1 Pipeline gráfico. Pipeline Gráfico: Etapa de geometría: Transformación de recorte y transformación de pantalla. Recorte: Solo los objetos que están totalmente dentro del volumen de visualización son copiados íntegramente. Objetos parcialmente incluidos deben ser recortados, generando nuevos vértices. Se realiza por el hardware de la tarjeta. Transformación de pantalla: se ajustan las coordenadas x, y del cubo unitario a las dimensiones de la ventana final. 2.1 Conceptos Básicos Tema 2/ Sesión 4 19 2.1 Pipeline gráfico. Pipeline Gráfico: Etapa de rasterización. Objetivo: Transformar vértices y primitivas en fragmentos. Asignar color a cada vértice e interpolar las líneas entre vértices. Etapas: Triangle Set-up. Coordenadas 2D del contorno. Triangle Traversal o Scan Traversal. Encontrar los píxeles que forman parte del triángulo. Se generan fragmentos. 2.1 Conceptos Básicos Tema 2/ Sesión 4 20 2.1 Pipeline gráfico. Pipeline Gráfico: Etapa de rasterización. Primitiva: formado por Fragmentos: Pixeles uno o mas vértices. No alineados interpolados a están alineados en un grid. partir de los vértices. Profundidad Sombreado Salida: Fragmentos. 2.1 Conceptos Básicos Tema 2/ Sesión 4 21 2.1 Pipeline gráfico. Pipeline Gráfico: Etapa de rasterización. Sombrado de pixel y fusión. Se aplica sombreado a nivel de pixel en base al que se realizó a nivel de vértice. Se ejecuta en núcleos GPU programables. Se aplican texturas en base a diversos métodos de proyección. En la etapa de fusión se almacena la información de color de cada pixel en el Color Buffer. Esta información se obtiene combinando los fragmentos visibles procesados en el Sombreado. La visibilidad de los fragmentos se hace en base al Z- buffer o buffer de profundidad. 2.1 Conceptos Básicos Tema 2/ Sesión 4 22 2.2 Representación basada en jerarquía de nodos. Grafo: estructura que almacena todos los elementos de la escena y su relación lógica y/o posición (transformaciones). 2.2 Jerarquía de nodos Tema 2/ Sesión 5 23 2.2 Representación basada en jerarquía de nodos. Nodos básicos: Nodo de Geometría. Almacenan la información poligonal de los objetos, también almacenan informaciones referentes a su apariencia, tales como material, textura, etc. Usualmente actúan como nodos hoja. Nodo Grupo. Se emplean para agrupar varios nodos hijos, aunque sea a nivel meramente organizativo. Nodo de transformación afín. Permite aplicar una matriz de transformación que afectará a la ubicación espacial de sus nodos hijos. Son necesarios para la definición de objetos móviles y también para la creación de estructuras articuladas. 2.2 Jerarquía de nodos Tema 2/ Sesión 5 24 2.2 Representación basada en jerarquía de nodos. La información que se incluye va asociada: Objetos: geometría, apariencia, propiedades del material, caminos de desplazamiento. También aparecen representados las luces, y cámaras. Las dependencias van asociadas a las posiciones relativas: 2.2 Jerarquía de nodos Tema 2/ Sesión 5 25 2.2 Representación basada en jerarquía de nodos. Las dependencias van asociadas a las posiciones relativas: 2.2 Jerarquía de nodos Tema 2/ Sesión 5 26 2.2 Representación basada en jerarquía de nodos. Las dependencias van asociadas a las posiciones relativas: 2.2 Jerarquía de nodos Tema 2/ Sesión 5 27 2.2 Representación basada en jerarquía de nodos. Existen otras dependencias a nivel funcional, que suelen representarse también a nivel jerárquico. Ejemplo: Blender – Grafo de dependencia funcional. 2.2 Jerarquía de nodos Tema 2/ Sesión 5 28 2.3 Construcción de geometrías. ¿Dónde obtenemos los objetos o modelos 3D? Librerías de assets. Unity, Blender, 3DStudio, etc. A partir de definiciones matemáticas, basadas en puntos, funciones, etc., mediante scripts y algoritmos para visualización de datos. Uso de software interactivo o CAD, a partir de modelos poliédricos. Los objetos son colecciones de polígonos: Vértices. Lados Caras Vector normal 2.3 Construcción de Geometrías Tema 2/ Sesión 5 29 2.3Geometrias- Polígonos. A partir de polígonos: Coordenadas cartesianas u homogéneas. Vértices (lista ordenada). v ( x, y , z ) v ( x, y , z,1) o Triángulos y caras. Los vértices comparten muchas caras y lados. Normales 2.3 Construcción de Geometrías Tema 2/ Sesión 5 30 2.3Geometrias- Curvas y superficies. A partir de curvas y superficies: P0 Colección de puntos. Líneas rectas. Representación analítica. No paramétrica y m x b Paramétrica (entre dos puntos) R (1 t ) P0 t P1 P1 Tipos de curvas- No paramétricas Puntos del objeto definidos resolviendo la ecuación Forma definida por una ecuación 2.3 Construcción de Geometrías Tema 2/ Sesión 5 31 2.3Geometrias- Curvas y superficies. A partir de curvas paramétricas y superficies: Tipos de curvas- Paramétricas Se definen puntos de control. Cada punto de la superficie/curva se calcula como una media ponderada de los puntos de control. Los pesos se definen por funciones básicas Ejemplos Bezier B-spline NURBS (Non Uniform Rational B-Splines) Texturas (U,V)-direcciones paramétricas. 2.3 Construcción de Geometrías Tema 2/ Sesión 5 32 2.3Geometrias- Curvas y superficies. A partir de curvas paramétricas y superficies: A partir de mallas o mesh se realizan subdivisiones recursivas. Se utiliza para el modelado de objetos blandos. Uniforme Adaptativo 2.3 Construcción de Geometrías Tema 2/ Sesión 5 33 2.3 Mapeado de texturas. A partir de mapeado de texturas: Un patrón simple o una imagen completa puede ser mapeado sobre los polígonos y renderizado para dotarlo de mayor realismo. 2.3 Construcción de Geometrías 34 Tema 2/ Sesión 5 2.3 Otras técnicas. Voxels: Unidad cúbica que compone un objeto tridimiensional. Uso de muestreo de geometrías en vez de mallas de polígonos. Optimización basada en jerarquías- LOD (SVO-sparse voxel octree). Información obtenida por ejemplo de escaneados médicos (CT- Computed Tomography) : Visualización médica. Nubes de puntos- Point Cloud VR. Capturado a partir de cámaras de profundidad (Escaneado láser, Kinect, etc..) La profundidad de cada pixel se mide mediante el tiempo de vuelo de la luz. Se puede construir un modelo poligonal. Meshlab, Wrap y otros. 2.3 Construcción de Geometrías 35 Tema 2/ Sesión 5 2.3. Operaciones básicas. Coordenadas cartesianas (X, Y, Z) Sistemas habituales: Programas de modelado: X, Y horizontal; Z vertical. Motores de Realidad Virtual: +X derecha; +Y arriba; +Z hacia dentro(más habitual) o hacia afuera. Interpretación de las coordenadas: Dextrógiro: Blender, 3dStudio. Giro Antiorario Levógiro: Unity3D, Giro Horario 2.3 Construcción de Geometrías Tema 2/ Sesión 5 36 2.3. Operaciones básicas. Coordenadas polares: ф : Elevación θ: Azimut. r: radio x = r ∙ cos 𝜑. cos 𝜃 z = r ∙ cos 𝜑. 𝑠𝑖𝑛(𝜃) 𝑦 = 𝑟 ∙ 𝑠𝑖𝑛(𝜑) 2.3 Construcción de Geometrías Tema 2/ Sesión 5 37 2.3. Operaciones básicas. Transformaciones básicas: Traslación Escalado Rotación Se trabaja con operaciones matriciales 2.3 Construcción de Geometrías Tema 2/ Sesión 5 38 2.3 Transformación del modelo. Escalado: Matriz de escalado Vértice a escalar Matriz de escalado Matriz que transforma a la izquierda 𝑆𝑣 = 𝑆 ∙ 𝑣 2.3 Construcción de Geometrías Tema 2/ Sesión 5 39 2.3 Transformación del modelo. Transformaciones básicas del modelo- Rotación: v’ Matriz de Rotación- en 2 dimensiones v 𝑣 = 𝑥, 𝑦 = 𝑟 ∙ cos 𝜑 , r ∙ 𝑠𝑖𝑛 𝜑 𝑣′ = 𝑥′, 𝑦′ = 𝑟 ∙ cos 𝜑 + 𝜃 , r ∙ 𝑠𝑖𝑛 𝜑 + 𝜃 θ cos 𝜑 ± 𝜃 = cos(𝜑) ∙ cos(𝜃) ∓ 𝑠𝑖𝑛(𝜑) ∙ 𝑠𝑖𝑛(𝜃) sen 𝜑 ± 𝜃 = cos(𝜑) ∙ sin(𝜃) ± 𝑠𝑖𝑛(𝜑) ∙ 𝑐𝑜𝑠(𝜃) Solo sistemas antihorarios 𝑣′ = 𝑥′, 𝑦′ = 𝑥 ∙ cos 𝜃 − 𝑦 ∙ 𝑠𝑖𝑛 𝜃 , 𝑥 ∙ 𝑠𝑖𝑛 𝜃 + 𝑦. cos(𝜃) 2.3 Construcción de Geometrías Tema 2/ Sesión 5 40 2.3 Transformación del modelo. Solo sistemas Transformaciones básicas del modelo- Rotación: dextrógiros Vértice a rotar Matrices de Rotación- en 3 dimensiones Transformación de rotación 2.3 Construcción de Geometrías Tema 2/ Sesión 5 41 2.3 Transformación del modelo. Transformaciones básicas del modelo- Traslación Vértice a escalar Representación sin matrices Necesidad de descripción matricial para anidar transformaciones 2.3 Construcción de Geometrías Tema 2/ Sesión 5 42 2.3 Transformación del modelo. Traslación Escalado Rotación Las transformaciones homogéneas: se acumulan (de coordenadas del modelo a coordenadas del mundo). se deshacen con la matriz inversa. Asumen como punto de referencia el [0,0,0]- en otro caso: 2.3 Construcción de Geometrías Tema 2/ Sesión 5 43 2.3 Transformación del modelo. Vectores: Normales: 2.3 Construcción de Geometrías Tema 2/ Sesión 5 44 2.3 Rotaciones-Alternativas. Ángulos de Euler: Las rotaciones y traslaciones no son conmutativas. El orden es importante. Se puede perder un grado de libertad. Gimbal lock. Eje-Angulo. Cuaternios (Quaternions) Vector Extensión de números complejos. unitario Se representan con 4-tupla- 𝑞 = [𝑞𝑥 , 𝑞𝑦 , 𝑞𝑧 , 𝑞𝑤 ] = [𝑞𝑣 , 𝑞𝑠 ] Cuaternios unitarios para rotaciones. 𝜃 𝜃 𝑞 = [𝑞𝑣 , 𝑞𝑠 ] = [𝑎 ∙ 𝑠𝑖𝑛 , cos ] 2 2 Cuaternio unitario Sin problemas de almacenamiento, tiempo de cómputo, interpolación, bloqueo de ejes. 2.3 Construcción de Geometrías Tema 2/ Sesión 5 45 2.3. Cuaternios. Operaciones sencillas: Suma y multiplicación: 𝑝 + 𝑞 = [(𝑝𝑣 + 𝑞𝑣 ), (𝑝𝑠 +𝑞𝑠 )] 𝑝 ∙ 𝑞 = [(𝑝𝑠. 𝑞𝑣 + 𝑞𝑠 𝑝𝑣 + 𝑝𝑣 × 𝑞𝑣 ), (𝑝𝑠 ∙ 𝑞𝑠 −𝑝𝑣 ∙ 𝑞𝑣 )] Inversa 𝑞−1 = 𝑞∗ = [−𝑞𝑣 , 𝑞𝑠 ] Rotaciones: Convertir el punto o vector a cuaternios: 𝑣 = 𝑣 0 = 𝑣𝑥 𝑣𝑦 𝑣𝑧 0 Aplicar rotación: 𝑣´ = 𝑞 ∙ 𝑣 ∙ 𝑞−1 La concatenación se realiza como con las matrices. 2.3 Construcción de Geometrías Tema 2/ Sesión 5 46 2.3. Transformación de la vista. Se debe trasladar el objeto mediante la matriz M a la posición del ojo (3 vectores) y realizar una rotación: 2.3 Construcción de Geometrías Tema 2/ Sesión 5 47 2.3. Transformación de proyección. Proyección en perspectiva: Caso de fustrum simétrico Fovy: ángulo vertical en grados Aspect: relación entre el ancho y alto zNear: plano de corte cercano (relativo a la cámara) zFar: plano de corte lejano 2.3 Construcción de Geometrías Tema 2/ Sesión 5 48 2.3. Transformación de proyección. Proyección ortográfica: Caso de fustrum simétrico y en forma de caja. La cámara está posicionada en el infinito. Coordenadas en el plano de corte cercano (zNear): Left (l), right (r) , bottom (b), top (t). 2.3 Construcción de Geometrías Tema 2/ Sesión 5 49 2.3. Transformación de proyección. Proyección no simétrica: Caso de fustrum no simétrico Coordenadas en el plano de corte cercano (zNear): Left (l), right (r) , bottom (b), top (t). zFar: plano de corte lejano 2.3 Construcción de Geometrías Tema 2/ Sesión 5 50 2.3.Transformacion Proyección desde las coordenadas del modelo hasta el espacio recortado “clipping space”: 2.3 Construcción de Geometrías Tema 2/ Sesión 5 51 2.4 Propiedades básicas. Color, material, texturas e iluminación. Renderizado debe tener en cuenta: luz, materiales, reflexiones, colores, propiedades de la superficie. Color: RGB, CMYK. Material: Propiedades físicas de los objetos relativa a como reflejan la luz incidente. Dependencia de las fuentes de luz. Renderizado de la iluminación: Modelos de Iluminación Modelo de Iluminación: determina la transmisión y reflexiones de la luz para calcular cuanta llega al objetivo de la cámara. 2.4 Propiedades Básicas Tema 2/ Sesión 5 52 2.4 Iluminación-Sombreado. Renderizado de la iluminación: Modelos de Sombreado (“pintar con luz”) de iluminación local. Iluminación ambiental-Sombreado ambiental. Aproximación a la iluminación global de la escena. Añade un color base independiente de la posición del observador y la fuente. El sombreado de emisión-> simular la iluminación propia del objeto-> alternativa al sombreado ambiental. 2.4 Propiedades Básicas Tema 2/ Sesión 5 53 2.4 Iluminación-Sombreado. Renderizado de la iluminación: Modelos de Sombreado (“pintar con luz”) de iluminación local. Iluminación difusa-Sombreado difuso. Cómo se refleja la luz. (Ej: mate en todas las direcciones) Intensidad determinada por el ángulo que forma la luz y la superficie. Independiente del punto de vista del observador. 2.4 Propiedades Básicas Tema 2/ Sesión 5 54 2.4 Iluminación-Sombreado. Renderizado de la iluminación: Modelos de Sombreado (“pintar con luz”) de iluminación local. Iluminación especular-Sombreado especular. “Brillos” de las superficies. El brillo se mueve con el observador. Dureza del brillo depende de n. mayor n -> más brillo. 2.4 Propiedades Básicas Tema 2/ Sesión 5 55 2.4 Iluminación-Shading. Renderizado de la iluminación: Por muy perfecto que sea el modelo de iluminación, los objetos son poligonales: Normales a los vértices. Interpolación- Métodos: Goraud (brillo) Phong (todo el cálculo) 2.4 Propiedades Básicas Tema 2/ Sesión 5 56 2.4 Iluminación. Iluminación indirecta Raytracing- Del ojo a la luz. Hay muchos tipos, algunos tienen en cuenta reflexiones añadidas a las difusas como las de brillo, especulares, y de espejo. Radiosity (Radiosidad)- De la luz al objeto. Fuente de luz de área. No tiene en cuenta las reflexiones especulares (solo las difusas). 2.4 Propiedades Básicas Tema 2/ Sesión 5 57 2.4 Iluminación. Tipos de fuentes de luz (irradancia-cantidad de energía emitida): Fuentes puntuales- en todas las direcciones. Fuentes direccionales (ej: sol): dirección dada por vector l en coord. Universales Focos Puntuales con dirección de emisión Forma cónica o piramidal. 2.4 Propiedades Básicas Tema 2/ Sesión 5 58 2.4 Texturas. Las texturas permiten variar las propiedades constantes de los materiales básicos creados a partir de color. Procedurales. Valor determinado por ecuaciones. Texturas de imagen. Mapeado de texturas. Cómo recubrir el objeto con el mapa de textura (imagen 2D se mapea en la forma 3D y la colorea). Métodos de mapeado Básicos: - Proyecciones Ortogonales: Plana Esférica Cilíndrica Cúbica 2.4 Propiedades Básicas Tema 2/ Sesión 5 59 2.4 Texturas. Métodos de mapeado Básicos: - Mapeado UV (independiente resolución, deformación..) Unwrap UV Texture Editor Métodos de mapeado avanzados: Mapeo del entorno (Reflection Mapping): Bump mapping (añaden irregularidades del modelo): Render a textura-Cámara auxiliar 2.4 Propiedades Básicas Tema 2/ Sesión 5 60 2.5 Interacción Básica. Interacción: acción del usuario produce un cambio en el mundo virtual que percibe el usuario. Necesidad de realimentación en tiempo real: Usuario- Acción- Consecuencia-Usuario Efecto en la sensación de presencia. Categorías: Directa: natural. Física: joystick, guante. Virtual: mano virtual. Agente. Taxonomías: Selección Manipulación Navegación ¿Control? 2.5 Interacción Básica Tema 2/ Sesión 6 61 2.5 Interacción Básica. Técnicas de selección (designación de objetos): Interacción manual directa (Virtual hand). Técnica Go-Go (extensión de la mano). Mapeado lineal solo en una zona. Intersección mediante rayo (Ray-Casting): Técnica de la linterna (flash light). Técnica de la apertura (apertura). Oclusión (imágenes planas) 2.5 Interacción Básica Tema 2/ Sesión 6 62 2.5 Interacción Básica. Técnicas de selección: Oclusión de imágenes planas 2.5 Interacción Básica Tema 2/ Sesión 6 63 2.5 Interacción Básica. Técnicas de manipulación (cambiar propiedades de los objetos virtuales): Selección con Ray-casting + cambio de la distancia al objeto (ratón, joystick). HOMER (Hand Centered, Object, Manipulation, Extending Ray-Casting). Rotaciones 3D no isomórficas. Voodoo dolls World in miniature 2.5 Interacción Básica Tema 2/ Sesión 6 64 2.5 Interacción Básica. Técnicas de navegación: Proceso controlado por el usuario a través del cual cambia la posición relativa entre el entorno virtual y el punto de vista que se asocia a dicho usuario. Tipo de control: continuo, discreto o programado. Control continuo: Movimientos del usuario en el entorno virtual. Simulación de la marcha. Navegación natural, Andar en el sitio (walking in place), plataformas de locomoción (treadmills).Ciberesfera. Simulación de control de vehículos. Control instrumentado. Control gestual. Movimientos del entorno virtual respecto al usuario. Manipulación del punto de vista. 2.5 Interacción Básica Tema 2/ Sesión 6 65 2.5 Interacción Básica. Técnicas de navegación: Control continuo: Movimientos del entorno virtual respecto al usuario. Coger en el aire (Grab in the air). Punto pivote. Manipulación de objetos fijos. Manipulación del punto de vista (plano o mapa). Control discreto: Se especifica el destino y no la ruta. Control programado: Se prediseña la ruta a seguir- se puede usar un mapa. Enfoque egocéntrico o exocéntrico. 2.5 Interacción Básica Tema 2/ Sesión 6 66 2.5 Desarrollo de una GUI. Uso de menús (inicio de juegos) con Widgets (ej: botones) Unity: Se puede diseñar un proyecto en 2D y trabajar con objetos de tipo UI. Se puede introducir como parte del entorno 3D. Trabajar con scripts en c# para dotarlos de funcionalidad. Exportar a WebGL y se visualiza directamente en un navegador (genera página web). Ogre 3D (Object-Oriented Graphics Rendering): Motor gráfico basado en el uso de C++. Se hace uso de CEGUI (Crazy Eddie’s GUI) que es una biblioteca open source multiplataforma desarrollada en C++. 2.5 Interacción Básica Tema 2/ Sesión 6 67 2.5Simuladores físicos. Integrado dentro de los motores de simulación física. ¿Qué se simula en un motor de simulación física? Detección de colisiones entre objetos dinámicos. Cálculo de líneas de visión (raytracing) y tiro parabólico. Definición de geometrías estáticas de colisión- cuerpos de colisión. Especificación de fuerzas (viento, gravedad, etc.) Simulación de destrucción de objetos. Definición de articulaciones y comportamiento. Especificación de diversos tipos de motores y elementos generadores de fuerzas, partículas, etc.. Simulación de fluidos, telas y cuerpos blandos. 2.5 Interacción Básica Tema 2/ Sesión 6 68 2.5Simuladores físicos-Detección de colisiones. Algunos simuladores físicos: Bullet. Industria del videojuego y en sistemas de imagen realista ( Blender, LightWave, etc.) ODE (Open Dynamics Engine)- Juegos comerciales. PhysX. Motor propietario de Nvidia. Tarjetas gráficas con núcleos CUDA (+32) pueden realizar simulación física en GPU. SDK es gratuita y compatible con diversas plataformas (PC, PlayStation, Xbox). Havok. Estándar de facto en aplicaciones propietarias (PC, videoconsolas, Smartphones). Librerías y algoritmos específicos de detección de colisiones: Swift I-Collide (objetos convexos) V-Collide (objetos no convexos) 2.5 Interacción Básica Tema 2/ Sesión 6 69 2.5 Detección de Colisiones. 2.5 Interacción Básica Tema 2/ Sesión 6 70 2.5 Detección de Colisiones. Representación interna de los objetos por formas geométricas sencillas. Esferas, Cajas (BoundingBox), Volumen Convexos, Combinación de varias primitivas (Cilindros), Mallas poligonales mas sencillas. Se crea un mundo físico sobre el que se ejecuta el detector de colisiones, que mantiene una lista de todas las entidades que pueden colisionar. Estructura global. 2.5 Interacción Básica Tema 2/ Sesión 6 71 2.6 Aspectos especiales. Animación: Imagen a Imagen (Cine) En tiempo real (Realidad Virtual) A mano. key-frames e interpolación. Basada en modelos. Sistemas de captura o reconocimiento de gestos (visemas, kinemas, expresiones básicas asociadas a emociones). Animación facial. Animación corporal. (Geométrica o basada en MOCAP) 2.6 Aspectos especiales Tema 2/ Sesión 7 72 2.6 Animación. BCI (Brain Computer Interfaces)- Blender + OGRE 2.6 Aspectos especiales Tema 2/ Sesión 8 73 2.6 Animación. Control de la Animación: Geométrica- Mocap. Física (basada en modelos para el cálculo geométrico)- Reglas globales. Basadas en comportamientos – Comportamentales (Vida Artificial). Reglas locales (limitaciones Cinemáticas). Procedimientos: Motores físicos. Modelos comportamentales: Scripts Basados en reglas Comportamientos- simulación de multitudes. 2.6 Aspectos especiales Tema 2/ Sesión 8 74 2.6 Level of detail (LOD). Diferentes versiones del mismo objeto(distancia a la cámara): Objetos de menor número de polígonos (miles a una). Los objetos son cargados dependiendo de la distancia a la cámara. Nodos de agrupación de tipo LOD. Texturas o nodos billboard. 2.6 Aspectos especiales Tema 2/ Sesión 8 75 2.7 Virtualizacion Incluir video en una textura o asociarlo a una cámara. En Ogre (motor gráfico). Se usa la librería de procesado de imágenes OpenCV. Una vez capturada la imagen se mapea un objeto. HTML5+ WebGL: Acceso a cámara y pegado en objeto 3D. Three.js Unity: Tutorial. Objeto + Script asociado para el uso de WebCamTexture. Panorámicas 3D y mapeado en una esfera. Realidad Aumentada (Unity+ Vuforia o ARcore): RA basada en webs (Marketing, Educación): Flash, HTML5 RA de exteriores en dispositivos móviles (Ver puntos de interés en el entorno-Wikitude, etc,): GPS, sensor tipo brújula. RA de mano (handheld- juegos y marketing): Sensado basado en visión. Experiencias en lugares específicos (museos, puntos de venta, anuncios): HMD, pantallas fijas. 2.6 Aspectos especiales Tema 2/ Sesión 8 76 2.7 Realidad Aumentada Robótica y Realidad Virtual 2.7 Virtualización y Realidad Aumentada Tema 2/ Sesión 8 77 2.7 Realidad Aumentada Interacción compleja: Sensar e integrar escena real y virtual. Sensores Sensores Sensores Sensores Sensores Magnéticos Inerciales Ultrasónicos Ópticos Mecánicos Sensores Sensores Basados Sensores Sin Especializados en Marcas Marcas Sensado basado Sensado basado Sensado basado en en bordes en modelos Puntos de Interés 2.7 Virtualización y Realidad Aumentada Tema 2/ Sesión 8 78 2.8 Herramientas de desarrollo. Realidad Virtual OpenGL y Direct3D (drivers del dispositivo). Tres tendencias: Desarrollo para la web (navegador). Desarrollo para equipo. Desarrollo multiplataforma (equipos, gafas, web, etc.) Desarrollo para la web: Basado en lenguajes de marcas (VRML, X3D, X3DOM). Web 3D Consortium. Instalar un X3D plugin (no en X3DOM). Basadas en scripts: Uso de AJAX3D, WebGL (OpenGL + GLSL+ JavaScript). Kronos Group. WebXR (dispositivos). 2.9 Herramientas de desarrollo Tema 2/ Sesión 10 79 2.8 Herramientas de desarrollo. Realidad Virtual Desarrollo para la web: X3D. Ejemplos básicos. Formatos: Objeto X3D embebido en un HTML (eventos DOM y plugin- FluxPlayer, Cortona). X3D en línea en el HTML (X3DOM). Canvas3D o acceso con APIs especiales- HTML5. WebGL (Modelos en Blender o SketchUp-.fbx,.x3d,.obj.blender) Librerías de programación de scripts: C3DL, Three.js, SceneJS, Processing.js, etc. Testeo mediante CodePen 2.9 Herramientas de desarrollo Tema 2/ Sesión 10 80 2.8 Herramientas de desarrollo. Realidad Virtual Desarrollo para equipos: Librerías asociadas a motores gráficos en C++ (WorldToolkit), Java (Java3D). Librerías más sofisticadas que incorporan motores gráficos con simuladores físicos, iluminación avanzada, shaders específicos, simuladores para animación, etc. Ogre3D, Crystal Space, Unreal Engine, Worldviz (vizard-phyton), AppGamekit (dispositivos móviles), … Motores con interfaces gráficas: Unity3D, CryEngine, Unreal Engine 4, Woldviz (vizible), OpenSpace3D 2.9 Herramientas de desarrollo Tema 2/ Sesión 10 81 2.8 Herramientas de desarrollo. Realidad Virtual Plataformas de Realidad Virtual asociadas a dispositivos- Unity3D: OpenVR SDK (HTC Vive)- SteamVR, VRTK. PSVR DK (PlayStation VR)- Propietario (SteamVR). Oculus SDK (Oculus Rift). Oculus Mobile SDK (Samsung Gear VR- a partir de Galaxy S7). GoogleVR SDK (Android, iOS, Unity) + Dispositivos Google. Daydream + Google CarBoard. 2.9 Herramientas de desarrollo Tema 2/ Sesión 10 82 2.8 Herramientas de desarrollo. Realidad Aumentada ARToolkit (librerías en C++), se utilizaba con OpenCV (Procesado de Imagen). Vuforia. ARCore (Google) Wikitude. Detección de objetos y sensado (Yolo???) 2.8 Virtualización y Realidad Aumentada Tema 2/ Sesión 10 83