Feeds:
Entradas
Comentarios

Posts Tagged ‘Oculus Rift’

¡Misión conseguida! ¡El primer test con las Oculus Rift está hecho! Lo primero aquí dejo un vídeo cortito que he preparado:

La integración de Unity con Oculus Rift han sido minutos gracias al estupendo juego de assets que se pueden descargar de la web de Oculus. Está disponible un objeto player que ya contiene la doble cámara para el renderizado doble y ya con eso es super rápido probar una escena dentro de las gafas. No es suficiente para crear una buena experiencia de Realidad Virtual, por supuesto, pero es un primer paso para ir viendo qué cosas funcionan y qué no.

Templo de las Vestales en Oculus

Templo de las Vestales en Oculus

Este es el aspecto que tiene el templo de las Vestales en las Oculus. Como siempre, esta típica imagen doble no dice nada a quien no conoce el dispositivo. Pero debo decir que es absolutamente increíble ponerse las gafas y moverse alrededor del templo. Ahora sí que estoy en una simulación 3D sintiendo las inmensas proporciones de estos edificios. Es difícil percibir con software 3D en la pantalla del ordenador hasta qué punto estos edificios eran inmensos. Mientras me dedicaba a modelar en Blender, solía tener la tendencia a poner unas medidas generosas a todas las piezas. Diez o doce metros de alto para una columna no parece mucho cuando lo tecleas en el ordenador, pero cuando te pones las Oculus Rift y te acercas, y tienes que echar toda tu cabeza hacia atrás para ver el techo del edificio, te das cuenta de lo impresionantes que eran estas construcciones romanas.

Tras unos minutos de embelesamiento con mi modelo del templo en las Oculus, después ya me puse a tomar buena nota de la multitud de cosas que veía que tenía que mejorar. Lo primero que me he dado cuenta es que es muy importante no abusar del bump mapping con cosas que están a la altura de nuestros ojos, porque cuando nos acercamos a ellas el efecto no se mantiene y se rompe muy fácilmente el realismo. Es mejor usar elementos con geometrías más definidas. Por ejemplo: los pedestales estaba pensando en usar bump mapping para introducir biseles y decoraciones en ellos, pero no es una buena idea. Es mejor dar definición a esos objetos y quitársela a objetos que estarán muy alejados de nuestra vista, como los capiteles, por ejemplo. Estoy seguro de que con unas sencillas texturas en los que dibujar las hojas de acanto y los caulículos, la apariencia de mis capiteles corintios quedará más que realista.

Es decir, en Realidad Virtual las cosas cercanas se ven ahora mucho más cercanas y detallas, y las cosas lejanas pierden mucho más fácilmente el detalle. Por otra parte, nuestra posición de la cámara siempre (SIEMPRE, incluso durante los cut-scenes) va a estar atada a la primera persona, por lo que no merece la pena esforzarse en detalle para cosas que no lo van a necesitar.

Lo siguiente que noté es que necesitaba desesperadamente colisiones. Quería subir las escaleras y entrar dentro del templo. Así que me puse a mirar cómo va a el tema de colisiones. No ha resultado muy complejo entenderlo, aunque me ha parecido un poco extraño ver que Unity no tiene una especie de capacidad para importar un modelo 3D de colisiones. Me he tenido que crear un modelo de colisiones dentro del propio Unity, algo que es bastante rápido, pero que espero poder reutilizar de alguna manera en el futuro y no sé si podré exportar estos modelos 3D desde Unity hacia otras herramientas.

En cualquier caso, una vez terminado el modelo de colisiones, me volví a poner las gafas y… ¡ohhh! ¡Esto es grande! Incluso con la penosa definición del Oculus DK1 todo se ve de fábula. Cuando entras dentro tienes esa sensación de perder de vista el sol y el ambiente algo caluroso que hace fuera y entrar en un lugar donde la única luz procedía de una abertura redonda en el techo. Casi me puedo imaginar el eco de mis pasos en ese lugar y el crepitar de la llama sagrada, que aún no arde en mi escena, algo que hubiera causado el pavor de cualquier romano que hubiera visto así el pebetero. Lo siento, estoy en ello, romanos, habrá futuras versiones con efectos de fuego y humo, lo prometo.

Otra cosa que me he dado cuenta es que en Realidad Virtual hay que ensanchar un poco el objeto colisionador de nuestro player (como si tuviéramos barriguita cervecera). De otro modo, si nos acercamos a un objeto y movemos la cabeza hacia abajo, la posición de las cámaras que realizan el render pueden provocar que atraviesen el objeto, algo que resulta muy incómodo. Nunca hay que permitir al jugador que sus ojos queden en medio de un objeto, y como no es bueno reposicionar la cámara, que es lo que se suele hacer en un videojuego para salvar estas situaciones, no nos queda otra que incrementar la distancia a la cual colisionamos.

