JavaRush /Java Blog /Random-IT /Java nella realtà virtuale. È vero che la VR/AR è il futu...

Java nella realtà virtuale. È vero che la VR/AR è il futuro e che c'è posto per Java?

Pubblicato nel gruppo Random-IT
Nei precedenti articoli di questa serie abbiamo già esaminato quasi tutte le tecnologie più o meno di tendenza del moderno mercato informatico, come l' intelligenza artificiale , la blockchain , i servizi cloud , i big data , ecc., scoprendo come viene utilizzato il linguaggio di programmazione Java. in queste nicchie e in che misura gioca un ruolo importante. Java nella realtà virtuale.  È vero che la VR/AR è il futuro e che c'è posto per Java?  -1Oggi parleremo di un altro segmento tecnologico trendy e molto interessante, ovvero VR e AR, ovvero realtà virtuale e aumentata. “Penso che molto presto una parte significativa della popolazione dei paesi sviluppati interagirà quotidianamente con le soluzioni AR in modo continuativo. Molto presto, l’AR diventerà parte della nostra vita quotidiana”. Tim Cook, CEO di Apple

Cosa sono VR e AR?

Per prima cosa, scopriamo quali sono queste tecnologie, come vengono utilizzate e in cosa differiscono l'una dall'altra. Cominciamo con la VR, cioè la realtà virtuale. Le applicazioni di realtà virtuale funzionano su dispositivi speciali che catturano completamente la visione dell'utente per creare l'impressione di trovarsi altrove. Tutti i più diffusi visori VR, come HTC Vive o Oculus Rift, bloccano completamente la visione dell'utente quando indossati. Quando tale dispositivo viene acceso, i pannelli LCD o OLED al suo interno vengono rifratti da lenti speciali per riempire completamente il campo visivo dell'utente con il contenuto trasmesso, sia esso un gioco, un video a 360 gradi o semplicemente l'interfaccia di un programma . La maggior parte dei visori VR, incluso il già citato Oculus Rift, nonché Vive, PlayStation VR, Windows Mixed Reality e altri, utilizzano la tecnologia di tracciamento del movimento a sei gradi di libertà (6DOF), ottenuta tramite sensori o fotocamere esterne. Ciò consente ai dispositivi di rilevare non solo la direzione in cui si guarda, ma anche il movimento che l'utente compie verso quella direzione. Questo, insieme ai rilevatori di movimento 6DOF, consente agli utenti di muoversi nello spazio virtuale, rendendo tali applicazioni molto più coinvolgenti. Per quanto riguarda l'AR, cioè la realtà aumentata, la sua differenza dalla VR è che l'AR non si sforza di assorbire completamente la tua visione, ma vi aggiunge alcuni elementi. I dispositivi AR come Microsoft HoloLens e vari tipi di occhiali intelligenti consentono all'utente di vedere tutto ciò che lo circonda proiettando immagini nel punto in cui sta guardando. Questo concetto include anche numerose app e giochi per smartphone come Pokemon Go, Temple Treasure Hunt, ARrrrrgh, Ingress e molti altri. Utilizzano la fotocamera di un dispositivo mobile per monitorare l'ambiente e integrarlo con vari tipi di informazioni visualizzate sullo schermo. I display AR possono sovrapporre alcuni dati molto semplici alla realtà, come il quadrante di un orologio, ad esempio, ma possono anche implementare oggetti complessi come ologrammi di mostri nel mezzo di una stanza. Ad esempio, il gioco Pokemon Go proietta i personaggi Pokemon sullo schermo del tuo dispositivo, dove è puntato l'obiettivo della fotocamera. Mentre vari tipi di occhiali per realtà aumentata consentono agli utenti di posizionare elementi dell'interfaccia e icone delle applicazioni sopra l'immagine della realtà che osservano. “Credo che la realtà aumentata sarà la più grande rivoluzione tecnologica del nostro tempo.” Tim Sweeney, programmatore americano e sviluppatore di videogiochi, fondatore di Epic Games Java nella realtà virtuale.  È vero che la VR/AR è il futuro e che c'è posto per Java?  - 2

VR e AR non sono la stessa cosa

