scieee Open visual document viewer

Sistema de realidad aumentada para la visualización de modelos reales

Trilles Andreo, Enrique

Abstract

[EN] The digitalization of 3D models is used in several fields such as medicine. But it's also used in other disciplines to digitalize real models. In this project is presented a system that, after a model has been digitalized, it can be transfered to a mobile device and display it using Augmented Reality. This system will have several practical applications such as a patient being able to watch the reconstruicton of is own MRI scan in his own mobile device. In this project two applications has been developed, one for PC and another for Android. The PC application will work as a server and the Android application will work as a client. The client app en the mobilde device will connect via wifi to the server app and request a list of the 3D models available to download. The client app will be able to load those models and display them on the screen using Augmented Reality. The performance of these applications will be studied, targeting load times and visualization with differente file formats. The performance of the devices will be checked too by tracking the number of polygons showed on screen with its own FPS ratio.

Full text

1 SISTEMA DE REALIDAD AUMENTADA PARA LA VISUALIZACIÓN DE MODELOS REALES Uni e sidad Poli écnica de Valencia Depa amen o de Sis emas In o má icos y Compu ación T abajo Final De Más e Más e Uni e si a io en In eligencia A i icial, Reconocimien o de Fo mas e Imagen Digi al En ique T illes And eo Supe isado po : M. Ca men Juan Lizand a Sep iemb e 2014 2 3 ÍNDICE DE CONTENIDOS 1.- In oducción ........................................................................ 7 1.1.- Mo i ación ................................................................................ 7 1.2.- Obje i os del p oyec o .............................................................. 8 1.3.- Es uc u a ................................................................................. 9 2.- Es ado del A e .................................................................. 11 3.- He amien as y Tecnologías .............................................. 19 3.1.- Uni y 3D .................................................................................. 19 3.2.- MonoDe elop y .NET F amewo k ........................................... 20 3.3.- Vupho ia Qualcomm y Realidad Aumen ada .......................... 22 3.4.- HelixToolki ............................................................................. 23 3.5.- Fo ma os de modelo y especi icaciones .................................. 23 Wa e on (.obj)........................................................................................ 24 STe eoLi hog aphy (.s l) ........................................................................... 26 4.- Desa ollo ...................................................................... 27 4.1.- Desc ipción gene al ................................................................. 27 4.2.- He amien as pa a conexión clien e-se ido .......................... 27 connec ionARSe e .cs ............................................................................. 28 connToolsARClien .cs ................................................................................ 29 4.3.- Aplicación se ido .................................................................. 31 4.4.- Aplicación clien e .................................................................... 33 4.4.1.- Visualización y Vu o ia ................................................................... 33 4.4.2.- Implemen ación de menús ............................................................ 36 MenuSys em.js .............................................................................. 36 MenuBeha iou .js ........................................................................ 37 4.4.3.- Impo ado de modelos ................................................................. 40 Lími e de é ices po malla .......................................................... 41 4 Poin .cs y Poin 3D.cs ..................................................................... 42 MeshBuilde .cs .............................................................................. 43 ObjReade .cs .................................................................................. 44 S LReade .cs .................................................................................. 44 ex e nalReade .cs .......................................................................... 45 4.5.- Funcionamien o global ........................................................... 46 P oblemas encon ados ............................................................................ 50 5.- P uebas y Resul ados ........................................................ 53 5.1.- P uebas ealizadas .................................................................. 53 5.2.- Resul ados ob enidos .............................................................. 54 Tiempos de ca ga ...................................................................................... 54 Fo og amas po segundo .......................................................................... 55 6.- Conclusiones ..................................................................... 57 6.1.- Fu u as expansiones ............................................................... 58 7.- Bibliog a ía ...................................................................... 59 5 ÍNDICE DE FIGURAS Figu a 1.1 – Ma cado de Realidad Aumen ada y e ec o de isualización ....................... 7 Figu a 2.1 – PDA como sis ema de apoyo a na egación ................................................. 11 Figu a 2.2 – Tabla de compa ación de pan allas de isualización de RA ........................ 12 Figu a 2.3 – Cubos de RA en e a los cubos del juego o iginal ...................................... 13 Figu a 2.4 – Imágenes del juego y disposi i o ................................................................. 13 Figu a 2.5 – Disposi i os usados en el juego ................................................................... 14 Figu a 2.6 – Modelo de RA pa a el es udio de mo i ación en clases de a e ................. 14 Figu a 2.7 – Cap u as de pan alla de la he amien a de apoyo al man enimien o ........ 15 Figu a 2.8 – Aspec o del simulado i ual de en enamien o ....................................... 15 Figu a 2.9 – Visualización de a añas median e RA .......................................................... 16 Figu a 2.10 - Cap u a de pan alla del juego In izimals de PSVi a ................................... 17 Figu a 3.2.1 – Diag ama básico de la Biblio eca de Clases Base ..................................... 21 Figu a 3.5.1 – Ejemplo de u ilización del o ma o OBJ .................................................... 25 Figu a 3.5.2 – Ejemplo de u ilización del o ma o MTL ................................................... 25 Figu a 3.5.3 – Es uc u a de o ma o STL a ni el de by e ............................................... 26 Figu a 4.1 – Comunicación Clien e – Se ido ................................................................. 28 Figu a 4.2.1 – Código de conexión asínc ono y ges ión de imeou ............................... 30 Figu a 4.3.1 – In e az de la aplicación se ido del sis ema implemen ado .................. 31 Figu a 4.3.2 – Diag ama de lujo pa a la máquina de es ados del se ido .................... 32 Figu a 4.3.3 – F agmen o de código pa a la c eación de p ocesos y con igu ación ....... 33 Figu a 4.4.1 – Menú con ex ual e impo ación de ecu sos de Uni y ............................. 34 Figu a 4.4.2 – Je a quía de obje os y es ado de la aplicación en Uni y .......................... 35 Figu a 4.4.3 – Es ado de la je a quía du an e una ejecución .......................................... 35 Figu a 4.4.4 – Máquina de es ados pa a el compo amien o de los menús................... 36 Figu a 4.4.5 – Máquina de es ados pa a la ansición en e en anas de la aplicación . 38 Figu a 4.4.6 – Diag ama de dependencias del impo ado de modelos ......................... 40 Figu a 4.4.7 – Pa ición de un modelo en un conjun o de componen es educido ....... 42 6 Figu a 4.5.1 – Menú de con igu ación ............................................................................. 46 Figu a 4.5.2 – Cambio de di ec o io en se ido ............................................................. 47 Figu a 4.5.3 – Menú de desca ga . Selección de iche os ............................................... 47 Figu a 4.5.4 – Menú de isualización. Selección de modelos ......................................... 48 Figu a 4.5.5 – Modelo A sob e ma cado ........................................................................ 48 Figu a 4.5.6 – Modelo B sob e ma cado ........................................................................ 49 Figu a 4.5.7 – Modelo C sob e ma cado ........................................................................ 49 Figu a 4.5.8 – Modelo D sob e ma cado ........................................................................ 50 Figu a 5.2.1 – Tabla de especi icaciones ......................................................................... 53 Figu a 5.2.2 – Tiempos de ca ga OBJ ............................................................................... 54 Figu a 5.2.3 – Tiempos de ca ga STL ............................................................................... 54 Figu a 5.2.4 – Relación FPS – Vé ices ............................................................................. 56 7 Capí ulo 1 INTRODUCCIÓN 1.1.- Mo i ación En los úl imos años, la popula idad de las aplicaciones y he amien as que se apoyan en la ealidad aumen ada ha expe imen ado un ele ado c ecimien o. La Realidad Aumen ada (RA) pe mi e gene a y o ece al usua io una g an can idad de con enido e in o mación adicional. Son muchos y muy a iados los abajos que exis en elacionados con es e campo [VAN 10]. Además de se un ema de g an in e és no solo den o del campo cien í ico, sino del écnico, educacional y del en e enimien o. Como se pod á obse a en el siguien e apa ado, exis en ya una g an can idad de casos en los que se han aplicado con éxi o ecnologías y he amien as basadas en RA. Median e la u ilización de di e sos ipos de ma cado es (Figu a 1.1), se puede ealiza el isionado de odo ipo de modelos 3D y animaciones. Po o a pa e, se ha obse ado que los modelos que se mues an en los ma cado es no pueden cambia se po o os en iempo eal. Es o es debido a que, po de ec o, dichos modelos deben compila se jun o a la aplicación en el momen o de su p og amación. Hecho que p o oca que, an o la di e sidad de modelos pa a isualiza , como la u ilidad de las aplicaciones de isionado de modelos 3D, sean bas an e educidas. Figu a 1.1 – Ma cado de Realidad Aumen ada y e ec o de isualización Al obse a algunas he amien as de desa ollo y modelado 3D, se puede ap ecia la exis encia de los llamados impo ado es y expo ado es de iche os. Subp oceso que se enca gan de ab i y gua da modelos en iche os de di e sos o ma os. Sabiendo de la exis encia de es as he amien as, se plan ea la idea de u iliza dichos impo ado es en una he amien a basada en ealidad aumen ada, pa a pode mos a y cambia de o ma dinámica cualquie ipo de modelo, en cualquie momen o. El pode ca ga cualquie modelo den o de un lis ado de iche os, pod ía aca ea un p oblema g a e, elacionado con la memo ia in e na del disposi i o mó il sob e el que se ejecu e una aplicación de es as ca ac e ís icas. Aunque a día de hoy muchos disposi i os mó iles 8 pe mi en ampliaciones de la memo ia in e na median e a je as de memo ia, es o no siemp e iene que se así. Es po ello que su ge la idea de in en a sepa a la aplicación de isionado de modelos de la base de da os que con enga los modelos en dos máquinas di e en es. Con es as dos ideas en men e, se a a desa olla un pa de aplicaciones que sean capaces de comunica se en e sí pa a lis a y desca ga iche os, además de ab i lo e in e p e a los pa a mos a los po pan alla median e una he amien a basada en ealidad aumen ada. 1.2.- Obje i os del p oyec o El obje i o del p oyec o es el de c ea un pa de aplicaciones, una a modo de se ido , y o a a modo de clien e, que sean capaces de comunica se y ansmi i iche os en e ellas pa a lle a a cabo el isionado de obje os 3D median e ealidad aumen ada. El se ido debe se capaz de escanea una ca pe a a nues a elección, lis a los iche os que se encuen an en la misma, y en iá selos al clien e bajo demanda del mismo. Además, como ac o imp escindible, el con enido de la ca pe a debe pode se modi icable en odo momen o, haciendo la he amien a lo más dinámica posible, y con el añadido de que no sea necesa io ol e a inicia o a compila la aplicación pa a su co ec o uncionamien o. Po o a pa e, el clien e debe se capaz de ob ene el lis ado de dicho di ec o io y isualiza lo po pan alla. Además, el usua io debe á pode elegi qué iche os desea desca ga . La aplicación debe pe mi i ambién el isionado de uno o a ios modelos, a elección del usua io, y mos a los a la ez po pan alla con la ayuda de un único ma cado . Todo es o eniendo en cuen a, po supues o, las limi aciones a ni el de ha dwa e del disposi i o sob e el que se ejecu e la aplicación. Pa a el desa ollo del sis ema se ha decidido hace uso de las siguien es he amien as y ecnologías: Uni y 3D, Qualcomm Vu o ia, MonoDe elop y el ki de desa ollo HelixToolki . Pa a cumpli los obje i os del p oyec o, se han seguido es os pasos: 1) Sis ema de conexión a ed local median e modelo clien e-se ido . Se a a hace uso de un sis ema de conexión basado en socke s TCP, p og amado median e el lenguaje C#. En o al, se gene a án un pa de lib e ías, una pa a cada aplicación, que con engan odo lo necesa io pa a pe mi i la conexión y comunicación en e las dos aplicaciones. 2) Aplicación se ido . Desa ollada con la ayuda de Visual S udio 2013, es a aplicación ha á uso de un sis ema basado en mul ip oceso pa a pe mi i una conexión con el clien e lo más ápida y e ec i a. O o aspec o a ene en cuen a es el de pode lis a los elemen os de un di ec o io ex e no, a pe ición del clien e, sin que en o pezca la modi icación de dicho di ec o io du an e la ejecución de la aplicación. 9 3) Aplicación clien e. Es a aplicación se a a desa olla con el en o no de desa ollo de Uni y, y el sis ema ope a i o de des ino a a se And oid. El obje i o es que es a aplicación pueda se ejecu ada en disposi i os mó iles sin ningún ipo de p oblema. La aplicación debe se capaz de conec a se a un ed local LAN y comunica se con el se ido pa a solici a y ecibi iche os con los modelos 3D que se an a isualiza . Pa a isualiza dichos modelos, se a a desa olla un sis ema de impo ación de los mismos, basándose de los impo ado es con enidos en el ki de desa ollo de HelixToolki . Pa a inaliza , se ealiza án dos es udios del iso implemen ado. Un es udio se cen a á en los iempos de ca ga de di e en es modelos idimensionales, así como de o ma os de iche o, en a ios disposi i os. El segundo es udio consis i á en analiza los o og amas po segundo de la aplicación a medida que se an aumen ado el núme o de é ices y polígonos en pan alla. El obje i o es e alua el endimien o de la aplicación en dichos disposi i os, así como in en a ap ecia cuán os modelos se pueden isualiza sin que el uncionamien o de los disposi i os se ea a ec ado. 1.3.- Es uc u a El es o de capí ulos p esen a la siguien e es uc u a: Capí ulo 2: Es ado del a e y si uación de la Realidad Aumen ada. Capí ulo 3: P esen ación de las he amien as, aplicaciones y lib e ías usadas, así como una in oducción a los di e en es é minos que se u iliza án a lo la go de odo el documen o. Capí ulo 4: Explicación de allada y paso po paso de odas las a eas lle adas a cabo pa a la ealización de la aplicación. Capí ulo 5: Explicación de las p uebas lle adas a cabo sob e la aplicación implemen ada, así como los esul ados ob enidos. Ex acción de conclusiones a las mismas. Capí ulo 6: Conclusiones y posibles ampliaciones y/o mejo as de la aplicación desa ollada. 16 Den o del campo de la psicología se puede habla de o o caso, en el que se ha ealizado un es udio sob e el a amien o de obia a los animales pequeños e insec os [JUAN 05]. En es e caso, se plan ea el uso de sis emas basados en RA pa a simula algunos de los emo es de dichos pacien es, como puede se el emo hacia las a añas o las cuca achas (Figu a 2.9). En el es udio lle ado a cabo sob e el a amien o de obias hacia los animales pequeños, se pudo ap ecia como en odos los pacien es que pa icipa on en las p uebas se edujo de mane a conside able el emo hacia dichos animales a los que enían miedo. Los esul ados mos a on que pacien es que en un p incipio e an incapaces de ace ca se a es os animales, después del a amien o ue on capaz de ma a muchos de ellos, en en ándose a sus emo es. Figu a 2.9 – Visualización de a añas median e RA Den o del campo del en e enimien o, se a a des aca el caso de la saga de ideojuegos pa a Plays a ion Vi a llamada In izimals, del es udio español No a ama [NOVA 14]. Dicho juego gi a en o no la ealidad aumen ada, pa a da ida a una se ie de c ia u as que el jugado pod á cap u a y en ena pa a lucha con a o os jugado es (Figu a 2.10). Es a saga de juegos ha enido una g an acep ación en e el público, y se cuen a como uno de los juegos más endidos e impo an es de la consola po á il de Sony, has a el pun o que en la ac ualidad la emp esa desa ollado a iene i mado un con a o de exclusi idad con Sony, pasando a con e i se en una emp esa que desa olla en exclusi idad pa a Plays a ion. 17 Figu a 2.10 – Cap u a de pan alla del juego In izimals de PSVi a 18 19 Capí ulo 3 HERRAMIENTAS Y TECNOLOGÍAS En es e apa ado se a a ealiza una p esen ación de las he amien as y ecnologías que se han u ilizado y o man pa e, de o ma di ec a o indi ec a, con el desa ollo del sis ema que se ha implemen ado en el p esen e p oyec o. 3.1.- Uni y 3D La he amien a Uni y es un sis ema de desa ollo de ideojuegos mul ipla a o ma desa ollado po Uni y Technologies [UNIT 14]. Incluye un mo o g á ico p opio así como un en o no de desa ollo in eg ado. Uni y se u iliza pa a desa olla p incipalmen e ideojuegos, aunque no se limi a únicamen e a es o, pudiéndose desa olla odo ipo de aplicaciones g á icas. A día de hoy, Uni y pe mi e desa olla aplicaciones pa a más de quince pla a o mas, en e las que se pueden inclui And oid, iOS, así como odas las pla a o mas de ideojuegos más impo an es de emp esas como Mic oso , Sony y Nin endo. Des aca además, que en el caso de Nin endo Wii U, Uni y es además la pla a o ma de desa ollo base. Uni y se encuen a en el me cado en dos e siones: Una e sión g a ui a llamada Uni y F ee, y o a e sión comple a y de pago denominada Uni y P o. Tan o Uni y como Uni y P o incluyen el en o no de desa ollo, u o iales, ejemplos de p oyec os y de con enido, sopo e a a és de o os, wiki, y las ac ualizaciones u u as de la e sión p incipal que se es é u ilizando. La p ime a e sión de Uni y se lanzó en la Con e encia Mundial de Desa ollado es de Apple en 2005. Fue cons uido solamen e pa a unciona y gene a p oyec os en los equipos de la pla a o ma Mac y ob u o el éxi o su icien e como pa a con inua con el desa ollo del mo o y he amien as. Una nue a e sión de Uni y (Uni y 3), ue lanzada en sep iemb e de 2010 y se cen ó en empeza a in oduci más he amien as que los es udios de al a gama po lo gene al ienen a su disposición, con el in de cap a el in e és de los desa ollado es más g andes, mien as que p opo ciona he amien as pa a equipos independien es y más pequeñas que no malmen e se ían di íciles de consegui en un paque e asequible. La úl ima e sión de Uni y (Uni y 4), ue lanzada a inales de 2012, e incluye añadidos como animación de mecanismos, sopo e pa a Di ec X 11 y sopo e pa a juegos en Linux. Una de las p opiedades más in e esan es e impo an es de Uni y es su habilidad de pode expo a a múl iples pla a o mas un mismo p oyec o, sin necesidad de ealiza con e siones de código u ope aciones muy complejas. Uni y puede usa se jun o a o as pla a o mas de desa ollo, como pueden se : 3ds Max, Maya, So image, Blende , Modo, ZB ush, Cinema 4D, Chee ah3D, Adobe Pho oshop, Adobe Fi ewo ks y Allego i hmic Subs ance. O a de las p opiedades más in e esan es que o ece Uni y consis e en que los cambios ealizados a los obje os c eados con es os p oduc os se ac ualizan 20 au omá icamen e en odas las ins ancias de ese obje o du an e odo el p oyec o, sin necesidad de ene que ol e a ealiza una impo ación de los mismos. El mo o g á ico de Uni y sopo a múl iples pla a o mas. Puede u iliza Di ec 3D (en Windows), OpenGL (en Mac y Linux), OpenGL ES (en And oid y iOS), e in e aces p opie a ias en unción de cada pla a o ma (Wii, Plays a ion, XBox). Uni y ambién o ece sopo e pa a las siguien es ecnologías: Bump Mapping, Re lec ion Mapping, Pa allax Mapping, Sc een Space Ambien Occlusion (SSAO), somb as dinámicas median e Shadow Mapping, así como ende izado de ex u as y e ec os de pos - p ocesado en iempo eal. Pa a la c eación de shadde s, Uni y hace uso de Shade Lab language. Es e lenguaje sopo a di e sos mé odos de p og amación de shadde s, además de da sopo e a o os lenguajes, como GLSL y Cg. Una de las ca ac e ís icas más impo an es es la de pe mi i en un mismo shadde di e sas a iaciones del mismo, pe mi iendo al en o no pode escoge cuál de dichas a iaciones es la más co ec a y óp ima en unción del p ocesado g á ico (GPU) de la pla a o ma pa a la que se es á desa ollando, o eciendo así una g an compa ibilidad. A la ho a de p og ama sc ip s y aplicaciones, Uni y se apoya en Mono, una implemen ación lib e y de código abie o de .NET F amewo k. Los lenguajes de p og amación que puede sopo a Uni y son C#, Boo y Uni ySc ip (un lenguaje desa ollado pa a Uni y basado en ECMASc ip ). 3.2.- MonoDe elop y .NET F amewo k MonoDe elop es un en o no de desa ollo in eg ado lib e y g a ui o, diseñado p incipalmen e pa a C# y o o lenguajes de p og amación basados en .NET como Neme le, Boo, Ja a y, a pa i de la e sión 2.2, Py hon. MonoDe elop comenzó como una adap ación de o o en o no de desa ollo llamado Sha pDe elop, con la in ención de da mayo sopo e a la he amien a GTK+ o GimpToolki . Dicha he amien a consis e en un conjun o de lib e ías mul ipla a o ma pa a el desa ollo de in e aces g á icas de usua io [MONO 14]. El en o no de desa ollo in eg ado de MonoDe elop incluye manejo de clases, ayuda inco po ada, opciones pa a au o comple a código, un diseñado de in e aces in eg ado llamado S e ic, sopo e pa a p oyec os y un depu ado de código in eg ado. Es a pla a o ma o ece sopo e comple o pa a Linux, Windows y Mac, con i iéndose en un en o no de desa ollo mul ipla a o ma. El amewo k de desa ollo .NET es una pla a o ma desa ollada po Mic oso que hace un especial én asis en anspa encia de edes, que p esen a una independencia de pla a o ma a ni el de ha dwa e y que pe mi e un ápido desa ollo de aplicaciones. Basándose en es e amewo k, Mic oso busca desa olla una es a egia ho izon al que sea capaz de in eg a odos sus p oduc os, aba cando desde 21 el sis ema ope a i o has a las he amien as más básicas, si como sus p opias he amien as de me cado [NET 13]. Se puede conside a pues, que .NET es la espues a de Mic oso al c ecien e me cado de los negocios en en o nos web, como compe encia a las di e sas pla a o mas de desa ollo exis en es, como puede se Ja a de O acle Co po a ion y los di e sos en o nos de desa ollo web basados en PHP. El obje i o de Mic oso es el de consegui una mane a ápida y lo más económica posible, a la ez que obus a y segu a, pa a desa olla aplicaciones. De es a o ma, se in en a busca una in eg ación más ápida y ágil en e emp esas y un acceso más simple y uni e sal a odo ipo de in o mación desde cualquie ipo de disposi i o. Pa a pone en uncionamien o odo el F amewo k, .NET se apoya en el llamado Common Language Run ime [CLR 01]. La he amien a de desa ollo compila el código uen e de cualquie a de los lenguajes sopo ados po .NET (C++, C#, Visual Basic, en e o os) en un código in e medio, llamado Common I e media e Language (CIL). Pa a gene a dicho código, el compilado se basa en una especi icación uni e sal pa a de e mina las eglas de aducción necesa ias pa a c ea el código CIL compa ible. Pa a ejecu a el desa ollo inicial, es necesa io ealiza un segundo paso. Median e un compilado en iempo de ejecución (JIT) se gene a el código máquina inal necesa io pa a ealiza la ejecución inal del p og ama. Dicho código gene ado se almacena en la memo ia caché del o denado , siendo ecompilado de nue o únicamen e si se p oducen cambios en el código uen e. Figu a 3.2.1 – Diag ama básico de la Biblio eca de Clases Base La biblio eca de clases base de .NET se encuen a di idida en cua o sub- conjun os cla e: ASP .NET y se icios XML web, Windows Fo ms, ADO .NET y .NET (Figu a 3.2.1). Dichas biblio ecas se enca gan de maneja odas las ope aciones básicas in oluc adas en el desa ollo de aplicaciones, incluyendo en e o as, acciones ales como: In e acción con disposi i os pe i é icos, manejo de bases de da os, adminis ación de memo ia, ci ado de da os, ansmisión y ecepción de da os, manejo y ges ión de excepciones, y un la go e cé e a. 22 3.3.- Vu o ia Qualcomm y Realidad Aumen ada La ealidad aumen ada es el é mino que se usa pa a de ini una isión a a és de un disposi i o ecnológico, de o ma di ec a o indi ec a, de un en o no ísico del mundo eal, cuyos elemen os se combinan con elemen os i uales pa a la c eación de una ealidad mix a en iempo eal. Consis e en un conjun o de disposi i os que añaden in o mación i ual a la in o mación ísica ya exis en e, es deci , se añade una pa e sin é ica i ual a lo eal. És a es la p incipal di e encia con la ealidad i ual, pues o que no sus i uye la ealidad ísica, sino que añade da os in o má icos sob eponiéndolos a los da os del mundo eal. Con la ayuda de la ecnología (po ejemplo, añadiendo la isión po compu ado y econocimien o de obje os) la in o mación sob e el mundo eal al ededo del usua io se con ie e en in e ac i a y digi al. La in o mación a i icial sob e el medio ambien e y los obje os pe i é icos puede se almacenada y ecupe ada como una capa de in o mación en la pa e supe io de la isión del mundo eal. Los disposi i os de Realidad Aumen ada pueden cons a de a ios sis emas de localización espacial y de un sis ema de isualización pa a mos a al usua io la in o mación i ual que se añade a la eal. Los sis emas de localización pueden lle a inco po ados ambién sis emas de GPS, además de di e sos ipos de senso es pa a que el disposi i o sea capaz de ob ene an o la posición como la o ien ación del usua io. Los dos p incipales sis emas de isualización empleados son la pan alla óp ica anspa en e (Op ical See- h ough Display) y la pan alla de mezcla de imágenes (Video see- h ough Display). Tan o uno como el o o mues an imágenes i uales que son mezcladas con la ealidad o bien p oyec adas di ec amen e en la pan alla al usua io. Los sis emas de ealidad aumen ada pueden u iliza una o más de las siguien es ecnologías: cáma as digi ales, senso es óp icos, acele óme os, GPS, gi oscopios, b újulas de es ado sólido, RFID, e c. Los sis emas de cáma as basados en Realidad Aumen ada equie en de una unidad CPU po en e y una can idad de memo ia RAM su icien e pa a pode p ocesa las imágenes de dichas cáma as. La combinación de odos es os elemen os se dan a menudo en muchos sma phones, que los con ie en en una posible pla a o ma de Realidad Aumen ada. Exis en a día de hoy di e sas he amien as pa a p og ama y desa olla aplicaciones basadas en ealidad aumen ada, como pueden se ARToolKi , ATOMIC Au ho ing ool, o la que se ha u ilizado en el abajo que se p esen a, Vu o ia Qualcomm. Vu o ia consis e en un ki de desa ollo de so wa e SDK basado en ealidad aumen ada pa a disposi i os mó iles que pe mi e la c eación de odo ipo de aplicaciones de ealidad aumen ada [VUFO 01]. El ki posee he amien as basadas en isión po compu ado pa a econoce ma cado es, busca y posiciona imágenes o elemen os 3D básicos en iempo eal. Es as capacidades de búsqueda y egis o pe mi en a los desa ollado es posiciona y o ien a odo ipo de obje os i uales, como pueden se modelos 3D o cualquie ipo de obje o mul imedia en elación con el mundo 23 eal. De es a o ma, se puede consegui ec ea la sensación de que un obje o i ual se encuen a en un en o no eal, al obse a lo a a és de la cáma a de un disposi i o mó il. Vu o ia ambién es capaz de de ec a cambios en iempo eal en el posicionamien o de los ma cado es o la cáma a del disposi i o, aplicando las ans o maciones necesa ias al obje o i ual pa a man ene la sensación de que el obje o exis e en la ealidad en odo momen o. El ki de desa ollo de Vu o ia sopo a una g an a iedad de imágenes 2D y 3D a modo de ma cado es, además de se capaz de de ec a imágenes que no ienen po qué cumpli dicha unción, así como la de ección de múl iples ma cado es. O as ca ac e ís icas que posee el SDK pueden se como la de ección au omá ica de oclusión pa cial de los ma cado es o la selección, cambio y con igu ación de los ma cado es en iempo eal. Vu o ia o ece sopo e a di e sos lenguajes de p og amación, como C++, Ja a, Objec i e-C y el en o no de desa ollo .NET a a és de la he amien a Uni y Game Engine. De es a o ma, se o ece sopo e na i o al desa ollo de aplicaciones pa a And oid y iOS, así como a muchas o as pla a o mas, a a és del en o no de desa ollo de Uni y. Cualquie aplicación de ealidad aumen ada desa ollada con Vu o ia se á compa ible con g an ango de e minales mó iles, que es én basados en iOS o And oid, así como Windows Phone. 3.4.- HelixToolki El ki de desa ollo HelixToolKi consis e un conjun o de he amien as y lib e ías pa a abaja con modelos y en o nos 3D basados en Windows P esen a ion Founda ion [WPF 45]. Es e ki es á siendo desa ollado en C# po el Massachuse s Ins i u e o Technology (MIT) y posee una licencia de ca ác e Open Sou ce [HELIX 14]. Aunque el ki posee una g an can idad de mé odos y lib e ías pa a abaja con odo ipo de modelos 3D, pa a el p esen e abajo solo se ha hecho uso del apa ado de impo ado es, pa a pode p ocesa los iche os de los modelos que se desea isualiza . 3.5.- Fo ma os de modelo y especi icaciones La in o mación elacionada con los obje os y modelos idimensionales que se desea isualiza en la aplicación a a es a almacenada den o de iche os. La aplicación a a se capaz de abaja con dos o ma os de iche o di e en es: Wa e on (.obj) y STe eoLi hog aphy (.s l). A con inuación se p esen an dichos o ma os. 24 Wa e on (.boj) El o ma o OBJ es un o ma o de iche o pa a la de inición de geome ías, y ha sido desa ollado po Wa e on Technologies pa a u iliza en su paque e de isualización a anzada de animaciones [OBJ 14]. Tan o el o ma o como su especi icación son conside ados de código abie o y ha sido adop ado po g an can idad de aplicaciones y he amien as de g á icos 3D. Es conside ado como un o ma o es ánda . El o ma o OBJ es un o ma o de almacenamien o de da os simple que ep esen a la geome ía de un modelo 3D únicamen e. En el iche o se almacena la in o mación elacionada con la posición de cada é ice, el mapeado de ex u a pa a cada coo denada, los ec o es no males a cada é ice y las ca as que con o man cada uno de los polígonos del modelo en o ma de lis ado de é ices y de coo denadas de ex u as. Los é ices se almacenan po de ec o en sen ido an i-ho a io, consiguiendo así que la decla ación po de ec o de odos los ec o es no males de cada ca a no sea necesa ia. Aunque las medidas con enidas en los iche os OBJ no poseen unidades de medida, es posible almacena alo es de escalado en el iche o. Los iche os OBJ no equie en de ninguna cabece a conc e a. Cualquie línea del iche o que se quie a ma ca como comen a io debe comenza con el ca ác e #. Los espacios en blanco se u ilizan a modo de o ganización y acilidad de lec u a. Cada línea del o ma o debe comenza con un ca ác e de con ol y la in o mación asociada a dicho ca ác e . Las líneas de ex o son p ocesadas po o den has a el inal del iche o. A con inuación se mues an los posibles ca ac e es de con ol, así como una b e e desc ipción de cada uno de ellos (Figu a 3.5.1): - V, , n: Ca ac e es pa a la de inición de é ices, coo denadas de ex u a y ec o es no males, espec i amen e. Van acompañados de dos o es ci as, ep esen ando las coo denadas (x, y, z) de cada uno (pa a las ex u as, solo coo denadas x, y). - : De inición de una ca a de un polígono. Va acompañado de es pa es de ci as, que se asocian a un é ice, una coo denada de ex u a y un ec o no mal. Dichas ci as se sepa an con el símbolo /. - m llib, usem l: De inen el ma e ial del modelo comple o. En el caso de m llib, se asocia un iche o de o ma o m l, con la in o mación co espondien e al ma e ial. - o, g: Con es os ca ac e es se ep esen a, po una pa e, el nomb e asociado al modelo, y po o a, las di e en es ag upaciones que se ealizan a ni el in e no de los di e en es componen es del modelo. 25 Figu a 3.5.1 – Ejemplo de u ilización del o ma o OBJ El o ma o de iche o MTL siemp e suele acompaña a un iche o OBJ. La inalidad de es e iche o es la de de ini odas las ca ac e ís icas del ma e ial del modelo. MTL ep esen a Ma e ial Templa e Lib a y y se conside a como el es ánda de inido po Wa e on Technlogies pa a de ini las p opiedades de e lexión de la luz en una supe icie en el momen o del ende izado, median e el modelo de iluminación de Phong. Aunque es e o ma o se conside e es ánda , hoy en día no se encuen a ac ualizado, ya que no puede sopo a comple amen e las úl imas ecnologías de iluminación, como po ejemplo el Specula Mapping o Pa allax Mapping. En cuan o al o ma o de es os iche os (Figu a 3.5.2), se iene un ca ác e de con ol pa a cada componen e del modelo de iluminación: Ambien al (Ka), Di usa (Kd) y Especula (Ks) jun o a su coe icien e (Ns) y anspa encia del ma e ial (d, T ). Figu a 3.5.2 – Ejemplo de u ilización del o ma o MTL 32  ge LocalIPAdd ess(): Es e mé odo ob iene la di ección IP local de la máquina en la que se ejecu a. Pa a ob ene dicha di ección, se lis an odas las IPs que hay asociadas a la máquina. Dada la o ma en la que Windows ges iona las di ecciones IP, la p ime a di ección asociada al p o ocolo de conexión IP se co esponde con la di ección local de la misma. Dicha di ección se de uel e en o ma o IP 4.  ge Ex e nalIPAd ess(): Así como la IP local es ela i amen e ácil de ob ene , no ocu e lo mismo con la di ección ex e na. Pa a ob ene lo más ápido posible dicha di ección, se ha decidido hace uso de una de las múl iples páginas web exis en es cuya inalidad es la de de ol e un iche o h ml con dicha di ección cada ez que se in en a accede a ella. La página que se ha decidido usa es: h p://ipecho.ne /plain Es a página de uel e en su iche o h ml únicamen e la di ección IP ex e na, po lo que acili a su pos e io ob ención al no posee ningún agmen o de ex o ni e ique as ca ac e ís icas del lenguaje h ml. Así pues, la unción ealiza á una pe ición a és a página web, y busca á en el iche o h ml que de uel e la di ección IP pa a mos a la po pan alla.  launchSe e (): És e es el mé odo que se enca ga á de con ola oda la pa e de conexión del se ido . Se apoya en la clase connec ionARSe e explicada en el apa ado an e io . Básicamen e, las a eas del se ido uncionan de la siguien e mane a: El se ido espe a a que algún clien e se conec e al mismo y le haga una pe ición (Figu a 4.3.2). Pueden habe dos ipos de pe iciones: Lis ado y Desca ga. Figu a 4.3.2 – Diag ama de lujo pa a la máquina de es ados del se ido En el p ime caso, el se ido c ea á un iche o XML con el lis ado de odos los iche os que se encuen en en ese momen o en la ca pe a especi icada en el di ec o io y ac o seguido se lo en ia á al clien e. En el segundo caso, el se ido se queda á espe ando a que el clien e le diga qué iche os desea desca ga pa a i en iándoselos al mismo. Después de habe comple ado cualquie a de las dos a eas, el se ido ol e á a queda se a la espe a de una nue a pe ición, has a que la aplicación se cie e. 33 Pa a inaliza , indica que el mé odo launchSe e se a anca al inicializa la aplicación, de la siguien e mane a: Figu a 4.3.3 – F agmen o de código pa a la c eación de p ocesos y con igu ación Es e código se co esponde con la c eación e inicialización po de ec o de p ocesos que se encuen a en la documen ación de socke s de C# y .NET (Figu a 4.3.3). Des aca únicamen e la ins ucción Th ead.IsBackG ound, que le a a indica al p oceso p incipal (pad e) que el subp oceso (hijo) debe e mina se y ce a se a la ez que el p og ama p incipal. De es a o ma se asegu a que el subp oceso no se queda á en es ado zombi en el caso de que la aplicación se cie e. 4.4.- Aplicación clien e Pa a desa olla la aplicación clien e del sis ema, se ha decidido u iliza el en o no de desa ollo Uni y, g acias a las he amien as y acilidades que o ece a la ho a de expo a y compila aplicaciones g á icas pa a disposi i os mó iles. El sis ema ope a i o pa a disposi i os mó iles po el cual se ha op ado ha sido And oid. Po o a pa e, pa a pode inco po a las uncionalidades co espondien es a ealidad aumen ada, se ha u ilizado la ex ensión pa a Uni y de la he amien a Vu o ia. A con inuación se explica á con de alle odo el p oceso de desa ollo de la aplicación clien e. 4.4.1.- Visualización y Vu o ia La p ime a a ea ealizada ha sido la c eación del en o no de ealidad aumen ada de la aplicación, así como la cáma a que debe á mos a los modelos idimensionales. La web de Vu o ia o ece pa a su desca ga el paque e de Uni y necesa io, que con iene odos los componen es que hacen al a pa a c ea aplicaciones de ealidad aumen ada. Además, el ma cado de seguimien o que se desea u iliza , así como las he amien as necesa ias pa a su co ec o uncionamien o, deben ag ega se ambién al p oyec o. Pa a ag ega es os dos paque es al p oyec o de Uni y se deben selecciona desde el menú con ex ual de Uni y las opciones co espondien es: Asse s > Impo Package > Cus om Package > Vu o ia-Uni y + Ma ke 34 Figu a 4.4.1 – Menú con ex ual e impo ación de ecu sos de Uni y De es a o ma quedan ag egados odos los ecu sos de Vu o ia en Uni y, así como el ma cado a u iliza (Figu a 4.4.1). El siguien e paso se á c ea y con igu a las ins ancias de los componen es que se an a u iliza . De los di e sos componen es que con iene el paque e Vu o ia. Pa a la aplicación c eada solo se necesi an dos, que se explican a con inuación: - ARCame a: Al con a io que las aplicaciones g á icas de Uni y con encionales, una aplicación con ealidad aumen ada necesi a usa una cáma a de isualización conc e a. La p opiedad de es e componen e es la de se capaz de econoce cualquie cáma a del disposi i o sob e el que se ejecu e la aplicación. De es a o ma el disposi i o se á capaz de obse a el en o no, y econoce el ma cado sob e el que se desea mos a el modelo 3D. - ImageTa ge : Es e componen e ep esen a el ma cado de ealidad aumen ada. Cualquie obje o y modelo de Uni y que se asocie a un ImageTa ge se mos a á po pan alla cuando la aplicación de ec e el ma cado asociado al mismo. Respec o al paque e que con iene el ma cado de seguimien o, indica que ha sido c eado desde la web de desa ollo de Vu o ia Qualcomm, ya que en es os momen os, solo la he amien a que se o ece en su página web puede con e i una imagen en un ma cado álido pa a Vu o ia. La he amien a es de uso g a ui o y se puede accede desde la misma web de desa ollo [VUFO 02]. Pa a c ea los elemen os necesa ios, hay que selecciona los y a as a los a la pes aña de je a quías del p oyec o de Uni y (Figu a 4.4.2). Una ez c eada an o la ARCame a como el ImageTa ge , es necesa io con igu a lo co ec amen e. P ime o hay que con igu a el ma cado . Pa a ello, en la pes aña de compo amien o de ImageTa ge hay que asocia a es e obje o el ma cado de seguimien o en la casilla de ImageTa ge Beha iou . Segundo, es necesa io con igu a la cáma a. En la pes aña de compo amien o de ARCame a, se es ablece el de ec o de isualización como au o pa a que de ec e la came a de mane a au omá ica. En cuan o al ma cado , se escoge de la misma mane a que con la imagen obje i o en el menú Da aSe . 35 Figu a 4.4.2 – Je a quía de obje os y es ado de la aplicación en Uni y A pa e de los obje os ya explicados, se ag ega al edi o un pa de luces ambien ales, un obje o acío asociado al ImageTa ge , y un úl imo obje o acío que no se a asociado a ningún o o elemen o. La unción de las luces ambien ales es la de ilumina los modelos cuando se mues en po pan alla. Sin ninguna luz, los modelos se e ían o almen e neg os. Con una segunda luz, que end á una in ensidad meno que la p ime a, se consigue que las somb as y pa es no iluminadas del modelo no se queden o almen e a oscu as. De es a o ma se consigue que el modelo quede bien iluminado y puede ap ecia se en su o alidad. El obje o acío asociado al ma cado , de nomb e modelHolde , se u iliza a modo de nodo aíz pa a que la aplicación almacene a pa i de él los modelos que se ca ga án du an e la ejecución de la aplicación. Como ejemplo, si du an e una ejecución se desea ene ca gado es modelos y mos a los a a és de la cáma a, es os queda ían de la siguien e mane a (Figu a 4.4.3): Figu a 4.4.3 – Es ado de la je a quía du an e una ejecución 36 Respec o al úl imo obje o acío, de nomb e mainMenu, su unción es la de almacena los sc ip s que se enca gan de hace unciona el menú de la aplicación, y que se explican en el siguien e apa ado. 4.4.2.- Implemen ación de menús El compo amien o de los menús se ha di idido en dos sc ip s: Uno que ges ione el compo amien o y apa ición de los bo ones y sub-menús, y o o que se ocupe de las acciones que se deben ealiza al in e ac ua con dichos bo ones y sub-menús. Pa a es a pa e del código de la aplicación se ha op ado po u iliza Uni ySc ip , ya que el p opio Uni y o ece un sopo e a ni el na i o de es e lenguaje. MenuSys em.js Es e sc ip se enca ga de ges iona odas las ope aciones y acciones elacionadas con las animaciones y ope aciones pa a mos a u ocul a los di e en es menús de la aplicación. Pa a ges iona el es ado de los menús, se ha op ado po u iliza una máquina de es ados, con una a iable de con ol pa a man ene la posición den o de la máquina. Un menú puede encon a se en cualquie a de los siguien es es ados (Figu a 4.4.4): - Abie o: El menú o submenú se encuen a abie o y ac i o. - Ce ado: El menú o submenú se encuen a ce ado y desac i ado. Es el es ado po de ec o. - Ab iéndose: Es ado de ansición del es ado Ce ado al es ado Abie o. En es e es ado se ac ualiza la posición del menú y su alo de isualización alpha. Cuando alpha == 1, se pasa al es ado Abie o. - Ce ándose: Es ado de ansición del es ado Abie o al es ado Ce ado. En es e es ado se ac ualiza la posición del menú y su alo de isualización alpha. Cuando alpha == 0, se desac i a el menú y se pasa al es ado Ce ado. Figu a 4.4.4 – Máquina de es ados pa a el compo amien o de los menús 37 Un menú en el es ado Ce ado debe libe a los ecu sos de memo ia que haya es ado u ilizando, ac ualiza el es ado global de la aplicación y de ol e el con ol o al menú p incipal o al menú que lo hubie a in ocado an es. Como excepción al compo amien o de es e es ado, deja acla ado que el bo ón p incipal que ac i a odos los submenús y con ola el uncionamien o de oda la aplicación, nunca puede llega al es ado ce ado, ya que es o implica ía deja desac i ada oda la aplicación. Du an e los es ados de Ab iendo y Ce ando, la aplicación a ac ualizando de mane a p og esi a an o la posición como el alo de isualización (alpha), causando un e ec o animado a modo de ‘apa ición’ del menú que se encuen e en es e es ado. Una ez el alo de alpha haya llegado a uno de los dos ex emos, en unción de si se es á ab iendo o ce ando el menú, el con ol pasa á al es ado co espondien e. Cuando un menú se encuen a en el es ado ac i o, la aplicación puede eacciona de dos mane as: Po una pa e, si el menú con iene algún submenú, se le pasa á el con ol del es ado al nue o submenú, bloqueando el ac ual has a que el nue o se desac i e. Po o a pa e, si el menú iene asociado un panel o en ana de acción, se le pasa el con ol de la aplicación al sc ip de compo amien o (explicado en el siguien e apa ado) y se bloquea el menú ac ual has a que se inalicen odas las acciones de la en ana. A ni el de uncionamien o, la aplicación cons a de un único bo ón en la esquina de la pan alla, que ac ua á a modo de menú p incipal. Dicho bo ón ac i a á a su ez un sub-menú con cua o nue os bo ones. Dichos bo ones han sido nomb ados de la siguien e mane a: Upda eLis , DownloadI ems, ShowI ems y Con igConnec ion. Dichos bo ones ac i an a su ez una en ana de acción di e en e, cada uno de ellos. El compo amien o de dichas en anas y su unción den o de la aplicación se explica án en apa ados pos e io es. MenuBeha iou .js Es e sc ip se a a enca ga de c ea y con ola las acciones de las di e en es en anas de la aplicación. Como se ha comen ado, es as en anas se ac i a án según el es ado del menú, y end án que de ol e el con ol de la aplicación al sis ema de menús una ez e minen las acciones que debe ealiza cada una de ellas. En o al, la aplicación cons a de cua o paneles, cuya unción se explica a con inuación:  Ac ualización de lis ados: Solici a a la aplicación se ido el lis ado con los iche os disponibles, según se haya con igu ado el se ido en su aplicación.  Lis a de desca gas: Mues a po pan alla el lis ado de los iche os con o ma o álido ob enidos en el paso an e io . Pe mi e selecciona los que se desee desca ga , y ealiza la solici ud de desca ga al se ido .  Lis a de isionado: Mues a po pan alla los iche os con que se han desca gado en el paso an e io . Pe mi e selecciona los que se deseen 38 mos a , y ealiza la impo ación de los mismos pa a mos a los po pan alla a a és del ma cado y la cáma a.  Menú de con igu ación: Pe mi e con igu a la di ección IP local donde se encuen a conec ada la aplicación se ido . A la ho a de p og ama el compo amien o de cada en ana, hay que ene en cuen a dos ac o es. P ime o, como ocu e en oda aplicación g á ica, las en anas e in o mación que se isualizan po pan alla se es án ac ualizando cons an emen e median e una unción de ac ualizado. Segundo, cualquie in en o de conexión con el se ido debe ealiza se ue a del bucle de ac ualización del apa ado g á ico. Debido a es o, la máquina de es ados de ansición en e aplicaciones debe ac ualiza se pa a e leja es as ca ac e ís icas. Así pues, la máquina de es ados queda ía de la siguien e mane a: Figu a 4.4.5 – Máquina de es ados pa a la ansición en e en anas de la aplicación En o al, el sc ip de MenuBeha iou iene p og amados ocho es ados de la máquina de es ados de la aplicación (Figu a 4.4.5). Las acciones que debe ealiza cada nodo de la máquina de es ados ienen explicadas a con inuación: - OnUpda eLis : Es e mé odo in en a ealiza una pe ición al se ido pa a ob ene y desca ga el lis ado de iche os disponibles pa a su pos e io desca ga. - Upda eLis : Es e mé odo mos a á po pan alla si la acción de desca ga el lis ado de iche os ha enido éxi o o no. - OnDownloadI ems: La unción de es e mé odo es la de ab i el lis ado de iche os ob enido en el paso an e io y ca ga en un ec o de ex o odos los nomb es que se encuen en en el lis ado. 39 - DownloadI ems: Con es e mé odo se mues a po pan alla el ec o de ex o con odos los iche os que se encuen an en el se ido . Jun o al nomb e de cada iche o apa ece á una casilla qué se u iliza pa a elegi que iche os se desean desca ga . Al pulsa sob e el bo ón de acep a que se encuen a en es a en ana, el p og ama e isa á qué iche os han sido seleccionados, c eando un s eam de da os con odos los nomb es de los iche os seleccionados. A con inuación, ealiza á una pe ición al se ido pa a solici a la desca ga de dichos iche os. Todos los iche os desca gados se almacenan empo almen e en una ca pe a in e na de la aplicación. El máximo de memo ia pa a el almacenamien o de iche os se ha es ablecido en 200MB; lími e que se ha es ablecido in e namen e y que, po mo i os de segu idad, se ha decidido no pe mi i que pueda se modi icado po el usua io. - OnShowI ems: Es e mé odo e isa los iche os almacenados en la ca pe a in e na de desca gas, y lis a sus nomb es en un ec o de ex o. - ShowI ems: Con el ec o que con iene los nomb es de los iche os desca gados, es e mé odo los mos a á po pan alla, jun o a su casilla de selección co espondien e, que se u iliza á pa a selecciona qué modelos se quie en mos a en el ma cado de ealidad aumen ada. Al pulsa sob e el bo ón de acep a , se e isan qué modelos han sido seleccionados de odos los disponibles, y se ca ga án en el iso de modelos median e la u ilización de los impo ado es de modelos, que se explica án en un apa ado pos e io . - OnCon igConnec ion: Es e mé odo ab i á el iche o de con igu ación que iene la aplicación, pa a mos a los pa áme os en el siguien e es ado. - COn igConnec ion: Es e mé odo pe mi e isualiza y edi a los pa áme os de con igu ación de la aplicación. En es os momen os, el único pa áme o que se puede modi ica co esponde con la di ección IP local, que debe á con igu a se con la di ección IP local que o ece la aplicación se ido , explicada an e io men e. Reco da que odas las unciones y he amien as elacionadas con la conexión TCP con el se ido han sido explicadas en el apa ado de he amien as pa a conexión clien e-se ido . A la ho a de ges iona los e o es que pueden p o oca las excepciones de con ol en los mé odos de conexión, se ha decidido mos a po pan alla que no se ha podido es ablece la conexión con el se ido , además de einicia odos los socke s y pue os. De es a o ma se puede asegu a que no exis i á un socke con una conexión mal ce ada, pe mi iendo que la aplicación siga su ejecución sin ningún con a iempo. Los iempos de espe a de odos los in en os de conexión se ha es ablecido en cinco segundos, po mo i os de segu idad y de consumo, an o de memo ia como de ba e ía del disposi i o mó il donde se ejecu e la aplicación. 40 4.4.3.- Impo ado de modelos El abajo que debe lle a a cabo el impo ado de modelos es el de se capaz de ab i un de e minado iche o que con enga un modelos, y ex ae oda la in o mación del mismo. Dicha in o mación se á almacenada en una es uc u a in e media, y a con inuación indexada a un obje o in e no de Uni y. En el apa ado de isualización y Vu o ia se explicó la exis encia de un obje o acío de nomb e modelHolde que se á el que se u iliza á a con inuación pa a pode ges iona los modelos que se deseen ca ga . El impo ado de modelos debe se capaz de ab i e in e p e a los dos o ma os de iche o pa a modelos explicados an e io men e: El o ma o Wa eF on OBJ y el o ma o STe eoLi hog aphy STL. La p og amación de odo el sis ema de impo ación de modelos se ha ealizado con el lenguaje de p og amación C#, y se ha es uc u ado de la siguien e mane a:  Poin .cs y Poin 3D.cs: Se a a de dos es uc u as de da os auxilia es, pa a acili a la p og amación de los módulos supe io es.  MeshBuilde .cs: Es uc u a in e media que con iene oda la in o mación ela i a al modelo que se desea ca ga .  ObjReade .cs: Es a clase con iene odo lo necesa io pa a ab i e in e p e a un iche o en o ma o Wa eF on OBJ, así como las es uc u as necesa ias pa a almacena la in o mación asociada al modelo que se es á leyendo.  S LReade .cs: Es a clase con iene las he amien as necesa ias pa a ab i e in e p e a un iche o en o ma o STe eoLi hog aphy STL, además de las es uc u as necesa ias pa a con ene oda la in o mación asociada al modelo que se es á leyendo.  ex e nalReade .cs: La clase p incipal de odo el impo ado. Encapsula el es o de clases y mé odos pa a u iliza odo el impo ado con la mayo acilidad posible en las capas supe io es de la aplicación. La es uc u a de dependencias de odas las clases implemen adas se puede obse a en la siguien e igu a (Figu a 4.4.6): Figu a 4.4.6 – Diag ama de dependencias del impo ado de modelos 41 A la ho a de ca ga el modelo den o de Uni y, hay que asocia sus componen es a un obje o in e no llamado GameObjec . Un GameObjec es el componen e básico, y po an o el más impo an e, que puede exis i en Uni y. Se puede en ende un GameObjec como si ue a un con enedo , y en unción de qué componen es se asocien a él, el GameObjec puede ep esen a cualquie a de los o os componen es que exis en en Uni y. De odos los componen es que pueden o ma pa e de un GameObjec , se explican a con inuación únicamen e aquellos que an a hace al a pa a la aplicación ac ual:  Mesh: Un mesh consis e en una colección de é ices, lados y ca as que de inen la o ma de un obje o idimensional den o de un dominio basado en modelado sólido y de g á icos po compu ado . En el caso de Uni y, además de asocia los é ices y los iángulos que con o man el modelo, ambién es necesa io asocia un ec o no mal, así como una coo denada de ex u a (en el caso de que exis an) a cada é ice del mesh. Es muy impo an e eco da la impo ancia del o den en el que se de inen los iángulos, así como la di ección de los ec o es no males, ya que en caso de que es os da os no sean co ec os, no se pod ía isualiza co ec amen e el modelo.  T ans o m: Uni y se á incapaz de mos a po pan alla un modelo si no iene una ans o mación asociada al mismo. Una ans o mación de ine la posición, o ación y escala de un obje o a la ho a de posiciona lo en una escena. Aunque la aplicación diseñada no a a gene a ningún ipo de ans o mación especial o animación, es necesa io de ini dicha ans o mación, aunque sea con los alo es po de ec o de la misma.  MeshFil e : La unción de un MeshFil e den o de Uni y es la de asocia un mesh y asigna lo co ec amen e, pa a pode ende iza lo a con inuación.  MeshRende e : Es e componen e del GameObjec usa á el MeshFil e que enga asociado, así como cualquie componen e de ipo ans o mación que posea, pa a ende iza el modelo en la posición deseada.  Ma e ial: Es e componen e a a ges iona odas las p opiedades del ma e ial que con o ma el obje o. Es e obje o a a a ec a a la iluminación y aspec o del modelo que se desea ca ga . A ibu os como las componen es del modelo de iluminación y e acción de la luz sob e la supe icie del modelo son especi icados aquí (Componen es como luz ambien al, di usa, especula o anspa encia, en e o os). Lími e de é ices po malla Una pa icula idad muy impo an e que hay que ene en cuen a a la ho a de c ea una malla o mesh pa a el modelo, es que el núme o o al de é ices que puede con ene no debe supe a en ningún momen o la co a de 65.000. Si en algún momen o llega a a sucede es o el modelo no pod ía se ca gado. Se a a de una es icción 48 Figu a 4.5.4 – Menú de isualización. Selección de modelos 9) De o ma simila al paso 6, se puede selecciona qué modelos se desean isualiza en el disposi i o clien e. Al pulsa el bo ón acep a , se le pide al impo ado que ab a y lea dichos iche os. 10) El impo ado se enca ga de e la ex ensión de los iche os a ca ga , y usa el módulo co espondien e pa a lle a a cabo dicha a ea. Los modelos se ca gan en las es uc u as co espondien es y se mues an po pan alla con la ayuda del ma cado de ealidad aumen ada (Figu a 4.5.5) (Figu a 4.5.6) (Figu a 4.5.7) (Figu a 4.5.8). Figu a 4.5.5 – Modelo A sob e ma cado 49 Figu a 4.5.6 – Modelo B sob e ma cado 11) Los pasos 4, 5 y 8 se pueden epe i an as eces como se quie a. 12) Los iche os que se encuen an en la ca pe a del se ido pueden modi ica se y bo a se sin necesidad de ce a ninguna aplicación. También pueden añadi se nue os iche os sin ningún p oblema. Po supues o, sí que se á necesa io epe i los pasos 4, 5 y 8 pa a que los cambios engan e ec o en el clien e. Figu a 4.5.7 – Modelo C sob e ma cado 50 P oblemas encon ados A la ho a de implemen a odo el sis ema, se han ido encon ando di e sos p oblemas, que se han enido que esol e a medida que a anzaba el desa ollo de las aplicaciones. Se an a comen a a con inuación dichos p oblemas, y cómo han sido abo dados. Los p ime os p oblemas que se encon a on es án elacionados con la conexión a in e ne de los socke s TCP. Un socke ealiza una conexión di ec a a a és de un pue o en e dos e minales. Pa a ealiza dicha conexión se hace uso de las di ecciones IP de las máquinas implicadas. Uno de los p oblemas su ge a aíz de in en a es ablece dicha conexión. En el caso de usa una ed de á ea local LAN, el p oblema se educe a ealiza la con igu ación co ec a de di ecciones y pue os. Dejando el pue o ijo y ocul o al usua io, es o deja de supone una moles ia. En cambio, con igu a la di ección IP en el clien e es di e en e y bas an e más complejo. No malmen e, un disposi i o con la posibilidad de conec a se a in e ne iene con igu ado po de ec o la denominada IP dinámica. Es o es que, la di ección IP no iene po qué se siemp e la misma. Pa a pode so ea es e p oblema, es necesa io gene a una opción en la aplicación que pe mi a con igu a de o ma manual la misma (lo cual es lo que se ha ealizado). El segundo p oblema, y más g a e, ocu e cuando se in en an conec a las dos aplicaciones si se encuen an en edes dis in as. Pa a pode ealiza es a conexión, hace al a u iliza la di ección IP pública del se ido . Po desg acia, además de es o, es necesa io con igu a el ou e en el que se encuen a conec ado el se ido . Dicha con igu ación debe ealiza la el adminis ado de dicha ed. En el caso de que la ed sea pública, es a con igu ación no se pod á lle a a cabo en la mayo ía de los casos. Ya que es e p oblema de conexión no es causado po la aplicación en sí misma, no a a se posible esol e se con acilidad. Teó icamen e, si es a con igu ación se lle a a a cabo de o ma co ec a, no debe ía habe ningún p oblema ex a pa a ealiza la conexión en e las aplicaciones a a és de in e ne . Figu a 4.5.8 – Modelo D sob e ma cado 51 El segundo ema p oblemá ico su ge con los o ma os de iche o que almacenan los modelos. En una p ime a ins ancia, se deseaba que la aplicación ue a capaz de ca ga modelos almacenados en es o ma os: OBJ, STL y 3DS. Po desg acia, no exis e una especi icación comple a, iable y de código abie o pa a el e ce o ma o ci ado. Debido a es o, los ca gado es que se han in en ado p oba y/o implemen a gene an esul ados imp e isibles y en la mayo ía de casos, no sa is ac o ios. Es po es o que se ha decidido no inclui es e o ma o en la aplicación ac ual. Si en un u u o se libe a a la especi icación comple a, o se consiguie a c ea con éxi o un ca gado comple o, inclui lo en el impo ado p og amado no debe ía supone un g an es ue zo po pa e del p og amado . Es o es g acias a la o ma modula que se le ha dado al impo ado de iche os. 52 53 Capí ulo 5 PRUEBAS Y RESULTADOS Con las aplicaciones ya comple as. Se deseaba comp oba el endimien o y obse a los iempos de ca ga de los modelos. En conc e o, se que ía analiza la can idad de modelos que se pueden llega a ca ga en el disposi i o sin que a ec a al endimien o del mismo. Pa a ello, se han ealizado una se ie de p uebas de ca ga sob e dos disposi i os mó iles. Los disposi i os mó iles que se han u ilizado pa a las p uebas uncionan sob e el sis ema ope a i o And oid. Los mó iles usados han sido el BQ Aqua is 5 [ABQ5 16] y el LG Nexus 5 [NEX5 16]. Sus especi icaciones écnicas se mues an a con inuación (Figu a 5.2.1): BQ Aqua is 5 LG Nexus 5 Medidas 142x71x9,9 137,2x69,2x8,6 Peso 170g 130g Pan alla 5" 4.95" Resolución 540x960. 220 PPI 1080x1920. 445PPI Memo ia 16GB 16GB P ocesado Co ex A7 Qualcomm Snapd agon 800 MSM8974 Reloj / Núcleos 1.2GHz / Quad Co e 2.3GHz / Quad Co e Memo ia RAM 1GB 2GB Sis ema Ope a i o And oid 4.2 And oid 4.4 Ki Ka Conexión ed Wi i 802.11 b/g/n Wi i 802.11 a/b/g/n/ac Figu a 5.2.1 – Tabla de especi icaciones Des aca que, a p ime a is a, la po encia del e minal Nexus 5 es mayo que la del Aqua is 5, y es o a ec a á a los esul ados ob enidos en las p uebas. 5.1.- P uebas ealizadas Pa a comp oba el endimien o de la aplicación y de los e minales, se han lle ado a cabo dos p uebas. En la p ime a p ueba, se han medido los iempos de ca ga y isualizado de una se ie de modelos idimensionales en cada disposi i o. Las p uebas se han epe ido a ias eces en cada disposi i o, y se ha ob enido la media de odas las p uebas pa a cada modelo. Se han u ilizado 13 modelos pa a cada p ueba, y se ha lanzado cada p ueba un o al de 5 eces po disposi i o, aplicando la media a i mé ica a cada conjun o de mues as. Los esul ados se han ag upado en unción del o ma o de iche o. 54 En la segunda p ueba, se ha medido el F ame Ra e (FPS) en unción del núme o de é ices de los modelos mos ados po pan alla. Pa a la ealización de es a p ueba se han usado los 26 modelos. Du an e la isualización de cada modelo, se han adqui ido los FPS de cada disposi i o du an e in e alos de iempo ijos, ob eniendo la media a i mé ica de cada in e alo y modelo. 5.2.- Resul ados ob enidos A con inuación se mues an las g á icas que ep esen an los esul ados que se han ob enido en las p uebas ealizadas y las conclusiones ex aídas de las mismas. Tiempos de ca ga Las mediciones se han ealizado en unción del núme o de é ices y del iempo que ha a dado cada e minal en ca ga dichos modelos (Figu a 5.2.2) (Figu a 5.2.3). Figu a 5.2.2 – Tiempos de ca ga OBJ Figu a 5.2.3 – Tiempos de ca ga STL 0,00 0,50 1,00 1,50 2,00 2,50 3,00 3,50 4,00 2.000 3.000 4.000 5.000 6.000 7.000 8.000 9.000 10.000 Tiempo (segundos) Núme o de e ices Tiempos de ca ga - Fiche os .OBJ Tiempo BQ5 Tiempo Nexus5 0,00 5,00 10,00 15,00 20,00 0 200.000 400.000 600.000 800.000 1.000.000 1.200.000 1.400.000 Tiempo (segundos) Núme o de e ices Tiempos de ca ga - Fiche os .STL Tiempo BQ5 Tiempo Nexus5 55 Lo p ime o a des aca an es de en a en de alle con los esul ados es que, debido a la po encia supe io del e minal Nexus 5 en e al Aqua is 5, es de lógica asumi que los iempos de ca ga se án meno es en el p ime o en e al segundo. Cen ándonos en los da os, lo p ime o que llama la a ención es el iempo de ca ga de los modelos en o ma o OBJ en e al o ma o STL, en unción del núme o de é ices. El o ma o STL se ca ga mucho más ápido que el o ma o OBJ, pese a que los modelos del o ma o STL ienen una can idad muchísimo mayo de é ices que los modelos del o ma o OBJ. Se ha llegado a la conclusión de que es o es debido a la o ma en que es án codi icados dichos o ma os. La codi icación en ASCII es mucho más len a de p ocesa que la codi icación di ec amen e en bina io. Además, al sabe en odo momen o qué da os espe a en la codi icación bina ia de STL hace que la lec u a de es os iche os sea mucho más ápida y e icien e. Se puede ap ecia que los iempos de ca ga c ecen de o ma lineal con el núme o de é ices, lo cual se co esponde con lo que se espe aba que ocu ie a an es de ealiza las p uebas. Des aca que la alen ización que pueda su i la aplicación an o a la ho a de ca ga como de isualiza los modelos se a a debe al núme o de polígonos o ales que se es én mos ando po pan alla, y no al núme o de modelos en sí mismo. Cen ándose en el o ma o STL, cualquie combinación de modelos cuya combinación de é ices no sob epase los 200.000 é ices end á unos iempos de ca ga lo su icien emen e bajos como pa a no esul a le moles os a un usua io en lo que a endimien o se e ie e. Po el con a io, cualquie ca ga que supe e es e lími e empeza á a no a se en la luidez de la isualización a a és de la cáma a, así como en el uncionamien o global del e minal. Sob epasa los 600.000 é ices supone iempos de ca ga supe io es a los 4 segundos en el mejo de los casos, y no es ecomendable ca ga al can idad de polígonos con disposi i os mó iles de es as ca ac e ís icas, an o po mo i os de memo ia, como de endimien o, como de ba e ía. Pa a inaliza , comen a que siemp e que sea posible escoge el ipo de o ma o del modelo, se debe ía escoge STL sob e OBJ, ya que posee meno es iempos de ca ga, y pe mi e ca ga igu as más complejas en menos iempo. Po supues o, pa a igu as pequeñas o pa a casos en los que los iempos de ca ga no sean de una impo ancia ele an e, se puede usa lib emen e el o ma o que sea. Eso sí, ecalca una ez más, que el endimien o de los e minales empieza a esen i se al ededo de los 200.000 é ices mos ados po pan alla. Fo og amas po segundo Las mediciones se han ealizado en unción del núme o de é ices mos ados po pan alla y de los FPS de los in e alos de iempo en los que se es aban isualizando los modelos (Figu a 5.2.4). 56 Figu a 5.2.4 – Relación FPS – Vé ices Lo p ime o que se puede ap ecia es que los FPS medidos pa a el Sma phone Aqua is 5 son más ele ados que en el mó il Nexus 5. Es o se debe al amaño de las esoluciones de pan alla de los dos disposi i os. La esolución en el caso del Nexus 5 es p ác icamen e el doble que en el Aqua is 5. Se puede ap ecia cla amen e como en isualizaciones que quedan po debajo de los 100.000 é ices se ob iene al ededo de unos 30FPS en el caso del Nexus 5 y 40FPS en el caso del Aqua is 5, mien as que con meno can idad de é ices, es os modelos se pueden isualiza p ác icamen e a la elocidad máxima pe mi ida po cada Sma phone. Po o a pa e, es a pa i de los 200.000 é ices que ambos disposi i os empiezan a esen i se de la can idad de polígonos mos ados po pan alla y empiezan a su i alen izaciones. Du an e las p uebas ambién se pudo ap ecia que a pa i de es e umb al ambos disposi i os empezaban a calen a se en exceso debido al eque imien o de cálculo po pa e de los p ocesado es g á icos, además del al o consumo de ba e ía asociado a es a necesidad. A pa i de los 600.000 é ices se ob ienen unas mediciones al ededo de los 10FPS llegando a baja a unos 3FPS con más de 1.000.000 de é ices en pan alla. A aíz de es os esul ados se llega a la conclusión de que, cualquie combinación de modelos que no supe e los 200.000 é ices se pod án isualiza sin ningún p oblema. No es nada ecomendable supe a dicha limi ación, siendo incluso in e esan e bloquea a ni el in e no cualquie in en o de sob epasa dicho lími e, po mo i os de segu idad pa a el disposi i o. 0 10 20 30 40 50 60 70 80 0 200.000 400.000 600.000 800.000 1.000.000 1.200.000 1.400.000 F ame Ra e (FPS) Vé ices Relación FPS - Vé ices FPS BQ5 FPS Nexus5 57 Capí ulo 6 CONCLUSIONES Median e la ealización de es e p oyec o, a ni el pe sonal, se ha conseguido e o za los conocimien os elacionados con el desa ollo de aplicaciones que puedan conec a se a una ed de á ea local y compa i in o mación. Po o a pa e, se ha ap endido a u iliza la popula pla a o ma de desa ollo Uni y pa a la c eación de aplicaciones g á icas pa a disposi i os mó iles basados en And oid. Además, median e la u ilización de Vu o ia, se ha conseguido ap ecia la u ilidad y po encia de las he amien as de Realidad Aumen ada a la ho a de in e ac ua con los usua ios y de gene a con enido. Respec o al p oyec o, se han conseguido lle a a cabo los obje i os plan eados. Median e la c eación de un sis ema clien e-se ido , se ha conseguido sepa a el almacenamien o de los iche os del iso , pe mi iendo así libe a la memo ia de los disposi i os mó iles, ap o echando la capacidad de almacenamien o supe io de los o denado es de sob emesa. Además, los iche os con los da os se pueden modi ica en cualquie momen o, haciendo que no sea necesa io ene que ol e a compila o eins ala ninguna de las aplicaciones en ningún momen o. Median e la in es igación de las ecnologías basadas en RA, se ha obse ado que a día de hoy exis en mul i ud de es udios y he amien as que gi an en o no a es a ecnología, además de la exis encia de emp esas de desa ollo de so wa e impo an es en el sec o del en e enimien o y del desa ollo de ideojuegos. Queda pa en e que la in es igación y explo ación de la ealidad aumen ada es un campo abie o y que aún queda una g an ía abie a pa a la in es igación y desa ollo de nue os disposi i os, simulado es y mé odos que usen la ealidad aumen ada den o de múl iples campos y di e sas o mas. Además la u ilización de la RA puede desemboca en la c eación de po en es he amien as de simulación y ap endizaje, como puede se en el en o no de la medicina o en la indus ia de desa ollo. O o de los aspec os a ados en el p oyec o ha consis ido en la c eación de un sis ema de impo ación de iche os. Al habe se desa ollado de o ma modula y po sepa ado del es o del p oyec o, queda abie a la opción de pode amplia lo a medida que apa ezcan nue os o ma os de iche o de código abie o con su especi icación disponible. Además, al es a desa ollado en el lenguaje C#, és e puede se usado en cualquie o a aplicación basada en .NET median e la c eación de una lib e ía ex e na. La habilidad de pode e isa y p ocesa es os iche os en iempo de ejecución ha sido i al pa a lle a a buen é mino el desa ollo de las aplicaciones p esen adas. Pa a inaliza , y a modo de opinión pe sonal, des aca la u ilidad y po encia de la ealidad aumen ada, y que es cues ión de iempo que empiece a in eg a se en la ida co idiana, con he amien as de apoyo y guía. En conc e o, pienso que es a ecnología pod ía llega a ene una u ilidad incalculable a la ho a de desa olla aplicaciones que si an de ayuda a pe sonas con discapacidades, an o ísicas como men ales.