INTRODUCERE Realitatea virtual ă a ap ă rut ca ș [621834]

INTRODUCERE

Realitatea
virtual
ă
a
ap
ă
rut
ca
ș
i
concept
înc
ă
din
1860,
îns
ă
a
fost
destul
de
greu
de

formulat
la
acea
vreme
o
defini
ț
ie
pentru
ce
înseamn
ă
de
fapt
realitate
virtual
ă
.
Acest

fenomen
a
luat
amploare
în
2007
când
Google
a
introdus
Street
View,
iar
dup
ă
a

continuat cu apari
ț
ia c
ă ș
tii numite Oculus Rift.

Domeniul
este
la
început
de
drum
ș
i
din
ce
în
ce
mai
multe
firme
au
început
s
ă

investeasc
ă
în
dezvolta re.
Un
exemplu
ar
fi
Facebook
care
în
2016
avea
peste
400
de

oameni
ce
se
ocupau
cu
dezvoltarea
realit
ă ț
ii
virtuale.
Multe
din
aplica
ț
iile
din
ziua
de

ast
ă
zi
sunt
axate
mai
mult
pe
amuzament,
precum
jocurile
video,
îns
ă
pu
ț
ine
aplica
ț
ii

înglobeaz
ă
de
fapt
imag ini
sau
videouri.
Acestea
pot
fi
folosite
doar
ca
o
modalitate
de

vizionare
a
mediului
înconjur
ă
tor
f
ă
r
ă
s
ă
ofere
utilizatorului
prea
mult
ă
libertate
de

mi
ș
care fa
ț ă
de o realita te virtual
ă
oferit
ă
de un joc video.

Pe
lâng
ă
amuzamen t
realitatea
virtual
ă
mai
este
des
întâlnit
ă
în
simulatoare
unde

este
utilizat
ă
în
preg
ă
tirea
ș
i
instruirea
oamenilor,
pentru
meseriile
periculoase
sau

pentru
situa
ț
iile
în
care
s-ar
pune
via
ț
a
altui
om
în
pericol,
precum
chirurgia.
Ace
ș
tia
î
ș
i

pot dezvolta abilit
ă ț
ile f
ă
r
ă
consecin
ț
e.

De
ș
i
în
chirurgie
se
poate
folosi
aceast
ă
tehnic
ă
ea
totu
ș
i
nu
este
necesar
ă
pentru
ca

un
chirurg
s
ă
se
dezvolte,
în
schimb
exist
ă
cazuri
unde
realitatea
virtual
ă
ș
i

simulatoarele
sunt
indispensabile,
un
exemplu
fiind
astronau
ț
ii
care
nu
se
pot
preg
ă
ti
în

spa
ț
iu.

Pe
câte
avantaje
poate
oferi
realitatea
virtual
ă
pe
atâtea
dezavantaje
exist
ă
în

prezent,
precum
costul
mare
al
elementelor
hardware
ce
sunt
necesare
pentru
a
utiliza

orice aplica
ț
ie de acest g en.

Un
alt
dezavantaj
major
este
constituit
de
lipsa
speciali
ș
tilor
pentru
dezvoltarea
unei

astfel de aplica
ț
ii
ș
i a facilit
ă ț
ilor acreditate pentru formarea lor.

Alte
inconveniente
mai
sunt
reprezentate
ș
i
de
pre
ț
ul
ridicat
pentru
implementarea

software a serviciilor oferite de acest tip de aplica
ț
ie.

Folosirea
unui
simulator
sau
a
oric
ă
rui
tip
software
ce
are
implementat
ă
realitatea

virtual
ă
trebuie
folosi t
într-un
mediu
sigur
ș
i
stând
pe
loc
dat
fiind
faptul
c
ă

nerespectarea
acestei
sugestii
poate
duce
la
o
accidentare
de
la
u
ș
oar
ă
pan
ă
la
fatal
ă
a

utilizatorului.

Tema
a
fost
aleas
ă
pentru
a
putea
oferi
studen
ț
ilor
din
cadrul
universit
ă ț
ii
„Dun
ă
rea

de
Jos”,
sau
oric
ă
rei
alte
persoane
ce
dore
ș
te
sa
ajung
ă
într-o
anumit
ă
loca
ț
ie
din

campusul
universitar,
o
modalitate
de
a
vizualiza
drumul
pân
ă
acolo,
din
confortul

propriei
locuin
ț
e
folos ind
doar
telefonul
mobil,
împreun
ă
cu
o
casc
ă
ce
creeaz
ă

sentimentul de realitate virtual
ă
, aceasta nefiind obligatorie.

Aplica
ț
ia
ofer
ă
utilizatorului
posibilitatea
de
explorare
a
unei
înc
ă
peri
virtuale
prin

intermediul
c
ă
reia
are
acces
la
o
machet
ă
amplasat
ă
pe
o
mas
ă
.
Cu
ajutorul
acesteia
î
ș
i

poate
alege
singur
locul
de
unde
dore
ș
te
s
ă
porneasc
ă
ș
i
de
asemenea
îi
permite
s
ă

selecteze
ș
i
punctul
und e
vrea
s
ă
ajung
ă
.
Pe
baza
acestor
informa
ț
ii
selectate
de
c
ă
tre

1

utilizator
se
va
construi
ruta
dintre
cele
dou
ă
puncte
ș
i
se
vor
înc
ă
rca
videourile
aferente

vizualiz
ă
rii traseului.

De
asemenea,
aplica
ț
ia
î
ș
i
propune
s
ă
înglobeze
atât
realitatea
virtual
ă
oferit
ă
prin

elementele grafice dintr-un joc cu cea creat
ă
de film
ă
ri.

Fa
ț ă
de
alte
aplica
ț
ii
pe
mobil
ce
folosesc
acela
ș
i
concept
de
redare
a
realit
ă ț
ii
virtuale