Questo, infatti, è il principale svantaggio della realtà aumentata rispetto alla realtà virtuale. Se la realtà virtuale sostituisce completamente l’immagine nella tua visione, l’AR la integra solo, occupando spesso solo un’area molto piccola della visione dell’utente. Ma questo è anche il vantaggio principale della realtà aumentata, perché questo metodo offre agli sviluppatori possibilità quasi illimitate. Ad esempio, le applicazioni AR mobili in grado di riconoscere gli oggetti nell’immagine di una telecamera e trasmettere informazioni su di essi all’utente esistono da diversi anni. Speciali occhiali AR, come HoloLens, consentono agli utenti di posizionare finestre mobili intorno a sé che possono essere visualizzate sul display del dispositivo. Per non parlare dei tanti giochi che utilizzano la realtà aumentata come elemento centrale del gameplay (Pokemon Go, RoboRaid, Fragments) o come funzionalità aggiuntiva. Pertanto, la realtà virtuale e la realtà aumentata sono due tecnologie molto diverse che vengono utilizzate per scopi diversi, sebbene AR e VR siano solitamente indicati come due tipi dello stesso approccio. Se lo scopo dei dispositivi e delle applicazioni VR è sostituire la realtà e trasportare virtualmente l’utente in un altro luogo, allora l’AR funziona con la realtà, integrando ciò che è già davanti ai nostri occhi con nuove informazioni. Entrambe queste tecnologie sono ancora agli inizi, ma sono considerate estremamente promettenti e hanno il potenziale per rivoluzionare il modo in cui le persone utilizzano i computer nel prossimo futuro. “Penso che nel prossimo futuro molte storie verranno raccontate nello spazio virtuale”. Joe Russo, regista americano Java nella realtà virtuale.  È vero che la VR/AR è il futuro e che c'è posto per Java?  - 3

AR/VR e Java

Sebbene la nicchia AR/VR utilizzi numerosi linguaggi di programmazione, tra cui C#, C/C++, JavaScript, Swift e persino Python, Java è uno dei più richiesti. Le ragioni, infatti, sono le stesse delle altre tecnologie: il codice Java consente alle applicazioni di essere eseguite rapidamente, l’orientamento agli oggetti semplifica la creazione di singoli componenti applicativi e l’indipendenza dalla piattaforma rende i prodotti AR/VR in Java più universali. Nel caso dell’AR, cioè della realtà aumentata, Java sarà uno dei principali linguaggi di programmazione, perché la stragrande maggioranza delle applicazioni AR sono create per dispositivi mobili. Di conseguenza, Java è l'opzione principale per le applicazioni AR create per dispositivi basati sul sistema operativo mobile Android, mentre nel caso dei prodotti Apple vengono utilizzati i linguaggi Objective-C e Swift. Oggi, le applicazioni AR supportano molti dispositivi diversi, inclusi caschi, occhiali, dispositivi portatili e persino lenti a contatto. In molti modi, è Java che ti consente di creare soluzioni AR che funzioneranno su piattaforme diverse, spesso molto diverse. Oggi le applicazioni AR basate su Java vengono implementate attivamente in cliniche, banche, ristoranti, musei, ecc. “L’AR sta già rivoluzionando il modo in cui affrontiamo il commercio e lo shopping, creando un ponte tra il mondo digitale e quello fisico”. Muchaneta Kapfunde, fondatrice di FashNerd.com

Tipi di applicazioni AR

Ora diamo una rapida occhiata ai principali set di strumenti (SDK) e framework che ha senso utilizzare per lo sviluppo di applicazioni AR. Ma prima, diamo un’occhiata ai due tipi principali di applicazioni AR: applicazioni di marker e di geolocalizzazione.
  • Applicazioni Marker AR.

    Le applicazioni Marker AR si basano sulla tecnologia di riconoscimento delle immagini. Utilizzano marcatori in bianco e nero come trigger che attivano la visualizzazione di contenuti AR all'utente. Pertanto, per vedere un elemento di realtà aumentata davanti a sé, l'utente di tale applicazione deve puntare la fotocamera sul punto corrispondente nel suo ambiente. Una volta che il dispositivo riconosce il marcatore, l'applicazione sovrappone dati digitali su di esso e mostra all'utente un elemento di realtà aumentata. Questo tipo di applicazioni, in particolare, sono ampiamente utilizzate per scopi pubblicitari da negozi, ristoranti e altre attività commerciali in cui questa funzionalità è appropriata.

  • Applicazioni di geolocalizzazione.

    Il secondo tipo principale di app AR, basata sulla posizione, funziona senza marcatori, basandosi invece sulle informazioni sulla posizione dell’utente fornite da GPS, accelerometro o bussola digitale e sovrapponendo oggetti AR su posizioni fisiche reali. E ancora una volta usiamo Pokemon Go come esempio: questa è probabilmente l'applicazione AR di geolocalizzazione più famosa.

    “Il compito principale per lo sviluppo delle tecnologie AR e VR è creare un’unica piattaforma aperta in cui gli sviluppatori possano implementare tutte le loro idee”.

    Mark Zuckerberg, creatore del social network Facebook

    Java nella realtà virtuale.  È vero che la VR/AR è il futuro e che c'è posto per Java?  - 4

