3D und Virtual Reality - Vertiefung

3D_VerticesPolygone.png

Die gelb markierten Eckpunkte beschreiben das hervorgehobene Dreieck in dem 3D-Modell.
Die gelb markierten Eckpunkte beschreiben das hervorgehobene Dreieck in dem 3D-Modell.

Ein √ľbliches 3D-Modell besteht aus Eckpunkten (vertices), die Polygone beschreiben. Meistens handelt es sich dabei um Dreiecke. Sind die Eckpunkte und die zu den Polygonen geh√∂renden Kanten erfasst, spricht man von einem Drahtgittermodell (wire-frame model oder mesh). Sind nur die Eckpunkte erfasst, handelt es sich um eine Punktwolke, welche beispielsweise von 3D-Scannern erzeugt wird. Um eine Punktwolke weiter zu verarbeiten, muss diese vorher meist in ein Drahtgittermodell umgewandelt werden.

Die Inhalte von 3D-Modellen können in drei Kategorien eingeteilt werden: Geometrie, Oberflächeneigenschaften sowie Belichtungs- und Kameraparameter. Zusätzlich kann noch eine Animation oder eine Interaktion hinterlegt sein. Aus diesen Angaben wird die Visualisierung berechnet. Dieser Vorgang wird als Bildsynthese bezeichnet (rendering) und resultiert in statischen Rastergrafiken, Videos oder interaktive Modelle.

 

3D_DrahtgitterPunktwolke.png

Das Stanford Bunny links als Drahtgittermodell und rechts als Punktwolke.
Das Stanford Bunny links als Drahtgittermodell und rechts als Punktwolke.

Geometrie

Die Form eines 3D-Modells kann mit vier verschiedenen Methoden beschrieben werden: durch ein Drahtgittermodell oder Facetten, parametrisch mit mathematisch beschriebenen Kurven und Flächen, mittels geometrischen Körpern, der sogenannten Konstruktiven Festkörpergeometrie, oder durch die begrenzenden Oberflächen, dem sogenannten Begrenzungsflächenmodell.

Drahtgittermodell: Hierbei wird die Form des 3D-Modells durch dessen Eckpunkte beschrieben, welche wiederum eine Reihe von Polygonen bilden, die zusammen die Oberfläche des Modells darstellen. Drahtgittermodelle sind einfach und schnell zu rendern, jedoch sind bei Detailansichten von konkaven oder konvexen Oberflächen immer die Flächen und scharfen Kanten der einzelnen Polygone erkennbar. Mittels sogenannten Shading-Algorithmen kann beim Rendern der Eindruck von gleichmäßigen Oberflächen generiert werden. Jedoch ist dann an der Kontur immer noch die polygonale Herkunft zu erkennen, wie in der Abbildung im Abschnitt Oberflächeneigenschaften dargestellt.

Eine Annäherung an eine gleichmäßige Oberfläche kann auch durch eine größere Anzahl an kleineren Polygonen erzielt werden, was aber zur Folge hat, dass die Dateigröße des Modells wächst.

Parametrische Darstellung: Viele Kurven und Fl√§chen k√∂nnen mathematisch mit wenigen Parametern errechnet werden. Im Bereich der 3D-Grafik werden f√ľr die parametrische Darstellung h√§ufig NURBS (Non-Uniform Rational B-Splines, nicht-uniforme rationale B-Splines) verwendet. Die Verwendung von mathematisch beschriebenen Kurven und Fl√§chen erlaubt eine in der Detailliertheit der Oberfl√§che verlustfreie Skalierbarkeit. Wird ein 3D-Modell mit parametrischen Fl√§chen in einem Format gespeichert, das diese nicht unterst√ľtzt, muss das Modell in Polygone umgerechnet werden, was dazu f√ľhrt, dass Informationen der Oberfl√§chenstruktur verloren gehen, was vergleichbar mit dem Informationsverlust bei der Konvertierung von einer Vektorgrafik in eine Rastergrafik ist.