aceasta
ofer
ă
utilizatoru lui
mai
mult
control
în
ceea
ce
prive
ș
te
mi
ș
carea
ș
i
explorarea

mediului pus la dispozi
ț
ie de aplica
ț
ie.

2

CAPITOLUL 1. TEHNOLOGII
Ș
I ECHIPAMENTE NECESARE

1.1. Tehnologii
ș
i ech ipamente necesare pentru dezvoltarea aplica
ț
iei

O
astfel
de
aplica
ț
ie
necesit
ă
atât
componente
hardware
cât
ș
i
componente
software

pentru a fi realizat
ă
.

Din
punct
de
vedere
hardware
s-a
utilizat
camera
„Samsung
Gear
360”
ce
filmeaz
ă
la

360
de
grade
ș
i
captur eaz
ă
con
ț
inut
video
panoramic
împreun
ă
cu
un
stabilizator
de

mân
ă
numit
„GP174B”
pentru
a
ob
ț
ine
cea
mai
bun
ă
calitate
posibil
ă
a
înregistr
ă
rilor

video.
Pe
parcursul
realiz
ă
rii
film
ă
rilor
pentru
a
le
putea
viziona
în
timp
real
este

obligatoriu
un
telefon
mobil
comercializat
de
c
ă
tre
compania
Samsung
începând
cu

modelul S6 pentru a putea fi compatibil cu camera.

În
ceea
ce
prive
ș
te
elementele
software
s-a
folosit
Unity
ca
motor
grafic
pentru
a

putea
pune
în
scen
ă
videourile
ș
i
a
da
impresia
de
realit ate
virtual
ă
utilizatorului.

Deoarece
dimensiunea
film
ă
rilor
este
foarte
mare
s-a
optat
pentru
utilizarea
unui

server,
creat
cu
ajutorul
limbajului
de
programare
NodeJs,
instalat
pe
o
ma
ș
in
ă
virtual
ă

folosind ca sistem de operare Ubuntu.

Videoclipurile
realizate
de
camer
ă
,
pentru
a
putea
fi
interpretate
ș
i
a
oferi
senza
ț
ia
de

realitate virtual
ă
, au fos t convertite cu telefonul mobil men
ț
ionat anterior.

Limbajul
de
programare
folosit
este
C#
utilizat
împreun
ă
mediul
de
dezvoltare
Visual

Studio.

1.2. Tehnologii
ș
i ech ipamente necesare pentru utilizarea aplica
ț
iei

Un
utilizator,
pentru
a
putea
folosi
acest
tip
de
aplica
ț
ie,
trebuie
sa
dispun
ă
de
un

dispozitiv
mobil
cu
o
versiune
de
Android
minim
ă
de
5.0.
În
plus,
pe
lâng
ă
acesta,
pentru

o
experien
ț ă
cât
mai
apropiat
ă
de
realitate
mai
este
nevoie
ș
i
de
o
casc
ă
în
care
se

introduce telefonul.

3

CAPITOLUL 2. CERIN
Ț
E
Ș
I SPECIFIC A
Ț
II

Aplica
ț
ia
î
ș
i
propune
s
ă
ajute
studen
ț
ii
facult
ă ț
ii
„Universit atea
Dun
ă
rea
de
Jos
Gala
ț
i”

s
ă
se
poat
ă
orienta
c
ă
tre
cl
ă
dirile
unde
se
vor
ț
ine
cursurile,
seminariile
sau

laboratoarele
din
propria
locuin
ț ă
oferindu-le
acestora
posib ilitatea
s
ă
ajung
ă
la
timp
la

ore, f
ă
r
ă
prea mult efort.

Pentru
a
putea
fi
satisf
ă
cute
specifica
ț
iile
men
ț
ionate
mai
sus
aplica
ț
ia
ar
trebui
s
ă

cuprind
ă
urm
ă
toarele:


film
ă
ri cu loca
ț
iile din interiorul campusului universita r


s
ă
fie compatibil
ă
cu majoritatea dispozitivelor mobile


s
ă
ofere sentimen tul de realitate virtual
ă
prin intermediul film
ă
rilor


op
ț
iunea de a op ri videoul


op
ț
iunea de a rep orni videoul de unde a r
ă
mas


s
ă
permit
ă
utilizatorului s
ă
ias
ă
din filmare dac
ă
se dore
ș
te alegerea altui drum


înc
ă
rcarea asincr on
ă
a videourilor


posibilitatea de alegere a unui punct de plecare


posibilitatea de alegere a unei destina
ț
ii

Din
cauza
dimensiunilor
mult
prea
mari
ale
film
ă
rilor
pentru
a
fi
stocate
pe

dispozitivul
utilizatorului
a
fost
nevoie
de
implementarea
unui
server
care
s
ă
fie
capabil

de urm
ă
toarele:


s
ă
interpreteze c ererile de tip „REST API”


s
ă
poat
ă
identifica numele videourilor din fi
ș
ier


s
ă
trimit
ă
date c
ă
tre aplica
ț
ie sub form
ă
de „json”

4

CAPITOLUL 3. ANALIZA PROBLEMEI

Dezvoltarea
unei
aplica
ț
ii
presupune
întâi
analiza
problemei,
în
care
se
identific
ă

elementele ce o vor constitui.

3.1 Partea de client

Aceasta
este
partea
vizibil
ă
utilizatorului,
care
îi
ofer
ă
acestuia
posibilitatea
de
a

controla
orientarea
camerei
cu
ajutorul
mi
ș
c
ă
rii
capului
putând
vizualiza
obiectele
din

jurul
s
ă
u,
creându-i
sentimentul
de
realitate
virtual
ă
.
Utilizatorul
are
posibilitatea
s
ă

aleag
ă
dou
ă
puncte,
primul
reprezentând
locul
de
unde
dore
ș
te
s
ă
porneasc
ă
,
iar
al

doilea destina
ț
ia.

3.2 Sfera