I migliori SDK per lo sviluppo di applicazioni AR

  • Google ARCore

    ARCore è la piattaforma chiave di Google per lo sviluppo di app AR, che supporta dispositivi basati sul sistema operativo mobile Android e funziona con le librerie Java/OpenGL, Unity e Unreal.

    Tra le funzionalità chiave di ARCore: tracciamento del movimento (ARCore può determinare la posizione e il punto di direzione del dispositivo utilizzando la fotocamera integrata), modellazione ambientale (la piattaforma è in grado di determinare superfici orizzontali, che consente, ad esempio, di posizionare oggetti virtuali sui tavoli o sul pavimento), stima dell'illuminazione (determina il livello di illuminazione, se necessario, evidenziando gli oggetti virtuali in modo che sembrino naturali nell'ambiente) e altri.

  • ARToolKit

    ARToolKit è un set di strumenti open source per lo sviluppo di applicazioni AR.

    Nonostante si tratti di un kit aperto e gratuito, ARToolKit include un set molto ricco di funzioni, tra cui il supporto per Unity3D e OpenSceneGraph, la possibilità di creare applicazioni AR in tempo reale, l'integrazione con occhiali intelligenti, il supporto per diversi tipi di fotocamere, calibrazione automatica della fotocamera, ecc.

    ARToolKit supporta una vasta gamma di piattaforme, tra cui Android, iOS, Linux, Windows e Mac OS.

  • Vuforia

    Vuforia è forse la piattaforma più popolare e conosciuta per lo sviluppo di applicazioni di realtà aumentata.

    Tra le funzioni chiave di Vuforia: riconoscimento di vari tipi di oggetti e immagini; supporto per il riconoscimento di testi di base, creazione di marcatori personalizzati, creazione di mappe 3D di varie posizioni, supporto per servizi cloud e archiviazione dati locale, ecc.

    Vuforia supporta piattaforme come Android, Universal Windows Platform, Unity e iOS.

  • Apple ARKit

    Bene, Apple ha anche un proprio set di strumenti per lo sviluppo di applicazioni AR, introdotto insieme a iOS11 e chiamato ARKit. Naturalmente supporta solo dispositivi iOS e include tutte le funzionalità di base per creare applicazioni di realtà aumentata.

    “Il nostro obiettivo attuale è rendere le esperienze VR più divertenti e coinvolgenti e consentire alle persone di vivere queste esperienze insieme”.

    John Hanke, amministratore delegato di Niantic

  • Le migliori piattaforme e framework per lo sviluppo di applicazioni VR

    Infine, esaminiamo alcune delle piattaforme e dei framework aperti più popolari per lo sviluppo di applicazioni di realtà virtuale.
    • GuriVR

      GuriVR è un editor VR open source che ti consente di convertire descrizioni testuali di scene 3D in modelli 3D reali per applicazioni VR. Supporta testo, modelli 3D, immagini, registrazioni audio, voci fuori campo, grafici 3D e molte altre funzioni.

    • OpenSpace3D

      OpenSpace3D è una piattaforma gratuita e aperta per lo sviluppo di applicazioni e giochi VR basati su tecnologie VR. Supporta un gran numero di piattaforme e dispositivi diversi, tra cui Leap Motion, HTC Vive/Oculus, Google Cardboard e altri. Include anche funzionalità per la creazione di applicazioni AR.

    • OSVR: piattaforma di realtà virtuale open source

      OSVR è un'altra piattaforma universale per soluzioni VR e AR. Ti consente di rilevare, configurare e gestire centinaia di dispositivi VR/AR, nonché vari tipi di dispositivi periferici. OSVR supporta più motori di gioco e sistemi operativi e fornisce servizi come time warping asincrono e modalità diretta per supportare il rendering a bassa latenza.

    • Primula VR

      Primrose VR è un framework browser aperto per la creazione di semplici esperienze VR, come dimostrazioni virtuali di prodotti, riunioni virtuali o attività virtuali. Primrose VR è compatibile con tutti i browser moderni e funziona su WebGL.

    • IdeaSpace VR (CMS)

      IdeaSpaceVR non è un framework o una piattaforma, ma un sistema di gestione dei contenuti (CMS) aperto per contenuti VR. Basato su PHP/MySQL, IdeaSpaceVR è un sistema modulare installato localmente con un lettore di contenuti integrato per applicazioni di realtà virtuale.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION