JavaRush /Java-Blog /Random-DE /Java in der virtuellen Realität. Stimmt es, dass VR/AR di...

Java in der virtuellen Realität. Stimmt es, dass VR/AR die Zukunft ist, und gibt es darin einen Platz für Java?

Veröffentlicht in der Gruppe Random-DE
In den vorherigen Artikeln dieser Serie haben wir bereits fast alle mehr oder weniger trendigen Technologien des modernen IT-Marktes, wie künstliche Intelligenz , Blockchain , Cloud-Dienste , Big Data usw., untersucht und herausgefunden, wie die Programmiersprache Java eingesetzt wird in diesen Nischen und inwieweit er eine wichtige Rolle spielt. Java in der virtuellen Realität.  Stimmt es, dass VR/AR die Zukunft ist, und gibt es darin einen Platz für Java?  - 1Heute sprechen wir über ein weiteres trendiges und sehr interessantes Technologiesegment – ​​nämlich VR und AR, also virtuelle und erweiterte Realität. „Ich denke, dass ein erheblicher Teil der Bevölkerung der Industrieländer sehr bald täglich und kontinuierlich mit AR-Lösungen interagieren wird. Schon bald wird AR ein Teil unseres täglichen Lebens sein.“ Tim Cook, CEO von Apple

Was sind VR und AR?

Lassen Sie uns zunächst herausfinden, was diese Technologien sind, wie sie verwendet werden und wie sie sich voneinander unterscheiden. Beginnen wir mit VR, also der virtuellen Realität. Virtual-Reality-Anwendungen laufen auf speziellen Geräten, die die Sicht des Benutzers vollständig einfangen und so den Eindruck erwecken, er sei woanders. Alle gängigen VR-Headsets wie das HTC Vive oder Oculus Rift blockieren beim Tragen vollständig die Sicht des Benutzers. Wenn ein solches Gerät eingeschaltet wird, werden die darin enthaltenen LCD- oder OLED-Panels durch spezielle Linsen gebrochen, um das Sichtfeld des Benutzers vollständig mit den übertragenen Inhalten auszufüllen, sei es ein Spiel, ein 360-Grad-Video oder einfach die Benutzeroberfläche eines Programms . Die meisten VR-Headsets, darunter das bereits erwähnte Oculus Rift sowie Vive, PlayStation VR, Windows Mixed Reality und andere, nutzen die Bewegungsverfolgungstechnologie mit sechs Freiheitsgraden (6DOF), die durch externe Sensoren oder Kameras erreicht wird. Dadurch können Geräte nicht nur die Blickrichtung erkennen, sondern auch die Bewegung des Benutzers in diese Richtung. Zusammen mit 6DOF-Bewegungsmeldern ermöglicht dies den Benutzern, sich im virtuellen Raum zu bewegen, was solche Anwendungen viel immersiver macht. Was AR, also Augmented Reality, betrifft, so besteht der Unterschied zu VR darin, dass AR nicht danach strebt, Ihre Vision vollständig zu absorbieren, sondern ihr bestimmte Elemente hinzufügt. AR-Geräte wie Microsoft HoloLens und verschiedene Arten von Datenbrillen ermöglichen es dem Benutzer, alles um sich herum zu sehen, indem sie Bilder dorthin projizieren, wo er hinschaut. Zu diesem Konzept gehören auch zahlreiche Smartphone-Apps und Spiele wie Pokemon Go, Temple Treasure Hunt, ARrrrrgh, Ingress und viele mehr. Sie nutzen die Kamera eines Mobilgeräts, um die Umgebung zu überwachen und diese mit verschiedenen Informationen auf dem Bildschirm zu ergänzen. AR-Displays können einige sehr einfache Daten über die Realität legen, wie zum Beispiel ein Zifferblatt einer Uhr, aber sie können auch so komplexe Objekte wie Hologramme von Monstern mitten in einem Raum implementieren. Das Spiel Pokemon Go projiziert beispielsweise Pokemon-Charaktere auf den Bildschirm Ihres Geräts, auf den das Kameraobjektiv gerichtet ist. Während verschiedene Arten von Augmented-Reality-Brillen es Benutzern ermöglichen, Benutzeroberflächenelemente und Anwendungssymbole über dem Bild der Realität zu platzieren, das sie beobachten. „Ich glaube, dass Augmented Reality die größte technologische Revolution unserer Zeit sein wird.“ Tim Sweeney, amerikanischer Programmierer und Videospielentwickler, Gründer von Epic Games Java in der virtuellen Realität.  Stimmt es, dass VR/AR die Zukunft ist, und gibt es darin einen Platz für Java?  - 2

VR und AR sind nicht dasselbe

Dies ist tatsächlich der Hauptnachteil von Augmented Reality im Vergleich zur virtuellen Realität. Wenn VR das Bild in Ihrer Sicht vollständig ersetzt, dann ergänzt AR es nur und nimmt oft nur einen sehr kleinen Bereich der Sicht des Benutzers ein. Doch darin liegt auch der Hauptvorteil von Augmented Reality, denn diese Methode bietet Entwicklern nahezu unbegrenzte Möglichkeiten. So gibt es bereits seit einigen Jahren mobile AR-Anwendungen, die Objekte in einem Kamerabild erkennen und Informationen darüber an den Nutzer übermitteln können. Spezielle AR-Brillen wie HoloLens ermöglichen es Benutzern, schwebende Fenster um sich herum zu platzieren, die auf dem Display des Geräts angezeigt werden können. Ganz zu schweigen von den vielen Spielen, die Augmented Reality als zentrales Gameplay-Element (Pokemon Go, RoboRaid, Fragments) oder als zusätzliches Feature nutzen. Somit sind Virtual Reality und Augmented Reality zwei sehr unterschiedliche Technologien, die für unterschiedliche Zwecke eingesetzt werden, obwohl AR und VR normalerweise als zwei Arten desselben Ansatzes bezeichnet werden. Wenn der Zweck von VR-Geräten und -Anwendungen darin besteht, die Realität zu ersetzen und den Benutzer virtuell an einen anderen Ort zu versetzen, dann arbeitet AR mit der Realität und ergänzt das, was sich bereits vor unseren Augen befindet, durch neue Informationen. Beide Technologien stecken noch in den Kinderschuhen, gelten aber als äußerst vielversprechend und haben das Potenzial, die Art und Weise, wie Menschen Computer nutzen, in naher Zukunft zu revolutionieren. „Ich denke, dass in naher Zukunft viele Geschichten im virtuellen Raum erzählt werden.“ Joe Russo, amerikanischer Filmregisseur Java in der virtuellen Realität.  Stimmt es, dass VR/AR die Zukunft ist, und gibt es darin einen Platz für Java?  - 3

AR/VR und Java

Obwohl in der AR/VR-Nische eine Reihe von Programmiersprachen verwendet werden, darunter C#, C/C++, JavaScript, Swift und sogar Python, ist Java eine der gefragtesten. Die Gründe sind tatsächlich die gleichen wie bei anderen Technologien: Java-Code ermöglicht eine schnelle Ausführung von Anwendungen, Objektorientierung erleichtert die Erstellung einzelner Anwendungskomponenten und Plattformunabhängigkeit macht AR/VR-Produkte in Java universeller. Im Fall von AR, also Augmented Reality, wird Java eine der Hauptprogrammiersprachen sein, da die überwiegende Mehrheit der AR-Anwendungen für mobile Geräte erstellt wird. Dementsprechend ist Java die Hauptoption für AR-Anwendungen, die für Geräte erstellt werden, die auf dem mobilen Betriebssystem Android basieren, während bei Apple-Produkten die Sprachen Objective-C und Swift verwendet werden. Heutzutage unterstützen AR-Anwendungen viele verschiedene Geräte, darunter Helme, Brillen, Handgeräte und sogar Kontaktlinsen. In vielerlei Hinsicht ist es Java, das es Ihnen ermöglicht, AR-Lösungen zu erstellen, die auf verschiedenen, oft sehr unterschiedlichen Plattformen funktionieren. Heutzutage werden Java-basierte AR-Anwendungen aktiv in Kliniken, Banken, Restaurants, Museen usw. implementiert. „AR revolutioniert bereits die Art und Weise, wie wir Handel und Einkaufen angehen, und schlägt eine Brücke zwischen der digitalen und der physischen Welt.“ Muchaneta Kapfunde, Gründerin von FashNerd.com

Arten von AR-Anwendungen

Werfen wir nun einen kurzen Blick auf die wichtigsten Tools (SDK) und Frameworks, deren Verwendung für die Entwicklung von AR-Anwendungen sinnvoll ist. Aber schauen wir uns zunächst die beiden Haupttypen von AR-Anwendungen an: Markierungs- und Geolokalisierungsanwendungen.
  • Marker AR-Anwendungen.

    Marker-AR-Anwendungen basieren auf Bilderkennungstechnologie. Sie verwenden schwarze und weiße Markierungen als Auslöser, die die Anzeige von AR-Inhalten für den Benutzer aktivieren. Um also ein Element der Augmented Reality vor sich zu sehen, muss der Benutzer einer solchen Anwendung die Kamera auf die entsprechende Markierung in seiner Umgebung richten. Sobald das Gerät den Marker erkennt, überlagert die Anwendung ihn mit digitalen Daten und zeigt dem Benutzer ein Element der erweiterten Realität. Insbesondere solche Anwendungen werden häufig für Werbezwecke von Geschäften, Restaurants und anderen Unternehmen genutzt, bei denen diese Funktionalität angemessen ist.

  • Geolocation-Anwendungen.

    Der zweite Haupttyp von AR-Apps, standortbasiert, funktioniert ohne Markierungen, verlässt sich stattdessen auf Benutzerstandortinformationen, die von GPS, Beschleunigungsmessern oder digitalem Kompass bereitgestellt werden, und überlagert AR-Objekte über tatsächliche physische Standorte. Und wieder verwenden wir Pokemon Go als Beispiel – dies ist wahrscheinlich die bekannteste Geolocation-AR-Anwendung.

    „Die Hauptaufgabe bei der Entwicklung von AR- und VR-Technologien besteht darin, eine einzige offene Plattform zu schaffen, auf der Entwickler alle ihre Ideen umsetzen können.“

    Mark Zuckerberg, Schöpfer des sozialen Netzwerks Facebook

    Java in der virtuellen Realität.  Stimmt es, dass VR/AR die Zukunft ist, und gibt es darin einen Platz für Java?  - 4