Sfera
este
o
component
ă
din
motorul
grafic
alc
ă
tuit
ă
din
mai
multe
elemente
ce

împreun
ă
ofer
ă
sentimentul
de
realitate
virtual
ă
asupra
unei
film
ă
ri.
Aceasta
nu
poate
fi

v
ă
zut
ă
de
c
ă
tre
utilizato r
deoarece
el
se
afl
ă
în
centrul
acesteia
ș
i
prive
ș
te
c
ă
tre
înveli
ș
ul

interior care ac
ț
ioneaz
ă
ca un ecran pe care sunt proiectate vi deourile.

3.3 Serverul

Serverul
este
cel
care
comunic
ă
cu
aplica
ț
ia
ș
i
trimite
date
sub
form
ă
de
„json”,
dar
ș
i

cel
care
ș
tie
s
ă
interpreteze
cererile
de
tip
„REST
API”.
A
fost
necesar
ă
implementarea

acestuia
deoarece
videourile
având
dimensiuni
mari
nu
puteau
fi
stocate
pe
dispozitivul

utilizatorului.

3.4 Film
ă
ri

Fiind
o
aplica
ț
ie
de
orientare
în
interiorul
campusului
universitar
apar
ț
inând

„Universit
ă ț
ii Dun
ă
rea d e Jos Gala
ț
i” au fost necesare film
ă
ri cu loca
ț
iile specifice.

5

CAPITOLUL 4. ANALIZA CONCUREN
Ț
EI

Aplica
ț
ia
adresându-s e
exclusiv
studen
ț
ilor
de
la
„Universit atea
Dun
ă
rea
de
Jos
Gala
ț
i”

s-a
realizat
o
analiz
ă
a
concuren
ț
ei
bazat
ă
pe
aplica
ț
iile
care
ofer
ă
realitate
virtual
ă
prin

intermediul videourilor.

Aplica
ț
iile
analizate
sunt
Discovery
VR,
Within,
NYT
VR,
Jaunt
VR
fiecare
dintre
ele

având puncte forte
ș
i puncte slabe.

Din
punct
de
vedere
al
film
ă
rilor,
al
experien
ț
ei
oferite
utilizatorului
ș
i
al
notelor

oferite
de
persoanele
ce
au
încercat
aplica
ț
iile
men
ț
ionate
mai
sus
ele
se
claseaz
ă
în

urm
ă
toarea ordine:


WITHIN


NYT VR


Jaunt VR


Discovery VR

4.1 WITHIN


Not
ă
acordat
ă
în Play Store: 4.0


Cerin
ț
e minime: Android 4.4


Dimensiune: 68M


Instal
ă
ri:

1.000.000+
 

Avantaje:


Meniu interactiv pe mobil


Posibilitatea de vizionare a film
ă
rilor prin internet


Posibilitatea de desc
ă
rcare a film
ă
rilor
ș
i vizionate local


Posibilitatea de alegere dac
ă
se va viziona pe telefon sau direct cu casca


Film
ă
ri di versificate


Dezavantaje:


Majoritatea videourilor au dimensiuni foarte mari


Nu
ofer
ă
o
metod
ă
de
explorare
a
meniului
pe
telefon
f
ă
r
ă
s
ă
se
scoat
ă

casca altfel întrerupând senza
ț
ia de realitate virtual
ă


Butoanele
de
play,
pause
ș
i
back
to
menu
nu
pot
fi
accesate
din
interiorul

film
ă
rii, a cestea pot fi accesate doar atingând ecranul


Nu se poate s
ă
ri peste anumite p
ă
r
ț
i din filmare

6

4.2 NYT VR


Not
ă
acordat
ă
în Play Store: 3.8


Cerin
ț
e minime: Android 5.0


Dimensiune: 39M


Instal
ă
ri:

100.000+
 

Avantaje:


Posibilitatea de vizionare a film
ă
rilor prin internet


Posibilitatea de desc
ă
rcare a film
ă
rilor
ș
i vizionate local


Posibilitatea de alegere dac
ă
se va viziona pe telefon sau direct cu casca


Dezavantaje:


Inexisten
ț
a unui meniu în care s
ă
se poat
ă
c
ă
uta videouri u
ș
or


Film
ă
rile sunt realizate prin imagini puse cap la cap


Imposibilitatea
de
a
viziona
un
alt
videoclip
f
ă
r
ă
s
ă
se
ating
ă
cu
degetul

ecranul telefonului

7

4.3 Jaunt VR


Not
ă
acordat
ă
în Play Store: 3.7


Cerin
ț
e minime: Android 5.0


Dimensiune: 26M


Instal
ă
ri:

100.000+
 

Avantaje:


Meniul este incorporat în realitatea virtual
ă


Film
ă
rile
pot
fi
oprite
f
ă
r
ă
s
ă
se
scoat
ă
casca
ș
i
s
ă
se
apese
cu
degetul
pe

ecran


Posibilitatea de vizionare a film
ă
rilor prin internet


Dezavantaje:


Meniul din interiorul aplica
ț
iei este complex
ș
i neclar


Selectarea
butoanelor
se
face
mult
prea
rapid
utilizatorul
neavând
timp
s
ă

se r
ă
zgând easc
ă


Imposibilitatea
de
a
alege
dac
ă
s
ă
vizioneze
videourile
cu
casca
sau
f
ă
r
ă

aceasta


Lipsa
unui
tutorial
cu
privire
la
modul
de
utilizare
al
multitudinii
de

butoane oferit
ă
de interfa
ț
a aplica
ț
iei

8

4.4 Discovery VR


Not
ă
acordat
ă
în Play Store: 3.4


Cerin
ț
e minime: Android 4.2


Dimensiune: 12M


Instal
ă
ri:

500.000+
 

Avantaje:


Posibilitatea de a selecta o filmare ce face parte dintr-un grup de emisiuni


