Wavefront OBJ

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Wavefront .obj File)
Wechseln zu: Navigation, Suche
QS-Informatik

Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+)

Vorlage:Infobox Dateiformat/Wartung/MIME fehltVorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt

OBJ
Dateiendung: .obj
Entwickelt von: Wavefront Technologies
Erstveröffentlichung: 1989
Art: ASCII-Format
Container für: 3D-Modelle


OBJ (oder .obj) ist ein offenes Dateiformat zum Speichern von dreidimensionalen geometrischen Formen. Das von Wavefront Technologies entwickelte Format wird von vielen 3D-Grafikprogrammen unterstützt und ist daher geeignet für die programm- und plattformübergreifende Weitergabe von 3D-Modellen.

Das OBJ-Format speichert geometrische Eigenschaften eines Objekts oder gruppierter Objekte, d.h. Ecken, Textur-Koordinaten, Normalen, Flächen und Glättungen. Optische Materialeigenschaften (z.B. Spiegelung, Transparenz, Glanzlicht, usw.) werden in einer separaten Materialdatei definiert, die auch Angaben zu Texturierungen enthalten kann. Die Materialdatei besitzt in der Regel die Dateiendung .mtl (von engl. material template library) und kann in der eigentlichen OBJ-Datei referenziert werden.

Aufbau[Bearbeiten]

Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.
  • optionaler Kommentar
  • ggf. Einbindung des material template library.
  • ggf. Objektbenennung
  • Liste der Eckpunkte (Vertices)
  • Liste der Textur-Koordinaten
  • Liste der Normalen
  • Beschreibung der Flächen (Mit Gruppierung)
    • ggf. Gruppenname für folgende Flächen
    • ggf. Name des zu verwendenden Materials
    • ggf. Nummer der Glättungsgruppe
    • Beschreibung der Flächen

Details[Bearbeiten]

Obj-Dateien werden zeilenweise ausgelesen, jeder Befehl benötigt eine neue Zeile. Oben genannte Befehle:

"# <string Kommentar>" Kennzeichnung eines Kommentars - Alles in derselben Zeile nach der Raute wird ignoriert.

 # Dies ist ein Kommentar

"mtllib <string Path>" Einbindung einer Materialbibliothek - In der Datei beschriebene Materialen sind nun verwendbar.

 mtllib Cube.mtl

"o <string Name>" Benennung des Objekts.

 o CubeIstMeinName

"v <float X> <float Y> <float Z> [ <float W> ]" Beschreibung eines Eckpunktes (engl. vertex).

 v 1.000000 1.000000 -0.999999

"vt <float X> <float Y>" Beschreibung eines Texturkoordinatenpunktes.

 vt 0.500000 0.500000

"vn <float X> <float Y> <float Z> Beschreibung einer Normale.

 vn 0.000000 -1.000000 0.000000

"g <string Name>" Benennung einer Gruppierung ( Alle folgenden Flächen werden dieser Gruppierung zugeordnet).

g HierKommtEinGruppennameHin

"usemtl <string Material_Name>" Alle folgenden Flächen erhalten das in der Materialbibliothek mit diesen definierte Material.

 usemtl DiesesInDerMTLDateiDefinierteMaterialWirdGenutzen

"s <integer Glättungsgruppe>" Alle folgenden Flächen erhalten eine definierte zwischen 1 und 32 liegende Glättungsgruppennummer.Die Kanten nebeneinander liegende Flächen mit derselben Glättungsgruppennummer werden glatt dargestellt (Die Kante zwischen beiden Flächen wird unsichtbar), nebeneinanderliegende Flächen mit unterschiedlicher Glättungsgruppennummer werden normal dargestellt (Die Kante zwischen beiden Flächen wird sichtbar).

 s 32

"s off" Abschaltung der Glättung.

 s off

"f <integer A_V> <integer B_V> <integer C_V>..." Beschreibung einer Fläche. (Möglichkeit 1)

 f 1 2 3

"f <integer A_V> / <integer A_VT> <integer B_V> / ..." Beschreibung einer Fläche. (Möglichkeit 2)

 f 2/1 3/1 4/1

"f <integer A_V> // <integer A_VN> <integer B_V> // ..." Beschreibung einer Fläche. (Möglichkeit 3)

 f 2//1 3//1 4//1

"f <integer A_V> / <integer A_VT> / <integer A_VN> <integer B_V> / ..." Beschreibung einer Fläche. (Möglichkeit 4)

 f 2/3/1 3/4/1 4/6/1

Zudem können auch noch Grad, Basis Matrix, "Schritt Größe" und anstatt Flächen Linien, Punkte und Kurven beschrieben werden.

Beispiel[Bearbeiten]

 # Blender v2.71 (sub 0) OBJ File: 
 # www.blender.org
 mtllib Cube.mtl
 o Cube
 v 1.000000 -1.000000 -1.000000
 v 1.000000 -1.000000 1.000000
 v -1.000000 -1.000000 1.000000
 v -1.000000 -1.000000 -1.000000
 v 1.000000 1.000000 -0.999999
 v 0.999999 1.000000 1.000001
 v -1.000000 1.000000 1.000000
 v -1.000000 1.000000 -1.000000
 vn 0.000000 -1.000000 0.000000
 vn 0.000000 1.000000 0.000000
 vn 1.000000 -0.000000 0.000000
 vn -0.000000 -0.000000 1.000000
 vn -1.000000 -0.000000 -0.000000
 vn 0.000000 0.000000 -1.000000
 g Cube_Cube_Material
 usemtl Material
 s off
 f 2//1 3//1 4//1
 f 8//2 7//2 6//2
 f 1//3 5//3 6//3
 f 2//4 6//4 7//4
 f 7//5 8//5 4//5
 f 1//6 4//6 8//6
 f 1//1 2//1 4//1
 f 5//2 8//2 6//2
 f 2//3 1//3 6//3
 f 3//4 2//4 7//4
 f 3//5 7//5 4//5
 f 5//6 1//6 8//6

Weblinks[Bearbeiten]