JavaRush /Blog Java /Random-PL /Java w wirtualnej rzeczywistości. Czy to prawda, że VR/AR...

Java w wirtualnej rzeczywistości. Czy to prawda, że VR/AR to przyszłość i czy jest w niej miejsce dla Java?

Opublikowano w grupie Random-PL
W poprzednich artykułach z tej serii sprawdziliśmy już niemal wszystkie mniej lub bardziej modne technologie współczesnego rynku IT, takie jak sztuczna inteligencja , blockchain , usługi chmurowe , big data itp., dowiadując się, w jaki sposób wykorzystywany jest język programowania Java w tych niszach i w jakim stopniu odgrywa on ważną rolę. Java w wirtualnej rzeczywistości.  Czy to prawda, że ​​VR/AR to przyszłość i czy jest w niej miejsce dla Java?  - 1Dzisiaj porozmawiamy o kolejnym modnym i bardzo ciekawym segmencie technologicznym – a mianowicie VR i AR, czyli rzeczywistości wirtualnej i rozszerzonej. „Myślę, że już niedługo znaczna część populacji krajów rozwiniętych będzie na co dzień na bieżąco kontaktować się z rozwiązaniami AR. Już wkrótce AR stanie się częścią naszego codziennego życia.” Tim Cook, dyrektor generalny Apple

Czym są VR i AR?

Najpierw dowiedzmy się, czym są te technologie, w jaki sposób są wykorzystywane i czym się od siebie różnią. Zacznijmy od VR, czyli wirtualnej rzeczywistości. Aplikacje rzeczywistości wirtualnej działają na specjalnych urządzeniach, które całkowicie przechwytują wizję użytkownika, aby stworzyć wrażenie, że jest on gdzie indziej. Wszystkie popularne gogle VR, takie jak HTC Vive czy Oculus Rift, podczas noszenia całkowicie zasłaniają użytkownikowi pole widzenia. Po włączeniu takiego urządzenia znajdujące się w nim panele LCD lub OLED są załamywane przez specjalne soczewki, aby całkowicie wypełnić pole widzenia użytkownika przesyłaną treścią, czy to grą, wideo 360 stopni, czy po prostu interfejsem programu . Większość gogli VR, w tym wspomniany już Oculus Rift, a także Vive, PlayStation VR, Windows Mixed Reality i inne, wykorzystuje technologię śledzenia ruchu o sześciu stopniach swobody (6DOF), co osiągane jest za pomocą zewnętrznych czujników lub kamer. Dzięki temu urządzenia mogą wykryć nie tylko kierunek, w którym patrzysz, ale także ruch użytkownika w tym kierunku. To, wraz z czujnikami ruchu 6DOF, pozwala użytkownikom poruszać się w przestrzeni wirtualnej, dzięki czemu takie aplikacje są znacznie bardziej wciągające. Jeśli chodzi o AR, czyli rzeczywistość rozszerzoną, różni się ona od VR tym, że AR nie stara się całkowicie wchłonąć Twojej wizji, ale dodaje do niej pewne elementy. Urządzenia AR, takie jak Microsoft HoloLens i różne rodzaje inteligentnych okularów, pozwalają użytkownikowi zobaczyć wszystko wokół siebie, wyświetlając obrazy tam, gdzie patrzą. Koncepcja ta obejmuje również liczne aplikacje i gry na smartfony, takie jak Pokemon Go, Temple Treasure Hunt, ARrrrrgh, Ingress i wiele innych. Wykorzystują kamerę urządzenia mobilnego do monitorowania otoczenia i uzupełniania go różnego rodzaju informacjami umieszczanymi na ekranie. Wyświetlacze AR mogą nakładać na rzeczywistość bardzo proste dane, na przykład tarczę zegarka, ale mogą także implementować tak złożone obiekty, jak hologramy potworów na środku pokoju. Na przykład gra Pokemon Go wyświetla postacie Pokemonów na ekranie Twojego urządzenia, tam gdzie skierowany jest obiektyw aparatu. Z kolei różnego rodzaju okulary rozszerzonej rzeczywistości umożliwiają użytkownikom umieszczanie elementów interfejsu i ikon aplikacji na obserwowanym obrazie rzeczywistości. „Wierzę, że rzeczywistość rozszerzona będzie największą rewolucją technologiczną naszych czasów”. Tim Sweeney, amerykański programista i twórca gier wideo, założyciel Epic Games Java w wirtualnej rzeczywistości.  Czy to prawda, że ​​VR/AR to przyszłość i czy jest w niej miejsce dla Java?  - 2

VR i AR to nie to samo

To właściwie jest główna wada rzeczywistości rozszerzonej w porównaniu z rzeczywistością wirtualną. Jeśli VR całkowicie zastępuje obraz w Twoim widoku, to AR jedynie go uzupełnia, często zajmując jedynie bardzo mały obszar pola widzenia użytkownika. Ale to też jest główna zaleta rzeczywistości rozszerzonej, bo metoda ta daje deweloperom niemal nieograniczone możliwości. Na przykład mobilne aplikacje AR, które potrafią rozpoznawać obiekty na obrazie z kamery i przekazywać użytkownikowi informacje o nich, istnieją już od kilku lat. Specjalne okulary AR, takie jak HoloLens, pozwalają użytkownikom umieszczać wokół siebie pływające okna, które można oglądać na wyświetlaczu urządzenia. Nie wspominając już o wielu grach, które wykorzystują rzeczywistość rozszerzoną jako podstawowy element rozgrywki (Pokemon Go, RoboRaid, Fragments) lub jako dodatkową funkcję. Zatem rzeczywistość wirtualna i rzeczywistość rozszerzona to dwie bardzo różne technologie, które są wykorzystywane do różnych celów, chociaż AR i VR są zwykle określane jako dwa typy tego samego podejścia. Jeśli celem urządzeń i aplikacji VR jest zastąpienie rzeczywistości i wirtualne przeniesienie użytkownika w inne miejsce, to AR współpracuje z rzeczywistością, uzupełniając to, co już mamy przed oczami, o nowe informacje. Obie te technologie są wciąż w początkach, ale uważa się je za niezwykle obiecujące i mogą zrewolucjonizować sposób, w jaki ludzie korzystają z komputerów w najbliższej przyszłości. „Myślę, że w najbliższej przyszłości wiele historii będzie opowiadanych w przestrzeni wirtualnej”. Joe Russo, amerykański reżyser filmowy Java w wirtualnej rzeczywistości.  Czy to prawda, że ​​VR/AR to przyszłość i czy jest w niej miejsce dla Java?  - 3

AR/VR i Java

Chociaż nisza AR/VR wykorzystuje wiele języków programowania, w tym C#, C/C++, JavaScript, Swift, a nawet Python, Java jest jednym z najbardziej poszukiwanych. Powody są w zasadzie takie same, jak w przypadku innych technologii: kod Java pozwala na szybkie działanie aplikacji, zorientowanie obiektowe ułatwia tworzenie poszczególnych komponentów aplikacji, a niezależność od platformy sprawia, że ​​produkty AR/VR w Javie są bardziej uniwersalne. W przypadku AR, czyli rzeczywistości rozszerzonej, jednym z głównych języków programowania będzie Java, gdyż zdecydowana większość aplikacji AR tworzona jest na urządzenia mobilne. W związku z tym Java jest główną opcją dla aplikacji AR tworzonych na urządzenia oparte na mobilnym systemie operacyjnym Android, natomiast w przypadku produktów Apple stosowane są języki Objective-C i Swift. Obecnie aplikacje AR obsługują wiele różnych urządzeń, w tym kaski, okulary, urządzenia przenośne, a nawet soczewki kontaktowe. Pod wieloma względami to właśnie Java pozwala na tworzenie rozwiązań AR, które będą działać na różnych, często bardzo różnych, platformach. Obecnie aplikacje AR oparte na Javie są aktywnie wdrażane w klinikach, bankach, restauracjach, muzeach itp. „AR już rewolucjonizuje sposób, w jaki podchodzimy do handlu i zakupów, tworząc pomost między światem cyfrowym i fizycznym”. Muchaneta Kapfunde, założycielka FashNerd.com

Rodzaje aplikacji AR

Przyjrzyjmy się teraz głównym zestawom narzędzi (SDK) i frameworkom, których warto używać do tworzenia aplikacji AR. Ale najpierw przyjrzyjmy się dwóm głównym typom aplikacji AR: aplikacjom znacznikowym i geolokalizacyjnym.
  • Aplikacje znaczników AR.

    Aplikacje Marker AR opierają się na technologii rozpoznawania obrazu. Wykorzystują czarno-białe znaczniki jako wyzwalacze, które aktywują wyświetlanie użytkownikowi treści AR. Zatem, aby zobaczyć przed sobą element rozszerzonej rzeczywistości, użytkownik takiej aplikacji musi skierować kamerę na odpowiedni znacznik w swoim otoczeniu. Gdy urządzenie rozpozna znacznik, aplikacja nakłada na niego cyfrowe dane i pokazuje użytkownikowi element rozszerzonej rzeczywistości. W szczególności tego rodzaju aplikacje są szeroko wykorzystywane do celów reklamowych przez sklepy, restauracje i inne firmy, w których taka funkcjonalność jest odpowiednia.

  • Aplikacje geolokalizacyjne.

    Drugi główny typ aplikacji AR, oparty na lokalizacji, działa bez znaczników, opierając się zamiast tego na informacjach o lokalizacji użytkownika dostarczanych przez GPS, akcelerometr lub kompas cyfrowy i nakładając obiekty AR na rzeczywiste lokalizacje fizyczne. I znowu używamy jako przykładu Pokemon Go – to chyba najsłynniejsza aplikacja AR do geolokalizacji.

    „Kluczowym zadaniem dla rozwoju technologii AR i VR jest stworzenie jednej otwartej platformy, na której programiści będą mogli wdrażać wszystkie swoje pomysły”.

    Mark Zuckerberg, twórca portalu społecznościowego Facebook

    Java w wirtualnej rzeczywistości.  Czy to prawda, że ​​VR/AR to przyszłość i czy jest w niej miejsce dla Java?  - 4