Konstruktive Festk√∂rpergeometrie: 3D-Modelle k√∂nnen, anstatt durch Eckpunkte, Fl√§chen oder Kurven auch mit Hilfe von geschlossenen geometrischen K√∂rpern konstruiert werden. Dabei kann die Vereinigung, die Differenz oder die Schnittmenge der K√∂rper gebildet werden. Beispielsweise kann ein Verkehrsh√ľtchen aus der Vereinigung eines Kegels und eines flachen Quaders konstruiert werden. Daher wird diese Vorgehensweise als Konstruktive Festk√∂rpergeometrie (Constructive Solid Geometry, CSG) bezeichnet. Sie erfordert die Speicherung sowohl der einzelnen geometrischen K√∂rper, als auch der angewendeten Methoden, um eine sp√§tere Bearbeitung der Modelle einfach zu erm√∂glichen. Insbesondere Dateiformate aus dem CAD-Bereich ber√ľcksichtigen dies. Eine Konvertierung von Formaten, die CSG unterst√ľtzen, zu denen, die keine unterst√ľtzen, f√ľhrt zu Einschr√§nkungen bei der Bearbeitbarkeit, da nur noch Polygone und deren Eckpunkte ver√§ndert werden k√∂nnen. Eine Konvertierung von einem Polygonformat zu einem CSG-Format ist nur schwer m√∂glich.

Begrenzungsflächenmodell: Eine weitere Form der Speicherung der Geometrien von 3D-Modellen aus dem CAD-Bereich stellt das Begrenzungsflächenmodell (Boundary Representation, B-Rep) dar. Dabei wird das Modell durch dessen begrenzende Oberflächen beschrieben.

Oberflächeneigenschaften

Neben der Form m√ľssen f√ľr ein 3D-Modell auch Obefl√§cheneigenschaften gespeichert werden, die das Aussehen des Modells bestimmen. Neben der Farbe geh√∂ren dazu Texturen und Materialeigenschaften, die kombiniert zu einem sehr realistisch wirkenden 3D-Modell f√ľhren k√∂nnen.

Jedem Punkt einer Punktwolke oder den Eckpunkten und Polygonen können Farbwerte zugeordnet werden. Texturen können abstrakt als eine auf das Modell aufgebrachte Tapete verstanden werden. Beispielsweise kann auf einen einfachen Zylinder ein Bild von Holzmaserung aufgebracht werden, um einen Baumstamm fotorealistisch darstellen zu können. Dabei wird jedem Punkt im 3D-Modell ein Punkt aus dem zweidimensionalen Bild zugewiesen.

Auch die Materialeigenschaften k√∂nnen in einem 3D-Modell modelliert werden, um dem Objekt die gew√ľnschten Reflexionseigenschaften zuzuweisen, denn ein Holztisch weist bei Beleuchtung andere Eigenschaften auf als ein Glastisch. Hierf√ľr werden in dem Modell verschiedene Parameter gespeichert, welche diffuses Streulicht, spiegelndes Spekularlicht, Umgebungslicht, Transparenz, Lichtbrechung, Lichtemission etc. beschreiben.

Eine weitere Technik, um das Aussehen einer Oberfl√§che zu beeinflussen ist das Bumpmapping. Dabei werden mittels einer Textur die Normalenvektoren der einzelnen Polygone ver√§ndert, was dazu f√ľhrt, dass die Schattierungen und Reflexionen auf der Oberfl√§che ver√§ndert werden und somit Oberfl√§chenunebenheiten simuliert werden, die geometrisch eigentlich nicht vorhanden sind. Weitere Beispiele √§hnliche Techniken sind Normal Maps oder Transparency Maps, welche den Schattenwurf, die Reflektion und die Transparenz eines Objektes beeinflussen k√∂nnen.

3D_Bump.png

