13.05.2013 Views

desarrollo de sistemas de realidad virtual y aumentada para la ...

desarrollo de sistemas de realidad virtual y aumentada para la ...

desarrollo de sistemas de realidad virtual y aumentada para la ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Para aumentar el realismo <strong>de</strong> <strong>la</strong> escena se incorporaron sonidos que<br />

acompañaban a <strong>la</strong>s animaciones. Dichos sonidos eran <strong>de</strong> longitud temporal mayor que<br />

el tiempo transcurrido durante cada una <strong>de</strong> <strong>la</strong>s animaciones, por lo que hubo que<br />

ajustarlos a <strong>la</strong> duración <strong>de</strong> éstas. Para realizar este ajuste se calcu<strong>la</strong>ba <strong>la</strong> duración <strong>de</strong><br />

cada una <strong>de</strong> el<strong>la</strong>s justo en el instante antes <strong>de</strong> su ejecución. Los sonidos se extrajeron<br />

<strong>de</strong> [F<strong>la</strong>sh08] y el usuario los escuchaba gracias a los auricu<strong>la</strong>res <strong>de</strong>l casco.<br />

Por último, se diseñó <strong>la</strong> forma en <strong>la</strong> que <strong>la</strong>nzar cada una <strong>de</strong> <strong>la</strong>s animaciones. Se<br />

optó por <strong>la</strong> creación <strong>de</strong> una serie <strong>de</strong> eventos contro<strong>la</strong>dos por tec<strong>la</strong>do. De modo que,<br />

había tec<strong>la</strong>s asociadas a una <strong>de</strong>terminada animación, pero también había una tec<strong>la</strong><br />

que <strong>la</strong>nzaba tipos <strong>de</strong> animaciones <strong>de</strong> forma aleatoria. Añadir que cada evento servía<br />

tanto <strong>para</strong> hundir como <strong>para</strong> “restablecer” el agujero. La pulsación <strong>de</strong> <strong>la</strong> tec<strong>la</strong> asociada<br />

provocaba <strong>la</strong> acción <strong>de</strong> hundir o “restablecer” el agujero en función <strong>de</strong>l estado en el<br />

que éste se encontrara (hundido o sin hundir). Si el suelo estaba hundido, <strong>la</strong> pulsación<br />

<strong>de</strong> <strong>la</strong> misma tec<strong>la</strong> que provocó su hundimiento hacía que éste se “restableciera”.<br />

4.3.2 Sistema <strong>de</strong> Realidad Aumentada<br />

Una vez <strong>de</strong>sarrol<strong>la</strong>da <strong>la</strong> parte común a ambos <strong>sistemas</strong> solo había que insertar<strong>la</strong><br />

en una aplicación básica <strong>de</strong> RA. Para este sistema el objetivo fundamental era que el<br />

agujero <strong>virtual</strong> se fundiese <strong>de</strong> forma realista con <strong>la</strong> moqueta real <strong>de</strong> <strong>la</strong> habitación.<br />

En primer lugar, hay que <strong>de</strong>finir una ventana en <strong>la</strong> que mostrar <strong>la</strong> fuente <strong>de</strong> ví<strong>de</strong>o<br />

proce<strong>de</strong>nte <strong>de</strong> <strong>la</strong> cámara web, que es <strong>la</strong> parte fundamental <strong>de</strong> <strong>la</strong> aplicación.<br />

Seguidamente, hay que cargar el plugin <strong>de</strong> ARToolKit mediante <strong>la</strong> lista <strong>de</strong><br />

librerías dinámicas.<br />

A continuación, hay que crear tantos elementos pertenecientes a <strong>la</strong> lista <strong>de</strong>l<br />

plugin <strong>de</strong> ARToolKit como marcadores formen parte <strong>de</strong> <strong>la</strong> aplicación (3 en nuestro<br />

caso), <strong>la</strong> posición y orientación que <strong>de</strong>vuelvan dichos elementos sirven <strong>para</strong> ubicar y<br />

orientar correctamente el objeto agujero.<br />

El siguiente paso fue ajustar <strong>la</strong> cámara <strong>de</strong> <strong>la</strong> simu<strong>la</strong>ción <strong>de</strong> manera a<strong>de</strong>cuada, ya<br />

que el plugin <strong>de</strong> ARToolKit asume que dicha cámara se encuentra en el origen <strong>de</strong><br />

coor<strong>de</strong>nadas y apuntando hacia <strong>la</strong>s posiciones negativas <strong>de</strong>l eje Z. Tras<strong>la</strong>dado a <strong>la</strong><br />

programación <strong>de</strong> <strong>la</strong> aplicación se traduce en modificar <strong>la</strong> cámara <strong>de</strong> simu<strong>la</strong>ción<br />

haciendo que se sitúe en el origen <strong>de</strong> coor<strong>de</strong>nadas (0, 0, 0) y que se oriente según los<br />

ángulos (0, -90, 0).<br />

A<strong>de</strong>más, se hizo que el objeto <strong>de</strong>sapareciera cuando <strong>la</strong> cámara no captaba<br />

ningún marcador. Hay varias formas <strong>de</strong> realizarlo, pero como primera aproximación se<br />

creó un map <strong>de</strong> código Python que se ejecutaba una vez por ciclo <strong>de</strong> refresco <strong>de</strong> <strong>la</strong><br />

tarjeta gráfica. Dicho map toma <strong>la</strong> salida <strong>de</strong>l plugin <strong>de</strong> ARToolKit y proporciona como<br />

80<br />

Desarrollo <strong>de</strong> <strong>sistemas</strong> <strong>de</strong> Realidad Virtual y Aumentada <strong>para</strong> el tratamiento <strong>de</strong> <strong>la</strong> acrofobia. Estudios …

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!