No sé, me pasaría el día describiendo las extraordinarias sensaciones que me ha producido este primer test con las Oculus Rift de un edificio de la Roma antigua. Esa sensación de pequeñez, de estar ante algo imponente, de sentir cómo cobra vida ante nosotros el mundo antiguo… Es increíble. Es vislumbrar que el futuro de la arqueología y de la investigación histórica pasan por aquí. Es una experiencia increíble con la que siempre soñé y que doy gracias por poder disfrutar ahora, mucho antes de lo que pensaba. Y encima siendo yo parte de ese esfuerzo.

No paro de pensar en lo que será este proyecto en el futuro, o en lo que serán otros proyectos como éste en cuanto gente con más conocimientos que yo en el manejo de los game-engines haga cosas del estilo. Me entusiasma la idea de tener una simulación de multitud de lugares antiguos en los que poder ver gente de la época, interacturar con ellos al estilo de los juegos MMO, sentir que te has trasladado en el tiempo.

Interior del templo de las Vestales en el Oculus Rift

Interior del templo de las Vestales en el Oculus Rift

Tengo un trabajo ingente por delante. Muchos más modelos 3D, colocar bien el terreno, texturización avanzada, ¡audio! (importantísimo), creación de personajes, animación. Ufff… Pero las ganas de acometer el proyecto ya sí que no me las quita nadie. He probado la Realidad Virtual, ha sido un sorbo muy corto, pero guau, el cosquilleo ha sido intenso. Y qué puedo decir, quiero más.

Anuncios

Read Full Post »

El siguiente paso natural que debía dar para continuar con el proyecto del “Reflector del Pasado” era volver a repasar cómo funciona Unity y empezar creando un sencillo terreno en el cual poder asentar mis modelos para ver cómo quedan. Además, tenía que ver cómo integrar las Oculus Rift dentro de Unity. Ya había visto varios ejemplos, como la demo de la villa de la Toscana, cuyo proyecto estaba disponible en la web de Oculus para aprender.

Tras leer algo de documentación sobre Unity, me ha resultado muy sencillo familiarizarme otra vez con las herramientas de terreno, con el skybox y con la iluminación global. La vegetación y los árboles tampoco han sido mucha complicación. La verdad es que la versión actual que estoy usando, la 4.3, está muy completa y mejora mucho respecto a versiones antiguas que pude probar hace tiempo. Es un producto muy sencillo para gente que empieza con la creación de juegos o aplicaciones interactivas en 3D.

Cumplido el objetivo de crear un sencillo proyecto de ejemplo en Unity con los elementos básicos, me he lanzado después con el tema del texturizado de mi modelo 3D del templo de las Vestales. El tema del texturizado es muy complejo, y en mi opinión es el que se lleva más tiempo con diferencia de todos los pasos a dar. El modelo 3D puede ser malo, pero unas buenas texturas marcan la diferencia.

En la creación de texturas y el pintado de un modelo hay que distinguir unas cuantas etapas:

– Lo primero es crear las texturas en sí, es decir, esas imágenes con la apariencia lo más realista posible que son las que pegaremos en las caras de nuestro modelo. No es nada sencillo. No basta con tomar fotografías de objetos del mundo real. Suele hacer faltar retocar mucho esas fotos y habitualmente procesarlas para que tengan la capacidad de poder formar mosaicos, es decir, que los extremos opuestos de cada lado de la imagen coincidan. Este paso lo he obviado para no atascarme mucho con todo y dar más fluidez a mi aprendizaje. Lo que he hecho es recurrir a páginas web clásicas desde donde se pueden descargar texturas gratis con licencia para reutilizarse. Una que recomiendo es www.cgtextures.com.

– Después hay que crear para cada objeto de nuestro modelo (columnas, pedestales, muros, etc.) unos mapas en 2D que se conocen como los UV Maps, y que no son más que la correspondencia que hay entre cada vértice en 3D de nuestro modelo y la coordenada en 2D de la imagen con la texturizaremos. Aquí Blender, aunque trae unas herramientas muy poderosas para la generación de los UV Maps, lo que en la jerga se conoce como el unwrapping, pero la verdad es que en ocasiones se hace tremendamente complicado. Ya he podido comprobar lo importantísimo que es crear buenas seam lines, es decir, las líneas de corte con las que se fragmentará nuestro modelo 3D. Al final lleva bastante tiempo generar buenos UV maps.

– Luego hay que marcar en Blender el enlace entre imágenes – texturas – materiales -UV Maps. Estas cuatro cosas constituyen un cuarteto necesario para cada cara de nuestro modelo. Hay que estar atento a los normal maps, es decir, a la orientación que tendrá cada cara, que puede hacer, como así me ha ocurrido, que haya zonas de nuestro modelo 3D que se vean extrañamente transparentes cuando lo mostramos texturizado. Por explicar brevemente en qué consiste el cuarteto anterior, podemos simplicar diciendo que una textura está enlazada a una imagen; un material está enlazado a una o varias texturas; y un objeto de nuestro modelo 3D está enlazado a uno o varios materiales y a uno o varios UV Maps. Una vez hemos creado todos esos enlaces, operación larga y tediosa y que al principio no resulta muy clara cómo se realiza en Blender, después tendremos que preocuparnos muy mucho de la iluminación, pues todos los materiales se componen de una serie de propiedades sobre cómo incide la luz en la textura. Así que para ver el efecto real de un material no queda otra que colocar algunas luces en nuestra escena en Blender, y mover esas luces para ver el efecto. Por fortuna, Blender cuenta con un render en tiempo real que nos permite ver ese tipo de cosas.

Modelo del templo de las Vestales con texturas e iluminación

– Hecho todo esto, el aspecto sería el que tenemos en la imagen anterior. Una vez satisfecho con el resultado, me decidí a ver cómo se mostraba dentro de Unity. Por supuesto, todavía había mucho que mejorar con las texturas, pero se imponía ir viendo los resultados. En Unity hay que tener en cuenta además que disponemos de unas opciones concretas a la hora de indicar cómo se va a ver un material, así que de nada sirve haber definido extraordinariamente bien un material en Blender. Luego hay que adaptar ese material a Unity. Para eso lo que he hecho es utilizar varios shaders que vienen con Unity. También he visto cómo utilizar la técnica del bump mapping, que consiste en generar unas imágenes con información acerca de dónde existen protuberancias o saltos en la textura. Con esta técnica se pueden crear texturas que tienen una apariencia muy fotorrealista. He usado el software CrazyBump para generar las imágenes del bump mapping. No es un software gratuito pero es muy barato y merece la pena tenerlo. 

Modelo del templo de las Vestales en Unity – primeras pruebas

– Arriba se puede ver el resultado del modelo en Unity. Buff, no está nada mal, ¿verdad? Evidentemente hay decenas de cosas por mejorar. Las sombras no son muy reales, y la iluminación no está nada trabajada. El cielo es muy plano, el terreno no está muy bien hecho y está aburrido y superplano en cuanto a las texturas. Hace falta que mi escenario cobre más vida, por supuesto, pero no es más que un proyecto de pruebas, un lugar donde ir viendo cómo quedan los modelos 3D, y para ese propósito es suficiente. Además, no está nada mal si considero que es sólo el trabajo de una semana en ratos libres.

– El proceso con las texturas no acaba aquí, ni mucho menos. Ahora habría que proceder a generar lo que se llama el ambient occlusion, que es como aplicar sombras interiores a los objetos para que ganen en profundidad, y luego perfilar y retocar la texturización con un pintado directo sobre el modelo 3D para dar los últimos cambios, por ejemplo añadiendo suciedad, humedad, microroturas, etc. Todo esto es ya bastante avanzado, así que de momento lo aparcaré para un futuro próximo

Lo siguiente que quiero hacer es ver cómo queda mi escenario de pruebas en las Oculus Rift. Así que hay que aprender a integrar el SDK de Oculus dentro de Unity. ¡No te pierdas mis progresos en el próximo post!

Read Full Post »

En el futuro nuestra realidad será tanto física como virtual. Es algo que quizá no nos hemos dado cuenta de que ya ha empezado a ocurrirnos. Llevamos bastantes años utilizando máquinas para hacer operaciones que antes necesitaban de un medio alternativo para realizarse. El modo por el que accionamos esas máquinas, la interfaz, puede haber variado bastante desde los pedales y los pulsadores, pasando por las teclas, hasta las pantallas táctiles, pero todo en esencia es lo mismo. Virtualizamos nuestro mundo para hacerlo accesible a nuestros sentidos en nuevas formas más eficientes.

Haz la prueba. Enciende tu portátil. Inicia el procesador de texto. Lo que verás es una hoja de papel en blanco, una hoja virtual que sólo existe en la pantalla, una representación ficticia de una hoja de papel real en la que podemos ir escribiendo y ver nuestra escritura exactamente como quedará cuando sea impresa.

