Inicio

 

Semestre 2019-10

Nombre del curso: Ambientes Interactivos 3D
Créditos: 4
Profesor: Pablo Figueroa
Versión PDF Click Aquí

Descripción

Denominamos un ambiente interactivo 3D (AI3D) a una aplicación que manipula información tridimensional, y cuyo propósito puede ser entretenimiento, artístico o productivo. Este curso busca capacitar a sus estudiantes en el desarrollo de AI3Ds, usando los recursos disponibles en Colivri, y con un conocimiento profundo del potencial de dichas aplicaciones, de las tecnologías en uso y del estado del arte en el área.

Objetivos

  • Conocer el estado del arte en el desarrollo de AI3Ds
  • Conocer a fondo las tecnologías disponibles para desarrollo de AI3Ds
  • Conocer los recursos disponibles en Colivri para desarrollo de AI3Ds
  • Analizar diversos ambientes de desarrollo de AI3Ds
  • Desarrollar varios AI3Ds. Analizar tanto su desarrollo como el producto final

Temas

Hardware para Aplicaciones Interactivas 3D

Una parte característica de las AI3Ds es el uso de dispositivos de entrada y salida no convencionales, lo cual las hace más interesantes para el usuario pero un poco más complejas de desarrollar.

Un ejemplo de dispositivos y sistemas puede encontrarse en el primer capítulo del libro introductorio a realidad aumentada de Hollerer y Schmalstieg.

Algunos ejemplos relacionados con realidad virtual pueden encontrarse en el siguiente link.

Otros términos que pueden usarse para este tipo de aplicaciones y que vale la pena revisar en la Internet son:

  • Tangible Interfaces
  • Wearable Interfaces
  • Spatial User Interfaces

Una forma de seleccionar el dispositivo de entrada adecuado para una aplicación es por medio de la taxonomía creada por Mackinlay, Card y Robertson

En el laboratorio Colivri contamos con los siguientes equipos, entre otros, que pueden usar para su estudio de tecnologías:

Software para Aplicaciones Interactivas 3D

En términos de software, una aplicación interactiva 3D es un programa que recibe la información de los sensores y dispositivos del usuario, calcula un nuevo estado de una simulación y actualiza el estado de uno ó más dispositivos de salida, todo esto a una velocidad suficiente para cada tipo de salida. Para conocer un poco la evolución del software y elementos importantes, vamos a usar las siguientes referencias:

La herramienta de base que estamos usando para el desarrollo de AI3Ds es Unity. Se consiguen dos cursos sobre desarrollo 2D y 3D en Unity en el siguiente link: https://www.coursera.org/specializations/desarrollo-videojuegos. Vamos a ver más en detalle Unity como IDE, pero es importante analizar los APIs y subsistemas que tiene Unity y que son relevantes para el desarrollo de AI3Ds, como son: UI, Audio, Networking, Profiling, VR, Mecanim.

IDEs para AI3Ds

El ambiente de desarrollo de una AI3D es la aplicación que nos permite realizar todas las actividades relacionadas con la producción de este tipo de software. Dado el desarrollo del área de videojuegos, actualmente se suele usar un game engine para el desarrollo de diversos tipos de AI3Ds, y muchos de los proveedores de dispositivos suelen proveer drivers para ser integrados en los game engines más usados (i.e. Unity y Unreal).

Las lecturas ó referencias para este tema son:

Computación Gráfica

Esta corta introducción se concentra en la representación de objetos gráficos y su manipulación. Utiliza el lenguaje abierto X3D, pero puede aplicar los mismos conceptos a su herramienta gráfica preferida.

Modelamiento 3D y transformadas rígidas

Las interfaces 3D manipulan información en el espacio tridimensional, bien sea como entrada de datos o bien como salida gráfica.

Salida gráfica

