Commit 2e3380af by wester

bla bla

parent 6f9281c8
Pipeline #313 passed with stage
in 28 seconds
...@@ -57,8 +57,8 @@ Tileformat zum gleichzeitigen Übertragen mehrerer einzelner Tileformate in eine ...@@ -57,8 +57,8 @@ Tileformat zum gleichzeitigen Übertragen mehrerer einzelner Tileformate in eine
\subsection{glTF} \subsection{glTF}
Das GL Transmission Format (glTF \cite{GLTF}) ist ein Format zum effizienten Übertragen von 3D Szenen für Gl Api's wie WebGL, OpenGl ES und OpenGL udn wird hier nru Kurz erwähnt da es für die Implementierung nicht verwendet wurde. Das GL Transmission Format (glTF \cite{GLTF}) ist ein Format zum effizienten Übertragen von 3D Szenen für Gl Api's wie WebGL, OpenGl ES und OpenGL wird hier nur Kurz erwähnt da es für die Implementierung nicht verwendet wurde.
GlTF dient als effizientes, einheitliches und erweiterbares Format zur Übertragung und Laden von 3D Daten. glTF dient als effizientes, einheitliches und erweiterbares Format zur Übertragung und Laden von 3D Daten.
Im Vergleich zu aktuellen Standards wie COLADA ist glTF optimiert, schnell übertragen und kann schnell in eine Applikation geladen werden. Im Vergleich zu aktuellen Standards wie COLADA ist glTF optimiert, schnell übertragen und kann schnell in eine Applikation geladen werden.
In einem JSON formatierten Datei (.gltf) wird eine komplette Szene samt Szenegraf, Materialien und deren zugehörigen Shadern, Kamerapositionen, Animationen und Skinning Informationen übertragen. In einem JSON formatierten Datei (.gltf) wird eine komplette Szene samt Szenegraf, Materialien und deren zugehörigen Shadern, Kamerapositionen, Animationen und Skinning Informationen übertragen.
Dabei kann auf externe Dateien verwiesen werden. Diese sind zum Beispiel Binärdaten oder Bildern die für das einfache und effiziente Übertragen von Geometrie, Texturen oder den nötigen GLSL Shadern genutzt werden Dabei kann auf externe Dateien verwiesen werden. Diese sind zum Beispiel Binärdaten oder Bildern die für das einfache und effiziente Übertragen von Geometrie, Texturen oder den nötigen GLSL Shadern genutzt werden
......
\chapter{Visualisierung} \chapter{Visualisierung}
\label{chapter:05visualization} \label{chapter:05visualization}
In diesem Kapittel Wird die Visualisrung der Punktwolke in der Unreal Engine 4 \ref{UE4} erklärt. In diesem Kapittel Wird die Visualisrung der Punktwolke in der Unreal Engine 4 \cite{UE4} erklärt.
Die Unreal Engine ist ein mächtige Game Engine die unter anderm Support für verscheidene Virtual Reality System bietet. Die Unreal Engine ist ein mächtige Game Engine die unter anderm Support für verscheidene Virtual Reality System bietet.
Durch die Verwendung einer Game Engine muss kein eigener performanter Renderer geschrieben werden der den Anforderungen für Virtual Realit entspricht. Durch die Verwendung einer Game Engine muss kein eigener performanter Renderer geschrieben werden der den Anforderungen für Virtual Realit entspricht.
\section{UE4 Rendering System} \section{UE4 Rendering System}
Die Unreal Engine verwendet ein Redner System das auf DirextX aufgebaut ist. Die Unreal Engine verwendet ein Redner System das auf DirextX aufgebaut ist.
Die gesammte Rendering ist Abstrahiert und aus der Engine hat man keinen direkten Zugriff auf die Grafikkarte udn die Shader. Die gesammte Rendering ist Abstrahiert und aus der Engine hat man keinen direkten Zugriff auf die Grafikkarte und die Shader.
Das Unreal Engine Materialsystem ist der vorgesehene Weg um Shader zu Implementieren. Das Unreal Engine Materialsystem ist der vorgesehene Weg um Shader zu Implementieren.
Im Stil der UE4 Blueprints lassen sich damit grafisch Materialiern definieren die von der Engine in zugehörige Shader umgewandelt werden.
\todo{Bild} \todo{Bild}
\section{3D Tiles Laden und vorbereiten}
Die Punktwolken könne als Array direkt geladen werden, jedoch lässt die Unreal Engien nicht zu diese auch direkt auf die Grafikkarte zu laden und zu verwenden.
Als Alternative wurde das eindimensionale Buffer in einer 2D Textur umgewandelt.
Jeder Pixel der Textur besteht aus 3 Werten, jeweils einen für die 3 Farbkanäle Rot, Grün und Blau.
Ein Punkt im 3D Raum besteht ebenfalls aus 3 Werten für die Achsen X,Y und Z.
Um die Daten auf die Grafikkarte zu laden codieren wir die Positionen in den Farbkanälen.
Farbwerte sind im Wetebereich $[0-1]$ und werden in unterschiedlichen Datenformaten gespeichert.
Für die Implementierung wurde das HDR Datenvormat der Unreal Engine verwendet.
Dabei wird jeder Farbkanal in einer 10 Bit Integer codiert und ergibt damit pro Farbkanal $2^10$ diskrete Farbwerte. \todo{Bits überprüfen köntne auch 16 sein}
Das bedeute auch für eine Punktwolke die wir als eine Textur codieren haben wir eine Maximale Auflösung pro Achse.
Um die Daten in eine Textur zu überführen müssen wir diese vorbereiten.
Zunächst wird das Minimum und die Größe entlang jeder Achse bestimmt.
Mit diesen Daten lässt sich die gesamte Punktwolke in den Einheitswürfel transformieren.
$$ min = Minimum(p) \forall p \in Punktwolke \\$$
$$max = Maximum(p)\\$$
$$size = max-min $$
$$Result =\frac{ p-min}{size}$$
Die so codierten Punkte lassen sich in einer Textur abspeichern und im Shader wird die Transformation in den Einheitswürfel umgekehrt.
Das Aufbereiten der Farbtextur ist einfach.
Die Farben sind im 3D Tile als byte große Integer gespeichert.
Diese können direkt in eine Unreal Textur konvertiert werden.
\section{Rendering}
In der Unreal Engine ist
Quadchain
Shader
aus x pos des Meshes uv berehcnen
texturen (pos udn rgb auslesen9
position setzen udn quad zum betrachter drehen
Sphern funktion drauf (rund machen)
zusätzlichen quads discarden
extraquads
wxtrapountke in der textur
An die richtge position schiebern und rotieren
\section{Ergebnisse}
Performance
Bidler
\section{3D Tiles Laden}
Visualisierung der Punktwolke
Unreal und nicht Opengl
Statice Mesh aus Quads die neu positioniert werden
Performance
no LOD implemented
\section{Section}
\todo{section}
\chapter{Hololens}
\label{chapter:06Hololens}
Ziel Daten aus der VR Umgebung Visualisiern
Zeitgründen nur einen MA controller befestigten laserstrahl
\section{Unreal Engine Un Hololens}
Microsoft UWP Repsoitory
Development Branch
HAt nicht Compiled
Videos zeigen lagy rotation
\section{Hololens Implementierung}
Welt Anker
verscheiobbar im Debug Modus
Eine Achse Senkrecht zum Boden
empfängt JSON per UDP
zeichnet Line relativ zu Welt anker
\section{Kalibrierung}
Vive Trakcer an Postion und roatioon des Welt anker
speichern auf Knopfdruck der Transformation des Trakcer Oringins
Senden oper UDP
inverse Transofrmation origin
\subsection{Kalibrierungsfehler}
Ungenauigkeitne Vive
Ungenauigkeiten Holoens
Unterscheide in Längen
Faktor 1,025
vlt Biler / viodeo mehrfaches knopf drücken ungenauigkeiten
\section{Ergebnisse}
Bilder aus Hioloens perspektive
Funktioniert gut wenn nach am gemeinsamen Punkt
\section{Verbesserungen}
hier oder Ausblick
Marker auf trakcer kleben (kein menschlicher Fehler)
Merher Tracker und damit gesyncte Längen
\subsection{Versicehben der VR Umgebung}
vlt besser im Scenario der Evaluation
\ No newline at end of file
\chapter{Evaluation}
\label{chapter:07Evaluation}
\section{Versuchsablauf}
\section{Probanden}
\section{Ergebnisse}
\chapter{Ausblick}
\label{chapter:08Ausblick}
Zukunftstechnologie aber aktuelle Consumer HArdware noch zu schelcht
Verbesserung des Lighthouse Trackings
Kienct mit integrierten Vive tracking
Hololens ist eigtlich awesome, aber zu schwer zu kleines FOV
generiertes Mehs besser als Punktwolke+
set localPath=C:\Users\kaiwe\Desktop\TeXworks-win-0.6.2-201704300708-git_7ecce17 ::set localPath=C:\Users\kaiwe\Desktop\TeXworks-win-0.6.2-201704300708-git_7ecce17
::set localPath=..\..\TeXworks-win-0.6.2-201704300708-git_7ecce17 set localPath=..\..\TeXworks-win-0.6.2-201704300708-git_7ecce17
set ausarbeitungpath=. set ausarbeitungpath=.
start %localPath%\TeXworks.exe %ausarbeitungpath%\thesis.tex start %localPath%\TeXworks.exe %ausarbeitungpath%\thesis.tex
start %localPath%\TeXworks.exe %ausarbeitungpath%\thesis.bib start %localPath%\TeXworks.exe %ausarbeitungpath%\thesis.bib
...@@ -8,4 +8,7 @@ start %localPath%\TeXworks.exe %ausarbeitungpath%\02related.tex ...@@ -8,4 +8,7 @@ start %localPath%\TeXworks.exe %ausarbeitungpath%\02related.tex
start %localPath%\TeXworks.exe %ausarbeitungpath%\03points.tex start %localPath%\TeXworks.exe %ausarbeitungpath%\03points.tex
start %localPath%\TeXworks.exe %ausarbeitungpath%\04tiles.tex start %localPath%\TeXworks.exe %ausarbeitungpath%\04tiles.tex
start %localPath%\TeXworks.exe %ausarbeitungpath%\05visualize.tex start %localPath%\TeXworks.exe %ausarbeitungpath%\05visualize.tex
start %localPath%\TeXworks.exe %ausarbeitungpath%\06Holoens.tex
start %localPath%\TeXworks.exe %ausarbeitungpath%\07Evaluation.tex
start %localPath%\TeXworks.exe %ausarbeitungpath%\08Ausblick.tex
start %localPath%\TeXworks.exe %ausarbeitungpath%\Anhang.tex start %localPath%\TeXworks.exe %ausarbeitungpath%\Anhang.tex
...@@ -178,6 +178,9 @@ ...@@ -178,6 +178,9 @@
\include{03points} \include{03points}
\include{04tiles} \include{04tiles}
\include{05visualize} \include{05visualize}
\include{06Holoens}
\include{07Evaluation}
\include{08Ausblick}
%% ---------------- %% ----------------
%% | Appendix | %% | Appendix |
......
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment