Seminarinhalte
iOS Entwicklung mit Unity
- Die Entwicklung mit iOS ist eine der komplexeren
Problemstellungen in der Verwendung mit Unity um AR Applikationen
herzustellen. Code-signing und lange Entwicklungszyklen sind eine
verbreitete Problematik für viele neue Entwickler die
versuchen, im Apple Ökosystem Fuß zu fassen. Wie man an
Dinge wie Geräteregistrierung, XCode Einstellungen, Apple
Developer Profile, Zertifikatserstellung und TestFlight
Publizierung heran tritt, lernen wir in diesem Kapital. Unity wird
als eine Basis für korrekten Szenenaufbau benutzt und es wird
eine komplette Pipeline vom Editor bis aufs Abspielgerät
erklärt.
AssetStore Voraussetzungen und ARKit
Plugins
- Unity selbst ist nur eines der Schlüsselelemente für
die Entwicklung mit ARKit. Ein Teil der Magie passiert innerhalb
interner Bibliotheken auf der Apple iOS Seite, die zuerst in Unity
verfügbar sein müssen. Wir erklären die Verwendung
des AssetStores um ein korrektes ARKit Integrationsplugin
einzubinden und benutzen dieses Wissen um unsere ersten ARKit
Verbindungen aufzubauen.
Voraussetzungen für ein gutes AR
Erlebnis
- Videoeinbindung bringt ihre eigene Klasse von Problemen und
Limitationen mit sich. Beleuchtungsszenarios für die Erkennung
von Details, Datengenauigkeit der ausgelesenen Umgebung und
verschiedene andere Voraussetzungen müssen verstanden sein, um
ein gut funktionierendes AR Erlebnis aufsetzen zu können. Wir
diskutieren über die verschiedenen Wege, AR in reale
Situationen einzubauen und zeigen Problemstellungen, die beachtet
werden müssen in der Entwicklung.
Umgebungserkennung und ARKit
Hintergründe
- Wie erkennt der ARKit die Umgebung und ermöglicht es uns,
3D Grafiken in die Videobilder einzusetzen? Wir schauen uns die
unterliegenden Prinzipien der visuell-bewegten Odometrie sowie die
daraus resultierenden Fähigkeiten der Erkennungsalgorithmen
an, um unsere Hierarchien in den angezeigten Hintergrund zu
transferieren. Koordinatensysteme sind ein Schlüsselelement
für die Kombination der ausgelesenen 3D Punktewolke des ARKits
mit den Objekten unserer Szene.
Trefferpunkterkennung und dynamische
Objekte
- Da nun ein Verständnis für unsere Umgebung vorliegt,
ist es von nöten, einen Punkt in der Umgebung zu
identifizieren, so daß wir ein dynamisches Objekt an dessen
Position erstellen können. Instanziierung ist der Weg um diese
Problematik zu lösen und zusammen mit Prefabs sprechen wir
über ein Cloning-Setup, mit dem wir Inhalte in unserem 3D-Raum
platzieren können. Dies ermöglicht uns, ?Dinge? in der
Welt des Videobilds zu platzieren.
Ebenenerkennung und Verankerung
- Der ARKit liefert uns verschiendene komplexe Informationen, die
wir für Positionierungszwecke auswerten können. Ebenen
ermöglichen uns, Orientierungen auf Inhalte anzuwenden,
bezogen auf Oberflächen wie Tische, Wände, etc.
Dynamische Verankerung bewegt die Inhalte dann im Bezug auf die
Hintergrundszene. Wie dies aufzusetzen ist, so daß eine
Verbindung ist mit den verschiedenen Spielobjekten besteht, stellt
einen kritischen Schritt dar, um Dinge fest in Szene zu
setzen.
Lichteinschätung und Verdeckung
- Für eine nahtlose Einbindung der platzierten Inhalte ist
eine Einschätzung der angezeigten Lichtsituation im Videobild
notwendig. Glücklicherweise liefert ARKit einige Daten der
umgebenden Lichtsituation. Wir erörtern ambiente
Lichteinflüsse auf den Szeneninhalt in Unity und integrieren
die ARKit Resultate. Verdeckung ist ein weiteres Thema das
notwendig ist, für den glaubwürdigen Einbau der Prefabs,
da Objekte sich ?verstecken? müssen, sobald Wände oder
Sichtbarrieren auftauchen. Die Fähigkeiten des ARKits für
diese Problemstellung wird im Detail erörtert.
Debugging und Visualisierung der Umgebung
- Oft ist es einfacher, ein Verständnis für das
Umgebungsszenario aufzubauen, wenn es grafisch visualisiert wird.
Durch die Anzeige, was ARKit wirklich tut, gewinnen wir ein
klareres Bild bei falschem Verhalten in der Platzierung und
Orientierung unserer Objekte. Dies geschieht durch die
Visualisierung spezieller Eigenschaften der unterliegenden
Punktewolke und die Nutzung dieser Informationen in der angezeigten
Umgebung.
Performanzeinschränkungen von
Mobilgeräten
- Mobile Entwicklung konfrontiert uns mit speziellen Hürden
in der Performanz, da innerhalb von AR Applikationen viele
Informationen auf einem kleinen Gerät verarbeitet und
angezeigt werden müssen. Korrekte 3D Geometrie und
Performanzeinschränkungen der Logik und der Inhalte sind sehr
wichtige Punkte, um eine fehlerfreie Ausführung mit hohen
Bildraten auf dem Gerät zu garantieren. Wir sprechen über
typische Performanzproblematiken und wie sie umgangen werden
können.
Dieser Kurs vermittelt den Teilnehmern einführendes Wissen
über Apple?s ARKit und Augmented Reality Entwicklung auf iOS
11 Geräten wie iPhones und iPads. Es werden die grundlegenden
Vorgehensweisen erörtert, um ein ARKit System in Unity
aufzusetzen, welches dann via XCode auf ein begleitendes Gerät
zur Revision publiziert wird. Dies stellt das Fundament für
die Entwicklung von überzeugenden AR Applikationen dar, welche
3D Grafik nahtlos mit einem Echtzeit-Videobild eines
Handgerätes zusammenführen. Themen wie Umgebungs- und
Detailerkennung durch das Videobild, platzieren von Objekten sowie
praktische Beispiele für viele andere AR-Konzepte werden
vorgeführt. Die Herstellung von Interaktion mit den
platzierten Objekten wird genauer erläutert, wodurch weitere
Möglichkeiten geschaffen werden, die AR-Erfahrung noch zu
verbessern. Die iOS Plattform und ihr kompexes Ökosystem ist
ein Schlüsselthema in diesem Kurs und ermöglicht neuen
Entwicklern somit einen schnellen Start in die Entwicklung mit
diesen populären Geräten.
Teilnehmer benötigen Erfahrung in der C# Entwicklung mit Unity und ein Verständnis für die Erstellung von Unity Szenen für die Publizierung. Theoretischer Hintergrund über 3D Koordinatensysteme und Augmented Reality Theorie im allgemeinen ist notwendig; Verständis für 3D Geometrie und Shader stellt ein Plus dar. Vorhandene iOS Entwicklungserfahrung ist von Vorteil.
User Interface-Entwickler, Unity Entwickler, 3D-Entwickler