Links: Eine Textur und deren Anwendung auf ein 3D-Modell. Rechts: Mittels Bumpmapping wurde das IANUS-Logo auf ein 3D-Modell aufgebracht. Es erweckt den Anschein einer dreidimensionalen Veränderung der Oberfläche, jedoch hat sich in der Geometrie des Modells nichts verändert, was an den Umrissen zu erkennen ist.
Links: Eine Textur und deren Anwendung auf ein 3D-Modell. Rechts: Mittels Bumpmapping wurde das IANUS-Logo auf ein 3D-Modell aufgebracht. Es erweckt den Anschein einer dreidimensionalen Veränderung der Oberfläche, jedoch hat sich in der Geometrie des Modells nichts verändert, was an den Umrissen zu erkennen ist.

Die Oberfl√§cheneigenschaften werden mit Shadern beim Rendern visuell umgesetzt. Shader (dt. Schattierer) sind Programme, die mittels verschiedener Algorithmen unter Ber√ľcksichtigung der Lichtquellen die Farbe f√ľr jeden darzustellenden Pixel berechnen, um das Aussehen des 3D-Modells in der gerenderten Darstellung zu bestimmen. Ein Shader kann beispielsweise den Eindruck von gleichm√§√üigen Oberfl√§chen erzeugen, wie in der Abbildung dargestellt.

3D_Render.png

Das linke Modell wurde ohne speziellen Shader gerendert, weshalb die einzelnen Polygone zu erkennen sind. Wird auf das gleiche Modell ein glättender Shader angewendet, entsteht der Eindruck von gleichmäßigen Oberflächen, wie im rechten Teil der Abbildung.
Das linke Modell wurde ohne speziellen Shader gerendert, weshalb die einzelnen Polygone zu erkennen sind. Wird auf das gleiche Modell ein glättender Shader angewendet, entsteht der Eindruck von gleichmäßigen Oberflächen, wie im rechten Teil der Abbildung.

 

Belichtungs- und Kameraparameter

Wie einem Nutzer ein 3D-Modell angezeigt wird, hängt von dem Szenenaufbau ab. Dazu gehören die Größe des Viewports, die Positionierung des 3D-Modells darin, die Position der Kamera und die Lichteinstellungen.

Der Viewport ist dabei vergleichbar mit einer B√ľhne, die den f√ľr die Darstellung zur Verf√ľgung stehenden Bildausschnitt in seiner H√∂he, Breite und Tiefe definiert. F√ľr die Kamera muss nicht nur die Position, sondern auch die Blickrichtung gespeichert werden.

Werden 3D-Inhalte ohne Licht gerendert, wird ein schwarzes Bild erzeugt. Daher sind Lichtquellen notwendig, um die Szene auszuleuchten. Werden keine Angaben zu Anzahl, Position, Intensit√§t und Art der Lichtquellen gespeichert, bleibt dies dem Nutzer √ľberlassen oder sie werden gegebenfalls automatisch vom Programm gesetzt.

Die Szene kann ein oder mehrere Modelle umfassen, welche auch gruppiert werden können. Gruppierungen sind insbesondere dann notwendig, wenn ein Modell aus mehreren Teilen besteht. Dabei muss außerdem die Lage der Teile zueinander gespeichert werden. Es handelt sich dabei um Transformationen, die Verschiebungen, Drehungen oder Skalierungen der Objekte betreffen.

Bei der Darstellung von umfangreichen Szenen k√∂nnen unterschiedliche Detailstufen f√ľr die einzelnen Objekte verwendet werden. Beispielsweise kann eine Mauer im Vordergrund, nahe der Kamera sehr detailliert dargestellt werden, w√§hren ein Baum weit im Hintergrund nur grob angedeutet werden muss, wobei der Detailgrad von 3D-Modellen dabei von der Anzahl der Polygone abh√§ngt. Dieser Detaillierungsgrad wird als "Level of Detail" (LOD) bezeichnet und findet insbesondere dann Anwendung, wenn das Rendern von 3D-Modellen effizienter werden soll.