Die besten SDKs für die Entwicklung von AR-Anwendungen

  • Google ARCore

    ARCore ist Googles wichtigste Plattform für die AR-App-Entwicklung, unterstützt Geräte, die auf dem mobilen Betriebssystem Android basieren und mit Java/OpenGL-, Unity- und Unreal-Bibliotheken arbeiten.

    Zu den wichtigsten Funktionen von ARCore gehören: Bewegungsverfolgung (ARCore kann mithilfe der eingebauten Kamera die Position und den Richtungspunkt des Geräts bestimmen), Umgebungsmodellierung (die Plattform ist in der Lage, horizontale Flächen zu bestimmen, was beispielsweise die Platzierung ermöglicht virtuelle Objekte auf Tischen oder auf dem Boden), Beleuchtungsschätzung (bestimmt die Beleuchtungsstärke und hebt bei Bedarf virtuelle Objekte hervor, damit sie in der Umgebung natürlich aussehen) und andere.

  • ARToolKit

    ARToolKit ist ein Open-Source-Set von Tools zur Entwicklung von AR-Anwendungen.

    Obwohl es sich um ein offenes und kostenloses Kit handelt, enthält ARToolKit einen sehr umfangreichen Funktionsumfang, darunter Unterstützung für Unity3D und OpenSceneGraph, die Möglichkeit, Echtzeit-AR-Anwendungen zu erstellen, Integration mit Datenbrillen, Unterstützung für verschiedene Kameratypen, automatische Kamerakalibrierung usw.

    ARToolKit unterstützt eine Reihe von Plattformen, darunter Android, iOS, Linux, Windows und Mac OS.

  • Vuforia

    Vuforia ist vielleicht die beliebteste und bekannteste Plattform für die Entwicklung von Augmented-Reality-Anwendungen.

    Zu den Schlüsselfunktionen von Vuforia gehören: Erkennung verschiedener Arten von Objekten und Bildern; Unterstützung für das Erkennen grundlegender Texte, das Erstellen benutzerdefinierter Markierungen, das Erstellen von 3D-Karten verschiedener Standorte, Unterstützung für Cloud-Dienste und lokale Datenspeicherung usw.

    Vuforia unterstützt Plattformen wie Android, Universal Windows Platform, Unity und iOS.

  • Apple ARKit

    Nun, Apple verfügt auch über einen eigenen Satz an Tools zur Entwicklung von AR-Anwendungen, der zusammen mit iOS11 eingeführt wurde und ARKit heißt. Selbstverständlich unterstützt es nur iOS-Geräte und beinhaltet alle Grundfunktionen zum Erstellen von Augmented-Reality-Anwendungen.

    „Unser aktuelles Ziel ist es, VR-Erlebnisse unterhaltsamer und immersiver zu machen und es den Menschen zu ermöglichen, diese Erlebnisse gemeinsam zu erleben.“

    John Hanke, CEO von Niantic

  • Die besten Plattformen und Frameworks für die Entwicklung von VR-Anwendungen

    Lassen Sie uns abschließend einige der beliebtesten offenen Plattformen und Frameworks für die Entwicklung von Virtual-Reality-Anwendungen durchgehen.
    • GuriVR

      GuriVR ist ein Open-Source-VR-Editor, mit dem Sie Textbeschreibungen von 3D-Szenen in echte 3D-Modelle für VR-Anwendungen umwandeln können. Unterstützt Text, 3D-Modelle, Bilder, Audioaufnahmen, Voiceovers, 3D-Diagramme und viele andere Funktionen.

    • OpenSpace3D

      OpenSpace3D ist eine kostenlose und offene Plattform zur Entwicklung von VR-Anwendungen und Spielen auf Basis von VR-Technologien. Unterstützt eine große Anzahl verschiedener Plattformen und Geräte, darunter Leap Motion, HTC Vive/Oculus, Google Cardboard und andere. Es enthält auch Funktionen zum Erstellen von AR-Anwendungen.

    • OSVR: Open-Source-Virtual-Reality-Plattform

      OSVR ist eine weitere universelle Plattform für VR- und AR-Lösungen. Damit können Sie Hunderte von VR/AR-Geräten sowie verschiedene Arten von Peripheriegeräten erkennen, konfigurieren und verwalten. OSVR unterstützt mehrere Spiel-Engines und Betriebssysteme und bietet Dienste wie asynchrones Time Warping und Direktmodus zur Unterstützung von Rendering mit geringer Latenz.

    • Primel VR

      Primrose VR ist ein offenes Browser-Framework zum Erstellen einfacher VR-Erlebnisse wie virtuelle Produktdemonstrationen, virtuelle Meetings oder virtuelle Aktivitäten. Primrose VR ist mit allen modernen Browsern kompatibel und läuft auf WebGL.

    • IdeaSpace VR (CMS)

      IdeaSpaceVR ist kein Framework oder Plattform, sondern ein offenes Content Management System (CMS) für VR-Inhalte. IdeaSpaceVR basiert auf PHP/MySQL und ist ein lokal installiertes modulares System mit einem integrierten Content-Player für Virtual-Reality-Anwendungen.

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