La pantalla del ordenador es nuestra ventana hacia un mundo virtual en dos dimensiones en que tenemos un escritorio virtual donde colocamos un reloj, fotos de nuestros familiares, documentos y cualquier otro elemento que pueda representarse dentro de ese mundo.

Ese mundo de la pantalla del ordenador es mucho más rico y variado de lo que nos deja apreciar el limitado marco de sus píxeles. Dentro de él pueden representarse amplios mundos virtuales tridimensionales que rayan visualmente con la realidad física. Nos comunicamos con la máquina a través de una teclado y un ratón, o quizá con los dedos sobre una superficie táctil, pero todo esto sabe a poco para quien aprecia que dentro de un ordenador pueden erigirse auténticas realidades paralelas. Realidades que pueden perfectamente competir con sus homólogas físicas de cara a nuestros sentidos.

Imagina colocarte unas gafas de realidad virtual que una vez ajustadas no te permitan ver más que una pantalla que se extiende todo a tu alrededor, no importa cuánto gires la cabeza. Imagina que la pantalla tiene una densidad de píxel superior a la capacidad de percepción del ojo humano. Imagina que esa pantalla ofrece profundidad estereoscópica tridimensional gracias a disponer imágenes distintas para cada ojo. Imagina que la pantalla presenta ante tí un mundo fotorrealista en el que es imposible apreciar la diferencia con un mundo real. En ese momento la pantalla desaparece ante tu vista. Tu cerebro no es capaz de determinar si se encuentra ante algo real o ficticio. Para tí estás dentro de una habitación nueva, de un espacio imaginario pero que asumes como igualmente físico. Estás dentro del mundo del ordenador. Has entrado.

Sergey Orlovsky probando el Oculus Rift (Fuente: Wikipedia)

Sergey Orlovsky probando el Oculus Rift (Fuente: Wikipedia)

En ese momento todo lo que siempre soñaste poder hacer con la máquina resultará posible. Habremos roto las antiguas limitaciones.

Yo me imagino en ese momento usando un dispositivo de captura de movimiento de mis manos y extremidades. ¿Quiero escribir? Tendremos multitud de mesas, sillas, teclados, y todo tipo de objetos a nuestra disposición sin más que pedírselo a nuestro “mayordomo” virtual, un agente que tendrá el aspecto que queramos, y que será el encargado de dar un toque real a este mundo ficticio en que todo está a nuestro alcance. Elegiré un teclado, y me pondré a teclear en él, viendo mis dedos virtuales hundirse en ese teclado y escribiendo, mientras la gente a mi alrededor sólo me verá dar golpecitos en una mesa vacía. Es la realidad virtual. Ellos no pueden verla a no ser que se conecten unas gafas y entren en “mi mundo”. Es una nueva frontera.

¿Quieres ver cómo es estar al volante de un fabuloso super deportivo? ¿Quieres pasear por una cálida playa al atardecer? ¿Quieres visitar una ciudad lejana, conocer el interior de un edificio histórico tal y como fue, ir a un museo o ver una peli 3D en el cine sin moverte de casa?

¿Crees que hablo de ciencia-ficción? ¿De algo que ocurrirá el siglo que viene? Para nada. Es algo que sucederá en este decenio en el que estamos. Mucho antes de lo habíamos pensado. Llevamos ya muchos años explorando las posibilidades, pero nunca había dado la industria el paso al sector de consumo masivo. El usuario doméstico estaba conforme con la pantalla y el teclado. Eso está cambiando. Ahora tenemos potencia para ejecutar contenido de un realismo gráfico que alcanza prácticamente al del mundo real. El momento ha llegado. Un poco más de potencia, unas pantallas todavía más densas, y la imagen desaparecerá. Simplemente, creeremos que estamos ahí dentro porque creemos en lo que vemos.

Están aparenciendo una pléyade de productos destinados al mercado del consumidor básico. Desde el Oculus Rift, pasando por el Stem de Sixense, el PrioVR, el Kinect de Microsoft, el Leap Motion, el Virtuix Omni… La lista es interminable. Cada artilugio busca cubrir una de las capacidades humanas, ya sea la vista o el movimiento.

Con unos precios razonables y toda la industria del entretenimiento y de la informática en general revolucionada, estos cacharritos se van a convertir en muy comunes dentro de poco en nuestras vidas, tanto como ya lo han hecho el teclado y el ratón.

Bienvenidos a la nueva era. Y tened cuidado al regresar a la realidad real. Puede que quizá os empiece a gustar menos que la virtual.

Read Full Post »