3D_LOD.png

Auswirkungen von verschiedenen Detaillierungsgraden (LOD) auf ein 3D-Modell. Das Stanford Bunny mit 69451, 3851 und 948 Polygonen.
Auswirkungen von verschiedenen Detaillierungsgraden (LOD) auf ein 3D-Modell. Das Stanford Bunny mit 69451, 3851 und 948 Polygonen.

Animation und Interaktion

F√ľr Animation und Interaktion ist die Speicherung von zus√§tzlichen Parametern erforderlich. Dies muss bei der Wahl eines Archivierungsformates ber√ľcksichtigt werden und erfordert zus√§tzliche Angaben in der Dokumentation. Werden Animationen beispielsweise als Videodateien exportiert, sollten die Hinweise in dem Abschnitt Bewegte Bilder, Videos ber√ľcksichtigt werden.

Speicherung der verschiedenen Eigenschaften

Nicht jedes 3D-Format unterst√ľtzt die Speicherung aller eben genannten Eigenschaften. Daher muss bei der Wahl des Speicherformates bedacht werden, welche Eigenschaften unbedingt erhalten bleiben sollen. Beispielsweise ist f√ľr ein gescanntes Objekt die Speicherung von Lichtquellen oder Animationen nicht unbedingt erforderlich, wohingegen bei einer Architekturrekonstruktion zur Darstellung von Lichtverh√§ltnissen die Lichtquellen unerl√§sslich sind.

Eine √úbersicht √ľber die Speichereigenschaften der hier empfohlenen Formate zur Langzeitarchivierung gibt die folgende Tabelle. Sie beruht auf "K. McHenry, P. Bajcsy, An overview of 3D data content, file formats and viewers".

Unterst√ľtzte Eigenschaften von verschiedenen 3D-Formaten. DG = Drahtgittermodell/Facetten, P = Parametrisch, F = Farbe, X = Textur mittels Bild, B = Bumpmapping, M = Material, V = Viewport und Kamera, L = Lichtquellen, T = Transformationen, G = Gruppierung. Leere Zellen bedeuten entweder fehlende Speichereigenschaften oder es wurden keine Angaben in der jeweiligen Formatspezifikation gefunden.

Format Geometrie Aussehen Szene Anim.
  DG P CSG B-Rep F X B M V L T G  
X3D ‚úď ‚úď ¬† ¬† ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď
COLL. ‚úď ‚úď ¬† ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď
OBJ ‚úď ‚úď ¬† ¬† ‚úď ‚úď ‚úď ‚úď ¬† ¬† ¬† ‚úď ¬†
PLY ‚úď ¬† ¬† ¬† ‚úď ‚úď ‚úď ‚úď ¬† ¬† ¬† ¬† ¬†
VRML ‚úď ‚úď ¬† ¬† ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď ‚úď
STL ‚úď ¬† ¬† ¬† (‚úď) ¬† ¬† ¬† ¬† ¬† ¬† ¬† ¬†
DXF ‚úď ‚úď ‚úď ‚úď ‚úď ¬† ¬† ¬† ¬† ¬† ¬† ‚úď ¬†
U3D ‚úď ¬† ¬† ¬† ‚úď ‚úď ‚úď ¬† ‚úď ‚úď ‚úď ‚úď ‚úď

Die Tabelle ist nicht erschöpfend, da es noch viele weitere spezielle Eigenschaften von 3D-Inhalten gibt, die aber oft nur in spezialisierten, häufig proprietären Anwendungen und 3D-Formaten zum Tragen kommen. Daher ist außerdem zu empfehlen, dass die originalen Dateien ebenfalls archiviert werden, falls es sich dabei nicht schon um eines der hier angegebenen Formate handelt.

Letzte Änderung: 14. Dezember 2016