El modelo más generalizado para manipular información 3D es la representación por la frontera, en donde un objeto se representa como un conjunto de polígonos convexos interconectados, idealmente triángulos de tamaños similares. A cada uno de estos polígonos se asocian propiedades extra a su posición, las cuales permiten crear efectos visuales interesantes. Algunas de estas propiedades son: coordenadas de textura, normales, color. Las operaciones más comunes sobre estos objetos son traslación, rotación y escalamiento, las cuales se pueden representar convenientemente como multiplicaciones de matrices en el sistema de coordenadas homogéneas.

Esta presentación es un resumen de los conceptos básicos, dentro del marco de X3D, un lenguaje descriptivo y abierto para escenas 3D, que se espera sea parte de HTML5. Este archivo zip contiene los ejemplos en X3D descritos en la presentación.

Desarrollo de Pruebas con Usuarios

El desarrollo de pruebas con usuarios es la técnica más importante que tenemos para evaluar un ambiente interactivo 3D en acción. Su dificultad radica no solamente en la teoría detrás de una prueba, sino en la rigurosidad con la cual deben desarrollarse, para asegurar la validez de los resultados.

Como base, tenemos este material del tutorial Conducting Human Subject Experiments with Virtual and Augmented Reality” , dictado en IEEE VR 2009 por Edward Swan II, Bernard Adelstein y Joseph Gabbard.

Como ejemplo, vamos a analizar la prueba de usuario que se desarrolló para el concurso del 3DUI 2012. El concurso pedía desarrollar una interfaz que permitiera a una persona guíar a otra por medio de un ambiente colaborativo 3D, donde las dos personas no tuvieran contacto directo y donde el mundo fuera lo suficientemente complejo. Una descripción de nuestro desarrollo se encuentra en el video publicado en dicho lugar sobre nuestra solución. Para la prueba diseñamos un experimento con dos entrenamientos (para conocer la forma de recorrido y para conocer el mapa) y tres recorridos (uno sin guía, otro para guíar y otro para ser guiado), cuyos detalles se encuentran aquí . Los datos tabulados de la prueba se encuentran aquí , y los resultados que arrojó SPSS se encuentran aquí.

Proceso de Desarrollo de Aplicaciones Interativas

El proceso de desarrollo que utilizamos viene del texto “Interaction Design”, de Preece et. al (el cual tiene un muy buen sitio web). Un resumen de dicha metodología se encuentra aqui. Nuestro objetivo es comprender cómo desarrollar buenas interfaces 3D, lo cual podemos encontrar en el tema de interacción hombre máquina.

El tema de interacción hombre máquina es muy extenso. Esta presentación muestra algunos de los temas relevantes que trataremos en clase. Describiremos algunas de las técnicas más utilizadas en el diseño de interfaces, como es por ejemplo la técnica del mago de Oz (Aquí un ejemplo. Hay que descomprimirlo.) En esta presentación tenemos 1 ejemplo en el cual desarrollamos 2 soluciones, que llamamos acá caso 1 y caso2.pdf. Para cada caso desarrollamos pruebas con usuarios, en las cuales capturamos información por medio de encuestas (ésta para el caso 1 y ésta para caso 2).

Aqui agrego unos ejemplos de documentos de diseño de interfaces 3D, que hemos desarrollado en el pasado:

Referencias

Videos de AI3Ds

Conferencias y revistas relevantes

Algunos Buenos Artículos

M. Billinghurst, H. Kato and I. Poupyrev, “The MagicBook – moving seamlessly between reality and virtuality,” in IEEE Computer Graphics and Applications, vol. 21, no. 3, pp. 6-8, May/Jun 2001. doi: 10.1109/38.920621 URL: http://ieeexplore.ieee.org.ezproxyegre.uniandes.edu.co:8888/stamp/stamp.jsp?tp=&arnumber=920621&isnumber=19913

Edge and Color Blending

La mezcla de colores y geometría se presenta en sistemas con múltiples proyectores que deben mostrar una imagen uniforme.

ecx.images-amazon.com_images_i_41kqtgbttgl._sl500_aa300_.jpg Una referencia fundamental es el libro de Aditi Majumder, “Practical Multi-Projector Display Design”.

Los siguientes links son una selección de google:projector support blending.