Najlepsze SDK do tworzenia aplikacji AR

  • Google ARCore

    ARCore to kluczowa platforma Google do tworzenia aplikacji AR, obsługująca urządzenia oparte na mobilnym systemie operacyjnym Android i współpracująca z bibliotekami Java/OpenGL, Unity i Unreal.

    Wśród kluczowych możliwości ARCore: śledzenie ruchu (ARCore może określić położenie i kierunek urządzenia za pomocą wbudowanej kamery), modelowanie środowiska (platforma jest w stanie wyznaczać powierzchnie poziome, co pozwala np. wirtualne obiekty na stołach lub na podłodze), ocena oświetlenia (określa poziom oświetlenia, w razie potrzeby podświetlając wirtualne obiekty tak, aby wyglądały naturalnie w otoczeniu) i inne.

  • ARToolKit

    ARToolKit to zestaw narzędzi typu open source do tworzenia aplikacji AR.

    Pomimo tego, że jest to zestaw otwarty i darmowy, ARToolKit zawiera bardzo bogaty zestaw funkcji, m.in. obsługę Unity3D i OpenSceneGraph, możliwość tworzenia aplikacji AR w czasie rzeczywistym, integrację z inteligentnymi okularami, obsługę różnych typów kamer, automatyczna kalibracja kamery itp.

    ARToolKit obsługuje szereg platform, w tym Android, iOS, Linux, Windows i Mac OS.

  • Vuforia

    Vuforia to chyba najpopularniejsza i najbardziej znana platforma do tworzenia aplikacji wykorzystujących rzeczywistość rozszerzoną.

    Wśród kluczowych funkcji Vuforia: rozpoznawanie różnego rodzaju obiektów i obrazów; obsługa rozpoznawania podstawowych tekstów, tworzenie własnych znaczników, tworzenie map 3D różnych lokalizacji, obsługa usług w chmurze i lokalnego przechowywania danych itp.

    Vuforia obsługuje platformy takie jak Android, uniwersalna platforma Windows, Unity i iOS.

  • Apple ARKit

    Cóż, Apple ma też swój własny zestaw narzędzi do tworzenia aplikacji AR, który został wprowadzony wraz z iOS11 i nosi nazwę ARKit. Naturalnie obsługuje tylko urządzenia z systemem iOS i zawiera wszystkie podstawowe funkcje do tworzenia aplikacji w rzeczywistości rozszerzonej.

    „Naszym obecnym celem jest sprawienie, aby doświadczenia VR były ciekawsze i bardziej wciągające oraz umożliwienie ludziom wspólnego doświadczania tych doświadczeń”.

    Johna Hanke, dyrektora generalnego Niantic

  • Najlepsze platformy i frameworki do tworzenia aplikacji VR

    Na koniec przejrzyjmy kilka najpopularniejszych otwartych platform i frameworków do tworzenia aplikacji rzeczywistości wirtualnej.
    • GuriVR

      GuriVR to edytor VR typu open source, który umożliwia konwersję opisów tekstowych scen 3D na rzeczywiste modele 3D dla aplikacji VR. Obsługuje tekst, modele 3D, obrazy, nagrania audio, narrację, wykresy 3D i wiele innych funkcji.

    • OpenSpace3D

      OpenSpace3D to darmowa i otwarta platforma do tworzenia aplikacji i gier VR bazujących na technologiach VR. Obsługuje wiele różnych platform i urządzeń, w tym Leap Motion, HTC Vive/Oculus, Google Cardboard i inne. Zawiera także funkcjonalność tworzenia aplikacji AR.

    • OSVR: platforma wirtualnej rzeczywistości typu open source

      OSVR to kolejna uniwersalna platforma dla rozwiązań VR i AR. Pozwala wykryć, skonfigurować i zarządzać setkami urządzeń VR/AR, a także różnego rodzaju urządzeniami peryferyjnymi. OSVR obsługuje wiele silników gier i systemów operacyjnych oraz zapewnia usługi takie jak asynchroniczne dopasowanie czasu i tryb bezpośredni w celu obsługi renderowania z niskim opóźnieniem.

    • Pierwiosnek VR

      Primrose VR to otwarta platforma przeglądarkowa do tworzenia prostych doświadczeń VR, takich jak wirtualne demonstracje produktów, wirtualne spotkania lub wirtualne działania. Primrose VR jest kompatybilny ze wszystkimi nowoczesnymi przeglądarkami i działa w oparciu o WebGL.

    • IdeaSpace VR (CMS)

      IdeaSpaceVR nie jest frameworkiem ani platformą, ale otwartym systemem zarządzania treścią (CMS) dla treści VR. IdeaSpaceVR, oparty na PHP/MySQL, to lokalnie instalowany system modułowy z wbudowanym odtwarzaczem treści do zastosowań w wirtualnej rzeczywistości.

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