Posibilitatea
de
a
alege
vizionarea
cu
casc
ă
sau
direct
de
pe
telefonul

mobil


Dezavantaje:


Imposibilitatea
de
a
pune
pauz
ă
film
ă
rii
f
ă
r
ă
s
ă
se
piard
ă
efectul
de

realitate virtual
ă


Imposibilitatea
de
a
desc
ă
rca
videourile
ș
i
a
le
putea
viziona
local
de
pe

telefonul mobil f
ă
r
ă
internet


Film
ă
ri re alizate din buc
ă ț
i f
ă
r
ă
prea mult
ă
leg
ă
tur
ă
între ele

9

Aplica
ț
iile
men
ț
ionate
anterior,
având
avantaje
ș
i
dezavantaje,
trebuie
încercate

deoarece
fiecare
ofer
ă
utilizatorului
o
experien
ț ă
nou
ă
ș
i
pl
ă
cut
ă
prin
intermediul

realit
ă ț
ii virtuale.

Pe
viitor
este
posibil
s
ă
apar
ă
aplica
ț
ii
mult
mai
diversificate
ș
i
complexe
ce
pot

îmbina film
ă
rile cu expe rien
ț
a oferit
ă
de un joc din aceea
ș
i categorie.

10

CAPITOLUL 5. CONFIGURAREA
Ș
I IMPLEMENTAREA APLICA
Ț
IEI

Pentru
a
putea
implementa
acest
tip
de
aplica
ț
ie
a
fost
necesar
ă
documentarea
cu

privire
la
mai
multe
aspecte,
cuprinzând
atât
elemente
hardware,
ce
camer
ă
ar
fi
cea

mai
potrivit
ă
ș
i
cum
se
poate
ob
ț
ine
cea
mai
bun
ă
calitate
a
videourilor,
cât
ș
i
anumite

tehnologii software de ultim
ă
or
ă
pentru care documenta
ț
ia este insuficient
ă
.

5.1. Configurarea parametrilor de func
ț
ionare
ș
i utilizarea elementelor hardware

Elementele
hardware
folosite
pentru
filmarea
videoclipurilor
din
cadrul
aplica
ț
iei
au

fost urm
ă
toarele:


camera „Samsung Gear 360”


stabilizatorul de mân
ă
„GP174B”


telefon Samsung Galaxy S7

Camera
video
a
fost
setat
ă
s
ă
filmeze
la
rezolu
ț
ia
de
2048×1080
pixeli,
cunoscut
ă
ș
i

sub
denumirea
de
2K,
ș
i
a
fost
amplasat
ă
pe
stabilizatorul
de
mân
ă
care
a
ajutat
la

diminuarea trepida
ț
iilor din videouri.

Stabilizatorul
de
mân
ă
se
regleaz
ă
ata
ș
ând
întâi
mânerul
în
una
din
pozi
ț
iile

disponibile,
apoi
camera
cu
toate
accesoriile
sale,
deoarece
chiar
ș
i
cea
mai
mic
ă

greutate
în
plus
poate
muta
centrul
de
greutate
în
afara
zonei
de
echilibru
ș
i
poate
duce

la
o
cantitate
nedorit
ă
de
trepida
ț
ii
care
pot
provoca
utilizato rului
r
ă
u
de
mi
ș
care.
Pasul

trei
const
ă
în
ad
ă
ugarea
greut
ă ț
ilor
pentru
a
contrabalansa
greutatea
camerei
pân
ă

ajunge
la
un
echilibru
perfect
în
ceea
ce
prive
ș
te
orientarea
fa
ț ă
-spate.
Dup
ă
,
se

balanseaz
ă
stânga-drea pta
mi
ș
când
greut
ă ț
ile.
În
final
se
dore
ș
te
verificarea
vitezei
cu

care
se
va
reveni
în
echilibru
perfect
dând
drumul
greut
ă ț
ilor
din
cel
mai
înalt
punct

posibil
al
stabilizatorului,
timpul
optim
pentru
revenire
fiind
de
aproximativ
dou
ă

secunde.

11

Telefonul
este
folosit
pentru
o
mai
bun
ă
orientare
în
timpul
film
ă
rilor
ș
i
pentru

convertirea înregistr
ă
rilor din a
ș
a numitul tip „ochi de pe
ș
te” în tipul „cus
ă
tur
ă
”.

12

5.2. Filmarea
ș
i editar ea videoclipurilor

Videourile
au
fost
filmate
pe
parcursul
mai
multor
zile
ș
i
p
ă
strate
pentru
editare
doar

cele
mai
bune.
În
primele
zile
s-a
încercat
folosirea
camerei
f
ă
r
ă
un
stabilizator
ș
i
s-a

observat c
ă
trepida
ț
iile erau destul de mari, iar acele film
ă
ri nu erau utilizabile.

Dup
ă
folosirea
stab ilizatorului
s-au
refilmat
toate
videoclipurile,
unde
s-a
putut

observa o îmbun
ă
t
ă ț
ire substan
ț
ial
ă
fa
ț ă
de cele precedente.

13

Convertirea
s-a
realizat
întâi
folosind
programul
de
la
Samsung
numit
„Gear
360

Action
Director”,
dar
au
existat
probleme
de
compatibilitate
ș
i
s-a
trecut
la
convertirea

cu telefonul mobil, îns
ă
programul men
ț
ionat anterior a fost folosit pentru editarea lor.

14

5.3. Implementarea serverului

Implementarea
serverului
s-a
realizat
folosind
o
combina
ț
ie
de
mai
multe
tehnologii

precum:


ma
ș
in
ă
virtual
ă
cu Ubuntu


Sublime pentru scrierea codului ce
ț
ine de serverul web


server web


Node.js împreun
ă
cu mai multe libr
ă
rii necesare pentru crearea serverului web


„Representational
State
Transfer
Application
Programming
Interface”

prescurtat
ă
ca „R EST API” pentru comunicarea între server
ș
i interfa
ț
a aplica
ț
iei.

15

5.3.1. Instalarea ma
ș
inii virtuale
ș
i a sistemului de operare

S-a
folosit
ca
mediu
de
virtualizare
ultima
versiune
disponibil
ă
de
VirtualBox
ș
i
s-a

desc
ă
rcat
cea
mai
actua l
ă
versiune
a
sistemului
de
operare
Ubuntu
pe
64
de
bi
ț
i.
Dup
ă

instalare,
pentru
a
putea
crea
o
ma
ș
in
ă
virtual
ă
cu
un
sistem
de
operare
pe
64
de
bi
ț
i,
se

va
verifica
dac
ă
BIOS-ul,
„Basic
Input/Output
System”,
permite
virtualizarea

procesorului.
Dac
ă
acest a
nu
poate
fi
virtualizat
se
va
schimba
sistemul
cu
unul
de
32
de

bi
ț
i
sau,
pentru
utilizato rii
mai
avansa
ț
i,
se
va
intra
în
BIOS
ș
i
se
vor
schimba
set
ă
rile

acestuia ca s
ă
permit
ă
virtualizarea pe 64 de bi
ț
i.

Pentru
a
putea
instala
un
sistem
de
operare
pe
o
ma
ș
in
ă
virtual
ă
sunt
necesari
mai

mul
ț
i pa
ș
i de configurare.

Primul pas:


se face click pe butonul New


se
completeaz
ă
c
ă
su
ț
a
cu
numele
ma
ș
inii
virtuale
care
apoi
va
ap
ă
rea
în
partea

stânga


se selecteaz
ă
tipu l în func
ț
ie de ce sistem de operare se dore
ș
te


se selecteaz
ă
versiunea dorit
ă
, adic
ă
pe 64 de bi
ț
i sau 32 de bi
ț
i


dup
ă
ce
s-au
stab ilit
configura
ț
iile
dorite
se
va
face
click
mai
departe
pe
butonul

Next care va trimite la urm
ă
toarea fereastr
ă
de configurare

Al doilea pas:


se
selecteaz
ă

ț
i
giga
de
ram
se
doresc,
este
recoman dat
s
ă
nu
se
selecteze
mai

mult de jum
ă
tate din cei de pe ma
ș
ina fizic
ă


pentru
un
sistem
pe
64
de
bi
ț
i
se
vor
alege
minim
4
giga
de
ram,
pentru
un
sistem

pe 32 de bi
ț
i min im 2 giga, iar apoi se face click pe butonul Next

16

Al treilea pas:


se
creaz
ă
un
hard
disk
virtual
în
care
se
va
instala
sistemul
de
operare
ș
i
unde

vor fi depozitate toate fi
ș
ierele acestuia


dup
ă
selectarea o p
ț
iunii se apas
ă
butonul Create

Al patrulea pas:


se selecteaz
ă
tipu l hard disk-ului VirtualBox Disk Image


se face click pe Next

17

Al cincilea pas:


se
selecteaz
ă
tipul
de
stocare
pe
hardul
fizic
al
ma
ș
inii,
se
recomand
ă
folosirea

m
ă
rimii fixe deoa rece va fi mai rapid când ma
ș
ina virtual
ă
va citi datele necesare


se face click pe Next

18

5.3.2. Instalarea
ș
i configurarea serverului

Întâi
se
vor
instala
urm
ă
toarele
pachete
pe
ma
ș
ina
virtual
ă
:
NodeJs
ș
i
Npm.
Pentru
a

instala modulele men
ț
ionate anterior se vor folosi urm
ă
toarele comenzi:


„sudo apt install nodejs”


„sudo apt install npm”

Configurarea se va realiza astfel:


se copiaz
ă
script ul folosit în orice fi
ș
ier dorit


se
va
folosi
comanda
„cd
<nume
fi
ș
ier>”
pentru
schimbarea
directorului
curent

cu cel în care a fost copiat scriptul


se configureaz
ă
modulele cu urm
ă
toarele comenzi:


npm init unde punctul de intrare va fi numele scriptului


npm install express –save


npm install –save get-video-duration


se
creaz
ă
foldere le
„VideosEndingPoint”
în
care
se
pun
toate
videourile
ce
pot
fi

destina
ț
ie
final
ă
în
aplica
ț
ie,
„VideosStartingPoint”
unde
se
vor
afla
toate
film
ă
rile

ce pot fi punct de început
ș
i „IntermediatePoint” pentru punctele intermediare.

5.3.3. Func
ț
ionalitate a serverului

Serverul
este
folosit
ca
s
ă
trimit
ă
r
ă
spunsul
adecvat
c
ă
tre
aplica
ț
ie
interpretând
mai

multe cereri de tip „GET”.

Scriptul
ș
tie
s
ă
trimit
ă
datele
sub
form
ă
de
„json”
pentru
a
oferi
utilizatorului

posibilitatea
s
ă
aleag
ă
anumite
puncte.
Acestea
sunt
mai
departe
trimise
la
server
unde

sunt
interpretate
cu
ajutorul
unei
func
ț
ii
recursive
în
care
se
creeaz
ă
o
list
ă
cu
toate

film
ă
rile ce trebuie afi
ș
ate
ș
i trimis
ă
înapoi.

Apoi
aplica
ț
ia
î
ș
i
gestioneaz
ă
lista
primit
ă
ș
i
începe
s
ă
fac
ă
apel
din
nou
la
server

solicitând videourile unul cate unul.

19

5.4. Implementarea aplica
ț
iei

Aplica
ț
ia
a
fost
imp lementat
ă
cu
ajutorul
motorului
grafic
Unity,
a
mediului
de

dezvoltare Visual Studio, iar codul a fost scris în limbajul C#.

5.4.1. Configurarea motorului grafic Unity

Pentru
a
putea
permite
exportul
unei
aplica
ț
ii
din
Unity
pentru
telefoane
mobile
este

necesar
ă
desc
ă
rcarea
jdk-ului
8.0.
Se
poate
desc
ă
rca
ș
i
alt
ă
versiune
dar
aceasta
este

recomandat
ă
ca
fiind
cea
mai
stabil
ă
,
împreun
ă
cu
un
sdk
de
android.
Acesta
din
urm
ă

nu
mai
este
disponibil
pentru
desc
ă
rcare
individual
ă
,
din
aceast
ă
cauz
ă
se
va
desc
ă
rca

Android Studio
ș
i se va f olosi sdk-ul instalat de acesta.

20

Dup
ă
finalizarea
acestui
pas
se
va
deschide
Unity
ș
i
se
va
face
click
pe
urm
ă
toarele

op
ț
iuni
în
ordinea
Edit ,
Preferences,
External
Tools,
Browse
unde
se
va
pune
calea

absolut
ă
c
ă
tre sdk
ș
i jdk .

În
continuare
pentru
a
putea
s
ă
se
ofere
efectul
de
realitate
virtual
ă
în
motorul
grafic

este
nevoie
de
desc
ă
rcarea
unui
alt
sdk
creat
de
Google
ș
i
distribuit
gratuit
pe
platforma

GitHub.
Importarea
sdk-ului
în
Unity
se
realizeaz
ă
f
ă
când
click
în
urm
ă
toarea
ordine

Assets,
Import
Package,
Custom
Package,
apoi
se
selecteaz
ă
pachetul
desc
ă
rcat
anterior

ș
i se face click pe Impor t.

Dup
ă
ce
a
fost
realiz at
importul
se
va
face
click
pe
File
>
Build
Settings
>
Android
>

Switch
Platform
>
Player
Settings.
Apoi
se
configureaz
ă
Player
Settings
astfel
încât

aplica
ț
ia s
ă
permit
ă
folo sirea realit
ă ț
ii virtuale. Configurarea realizându-se astfel:


Player Settings > XR Settings > Virtual Reality Supported > Enabled


Player
Settings
>
XR
Settings
>
Virtual
Reality
SDKs
>
se
face
click
pe
+
ș
i
se

selecteaz
ă
Cardb oard
ș
i Daydream


Player Settings > Other Settings > Minimum Api Level > 21


Player Settings > Other Settings > Package Name > com.Nume.Proiect

21

22

5.4.2. Structura aplica
ț
iei

Unity vizualizeaz
ă
tot ce
ț
ine de structura unui proiect sub fi
ș
ierul „Assets” acesta

putând fi modelat de c
ă
tre programator. Totu
ș
i se recomand
ă
folosirea unor practici

utile precum:


crearea unui fi
ș
ier pentru resursele proiectului care s
ă
fie la acela
ș
i nivel cu toate

plugin-urile importate


crearea unui fi
ș
ier numit scripts în care se va afla tot codul scris


crearea unui fi
ș
ier numit prefabs unde se vor salva toate prefabricatele


crearea unui fi
ș
ier numit scenes unde vor exista scenele salvate


gruparea elementelor similare în acela
ș
i fi
ș
ier

Aplica
ț
ia î
ș
i propune s
ă
respecte aceste practici
ș
i de aceea a fost structurat
ă
în

urm
ă
torul fel:

5.4.3. Interfa
ț
a grafic
ă
a aplica
ț
iei

Prima interfa
ț ă
grafic
ă
oferit
ă
utilizatorului a fost una rudimentar
ă
în care nu putea s
ă

fac
ă
prea multe lucruri, ea afi
ș
ând doar câteva butoane la care utilizatorul se putea uita.

23

Deoarece utilizatorul nu avea prea mult
ă
libertate de mi
ș
care s-a pus în scen
ă
o

camer
ă
cu o mas
ă

ș
i o m achet
ă
pe ea oferindu-i posibilitatea de mi
ș
care, explorare a

înc
ă
perii
ș
i selectare a punctelor prin intermediul machetei.

5.4.4. Punerea în scen
ă

Scena
este
reprezentat
ă
de
elementele
folosite
de
c
ă
tre
aplica
ț
ie,
acestea
nefiind

vizibile
utilizatorului.
Majoritatea
elementelor
din
scen
ă
sunt
folosite
ca
„prefabricate”

ele
func
ț
ionând
ca
un
ș
ablon
cu
ajutorul
c
ă
ruia
pot
fi
create
instan
ț
e
ale
obiectului.
În

scen
ă
exist
ă
elemente
statice
ș
i
dinamice,
cele
din
urm
ă
schimbându-se
în
func
ț
ie
de

anumi
ț
i factori.

24

5.4.4.1. Elementele Statice

GvrEditorEmulator
este
oferit
de
c
ă
tre
sdk-ul
celor
de
la
Google
ș
i
este
folosit
pentru

a putea simula în editor mi
ș
c
ă
rile capului f
ă
r
ă
a fi nevoie s
ă
se foloseasc
ă
un telefon.

GvrEventSystem este modul prin care se trimit evenimente obiectelor din scen
ă
.

GvrControllerMain necesar pentru a putea folosi joystick-ul celor de la Daydream.

Juc
ă
torul este compu s din mai multe elemente acestea fiind:


panza folosit
ă
pentru a putea desena elemente grafice ce
ț
in de juc
ă
tor


cercul
este
un
element
grafic
folosit
împreun
ă
cu
canvasul
pentru
a
putea
ar
ă
ta

utilizatorului
atunci
când
prive
ș
te
c
ă
tre
un
anumit
obiect
cât
timp
mai
dureaz
ă

pân
ă
este selecta t


camera este folosit
ă
pentru a putea viziona scena


GvrReticlePointer creeaz
ă
un punct în mijlocul camerei

Modelul înc
ă
perii cup rinde:


camera ce reprezint
ă
pere
ț
ii, tavanul
ș
i podeaua înc
ă
perii


macheta este o reprezenta
ț
ie a campusului


masa este obiectul pe care st
ă
amplasat
ă
macheta

Managerul de videouri controleaz
ă
ce film
ă
ri s
ă
cear
ă
de la server.

5.4.4.2. Elementele Dinamice

Sfera
este
creat
ă
la
execu
ț
ia
aplica
ț
iei
ș
i
este
folosit
ă
pentru
a
oferi
efectul
de
realitate

virtual
ă
utilizatorului.

5.4.5. Efectul de realitate virtual
ă

Ob
ț
inerea
efectului
de
realitate
virtual
ă
se
realizeaz
ă
în
motorul
grafic
cu
ajutorul

sferei create dinamic
ș
i cu ajutorul camerei pozi
ț
ionate în centrul sferei.

Sfera
trebuie
configurat
ă
în
a
ș
a
fel
încât
s
ă
permit
ă
vizualizarea
videourilor
în

interiorul
s
ă
u,
aceast
ă
op
ț
iune
nefiind
prestabilit
ă
în
Unity.
Pentru
a
putea
fi
realizat

acest lucru întâi se creeaz
ă
un „Shader” de tipul „Unlit Shader”.

Acest
„shader”
se
deschide
cu
Visual
Studio
ș
i
se
modific
ă
din
cod
ad
ă
ugându-se
în

sec
ț
iunea
„SubShader”
linia
„Cull
Front”
acest
lucru
însemnând
c
ă
sfera
nu
va
ar
ă
ta

filmul prin exterior ci în interior.

25

Apoi
se
creeaz
ă
un
material
c
ă
ruia
i
se
va
aplica
„shad er-ul”
men
ț
ionat
anterior.

Materialul
se
va
aplica
pe
sfer
ă
permi
ț
ând
acesteia
s
ă
arate
videoul
din
interior
oferind

astfel un efect de 360 de grade
ș
i realitate virtual
ă
.

Camera
va
fi
amplasat
ă
în
mijlocul
sferei
ac
ț
ionând
ca
ochii
unei
persoane
ce
are

posibilitatea s
ă
priveasc
ă
totul în jurul ei.

26

5.4.6. Provoc
ă
ri majo re întâmpinate

Obstacolele
identificate
în
implementarea
unei
astfel
de
aplica
ț
ii
sunt
diverse
ș
i

numeroase.

Deoarece
acest
domeniu
este
unul
relativ
nou
în
ceea
ce
prive
ș
te
implementarea
sa

software
primul
obstacol
ap
ă
rut
a
fost
documenta
ț
ia
pu
ț
in
ă
ș
i
învechit
ă
fa
ț ă
de
viteza
de

dezvoltare
a
acestui
domeniu.
Rezolvarea
fiind
c
ă
utarea
mult
mai
am
ă
nun
ț
it
ă
ș
i

solu
ț
ionarea provoc
ă
rilor bucat
ă
cu bucat
ă
.

Al
doilea
obstacol
întâmpinat
a
fost
dimensiunea
mare
a
film
ă
rilor
care
nu
puteau
fi

stocate
pe
un
telefon
mobil.
Solu
ț
ia
a
fost
crearea
unui
server
cu
un
spa
ț
iu
de
stocare

mare
ș
i trimiterea video urilor prin intermediul internetului.

Al
treilea
obstacol
a
fost
constituit
de
limitarea
vizion
ă
rii
unui
element
video
în

interiorul
unei
sfere.
Între
dou
ă
film
ă
ri,
deoarece
exist
ă
timp
de
înc
ă
rcare
pentru
o

scurt
ă
frac
ț
iune
de
secund
ă
,
ap
ă
rea
un
fundal
alb
ce
altera
efectul
de
realitate
virtual
ă
.

Rezolvarea a fost crearea a dou
ă
sfere
ș
i înc
ă
rcarea asincron
ă
a videourilor.

Al
patrulea
obstacol
întâmpinat
a
fost
maparea
ș
i
realizarea
drumului
dinamic
pe

baza
a
dou
ă
puncte.
Solu
ț
ia
a
fost
tratarea
drumurilor
liniare
sub
form
ă
de
list
ă
ș
i

bifurca
ț
ia drumurilor su b form
ă
de alte dou
ă
subliste în list
ă
.

27

CAPITOLUL 6. TESTAREA APLICA
Ț
IEI

Testarea
unei
aplica
ț
ii
are
ca
scop
livrarea
unui
produs
software
cât
mai
bun
ș
i
lipsit

de defecte
ș
i erori. Pentr u realizarea acestui lucru testarea se împarte în mai mul
ț
i pa
ș
i.

Pa
ș
ii sunt urm
ă
torii:


Testare
unitar
ă
sau
în
englez
ă
numit
ă
unit
testing.
În
aceast
ă
etap
ă
fiecare
func
ț
ie

ș
i
component
ă
este
testat
ă
individual
fiind
de
obicei
verificat
scenariul
cel
mai

favorabil.
În
majoritatea
timpului
testarea
unitar
ă
este
realizat
ă
de
cel
care
a

scris codul adic
ă
de programator


Testarea
integr
ă
rii
sau
în
englez
ă
integration
testing.
În
aceast
ă
etap
ă
se

realizeaz
ă
integr area codului cât mai complet în aplica
ț
ie
ș
i testarea ei.


Testarea
sistemului
sau
în
englez
ă
system
testing.
Aici
se
verific
ă
func
ț
ionalitatea

aplica
ț
iei
împreu n
ă
cu
toate
componentele
sale
din
toate
punctele
de
vedere
ș
i
pe

cât mai multe sisteme de operare


Testarea
accept
ă
rii
utilizatorului
sau
în
englez
ă
user
acceptance
testing.
În

aceast
ă
etap
ă
clientul
î
ș
i
d
ă
acordul
c
ă
accept
ă
aplica
ț
ia
sau
produsul
software
ș
i

