Joc pe dispozitive mobile de realitate augmentată Lucian -Ionuț Lazăr Coordonator științific: Conf. dr. ing. Anca Morar BUCURE ȘTI 2019 2 CUPRINS… [620365]
UNIVERSITATEA POLITEHNICA BUCUREȘTI
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
DEPARTAMENTUL CALCULATOARE
PROIECT DE DIPLOMĂ
Joc pe dispozitive mobile de realitate augmentată
Lucian -Ionuț Lazăr
Coordonator științific:
Conf. dr. ing. Anca Morar
BUCURE ȘTI
2019
2
CUPRINS
Listă de figuri ………………………….. ………………………….. ………………………….. ……………………. 5
Sinopsis ………………………….. ………………………….. ………………………….. ………………………….. . 6
Abstract ………………………….. ………………………….. ………………………….. ………………………….. 6
1 Introducere ………………………….. ………………………….. ………………………….. ………………. 7
1.1 Context ………………………….. ………………………….. ………………………….. ………………. 7
1.2 Problema ………………………….. ………………………….. ………………………….. ……………. 7
1.3 Obiective ………………………….. ………………………….. ………………………….. …………….. 8
2 Realitatea augmentată ………………………….. ………………………….. ………………………….. .. 9
2.1 AR versus VR versus MR ………………………….. ………………………….. …………………………. 9
2.2 Tehnologii ………………………….. ………………………….. ………………………….. ……………… 10
2.2.1 Modelul „Optical see -through” ………………………….. ………………………….. ……….. 10
2.2.2 Modelul „Video see -through” ………………………….. ………………………….. …………. 10
2.3 Sisteme de control ………………………….. ………………………….. ………………………….. ….. 11
2.3.1 Sisteme senzoriale ………………………….. ………………………….. ………………………… 11
2.3.2 Sisteme asistate de calculator ………………………….. ………………………….. …………. 11
2.4 „Marker -based tracking” ………………………….. ………………………….. ………………………. 12
2.5 „Markerless tracking” ………………………….. ………………………….. ………………………….. 12
2.6 Modelul structural ………………………….. ………………………….. ………………………….. ….. 13
2.6.1 Nivelul s oftware ………………………….. ………………………….. ………………………….. .. 13
2.6.2 Controlul fluxului într -o aplicație de realitate augmentată ………………………….. .. 13
3 State of the art ………………………….. ………………………….. ………………………….. ………… 15
3.1 Istoric ………………………….. ………………………….. ………………………….. ……………….. 15
3.1.1 MARTA – Mobile Augmented Reality Technical Assistance ……………………….. 16
3.1.2 Word Lens ………………………….. ………………………….. ………………………….. …… 17
3.1.3 IKEA Pla ce ………………………….. ………………………….. ………………………….. ……….. 17
3.1.4 Pokémon GO ………………………….. ………………………….. ………………………….. …… 17
3.1.5 Just a Line ………………………….. ………………………….. ………………………….. ……….. 18
3.2 Tehnologiile folosi te în prezent ………………………….. ………………………….. …………. 19
3.2.1 ARCore ………………………….. ………………………….. ………………………….. …………… 19
3.2.2 ARKit ………………………….. ………………………….. ………………………….. ………………. 20
3.2.3 Vuforia ………………………….. ………………………….. ………………………….. ……….. 20
3
3.2.4 Analiză comparativă a modelelor enumerate ………………………….. …………….. 22
3.3 Direcții de explorare ………………………….. ………………………….. ………………………….. .. 22
4. Analiza aplicației ………………………….. ………………………….. ………………………….. ………….. 24
4.1 Cerințe prealabile de funcționare ………………………….. ………………………….. …………… 24
4.2 Descrierea aplicației ………………………….. ………………………….. ………………………… 25
5 Soluția propusă ………………………….. ………………………….. ………………………….. ……….. 27
5.1 Caracteristici generale ………………………….. ………………………….. …………………………. 27
5.2 Unity3D ………………………….. ………………………….. ………………………….. ………………… 27
5.3 Vuforia ………………………….. ………………………….. ………………………….. ………………….. 29
5.4 Arhitectura aplicației ………………………….. ………………………….. ………………………….. . 30
5.4.1 Stabilirea platformei de dezvoltare ………………………….. ………………………….. ….. 30
5.4.2 Diagrama de clase ………………………….. ………………………….. …………………………. 30
5.4.3 Descrierea fluxului jocului ………………………….. ………………………….. ………………. 32
6 Detalii de implementare ………………………….. ………………………….. ………………………… 33
6.1 Dezvoltarea aplicației ………………………….. ………………………….. ………………………. 33
6.2 MainMenu ………………………….. ………………………….. ………………………….. …………….. 33
6.2.1 Background ………………………….. ………………………….. ………………………….. …. 34
6.2.2 SceneController ………………………….. ………………………….. ……………………….. 34
6.2.3 Canvas ………………………….. ………………………….. ………………………….. ……….. 34
6.3 WaitingPlayers ………………………….. ………………………….. ………………………….. …… 35
6.3.1 Background ………………………….. ………………………….. ………………………….. …. 36
6.3.2 CreateGame ………………………….. ………………………….. ………………………….. … 36
6.3.3 JoinGame ………………………….. ………………………….. ………………………….. ……. 36
6.3.4 StartOffline ………………………….. ………………………….. ………………………….. …. 36
6.3.5 CreateGameScript.cs ………………………….. ………………………….. …………………. 36
6.3.6 „IpField”, „NameField” și „IpText” ………………………….. ………………………….. .. 37
6.4 Nivelul de joc ………………………….. ………………………….. ………………………….. …….. 37
6.4.1 Vizualizare perspectivă ………………………….. ………………………….. ………………. 37
6.4.2 UPB ………………………….. ………………………….. ………………………….. ………………… 39
6.4.3 GunGame ………………………….. ………………………….. ………………………….. ……….. 40
7. Concluzii ………………………….. ………………………….. ………………………….. …………………….. 41
7.1 Evaluarea aplicației ………………………….. ………………………….. ………………………….. …. 41
4
8. Dezvoltări ulterioare ………………………….. ………………………….. ………………………….. …. 42
9. Bibliografie ………………………….. ………………………….. ………………………….. ……………… 43
10. Anexe ………………………….. ………………………….. ………………………….. ………………………. 45
5
LISTĂ DE FIGURI
Figura 1 Mixed Reality Continuum [2]………………………….. ………………………….. ………………. 9
Figura 2 Optical see -through model ………………………….. ………………………….. ……………….. 10
Figura 3 Video see -through model ………………………….. ………………………….. …………………. 10
Figura 4 Head Mounted Display [4] ………………………….. ………………………….. ……………….. 15
Figura 5 MARTA Augmented Reality [9] ………………………….. ………………………….. ………….. 17
Figura 6 Pokémon Go ………………………….. ………………………….. ………………………….. ……… 18
Figura 7 Diagrama cazurilor de utilizare ………………………….. ………………………….. ………….. 25
Figura 8 Diagramă de clase ………………………….. ………………………….. ………………………….. . 31
Figura 9 Diagrama clasei jocului UPB ………………………….. ………………………….. ……………… 31
Figura 10 Sesiune d e joc ………………………….. ………………………….. ………………………….. ….. 32
Figura 11 SceneController ………………………….. ………………………….. ………………………….. .. 34
Figura 12 Ierarhia scenei MainMenu ………………………….. ………………………….. ……………… 35
Figura 13 Ierarhia scenei WaitingPlayers ………………………….. ………………………….. ………… 35
Figura 14 Vizua lizare tridemensională ………………………….. ………………………….. ……………. 38
Figura 15 Vizualizare tridimensională din perspectivă ………………………….. …………………… 38
Figura 16 Structură inelară ………………………….. ………………………….. ………………………….. . 39
Figura 17 Structură piramidală ………………………….. ………………………….. ……………………… 40
Figura 18 Schemă logică a duratei de viață a unui script [18] ………………………….. ………….. 45
6
SINOPSIS
Proiectul de față își propune analiza realității augmentate și implementările sale pe
dispozitivele mobile, precum și dezvoltarea , cu succes, a prototipului unei aplicații Android de
realitate augmentată , folosind motorul grafic Unity împreună cu modul ul Vuforia.
ABSTRACT
This thesis emphasizes the analysis of augmented reality and the ways of how it is
implemented in real life, especially in mobile environments, followed by a description of the
development process in which an Android app lication’s prototype has been implemented
using the Unity game engine based on the augmented reality module defined by Vuforia.
7
1 INTRODUCERE
Realitatea augmentată a căpătat o notorietate însemnată în sfera tehnologiilor secolului al
XXI-lea. O dată cu creșterea capabilităților hardware, de -a lungul ultimilor ani, a avut loc
extinderea ariei de aplicabilitate a realității augmentate în diferite domenii ale științei precum
medicină, arhitectură și nu numai.
În sens larg, realitatea augmentată se poate defini ca acea ramură a tehnologiei ce permite
suprapunerea conținutului virtual cu lumea reală. De obicei, aceasta este asociată cu
generarea conți nutului tridimensional prin prisma unui flux video al unei camere digitale, însă
cazurile de utilizare se extind în domenii mult mai variate .
Probabil că cea mai simplă formă a realit ății augmentat e pe care oamenii au fol osit-o de zeci
de ani este cea î ncorporată în aparatele de fotografiat. Vizorul, partea aparatului de
fotografiat prin care utilizatorul poate privi imaginea ce va fi capturată, descrie o formă
primitivă a realității augmentate. În esență, vizorul „privește” prin lentilele aparatului de
fotografiat și dispune imaginea obținută pe un strat fin de sticlă, izolând astfel zona de interes
a fotografului. [1]
1.1 Context
Acest proiect are rolul de a analiza și a compara diferitele modalități de implementare a
tehnolog iei AR pe dispozitivele mobile. Deoarece nu există o soluție ideală prin care se poate
atinge acest obiectiv, în cea de -a doua parte a lucrării am ales mediul de dezvoltare al
aplicațiilor mobile pus la dispoziție de către Unity și capabilitățile bibliotec ii Vuforia,
specializată pe domeniul AR , cu care am implementat un prototip al unei aplicații de realitate
augmentată pe un dispozitiv mobil echipat cu sistemul de operare Android .
1.2 Problema
In contextul în care oamenii de orice v ârstă devin di n ce în ce mai dependen ți de calculator,
jocurile au cunoscut încă de la apari ția lor un succes remarcabil. La nivel mondial exist ă 2.5
miliarde de juc ători, iar această industrie este în continu ă dezvoltare. De asemenea, conform
aceluia și studiu, 76% dint re ace știa prefer ă jocurile pe telefon, în detrimentul celor dezvoltate
specific pentru calculator. În mediul online , jocurile „multiplayer ” au devenit virale datorit ă
divertismentului și posibilit ății de a împărtăși cu ceilal ți jucători experien țele pe ca re aceast ă
industrie le asigur ă.
Totodată, piața aplicațiilor de tip AR este una foarte volatilă. Dezvoltatorii de jocuri video
preferă siguranță în detrimentul inovației , astfel că domeniul realității augmentate este unul
destul de rar întâlnit si nu foar te mediatizat.
Realitatea augmentat ă este realitatea actual ă. Pornind , inițial, de la un simplu concept, într-o
lume creat ă cu ajutorul acesteia , elementele artificiale se îmbin ă cu aspecte ale universului
fizic, ceea ce spore ște percep ția de realitate a i ndividului.
8
1.3 Obiective
Scopul proiectului meu este de a evidenția posibilitățile de dezvoltare a mediului AR , cu
precădere în industria dispozitivelor mobile , și înlăturarea reticenței pe care dezvoltatorii de
jocuri video o au în raport cu mediul augm entat. De asemenea, în această lucrare voi aborda
și lipsa de experiență de care societatea dă dovadă cu privire la capabilitățile domeniului de
realitate augmentată și voi expune mediile de aplicabilitate ale acesteia, precum și o selecție
ale celor mai u tilizate aplicații pe parcursul ultimilor ani.
9
2 REALITATEA AUGMENTAT Ă
Realitatea augmentată, în esență, îmbină lumea reală ce ne înconjoară cu informațiile digitale
realizate pe calculator. În prezent, din punct de vedere al proiectelor de cercetare în acest
domeniu, realitatea augmentată se concentrează pe două domenii, domeniul grafici i pe
calculator și domeniul „Computer Vision”. Cel din urmă descrie modalitățile de recunoaștere
și detecție a mișcării, detecția markerelor și a caracteristicil or de interes, analiza imaginii,
recunoașterea gesturilor și construcția mediilor contro late prin utilizarea de senzori, iar, prin
grafica de calculator, se expun redarea realistă și animațiile interactive.
2.1 AR v ersus VR v ersu s MR
În domeniul de specialitat e, realitatea augmentată este identificată drept un sistem ce
evoluează în timp real. De asemenea, o imagine statică , asupra căreia se generează elemente
grafice și i se induce o interactivitate cu aceasta, descrie , în forma ei cea mai simplă, un sistem
de realitate augmentată.
Pe de altă parte, realitatea virtuală descrie plasarea subiectului într -un mediu virtual, generat
pe calculator. Subiectul ce se identifică într -un astfel de mediu, din punct de vedere vizual,
observă o realitate artificială.
Diferen ța conceptuală dintre mediul real și mediul virtual a fost descrisă de către Paul Milgram
prin prezentarea unui continuum între realitate și virtualitate [2]. Astfel, sunt identificate
patru componente dispuse, grafic, pe un se gment ce determină, practic , realitatea mixtă .
Figur a 1 prezintă această reprezentare după cum a fost descrisă de către autor . Sistemul
realității mixte îmbină lumea reală cu mediile digitale cu scopul de a obține un univers bazat
pe interacțiunile dintre obiectele reale și cele virtuale.
Figur a 1 Mixed Reality Continuum [2]
10
2.2 Tehnologii
Augmentarea, în termeni generali, descrie acțiunea prin care simțurile senzoriale a le unei
pers oane sunt influențate de acțiuni externe. De exemplu, din punct de vedere auditiv,
augmentarea acestui simț se poate realiza prin utilizarea unor echipamente audio, cum ar fi
o pereche de căști ce pot fi modificate în vederea redării semnale lor audio generate pe un
calculator, îmbinate cu sunetele mediului înconjurător ce provin de la un microfon atașat.
Realitatea augmentată, însă, se concentrează pe augmentarea vizuală. Cronologic, primul
manifest de augmentare vizuală a fost „Sabia lui Damoc les”, descrisă în capitolul 3.1. De
atunci, însă, după o privire de ansamblu a ultimelor invenții din sfera realității augmentate, se
remarcă două modele principale de expunere AR.
2.2.1 Modelul „ Optical s ee-through”
Acest model descrie folosirea unui ecra n semi -transparent ce afișează elemente digitale
generate pe un calculator. Utilizatorul privește spre ecran, remarcă obiectul generat, dar
transparența ecranului permite acestuia și observarea mediului din spatele ecranului. Astfel,
suprapunerea obiectulu i cu mediul înconjurător nu este realizată pe suprafața ecranului, ci
mai exact pe suprafața retinei ochiului. Figur a 2 descrie o reprezentare grafică a acestui
model.
2.2.2 Modelul „ Video s ee-through”
Tehnol ogia „video see -through” presupune observarea mediului înconjurător prin
intermediul unui flux video, și nu prin observare directă. Fluxul poate proveni de la o cameră
video, iar mediul digital este desenat virtual și îmbinat cu acest flux . Utilizatorul pe rcepe
rezultatul final direct pe ecranul dispozitivului. Acest model este prezent în telefoanele
inteligente de astăzi și o vizualizare a sa se regăsește în Figur a 3.
Imagine formată
Ecran fizic
Cameră video
Obiect fizic
Imagine pe retină Ecran semi -transparent Obiect real
Figur a 2 Optical see -through model
Figur a 3 Video se e-through model
11
2.3 Sisteme de control
Sistemele de realitate augmentată di n zilele noastre se deosebesc , în principal, prin
caracteristica lor de a fi portabile, atât in mediul interio r, cât și exteri or. Probabil, cel mai bun
exemplu îl constituie telefoanele si tabletele inteligente. În această sferă se disting două
modele prin cipale ce sunt diferențiate prin modul specific de înregistrare a sistemului de
coord onate ale acestora.
2.3.1 Sisteme senzoriale
Sistemele senzoriale de realitate augmentată folosesc datele primite de la senzorii de
orientare și de localizare ale dispozi tivului. Analizând concomitent aceste informații, sistemul
distinge o poziție globală a utilizatorului în lumea reală.
Cel mai utilizat senzor de localizare este sistemul de poziționare globală, cunoscut drept GPS.
Senzorii de orientare, ca de exemplu acce lerometrele telefoanelor inteligente, permit
sistemului o acuratețe sporită de localizare a subiectului. În acest caz, sistemul GPS precizează
informații referitoare la poziție, însă nu este specializat în detecția înălțimii la care se afla
utilizatorul. În acest scenariu a ccelerometrul este de un real ajutor întrucât completează
informațiile necesare prin determinarea înălțimii și a orientării echipamentului, fapt ce
facilitează înregistrarea obiectelor virtuale în spațiul fizic.
Totuși , în prezent, există și o serie de limitări. Precizia sistemului GPS nu este una foarte
ridicată și tinde să producă rezultate incorecte în medii interioare, precum o clădire. Chiar și
în mediul exterior acesta poate produce latențe datorate timpului necesar de recepție al
datelor, rezultând în obiecte ce „plutesc ”, cu localizări nepotrivite.
2.3.2 Sisteme asistate de calculator
O dată cu ascensiunea masivă a dispozitivelor electronice, puterea de calcul a procesoarelor
a crescut considerabil după cum se poate observa și in telefoanele inteligente de astăzi. Mai
exact, există la momentul actual o tehnologie integrată în majoritatea dispozitivelor mobile,
al cărui obiectiv este recunoașterea facială a utilizatorului. Acest lucru a putut fi realizat prin
intermediul rețele lor neuronale în combinație cu algoritmi de procesare a imaginii. Același
model este des înt âlnit și în realitatea augmentată.
Detecția obiectelor din scena descrisă de camera dispozitivului nu mai reprezintă un
impediment. Folosind algoritmi de procesare a ima ginilor implementați în cadrul sistemului
dispozitivului se identifică obiectel e și se calculează poziți ile acestora raportat e la mediul
înconjurător. Într -adevăr, o identificare precisă a obiectelor tridimensionale descrie limitări
majore și condiții apro ape perfecte , însă detecția imaginilor deține o acuratețe sporită.
Aceasta se rezumă la două procedee: detecția și identificarea unor simboluri predefinite
(„marker -based tracking”) și o modalitate mai naturală de detecție și identificare („markerless
tracking”).
12
2.4 „Marker -based tracking”
Conceptul de „tracking” se referă la procedeul prin care se identifică poziția și orientarea
relativă a camerei, în timp real. Fundamental, pentru a obține aceste informații este necesară
o analiză a mediului înconjurăt or, ce se poate dovedi costisitoare în condiții necunoscute.
Sistemul are nevoie de suficiente date colectate și analizate pe o perioadă de timp
îndelungată pentru a calcula postura camerei, iar aceasta se poate degrada rapid , în special
dacă subiectul se deplasează mai repede decât actualizarea sistemului.
O soluție rapidă și eficientă pentru acest impediment s-ar descrie prin declararea unui punct
de ancorare pr edefinit astfel ca sistemul să fie capabil sa îl detecteze ușor și să îl identifice
drept un reper global. În termeni tehnici, acesta se definește printr -un „marker”. Folosind
tehnici de procesare a imaginilor și metode de „pat tern recognition” sistemul identifică
„markerul” prin analiza unei imagini provenite de la fluxul video al camerei. Astfel, se
determină poziția exactă a camerei, precum și orientarea sa.
De asemenea, procesul de identificare a marker -ului constă în aplicarea unui algoritm de
procesare de imagini. Primul pas al acestuia îl constituie achiziția imaginii folosind o cameră
video. Imaginea, mai apoi, este supusă unui proces de preprocesare. Se aplică o conversie de
spațiu de culoare, din spațiul RGB în spațiul reprezentat prin nuanțe de gri cu ideea de a spori
viteza algoritmului. Rezultatului i se aplică, mai departe, un algoritm d e identificare a
muchiilor (de exemplu algoritmul „Canny Edge” [3]) cu scopul de a determina modul în care
a fost încapsulată informația corespunzătoare marker -ului analizat. Toate aceste procesări
sunt, relativ, rapide în term eni de viteză de procesare, astfel că modelul virtual generat de
către sistemul de AR poate fi afișat în timp real , eliminând necesitatea de a aștepta o perioadă
de timp pentru a vizualiza rezultate concrete .
2.5 „Markerless tracking”
O metodă mult mai na turală de calcul al poziției și al orientării camerei o constituie metoda
„markerless tracking”. În esenț ă, aceasta presupune identificarea unor caracteristic i specifice
ale imaginii achiziționa te, însă fără a utiliza identificatori speciali, precum metoda „marker –
based”. În acest caz, caracteristicile menționate pot fi descrise de muchii, colțuri, pete de
culoare etc.
Dacă modelul bazat pe markere identifica simbolul necesitând un singur cadru analizat,
metoda „markerless” folosește o fereastră de cadre co nsecutive pentru a obține un rezultat
concludent. Astfel, se cercetează această fereastră și se identifică asemănările și
corespondențele dintre cadre pentru a calcula poziția și orientarea camerei video. Pentru
optimizarea procesului, algoritmul, de aseme nea, stochează informații și despre
caracteristicile mai puțin concludente, facilitând astfel folosirea informațiilor adunate în
posibile viitoare detecții.
Din punct de vedere al procesării imaginii, componenta luminoasă a scenei prezintă cea mai
mare inf luență în obținerea rezultatului corect. Schimbările bruște de intensitate a luminii pot
rezulta în calcularea unei orientări greșite ale camerei, deoarece identificarea trăsăturilor de
interes va fi segmentată și cadre consecutive ar conține, în speță, ca racteristici diferite din
punct de vedere al luminii.
13
Aplicațiile ce folosesc această metodă au nevoie, totuși, de rezultate corecte. Astfel, acestea
colectează mult mai multe trăsături folosind o fereastră lărgită de achiziție de imagini, ce se
traduce în tr-o necesitate mai mare de putere de calcul, dar, pe de altă parte, o probabilitate
mai mare de succes. Acest compromis reprezintă punctul cheie al detecției și se rezumă la
descrierea raportului dintre eficiență și acuratețe a aplicației.
2.6 Modelul st ructural
Arhitectura unei aplicații software este descrisă prin modul în care aceasta combină diferite
elemente conceptuale, cu scopul de a îndeplini obiectivul pentru care a fost implementată. În
sfera domeniul AR, o aplicație este alcătuită, în principal , din două module structurale,
definite după cum urmează:
2.6.1 Nivelul software
Nivelul software este compus din totalitatea componentelor software ce descriu o aplicație.
Din punct ul de vedere al unei aplicații de realitate augmentată , componentele soft ware pot
fi repartizate în trei categorii:
• Modulul aplicație, ce este compus din elemente precum scene, obiecte, iluminare,
preprocesare imagine etc. conține logica aplicației și modul abstract în care aceste
elemente caracteristice se îmbină.
• Modulul real itate augmentată constituie ansamblul de caracteristici specifice
domeniului AR (de exemplu identificarea poziției și a orientării camerei).
• Modulul extern însumează interacțiunile cu dispozitivul, cu alte aplicații sau cu
biblioteci externe.
2.6.2 Contro lul fluxului într -o aplicație de realitate augmentată
Ținând cont de faptul c ă numărul dezvoltatorilor de aplicații crește în fiecare an o dată cu
numărul tehnologiilor de dezvoltare, modul în care fiecare arhitect de aplicație își
implementează soluția nu este unul concis și diferă din mai multe puncte de vedere . Totuși,
în industria aplicațiilor de realitate augmentată se poate descrie un flux de dezvoltare general,
flux pe care l -am adaptat și eu în implementarea prototipului descris în acest proiect.
Vom discuta astfel, în continuare, despre trei direcții principale ce pot fi urmate pentru a
compune, cu succes, un produs final de AR.
• Afișarea informațiilor
În cadrul aplicațiilor mobile, afișarea informațiilor se detaliază folosind, în principal, ecranul
dispozitivului. Primul pas îl reprezintă achiziția fluxului video de la camera dispozitivului și
redarea acestuia pe toată durata utilizării aplicației. Corespondența dintre camera video și
cea virtuală, folosită în interiorul aplicației, se stabilește pri n translatarea parametrilor de
configurare reali in parametrii virtuali.
• Înregistrarea obiectelor virtuale
14
Înregistrarea obiectelor virtuale se compune după cum urmează: se dorește identificarea
poziției camerei video, relativă la mediul înconjurător. De o bicei, aceasta este realizată prin
două metode: prima definește utilizarea senzorilor dispozitivului pentru a obține poziția și
orientarea camerei, pe când cea de -a doua se rezumă la o procesare a imaginii pentru a
determina poziția camerei.
• Interacțiunea cu mediul înconjurător
Rezultatul celor două nivele descrise anterior este utilizat cu scopul de a pune bazele
interfaț ării cu utilizatorul. Această etapă contribuie prin interacțiunea utilizatorului cu
obiectele virtuale generate și constituie, în esență, experiența pe care o trăiește individul .
15
3 STATE OF THE ART
Acest capitol este structurat pe baza a trei secțiuni principale. Prima va descrie un scurt istoric
al dezvoltării tehnologiei de realitate augmentată analizat prin prisma descoperirilor care au
dovedit un impact însemnat asupra societății. Cea de -a doua va rezuma cele mai folosite medii
de dezvoltare a aplicațiilor AR. Iar în încheiere voi prezenta direcții de explorare a le acestui
domeniu.
3.1 Istoric
Conceptul de realitate augmentată își are o riginile încă din anul 1968. Profesorul Ivan
Sutherland [4] a dezvoltat primul sistem de realitate augmentată cu ajutorul studentului său
Bob Sproull. Dispozitivul, denumit și „Sabia lui Damocles” era alcătuit dintr -un ecran mo ntat
pe capul utilizatorului și două dispozitive de urmărire dotate fiecare cu câte șase grade de
libertate : un dispozitiv mecanic și unul ultrasonic. Acest ecran era conectat fizic la un
calculator, însă puterea de procesare redusă, disponibilă la acel m oment de timp, nu permitea
decât proiectarea unor desene simpliste, în timp real. Figur a 4 surprinde modul de utilizare a
dispozitivului.
Figur a 4 Head Mounted Display [4]
Prima definiție concretă a realității augmentate a fost publicată in anul 1992. AR -ul a fost
descris în acea perioadă ca procedeul prin care informați a digitală generată pe calculator este
redată, în timp real, peste suprafețe din lumea reală . Un p rim pas a fost făcut, astfel, înspre
diferențierea dintre Realitate Virtuală (VR) și Realitate Augmentată (AR): redarea folosind
realitate augmentată necesită o putere de calcul redusă deoarece este nevoie de o procesare
a unui număr semnificativ mai mic de pixeli c omparativ cu realitatea virtuală [5].
Dar prin ce se diferențiază realitatea augmentată de alte produse generate pe calculator,
precum fotografii sau filme? Răspunsul la această întrebare a apărut în descrierea unui studiu
amăn unțit ce a avut loc in anul 1997 concentrat pe realitatea augmentată . În urma acestuia,
un sistem bazat pe AR este descris de trei caracteristici [6]:
• Înregistrat in spațiul 3D
• Interactiv în timp real
16
• Îmbină spațiul real cu cel virtual
Dezvoltarea in plan tehnologic a sistemelor software și hardware a cunoscut o creștere
continuă încă de la apariția primelor dispozitive electronice. Gordon Moore a enunțat în anul
1965 [7] o teorie conform căreia numă rul componentelor prezente într -un circuit integrat se
va dubla în fiecare an pe o perioadă de un deceniu. Însă această tendință nu a încetat să se
adeverească chiar și la patruzeci de ani de la momentul apariției sale. Iar acest fapt poate fi
observat și în industria AR o dată cu apariția primelor telefoane inteligente cu puteri de calcul
ridicate .
În anul 2007, compania Apple introduce un nou telefon inteligent pe piață cunoscut sub
numele de „iPhone ”. [8] Acesta devine primul telefon mobil cu ecran tactil ce permite atingeri
multiple și deschide poarta către un nou mod de a interacționa cu dispozitivele mobile.
Acest moment marchează începutul unei noi ere din punct de vedere tehnologic. Societatea
descoperă capabilitățile unu i dispozitiv mic, portabil, cu care se poate conecta la Internet și
nu numai. Acesta permite oferă utilizatorului posibilitatea de a capta imagini și a le stoca la
orice moment de timp, permite conversații prin e -mail și oferă accesul la o gamă largă de
aplicații .
Astfel, se remarcă o nouă tendință de a dezvolta aplicații destinate dispozitivelor mobile. În
ceea ce privește domeniul realității augmentate , ace sta cunoaște o nouă eră în care
utilizatorul dispune de dispozitive capabile de a reda elemente graf ice foarte asemănătoare
cu lumea reală, dispunând de o putere de calcul sporită, în propriul buzunar.
Dezvoltatorilor de realitate augmentată li s -au deschis, așadar, noi căi de explorare si inovație.
Însă industria digitală este una vastă, iar dezvoltator ii de aplicații tradiționale au un avans
considerabil în raport cu tehnologia AR. Așadar, cu ce inovație ar putea realitatea augmentată
sa se facă remarcată? Răspunsul la această întrebare se identifică prin multitudinea de
sisteme software ce au revoluțio nat dispozitivele mobile și realitatea augmentată. Voi
enumera, în continuare, un număr de aplicații ce, probabil, au fost cele mai inovative la timpul
lor.
3.1.1 MARTA – Mobile Augmented Reality Technical Assistance
Sistemul MARTA, dezvoltat de compania Volksw agen în parteneriat cu Metaio GmbH, are ca
obiectiv eficientizarea procesului de întreținere automobilă prin expunerea de informații ale
autovehiculului la nivel de piesă individuală , pe o tabletă , după cum se observă în Figur a 5
MARTA Augmented Reality . De asemenea, MARTA fluidizează procesul de lucru al angajaților
prin dispunerea pașilor pe care aceștia trebuie sa îi urmeze în raport cu sarcina pe care o au
de îndeplinit [9].
17
Figur a 5 MARTA Augmented Reality [9]
3.1.2 Word Lens
Word Lens, aplicație destinată dispozitivelor mobile folosește realitatea augmentată pentru
a scana, a identific a și a traduce texte (precum ce le dintr -un meniu al unui restaurant) în timp
real. În acest context utilizatorul poate îndrept a camera telefonului mobil către un panou
publicitar, iar pe ecranul acestuia se afișează textul tradus în limba dorită fără a mai expune
și textul original. Apl icația a apărut in anul 2010 și a fost disponibilă pe dispozitivele inteligente
Apple (iPhone, iPod, iPad) și pe o selecție de telefoane inteligente Android. Acuratețea
aplicației și popularitatea acesteia a avut ca rezultat integrarea sa în ser viciul de t raducere al
celor de la Google [10].
3.1.3 I KEA Place
Dezvoltată pe baza platformei „Apple ARKit”, „IKEA place” a fost prima aplicație destinată
uzului casnic. Specializată ca o strategie de marketing, „IKEA Place” a fost gând ită cu scopul
de a atrage clienți prin modalitatea sa unică de a genera obiecte de mobilier folosind
tehnologia realității augmentate. Astfel, utilizatorii au posibilitatea de a vizualiza , utilizând
propriul telefon inteligent, modul în care o anumită pies ă de mobilier s -ar potrivi în propria
locuință [11].
3.1.4 Pokémon GO
Aplicația „Pok émon Go” [12] este o un joc video destinat dispozitivelor mobile ce fol osește
realitatea augmentată pentru a oferi utilizatorului o experiență captivantă într -un univers
digital transpus în lumea real ă. Probabil cel mai revoluționar joc video creat vreodată pentru
un telefon mobil, „Pok émon Go” permite utilizatorului generare a unei lumi contingente ce
conține creaturi virtuale denumite „pok émon”(monștri de buzunar) și oferă acestuia
18
posibilitatea de a -i captura pentru a -i adăuga într -o colecție proprie. Obiectivul jocului este
acela de a captura cât mai multe creaturi. Figur a 6 surprinde interfața grafică a unei astfel de
colecții.
Din punct de vedere tehnologic, „Pok émon Go” folosește sistemul de poziționare globală
pentru a genera o hartă virtuală a împrejurimilor prin care utilizatorul se deplasează. Într-
adevăr, afișarea și deplasarea în mediul virtual este generat grafic fără a folosi componenta
de realitate augmentată astfel încât utilizatorul observă lumea virtuală pe ecranul
dispozitivului mobil împreună cu corespondența punctel or de interes din apropierea locației
curente.
Tehnologia AR este integrată și activată în momentul capturării unui caracter din lumea
virtuală. Se redă fluxul camerei video pe ecranul telefonului mobil și se compun informațiile
achiziționate de la sistemul de poziționare globală și de la accelerometru pentru a obține
orientarea camerei in spațiul real. Apoi, în funcție de suprafețele plane detectate de
algoritmul de realitate augmentată (utilizând „markerless tracking” ), se generează un model
al caracterului ce dorește a f i capturat .
Figur a 6 Pokémon Go
3.1.5 Just a Line
„Just a Line” [13] este o aplicație experimentală lansată de cei de la Google ce permite
utilizatorului să deseneze „în aer” prin intermediul reali tății augmentate. Destinată
dispozitivelor mobile, aplicația este dezvoltată folosind ARCore prin intermediul tehnologiei
sistemelor „cloud”. Utilizatorii pot participa la o experiență cooperativă folosind dispozitive
diferite și pot desena împreună în tim p real.
19
3.2 Tehnologiile folosite în prezent
Din punct de vedere tehnologic, domeniul realității augmentate s -a dezvoltat considerabil pe
parcursul ultimilor ani. Începând cu scanarea codurilor QR , în prezent aplicațiile specializate
sunt capabile să id entifice , cu o precizie ridicată, obiective turistice în timp real .
Realitatea augmentată constă î n suprapunerea elementelor universului digital cu cele ale
lumii reale. Transpus ă pe un telefon mobil, ace asta presupune îmbunătățirea calității camerei
ce in tegrează și conț inut multimedia (de exemplu plasarea camerei fotografice a unui telefon
inteligen t pe coperta unu i disc vinil poate genera apariția informațiilor legate de piesele
înregistrate).
În continuare vor fi prezentate câ teva dintre n umeroasele un elte AR care există la momentul
actual și pot fi folosite in dezvoltarea aplicaț iilor pe telefoanele sau tabletele inteligente.
3.2.1 ARCore
Pachetul de dezvoltare software ARCore se bazează pe trei direcții tehnologice ce se îmbină
pentru a -i permite dez voltatorului o experiență fluidă în proiectarea unei aplicații de realitate
augmentată. Cele trei fundamente sunt descrise după cum urmează:
• Motion Tracking
Motion Tracking, mai exact urmărirea mișcării, este un concept prin care dispozitivul învață
poziți a sa în spațiul real de coordonate , raportându -se la elementele din jurul său. ARCore
detectează caracteristicile distincte din cadrul capturat de către camera fotografică a
dispozitivului și folosește aceste date, împreună cu informații primite de la sist emul inerțial,
pentru a calcula poziția și orientarea camerei în raport cu lumea reală. În literatura de
specialitate, acest model poartă numele de „COM – Concurrent Odometry Control”.
• Environmental understanding
Această tehnică descrie modul prin care sis temul ARCore identifică planuri fizice și puncte
cheie din mediul înconjurător . Detecția mai multor puncte cheie urmată de o agregare a
acestora în clustere și analiza poziției lor relative în spațiu, determină identificarea posibilelor
planuri fizice bidi mensionale (De exemplu detecția punctelor cheie de pe suprafața unei mese
urmată de analiza poziției acestora stabilește existența unui plan 2D pe suprafața mesei, ce
poate fi utilizat, de către sistemul de realitate augmentată, ca suport pentru un model s au
pentru o textură) .
• Light estimation
Estimarea luminii are rolul de a spori realismul unei scene prin definirea unor parametrii de
intensitate luminoasă și folosirea acestora, împreună cu componenta luminoasă din mediul
analizat, prin calcularea valorilo r medii. Rezultatele astfel obținute permit dezvoltatorului să
manipuleze caracteristicile unei imagini provenite de la o cameră mai puțin performantă prin
modficarea intensității medii a luminii , precum și prin corectarea paletei de culori a imaginii.
20
ARCore este oferit gratuit și permite integrarea cu mediile de dezvoltare Unity și Unreal.
Acesta suportă , în mod nativ , acceleratorul grafic OpenGL ES 3.1.
3.2.2 ARKit
ARKit este o arhitectură de realitate augmentată specializat ă pentru dispozitivele Apple – iPad
și iPhone. Asemănator modelului ARCore, dispune de tehnici optimizate pentru identificarea
dispozitivului în mediul înconjurător.
• World Tracking
Visu al-Inertial Odometry este modalitatea prin care ARKit furnizează corespondența între
spațiul real și spațiul virtual. Acest proces are la bază îmbinarea informațiilor provenite de la
accel erometrul dispozitivului cu datele analizate produse de camera fotografică. Prin
indentificarea trăsturilor cheie din scenă și urmărirea diferențelor de poziție ale ace stora în
timp, ARKit compune un model tridimensional cu o precizie ridicată , relativă la mediul
înconjurător .
• Scene understanding
Această metodă este compusă din trei nivele de prelucrare a imaginii digitale: Plane
Detection, Hit -Testing și Light Estimatio n.
Detecția suprafețelor plane este rezultatul unui proces de interpretare a diferențelor dintre
contrastele pixelilor imaginii digitale. De asemenea, modulul pune la dispoziția utilizatorului
opțiunea de îmbinare a planurilor detectate în condițiile în ca re un obiect le împărtășește.
Conceptual, ARKit dispune de un algoritm prin care se obține o întelegere a adâncimii imaginii
analizate. Metoda „Hit -Testing”, în esență, calculează distanțele dintre camera dispozitivului
și elementele scenei și le ordonează în funcție de aceasta. Astfel, se deduc și se generează
puncte de ancorare în spațiul tridimen sional cărora le pot fi asociate obiecte digitale.
Estimarea luminii se rezumă la capabilitatea de a reda într -un mod realist obiecte digitale prin
ajustarea com ponentelor luminoase ale acestora în raport cu lumina ambientală a scenei.
ARKit 3.0 este cea mai recentă iterație disponibilă pentru dezvoltatorii de aplicații mobile.
Principalul dezavantaj al acesteia îl reprezintă restricționarea noilor tehnologii de c are
dispune ARKit 3.0 la nivelul celor mai recente generații de d ispozitive Apple ce folosesc
procesoarele A12/A12+.
3.2.3 Vuforia
Vuforia este un motor grafic specializat pentru dezvoltarea de aplicații ce utilizează realitate a
augmentată. Pachetul de dezvolta re software se axează pe trei componente principale:
Imagini, Obiecte și Mediul înconjurător. De asemenea, Vuforia dispune de o listă extinsă de
dispozitive ce pot implementa funcționalitățile sale.
Din punct de vedere funcțional, pachetul Vuforia dispune de:
• Model Targets with Deep Learning
21
Vuforia descrie modul în care învățarea profundă este utilizată pentru detecția automată a
obiectelor. Utilizatorul antrenează rețeaua pe baza trăsăturilor extrase în etapa de
preprocesare pentru a facilita învățarea ra pidă și eficientă a acesteia. După antrenare,
modelul obținut ajută sistemul să recunoască obiecte similare dar și unghiul din care este
privit de către observator sau alte caracteristici de interes.
• Image Target s
Metodele convenționale de detecție, precum identificatori fiduciari, coduri QR sau coduri
matriceale, sunt comple tate de definirea unei noi modalități de identificare a imaginilor.
Acestea nu necesită regiuni de culori alb -negru speciale pentru identificarea lor, spre
deosebire de metodele tradiți onale. Motorul grafic analizează fluxul camerei video al
dispozitivului și detectează caracteristicile specifice ale imaginii. Aceste caracteristici sunt
apoi comparate cu cele ale imaginilor dintr -o bază de date specializată, iar în momentul în
care se identifică o imagin e corespunzătoare, aceasta poate fi utilizată ca suport pentru un
model de realitate augmentată.
• Multi Targets
Motorul Vuforia permite îmbinarea mai multor imagini țintă într -un spațiu geometric.
Originea acestui aranjament se identifică p rin centrul de greutate al acestuia, iar imaginile
sunt definite în raport cu acesta. Astfel, fiecare imagine este reprezentată prin poziția sa
relativă în raport cu originea sistemului Multi -Target. Acest fapt permite urmărirea
ansamblului de imagini la orice moment de timp în care cel puțin una dintre imaginile sale
este detectată de către motorul grafic.
• Cylinder Targets
Modulul Cylinder Targets definește capabilitatea de a detecta imagini modelate pe suprafețe
cilindrice și conice, precum sticle sau pah are. Aceste imagini țintă sunt create definindu -se
diametrul bazei suprafeței dorite și caracteristicile laterale ale acesteia.
• Smart Terrain
Prin Smart Terrain dezvoltatorul are posibilitatea de a recunoaște, urmări si reconstrui
suprafețe și obiecte fizi ce. Acestea sunt identificate drept meșe grafice 3D, iar o colecție de
astfel de meșe compun terenul scenei. Modul de funcționare este compus din trei etape:
Inițializare, Scanare, Urmărire.
Etapa de inițializare presupune identificarea unei imagini predef inite, stocată într -o bază de
date sau în memoria dispozitivului. Pe baza acestei imagini se reconstruiește suprafața scenei
și se adaugă elementele sale peste terenul inițializat , constituind astfel etapa de scanare. Iar
în ultima etapă terenul este augme ntat în timp real alături de scena dezvoltată în prealabil.
• Occlusion Management
Vuforia dispune de o soluție software prin care se pot detecta și urmări obiecte sau imagini
chiar și atunci când acestea sunt parțial ascunse în spatele altor suprafețe. De a semenea
aceasta permite afișarea elementelor grafice sub iluzia apariției lor în interiorul obiectelor
fizice.
22
3.2.4 Analiză comparativă a modelelor enumerate
În vederea alegerii unei soluții de dezvoltare în realitate augmentată, necesitățile procesului
de implementare a aplicației constituie factorul cel mai important. Fie că dezvoltatorul se
axează pe optimizările detecției de obiecte sau pe calitatea elementelor grafice ale aplicației,
pachetele anterior enumerate prezintă avantaje si dezava ntaje unul față de altul.
În Tabel 1 voi prezenta amănunte cheie ale celor trei soluții descrise, precum și metrici ce pot
fi luate în considerare în funcție de destinația finală a aplicației.
Tabel 1 – Ana liză comparativă ARCore, ARKit și Vuforia
ARCore ARKit Vuforia
Disponibilitate
gratuită Da Da Da
Integrare în
motorul Unity Da Da Da
Sisteme de
operare suportate Android/iOS Doar iOS Android/iOS
Detecție suprafeț e Da Da, cu optimizarea
„People Oclussion” Da, cu optimizări
pentru suprafețe
cilindrice și sferice
Detecție față Da Da Nu
Servicii API pe web Nu Nu Da, prin Vuforia
Cloud
Detecția mișcării Da Da Da
Detecție bazată pe
markere Da Da Da
3.3 Direcții de explorare
Referitor la conceptele ultimilor ani în materie de realitate augmentată, era suficientă doar
integrarea componentelor AR în vederea obținerii unui efect impresionant , iar valorificarea
acestora era posibilă prin utilizarea conceptelor de bază, deoarece dezvoltarea
caracteristicilor mai complexe era limitată de posibilitățile hardware ale perioadei respective.
Pe de altă parte, deviza actuală se concentrează pe necesitățile societății. Un dezvoltator are
în vedere dacă realitatea augmentată este într -adev ăr necesară și potrivită aplicației pe care
o dezvoltă. Astfel, din punctul său de vedere, diversitatea platformelor de dezvoltare
disponibile const ituie o problemă de ac tualitate. Dezvoltatorul are datoria de a porta aplicația
sa în fun cție de platformele pe care se dorește a fi folosită, ceea ce necesită informații
suplimentare în codul sursă al acesteia.
Astfel, serviciile WEB, precum sistemel e bazate pe „ cloud ”, pot soluționa această problemă.
Prin existența unei infrastructuri generale, accesibile din orice punct de pe glob ce dispune de
o conexiune la Internet, realitatea augmentată poate fi redată într -un mod elegant și simplu,
mai exact printr -un flux video. Totodată, puterea de procesare a dispozitivelor ar putea fi
23
neglijată , arhitectura de „cloud ” primind responsabilitatea de a execu ta partea
computațională. Bineînțeles, viteza conexiunii la internet va deveni limitarea principală. Însă
dezvoltarea continuă a noii tehnologii 5G va depăși și acest impediment.
Pe de altă parte, telefoanele inteligent e suferă de un neajuns reprezentat de dimensiunea
redusă a ecranelor acestora. Se observă o ușoară tendință a societății de deplasare către
tablete în detrimentul telefoanelor, sau chiar spre echipamente periferice de tipul Google
Glass [14]. În plus, conceptul de holograme 3D devine din ce în ce mai notoriu. Universitat ea
din Arizon a [15] a pion ierat acest domeniu prin care se redau vizual forme tridimensionale,
însă fără interacțiune fizică cu acest ea. Desigur, viteza de redare precum și rezoluția lasă loc
de îmbunătățiri.
O altă arie de explorare a tehnologiei de realitate augmentată o constituie apelurile video
folosind Internetul . În zilele noastre, un apel video reprezintă o necesitate, mai ales în
domeniul afacerilor. Experiența unei conferințe video poate fi major îmbunătățită prin
integrarea tehnologiei AR cu scopul de a crea un mediu interactiv, chiar dacă participanții
convorbirii se află în părți diferite ale lumii. Ideea de bază s -ar transp une în augmentarea
participanților în sălile de conferințe prin modelarea acestora, însă procesul nu ar fi unul facil,
deoarece vitezele limitate ale conexiunii la internet se pot dovedi problematice. De
asemenea, utilizatorii ar fi forțați să rămână în po ziția inițială a acestora. În caz contrar,
urmărirea lor prin intermediul realității augmentate ar presupune calcule intensive pentru
obținerea poziției acestora.
24
4. ANALIZA APLICAȚIEI
Domeniul aplicațiilor software destinate dispozitivelor mobile e ste unul vast, însă ramura
realității augmentate ce se ramifică din acest domeniu nu descrie foarte multe soluții
software reprezentante. Urmărind istoricul prezentat anterior și analizând tendințele
societății în raport cu realitatea augmentată prin pris ma celor mai utilizate aplicații AR, analiza
aplicației dezvoltate în acest proiect se poate realiza prin enumerarea cerințelor prealabile de
funcționare a acesteia, precum și printr -o scurtă descriere modului de interacționare cu
aceasta.
4.1 Cerințe pre alabile de funcționare
Prototipul descris în această lucrare este descris de următoarea listă de cerințe minime pentru
o funcționare în parametri nominali:
• Sistem de operare: Android Jelly Bean (4.1)
• Cameră video
• Conexiune la internet
De asemenea, funcțio nalitățile acestuia sunt reprezentate de:
• Abilitatea de a identifica o imagine predefinită
• Abilitatea de a genera obiecte bidimensionale și tridimensionale pe baza imaginilor
identificate
• Abilitatea de a interacționa cu obiectele generate prin realitate au gmentată
• Abilitatea de a interconecta doi utilizatori în timp real
• Abilitatea de a reda obiectele folosind o iluminare realistă
• Abilitatea de a genera mesaje de informare relevante utilizatorilor
• Abilitatea de a afișa jocul pe toate tipurile de dimensiuni existente ale ecranului
dispozitivului
Figur a 7 descrie diagrama cazu rilor de utilizare ale aplicației.
25
Figur a 7 Diagrama cazurilor de utilizare
4.2 Descrierea aplicației
Aplicația se desfășoară pe dur ata a trei niveluri : nivelul principal, nivelul intermediar și nivelul
de joc.
Primul nivel descrie meniul principal prin care utilizatorul alege modul de joc, mai exact
tematica jocului. La momentul actual există două tematici posibile, „Pirați” și „UPB”. Jucătorul
își alege tema prin apăsarea acestora și apasă butonul „Play” pentru a accesa nivelul următor.
Nivelul intermediar îi prezintă jucătorului posibilitatea de a juca împreună cu un alt jucător
sau a juca pe cont propriu. Dacă se dorește accesarea j ocului pe cont propriu se apasă butonul
„Start offline”, iar dacă se dorește implicarea unui alt jucător se apasă butoanele „Create
Game” sau „Join Game”. „Create Game” creează un mediu de joc și așteaptă conectarea
celuilalt jucător, afișându -i utilizator ului adresa IP a dispozitivului propriu. Această adresă este
comunicată verbal celuilalt jucător și este necesară introducerea ei în câmpul predestinat
adresei IP de conectare de pe dispozitivul celuilalt jucător, urmând ca acesta să apese butonul
„Join Ga me” pentru a realiza cu succes conexiunea.
Nivelul de joc, implicit, descrie fluxul video al camerei video al dispozitivului. Utilizatorul
trebuie să identifice imagini predefinite din mediul înconjurător și, prin îndreptarea camerei
spre aceste imagini, p e ecranul dispozitivului vor fi afișate diferite activități tridimensionale.
În urma rezolvării activităților utilizatorului îi este prezentată o informație pe care o poate
folosi mai departe în jocul de „escape -room”.
De asemenea, am extras o parte dintre trăsăturile caracteristice ale unei aplicații ce folosește
realitatea augmentată drept punct de reper principal:
26
• Unghiul de vizualizare trebuie să se asemene cu unghiul de vizualizarea naturală
• Nu se recomandă acțiuni repetitive și ce necesită timp redus de răspuns
• Se încurajează manipularea dispozitivului folosind o singură atingere a ecranului
27
5 SOLUȚIA PROPUSĂ
Motivația dezvoltării unei aplicații de realitate augmentată ce are la bază conceptul de
„escape room” provine , în esență, din dorința implementării unei astfel de soluții software pe
piața din România. Într -adevăr prezența „escape room -urilor” tradiționale și popularitatea
acestora în tendințele tinerilor prezintă o cale bună de dezvoltare, iar îmbinarea acestora cu
mediul digital p ropune o provocare în rândul unui programator pasionat de jocuri video.
Astfel, am luat decizia de a implementa propriul joc de realitate augmentată destinat
dispozitivelor mobile.
5.1 Caracteristici generale
Etapa premergătoare procesului de dezvoltare c onstituie un moment prielnic pentru achiziția
informațiilor necesare implementării. Printre acestea se numără: informații cu privire la
mediul de dezvoltare, informații referitoare la soluțiile alternative existente pe piață și,
totodată, o privire de ansa mblu asupra domeniului ce aparține tehnologi ei abordate în
proiect. Acestea au fost enumerate în capitolele anterioare și constituie baza dezvoltării
prototipului prezentat în această lucrare.
În subcapitolele următoare voi descrie tehnologiile folosite în implementarea prototipului și
voi enumera o parte dintre caracteristicile funcționale ale sistemelor ce au fost utilizate
pentru a obține produsul final.
5.2 Unity 3D
Unity 3D este un motor grafic specializat în dezvoltarea jocurilor video. Acesta dispune de
propriul sistem de fizică și management al rețelei, fapt ce îl face potrivit pentru dezvoltarea
unei aplicații grafice complexe.
Unity 3D are la bază conceptul de GameObject, iar acesta poate fi, în esență, orice element
din cadrul jocului video, fie el un caracter, un obiect sau chiar o entitate ce se ocupă cu
animația unui model. Proprietățile unui GameObject sunt redate prin componente. Fiecare
GameObject are propriile componente, iar totalitatea acestora și modul în care ele sunt
implementate descriu caracteristicile obiectului în sine.
Putem vizualiza un GameObject ca pe un container în care depozităm componente pentru a –
l descrie. O componenta, mai precis un script, permite programatorului modificarea
proprietăților unui GameObject, declanșarea unor evenimente sau executarea unor acțiuni
ca răspuns al inputului utilizatorului.
Fiind un motor grafic ce se bazează pe ideea de „scripting” Unity3D suportă două limbaje de
programare native:
• C#
• UnityScript
28
Am ales implementarea folosind limbajul C# datorit ă asemănării acestuia cu limbajul C++ și,
totodată, datorită faptului că dezvoltarea de programe se dovedește a fi intuitivă pentru un
programator fără experiență apriori.
Un script este integrat in Unity prin implementarea unei clase derivate din clasa de bază
denumită „MonoBehaviour” . O clasă poate fi descrisă drep t o schiță a unei componente ce
urmează a fi integrată într -un GameObject. Un script astfel creat este compus, nativ, din două
metode: „Start” și „Update” .
„Update” este metoda apelată la fieca re desenare a unui cadru. Aceasta conține, de obicei,
comportamentul obiectului în timpul desfășurării jocului, precum mișcarea unui obiect sau
declanșarea unui eveniment într -o anumită condiție. Pentru a permite relaționarea între
diferite GameObject -uri este necesară inițializarea acestora în metoda „Start” deoarece
aceasta este apelată o singură data, înainte de desenarea primul ui cadru al jocului .
O scenă conține elementele de meniu si de mediu al e unui joc. Scena reprezintă un „nivel” de
sine stătător al aplicației și constă, la nivel logic, din mai multe GameObject -uri ce aparțin
scenei respective.
În Figur a 18 este descris ă ordinea în care se execut ă anumite funcții de tip eveniment pe
parcursul duratei de viață a unui script.
La momentul inițializării unei scene se apelează următoarele rutine, respective fiecărui obiect
din scena respectivă:
• Awake() : Se apelează înainte de orice funcție Start()
• OnEnable(): Se apelează doar dacă obiectul respectiv este activ: coincide cu momen tul
instanțierii unui GameObject
• OnLevelWasLoaded() : Are scopul de a notifica jocul că o nouă scenă a fost încărcată
Aceste metode sunt apelate întotdeauna înainte de apelarea metodelor Start sau Update
pentru toate scripturile din scena respectivă.
• Start (): este apelată înainte de prima desenare a unui cadru .
• OnApplicationPause(): Metoda este apelată la sfârșitul unui cadru pentru a detecta
existența unei pauze în aplicație. Totodată, s e va mai desena un cadru imediat după
apelarea metodei, astfel că se p oate utiliza cu scopul de a afișa elemente grafice ce
indică starea de întrerupere.
Pentru a comanda eficient interacțiunile obiectelor, metoda Update() este cea mai potrivită
în descrierea acestora, după cum am menționat anterior. Însă, pentru un control mai precis,
motorul Unity3D dispune și de alte mecanisme:
• FixedUpdate() : este o metodă apelată la un anumit interval de timp static . Implicit,
această metodă este independentă de numărul de cadre pe secunde rulate de către
aplicație.
• LateUpdate() : se ape lează o singură data per cadru, după terminarea execuției
funcției Update().
Deoarece funcțiile sunt executate în întregime înainte de a întoarce un rezultat, Unity3D
prezintă conceptul de „corutină”. O corutină este o funcție specializată care poate să -și
întrerupă execuția la sfârșitul unui cadru și își poate relua fluxul in cadrul următor. O astfel de
29
corutină poate avea ca scenariu de utilizare realizarea unei conexiuni pe rețea folosind apeluri
blocante, precum „TCPAccept ”.
De asemenea, motorul Unity3 D este echipat cu un modul propriu de interfațare cu
utilizatorul –UI. Sistemul menționat prezintă proprietatea de a se reajusta și de a afișa
elementele sale pe ecrane de dimensiuni diferite, eliminând astfel necesitatea de a specializa
aplicația pentru fi ecare dispozitiv individual. Obiectele interactive ale sistemului de interfață
grafică sunt asociate sistemului de evenimente.
Pentru a identifica în mod corect elementul ales de către un utilizator (fie prin apăsarea cu
degetul pe ecranul unui telefon int eligent sau prin folosirea unui mouse pe ecranul unui
calculator) se folosește metoda de „raycasting”. Aceasta presupune convertirea
coordonatelor ecranului în coordonate scenice prin trasarea unei linii drepte între elementul
de pe ecran si elementul core spunzător din scenă. În cazul elementelor de interfață grafică,
Unity3D dispune de un element nativ denumit „Graphic Raycaster”.
Componentele detaliate anterior vor fi folosite în cadrul implementării unui joc de realitate
augmentată, iar modul de îmbinare al acestora va fi expus în cadrul capitolului următor.
5.3 Vuforia
Vuforia este un pachet de dezvoltare software specializat pe realitatea augmentată . Pentru a
fi utilizat în cadrul dezvoltării unei aplicații software, acesta se poate integra în motorul grafic
Unity.
Elementul definitoriu al mediului Vuforia este reprezentat de camera specializată a acestuia,
denumită „ARCamera”. Aceasta este un tip special de „GameObject” ce transmite un flux
video în timp real ce se translatează în fundalul scenei curen te și, de asemenea, este utilizată
îndeosebi pentru urmărirea și identificarea obiectelor țintă.
Funcționalitate a componentelor arhitecturale ale pachetului Vuforia este descrisă ,
asemănător motorului Unity, prin script -uri. În principal , toate componentel e funcționalității
sunt, obligatoriu, componente copil ale camerei principale „ARCamera ”.
Din punct de vedere tehnologic, Vuforia funcționează pe baza principiului „marker -based
tracking”. Astfel, se poate defini o imagine, „ImageTarget”, pentru a fi recun oscută de către
Vuforia și transformată într -o suprafață pe care se pot amplasa diferite obiecte sau modele
virtuale.
Totuși componentele arhitecturii Vuforia sunt strâns legate de cele ale motorului Unity, astfel
că unei scene de realitate augmentată i se facilitează aceleași operații posibile ca într-o scenă
de bază Unity. De exemplu, pentru a identifica dacă un obiect virtual creat peste o imagine
detectată de Vuforia a fost atins prin intermediul ecranului dispozitivului pe care se rulează o
aplicație, se poate folosi principiul de „raycasting” ce presupune identificarea și translatarea
punctului din coordonate ecran în coordonate scenice. Printre cele două puncte se trasează,
imaginar, o linie dreaptă și se calculează o posibilă coliziune cu obiectele s cenei. Desigur,
pentru a indica o funcționalitate corectă, este necesar ca obiectele de interes ale scenei să fie
specializate cu o componentă de tipul „Collider”, astfel încât între linia imaginară trasată
anterior și obiectul de interes s ă existe o coliz iune.
30
5.4 Arhitectura aplicației
Din punctul de vedere al arhitecturii, modelarea unei aplicații software descrie urmărirea mai
multor pași pentru o dezvoltare a acesteia cu succes. Probabil, cel mai important pas pentru
care un dezvoltator de aplicați e trebuie să petreacă cel mai mult timp îl constituie descrierea
arhitecturii aplicației.
5.4.1 Stabilirea platformei de dezvoltare
Vuforia și Unity permit dezvoltarea aplicațiilor pentru dispozitive mobile echipate cu sisteme
de operare Android și iOS. Totodată, dezvoltarea unei aplicații destinate sistemelor iOS
descrie o cerință specifică, mai precis un sistem de operare de tipul macOS, unde se utilizează
mediul de dezvoltare Xcode pentru a construi varianta executabilă a aplicației. Aceste cerințe
specifice, ce sunt necesare implementării pentru un sistem iOS, reprezintă motivul pentru
care am ales dezvoltarea aplicației proprie pentru un sistem de operare Android, deoarece
lipsa unui astfel de mediu de dezvoltare ar fi rezultat în imposibilitatea înd eplinirii cerinței de
rulare pe dispozitivele iPhone și iPad.
5.4.2 Diagrama de clase
În cazul implementării soluției software proprii, am folosit o colecție de scripturi C# ce descriu
elementele funcționale ale acesteia , iar modul în care sunt realizate relațiile de dependență
dintre acestea este descris în Figur a 8.
31
Figur a 8 Diagramă de clase
Cele două scene prezentate anterior descriu modulul de interfațare grafică a aplicației. Ce -a
de-a treia sce nă descrie modulul de joc și este alcătuită din elemente de realitate augmentată,
precum este reprezentată în Figur a 9.
Figur a 9 Diagrama clasei jocului UPB
32
5.4.3 Descrierea fluxului jocului
Utilizatoru l aplicației are obiectivul de a completa toate activitățile ce sunt prezentate prin
intermediul ecranului dispozitivului. Figur a 10 surprinde modul în care utilizatorul
interacționează cu elementele aplicației, ast fel încât acesta să îndeplinească toate cerințele
necesare completării unei sesiuni de joc.
Figur a 10 Sesiune de joc
În continuarea lucrării voi detalia modul prin care am implementat un prototip al unui joc de
realitate augm entată bazat pe conceptul de „escape -room” folosind motorul Unity împreună
cu modulul Vuforia de realitate augmentată.
33
6 DETALII DE IMPLEMENT ARE
Contribuția proprie se reflectă în modul de implementare al prototipului aplicației de realitate
augmentat ă. Mediul de dezvoltare ales este motorul grafic Unity, în special datorită
portabilității aplicațiilor dezvoltate, întrucât, din punct de vedere al codului, nu se identifică
diferențe de la o platformă la alta. Pentru a specializa proiectul în vederea fun cționării lui pe
platforme diferite (de exemplu Android și iOS) este necesară doar modificarea caracteristicilor
proiect ului, fără a converti codul sursă al aplicației în funcți e de platformă .
Universul aplicației descrie camera unui joc de tipul „escape -room”. Jucătorii sunt amplasați
într-o cameră încuiată și au obiectivul de a căuta indicii ce îi vor ajuta să evadeze. Proiectul își
propune integrarea unei aplicații de realitate augmentată ce descrie activități la care
utilizatorii trebuie să participe, i ar ca recompensă aceștia vor primi indicii sub forma unor
coduri sau alte informații.
Aplicația permite utilizatorului accesul la un joc de realitate augmentată. Scopul jocului este
de a descoperi diferite activități ce, în urma completării lor cu succes, prezintă utilizatorului o
informație pe care o poate folosi in viața reală. Astfel, se dorește o îmbinare a mediului digital
cu cel real și i se prezintă utilizatorului o lume captivantă prin activitățile existente.
6.1 Dezvoltarea aplicației
Motorul grafic Unity descrie, ca element principal și definitoriu, scena. Scena stă la baza
oricărei aplicații implementate cu Unity, iar în cazul de față prototipul descris utilizează trei
scene principale prin care se iterează de -a lungul expunerii aplicației.
Din pun ct de vedere al interacțiunii cu utilizatorul, Unity prezintă elemente structurante ce
aparțin domeniului UI și au rolul de a defini elemente prin care utilizatorul poate schimba
informații cu aplicația. Elementul fundamental al unei interfețe grafice cu u tilizatorul este
definit de „Canvas”. Canvas -ul este un GameObject căruia îi este asociată atribuția de a grupa
elementele comune de interfațare dintr -o scenă , iar componenta ei principală descrie ordinea
de afișare a elementelor ce le conține. Astfel, fie cărui element dintr -un Canvas i se atribuie
un număr ce surprinde modul în care elementele structurante sunt afișate pe ecranul
dispozitivului.
6.2 MainMenu
Scena principală a aplicației se numește „MainMenu”. Aceasta reprezintă meniul principal al
joculu i și este punctul de acces în fluxul aplicației. Această scenă conține informații despre
modurile existente de joc.
Elementele structurante ale scenei principale sunt descrise după cum urmează , iar Figur a 12
surprinde formatul aces tora în Unity .
34
6.2.1 Background
Fundalul scenei este reprezentat de u n GameObject de tipul „Plane” peste care sunt așezate
celela lte elemente ale scenei. Acestuia i se atribuie o imagine de fundal și o componentă de
animare de tipul „Animator” denumită „SceneCon troller” . Fundalului i se atribuie imaginea
de fundal selectată, iar GameObject -urile următoare sunt definite drept GameObject -uri copil
ale fundalului.
6.2.2 SceneController
Componenta „Animator” are rolul de a defini un set de animații sau tranziții ale obiec telor
scenei și este implementat ca un automat finit de stări. Fiecare stare, exceptând cele de bază,
reprezintă, în esență, o stare a unui element al jocului. În cazul de față, SceneController -ul are
rolul de a simula animații de „fade in” și „fade out” c e sunt folosite pentru a descrie
schimbările de scene. Structura automatului este prezentată în Figur a 11.
• BlackFade – Este o imagine complet neagră dispusă peste imaginea de fundal și este
descrisă de componenta transparentă a ace steia, „alpha” . O valoare a parametrului
„alpha” egală cu 0 descrie o imagine complet transparentă, pe când o valoare „alpha”
egală cu 255 descrie o imagine complet opacă.
• FadeIn – Este o animație ce descrie o singură acțiune, aceea de a modifica valoarea
componentei „alpha” a imaginii BlackFade de la 0 la 255 pe durata unei secunde.
Efectul creat surprinde înnegrirea ecranului si este folosită drept moment oportun de
a încărca următoarea scenei.
• FadeOut – Este animația complementară animației „FadeIn” și a re efectul de a
semnala intrarea în scenă. Asemănător componentei „FadeIn”, „FadeOut” va modifica
valoarea componentei „alpha” descrise anterior de la 255 la 0.
• Pentru a descrie tranziția dintre cele două animații se folosește un „Trigger”.
SceneController -ul este componenta principală a obiectului „BackGround” .
Figur a 11 SceneController
6.2.3 Canvas
Canvas -ul conține elementele interfeței grafice cu utilizatorul. În cadrul aplicației, canvas -ul
este denumit „Buttons” și are în compone nța sa cinci elemente.
35
• „Room1 ” și „Room2” descriu element e de interfață grafică de tipul „Button”. Un buton
este un element ce poate fi apăsat pentru a identifica o informație. Acestea nu au
atașate scripturi pentru func ționalitate și indică utilizatorului ce mod de joc va dori să
înceapă.
• „PlayButton” este butonul de începere a jocului. Acesta prezinta un script atașat , ce
se apelează în metoda „OnClick()” , denumit „PlayButtonHandler.cs” care descrie
funcționalitatea butonului.
• La momentul apăsării butonul ui „PlayButton” este apelată metoda „PlayGame” din
interiorul scriptului „PlayButtonHandler.cs”. Se verifică care dintre cele două butoane
a fost selectat și în funcție de alegerea efectuată se încarcă următoarea scenă.
• „MainText” este un obiect de tipul „ Text” ce prezintă utilizatorului o introducere în
universul jocului.
Figur a 12 Ierarhia scenei MainMenu
6.3 WaitingPlayers
„WaitingPlayers” reprezintă cea de -a doua scenă a jocului , reprezentată prin Figur a 13.
Aceasta cuprinde elemente de interfață cu utilizatorul ce au rolul de a descrie modul de joc
cooperant sau cel pe cont propriu.
Figur a 13 Ierarhia scenei WaitingPlayers
36
6.3.1 Background
Asemănător cu scena anterioară, elementu l definitoriu al acestei scene îl reprezintă
elementul de fundal alcătuit dintr -un GameObject de tipul „Plane” peste care se afișează o
imagine de fundal. Acesta reprezintă elementul pe care se suprapun elementele de interfață
grafică.
6.3.2 CreateGame
Butonul „Create Game” are rolul de a expune utilizatorului opțiunea de a crea un mediu
interactiv de joc alături de un alt jucător. Butonul ui „CreateGame” i se atribuie un script ,
„CreateGameScript.cs”, și este utilizat în momentul în care utilizatorul apasă buton ul.
6.3.3 JoinGame
„JoinGame” descrie punctul de acces al jucătorului utilizat în momentul în care acesta dorește
să inițieze un mod de joc interactiv prin conectarea cu alt jucător.
6.3.4 StartOffline
Prin butonul „StartOffline” utilizatorul poate iniția modul de j oc fără a aștepta alți jucători .
Toate cele trei butoane utilizează scriptul „CreateGameScript.cs” și metodele aferente pentru
a identifica funcționalitatea fiecăruia. Acestora li se atribuie metoda specifică a scriptului ca
metodă apelată în momentul apăs ării unui buton.
6.3.5 CreateGameScript.cs
Acest script deține trei metode publice denumite „CreateClient”, „CreateServer” și
„Create Offline ”. Aceste trei metode reprezintă punctele de acces pentru interacțiunea cu cele
trei butoane din interfața grafică a aces tei scene, „Join Game”, „Create Game” și, respectiv,
„Start Offline”.
• Metoda „CreateClient” folosește un soclu TCP pentru a realiza o conexiune de tipul
„peer -to-peer” cu un alt jucător. Aceasta extrage adresa IP introdusă de către utilizator
în câmpul den umit „IpField”. După realizarea conexiunii, folosind componenta
„Animator” descrisă la scena anterioară , se declanșează animația de „FadeIn” și se
inițializează scena următoare.
• Metoda „CreateGame” are rolul de a simula crearea unui server pentru acceptare a
conexiunilor. Din nou se utilizează un soclu TCP pentru acceptarea conexiunilor și se
afișează utilizatorului curent adresa IP a acestuia pentru a o comunica jucătorului ce
dorește a se conecta la server. După ce conexiunea este realizată cu succes, din nou
se utilizează animația de „FadeIn” și se declanșează încărcarea următoarei scene.
• Metoda „CreateOffline” este apelată în momentul în care utilizatorul apasă butonul
asociat acesteia și urmează același procedeu prin care se deschide următorul nivel al
jocului.
37
6.3.6 „IpField ”, „NameField” și „I pText”
Aceste elemente de interfață grafică au rolul de a facilita procesul de conectare între doi
jucători. Textul „IpText” este activat în momentul în care utilizatorul apasă butonul
„CreateGame” și are rolul de a afi șa adresa IP a dispozitivului curent. „NameField” permite
utilizatorilor să își aleagă un nume de identificare , iar „IpField” este folosit de către utilizatorul
ce se alătură jocului pentru a indica adresa IP a jucătorului gazdă.
6.4 Nivelul de joc
Nivelul de joc este compus dintr -o singură scenă în care elementul principal îl reprezintă
elementul „ARCamera” din modulul Vuforia . Astfel, camera principală a scenei devine
„ARCamera”.
Acest modul este caracterizat prin configurația aleasă. În cazul unui joc pe di spozitivul mobil,
următorii pași sunt necesari pentru o configurare cu succes:
• Adăugarea unei licențe de dezvoltare [16]. Lipsa acestei licențe nu permite folosirea
corectă a modulului Vuforia.
• Adăugarea unei baze de date ce conț ine informațiile de detecție ale imaginilor folosind
realitate augmentată [17].
• Alegerea tipului destinației aplicației din punct de vedere al configurației acestuia (de
exemplu telefon mobil).
• Tipul camerei dispozitivului .
• Tipu l de urmărire a obiectelor de interes .
O configurare incorectă a acestor parametri poate defini un comportament incorect al
camerei de realitate augmentată.
Din punct de vedere funcțional, fiecare activitate are la bază o imagine predefinită pe care
camera AR știe să o identifice utilizând baza de date creată. Această imagine devine suportul
elementelor de joc ce vor fi generate în momentul în care utilizatorul îndreaptă camera spre
o imagine corectă.
În continuare voi enumera trei dintre activitățile dispo nibile ale jocului, pentru a descrie
elementele utilizate și pentru a evidenția modul în care acestea se îmbină cu succes.
6.4.1 Vizualizare perspectivă
Această activitate de realitate augmentată surprinde , probabil, cel mai important element al
tehnologiei AR, acesta fiind reprezentarea tridimensională a obiectelor virtuale. În momentul
în care jucătorul detectează imaginea suport asignată se generează un mediu virtual ce poate
fi observat pe toate cele trei axe de reprezentare, asigurând o vedere completă de 3 60o.
Figur a 14 reprezintă vizualizarea dintr -un unghi ales la întâmplare a scenei . Elementele sunt
așezate pe un plan asupra căruia s -a aplicat o imagine drept textură. Pe planul descris sunt
așezate elemente tridimensionale cilind rice și sferice, alături de elemente speciale de tip
„Tree”, mai exact elemente ce imită copaci.
38
Figur a 14 Vizualizare tridemensională
Obiectivul acestei activități îl reprezintă poziționarea corectă a utilizatorului față de med iul
desenat pe ecran, astfel încât, dintr -o perspectivă corectă, se poate observa numele „HOOK”.
Acesta este indiciul pe care jucătorul trebuie sa îl recunoască , după cum se observă în Figur a
15.
Figur a 15 Vizualizare tridimensională din perspectivă
39
6.4.2 UPB
Activitatea „UPB” este desenată pe suprafața imaginii siglei UPB. Se generează o structura
formată din patru obiecte de tip „C ylinder” asupra cărora s -a aplicat textura siglei UPB. Aceste
obiect e sunt specializate cu componente de tip „Collider”, astfel că motorul fizic Unity poate
identifica posibilele coliziuni de pe suprafețelor acestora. Figur a 16 descrie modul în care
elementele sunt redate în poziția lor inițială.
Cele 4 obiecte cilindrice sunt dispuse unul peste celălalt în structură concentrică, iar
utilizatorului i se evidențiază structurile inelare de pe suprafețele circulare ale acestora.
Utilizatorul poate interacționa cu fiecare dintre cei patru cilindri, iar la o apăsare a unuia dintre
ei se declanșează o rotire cu 90o in jurul axei „Y” a inelului apăsat, dar și a altor inele, în funcție
de acesta .
La momentul inițializării scenei, cele 4 obiecte cilindrice sunt rotite printr -o serie de mișcări
predefinite, as tfel că sigla devine amestecată. Obiectivul activității este acela de găsi
combinația de interacțiuni astfel că imaginea revine la poziția inițială și sigla se află în poziția
ei inițială, după care acesta primește indiciul printr -un cod format din patru c ifre.
Pentru a realiza interacțiunea cu obiectele este necesară implementarea unui comportament
special în cadrul metodei „Update ()”. La fiecare desenare a unui cadru se verifică dacă
utilizatorul a interacționat cu vreunul din obiecte. Astfel, se identifi că poziția apăsată de către
utilizator pe ecranul dispozitivului. Folosind metoda „ Camera.main.ScreenPointToRay() ” se
creează o linie din punctul ecranului și lumea virtuală și se identifică toate coliziunile cu
obiectele generate prin realitate augmentată ce sunt specializate cu componente de tipul
„Collider”. În momentul detectării coliziunii acestei linii, obiectului identificat i se aplică
metoda „object_touched()” prin care se execută rotația cu 90o a acestuia și a unei selecții
predefinite a celorlalt e obiecte.
Figur a 16 Structură inelară
40
6.4.3 GunGame
Pentru această activitate, utilizatorul este nevoit să identifice corect două imagini de interes
și să le folosească concomitent pentru a îndeplini sarcina. Cele două imagini vor deveni suport
pentru două tipuri de elemente grafice. Primul descrie o structură de corpuri rigide,
„RigiBody”, corpuri ce, în sistemul de fizică al motorului, posedă o masă. Aceste modele , în
acest caz, reprezintă șase cilindri așezați piramidal, fie care fiind descris de componenta
„RigiBody” și un „Collider” pentru identificarea coliziunilor. Corpurile sunt așezate pe
imaginea suport prin intermediul unui plan , așa cum se observă și în Figur a 17. Cea de -a doua
imagine suport va genera o armă ce este capabilă de a trage cu un proiectil în momentul
apăsării ecranului dispozitivului. Proiectilul este descris printr -o formă sferică, ce posedă, de
asemenea, componente „RigiBody” și „Collider”. Proiectilul are o viteză inițială iar traiectoria
acestuia este calculată pe baza orientării față de ansamblul piramidal. Obiectivul activității
este acela de a doborî cele 6 elemente cilindrice folosind nu mai mult de două proiectile.
Figur a 17 Structură piramida lă
41
7. CONCLUZII
Obiectivul acestui proiect a fost acela de a oferi o analiză cantitativă și calitativă a metodelor
de implementare a tehnologiei de realitate augmentată, precum și de a oferi informații
referitoare la domeniile de utilizare ale ace steia. Au fost descrise asemănările și deosebirile
dintre diferite tehnologii și medii de dezvoltare a aplicațiilor de realitate augmentată din
punctul de vedere al unui dezvoltator .
De asemenea, proiectul a expus un număr de aplicații de pe piață ce au re voluționat industria
aplicațiilor de realitate augmentată și a rezumat succint o serie de evenimente ce au pus
bazele acestui domeniu, începând cu primele manifestări ale acestuia.
În final s -a prezentat prototipul unei aplicații de realitate augmentată de stinată dispozitivelor
bazate pe sistemul de operare Android, precum și etapele de dezvoltare ale acestuia folosind
motorul grafic Unity și modulul de realitate augmentată Vuforia.
7.1 Evaluarea aplicației
În urma implementării prototipului am efectuat u n test de evaluare al acestuia. Testul a fost
realizat utilizând un eșantion de cinci persoane, cu vârste cuprinse între 20 și 28 de ani. Toți
participanții prezintă experiență în domeniul „escape room -urilor” și al aplicațiilor de
telefonie mobilă, iar di spozitivul utilizat pentru testare este un Samsung Galaxy S6 G920F .
Mediul de test este compus dintr -un set de imagini predefinite așezate pe un suport drept.
Utilizatorii au pornit aplicația și au fost rugați să îndeplinească obiectivul de a completa jocu l
prin îndreptarea camerei dispozitivului către imaginile din fața lor.
După finalizarea activităților, cei cinci utilizatori au completat un formular de feedback în care
au oferit calificative în funcție de anumite caracteristici, după cum este reprezenta t în Tabel
2. Nota „1” reprezintă calificativul cel mai mic, iar nota „5” reprezintă calificativul cel mai
mare.
Tabel 2 Feedback utilizatori
P1 P2 P3 P4 P5
Inventivitate 4 3 5 5 4
Implementare
elemente AR 5 5 4 5 3
Fluiditate 3 4 3 5 5
Interfațare cu
utilizatorul 3 2 5 4 1
42
8. DEZVOLT ĂRI ULTERIOAR E
Desigur, acesta este un prototip și există câteva îmbunătățiri ce se pot adăuga ulterior pentru
o funcționare mai complexă. Pe baza acestei aplicații se po ate dezvolta un număr foarte mare
de jocuri , iar analiza feedback -ului descris anterior enumer ă posibile caracteristici ce ar spori
interactivitatea cu aplicația:
• Adaptarea sistemului pentru a permite patru jucători să participe împreună la același
joc.
• Utilizarea funcționalității „User Defined Targets” existentă în modulul Vuforia prin
care i se permite utilizatorului de a -și defini imaginile proprii de detecție fără a fi
necesară utilizarea bazei de date create în prealabil.
• Adăugarea unor activități noi co operative.
• Integrarea aplicației și cu sistemul iOS.
• Elemente de interfață grafică noi.
• Activități grupate pe teme specifice unui „escape -room” .
Scopul final al aplicației îl constituie integrarea acestuia într -un mediu real de „escape room”
și oferirea po sibilității utilizatorilor de a încerca o experiență nouă și captivantă.
43
9. BIBLIOGRAFIE
[1] D. Cushnan și H. E. Habbak, Developing AR games for iOS and Android, Packt Publishing
Ltd., 2013.
[2] „A TAXONOMY OF MIXED REALITY VISUAL DISP LAYS,” [Interactiv]. Available:
http://etclab.mie.utoronto.ca/people/paul_dir/IEICE94/ieice.html. [Accesat 22 05
2019].
[3] J. Canny, „A Computational Approach to Edge Detection,” IEEE TRANSACTIONS ON
PATTERN ANALYSIS AND MACHINE INTELLIGENCE, Vol. %1 di n %2PAMI -8, nr. 6, pp. 679 –
698, 1986.
[4] I. E. Sutherland, „A head -mounted three dimensional display,” ACM, p. 757 –764, 1968.
[5] T. Caudell și D. Mizell, „Augmented reality: an application of headsup display technology
to manual manufacturing proce sses,” System Sciences, vol. 2, pp. 659 -669, 1992.
[6] R. T. Azuma, „A survey of augmented reality,” Presence: Teleoperators and Virtual
Environments, vol. 6, pp. 355 -385, 1997.
[7] G. E. Moore, „Cramming more components onto integrated circuits,” Electronics, vol.
38, 1965.
[8] „Apple prezintă primul său model de telefon mobil,” 10 Ianuarie 2007. [Interactiv].
Available:
http://www.bbc.co.uk/romanian/news/story/2007/01/070110_apple_mobil.shtml.
[Accesat 10 Iunie 2019].
[9] „Virtual Technologies, ” [Interactiv]. Available:
https://www.volkswagenag.com/en/group/research/virtual -technologies.html.
[Accesat 15 Aprilie 2019].
[10] N. Armstrong, „Word Lens app developer builds on social media buzz,” 19 Aprilie 2011.
[Interactiv]. Available: https://ww w.reuters.com/article/us -entrepreneur –
wordlens/word -lens-app-developer -builds -on-social -media -buzz –
idUSTRE73I63P20110419?type=smallBusinessNews. [Accesat 15 Aprilie 2019].
[11] L. Chang, „See how that couch would look in your living room in AR with Ikea Place,” 3
Martie 2018. [Interactiv]. Available: https://www.digitaltrends.com/home/ikea -place –
ar/. [Accesat 3 Mai 2019].
[12] [Interactiv]. Available: https://www.pokemongo.com/en -gb/. [Accesat 19 Aprilie 2019].
44
[13] J. Jongejan, „Just a Line: The firs t cross -platform collaborative AR app (for doodling),” 30
Mai 2018. [Interactiv]. Available: https://www.blog.google/products/google -vr/just –
line-first-cross -platform -collaborative -ar-app-doodling/. [Accesat 20 Aprilie 2019].
[14] [Interactiv]. Available : https://www.google.com/glass/start/. [Accesat 8 Mai 2019].
[15] D. Stolte, „Moving Holograms: From Science Fiction to Reality,” 3 11 2010. [Interactiv].
Available: https://uanews.arizona.edu/story/moving -holograms -from -science -fiction –
to-reality. [Acce sat 4 Mai 2019].
[16] [Interactiv]. Available: https://developer.vuforia.com/vui/develop/licenses.
[17] [Interactiv]. Available: https://developer.vuforia.com/vui/develop/databases.
[18] [Interactiv]. Available: https://docs.unity3d.com/Manual/Execut ionOrder.html.
45
10. ANEXE
Figur a 18 Schemă logică a duratei de viață a unui script [18]
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Joc pe dispozitive mobile de realitate augmentată Lucian -Ionuț Lazăr Coordonator științific: Conf. dr. ing. Anca Morar BUCURE ȘTI 2019 2 CUPRINS… [620365] (ID: 620365)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