c
ă
este gata pent ru folosirea
ș
i implementarea acestuia


Lansarea
sau
în
englez
ă
release.
Aceast
ă
etap
ă
presupune
instalarea
produsului

pentru
client
ș
i
verificarea
unor
pa
ș
i
precum
dezinstal area,
unde
se
testeaz
ă
dac
ă

aplica
ț
ia a fost
ș
tears
ă
cu totul

Testele
pot
fi
de
mai
multe
tipuri:
teste
manuale
sau
automate.
Testarea
manual
ă

necesit
ă
executarea
lor
prin
intermediul
unui
om,
acesta
putând
s
ă
identifice
dac
ă
un

test a trecut cu succes sau nu.

Testarea
automat
ă
are
ca
scop
executarea
testelor
f
ă
r
ă
interven
ț
ie
uman
ă
ș
i

trimiterea unui raport cu rezultatul.

Testarea aplica
ț
iei s-a f
ă
cut atât prin testare automat
ă
cât
ș
i prin testare manual
ă
.

6.1. Testarea manual
ă

Testarea
manual
ă
este
procesul
prin
care
o
aplica
ț
ie
software
este
verificat
ă
de

defecte
ș
i
erori,
acea sta
având
nevoie
de
interven
ț
ie
uman
ă
pentru
a
asigura

desf
ă ș
urarea corect
ă
a acestui proces.

6.1.1. Test de verificare a serverului

Deoarece
aplica
ț
ia
folose
ș
te
un
server
este
nevoie
de
un
test
ce
verific
ă
dac
ă
poate
fi

accesat.
Testul
este
manual
deoarece
dac
ă
nu
se
poate
accesa
pagina
de
început
va
fi

nevoie
s
ă
fie
investigat
ă
problema
ș
i
reparat
ă
.
Este
nevoie
s
ă
fie
executat
pe
acela
ș
i

sistem
de
operare
pe
care
este
instalat
serverul
deoarece
testul
preia
ip-ul
sistemului
de

operare
ș
i apeleaz
ă
pagina de start prin rest api.

Testul va trece dac
ă
serverul este pornit. Dac
ă
nu, va e
ș
ua.

28

6.2 Testarea automat
ă

Testarea
automat
ă
implic
ă
de
obicei
folosirea
unui
softwa re
specializat
care
poate
s
ă

execute
mai
mult
de
un
test
f
ă
r
ă
întrerupere.
Testele
automa te
au
un
scenariu
repetitiv

ș
i un rezultat previzibil.

Pentru
testarea
automat
ă
s-au
creat
câteva
scenarii
ș
i
un
anumit
num
ă
r
de
teste
ce
au

fost executate cu ajutorul instrumentului Test Runner integrat în motorul grafic Unity.

6.2.1. Unity Test Runner

Test
Runner
este
un
instrument
pentru
testarea
codului
integrat
în
Unity.
Pentru
a

putea
crea
teste,
întâi
este
nevoie
s
ă
se
creeze
un
folder
în
care
se
va
genera
automat

fi
ș
ierul de configurare p entru a putea fi executat cu Test Runner.

Dup
ă
ce a fost creat fi
ș
ierul se va deschide
ș
i se vor crea testele.

Pentru
a
putea
accesa
instrumentul
în
Unity
se
va
face
click
pe
Window
>
Test

Runner.

29

Dup
ă
click
se
va
deschide
o
fereastr
ă
în
Unity
ce
va
fi
implicit
ă
pe
Edit
Mode,
îns
ă

testele
fiind
create
pentru
a
putea
testa
obiectele
din
scen
ă
este
necesar
ă
selectarea

op
ț
iunii Play Mode.

6.2.2. Test automat de creare a sferei în scen
ă

În
acest
scenariu
a
fost
replicat
ă
scena
ș
i
s-a
verificat
dac
ă
sfera
poate
fi
creat
ă
cu

succes în aplica
ț
ie.

Condi
ț
ia de trecere a testului este s
ă
creeze cu succes obiec tul.

6.2.3. Test automat de verificare a ad
ă
ug
ă
rii de elemente noi pe obiectele create

Acest
test
a
fost
conceput
pentru
a
verifica
dac
ă
dup
ă
crearea
unei
sfere
în
orice
scen
ă

acesteia îi pot fi ad
ă
ugat e componente noi.

Condi
ț
ia de trecere a testului este ad
ă
ugarea cu succes a un ei componente noi.

6.2.4. Test automat de verificare a camerei în raport cu sfera

Testul
a
fost
conceput
pentru
a
verifica
pozi
ț
ia
camerei
fa
ț ă
de
pozi
ț
ia
sferei.
În
acest

caz
se
verific
ă
dac
ă
camera
este
în
interiorul
sferei
ș
i
dac
ă
are
acelea
ș
i
coordonate
cu

sfera în scen
ă
.

Condi
ț
ia de trecere es te ca pozi
ț
iile s
ă
coincid
ă
.

30

6.2.5. Test automat de verificare a înc
ă
rc
ă
rii elementelor prestabilite cu scena

Testul
a
fost
creat
pentru
a
verifica
dac
ă
elementele
implicite
se
creeaz
ă
la
clonarea

scenei.

Condi
ț
ia de trecere a testului este s
ă
se încarce toate eleme ntele prestabilite.

6.2.6. Test automat de verificare a înc
ă
rc
ă
rii unui video în sfer
ă

Testul
a
fost
creat
pentru
a
vedea
dac
ă
exist
ă
comunicarea
între
aplica
ț
ie
ș
i
server
în

momentul în care se cere un video.

Condi
ț
ia de trecere a testului este s
ă
încarce videoul.

6.2.7. Rezultatele testelor automate

Toate testele automate men
ț
ionate mai sus au fost executate cu succes.

31

CONCLUZII

32

BIBLIOGRAFIE

33

ANEXE

34

Similar Posts