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! (+)

Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Die fraglichen Angaben werden daher möglicherweise demnächst entfernt. Bitte hilf der Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Näheres ist eventuell auf der Diskussionsseite oder in der Versionsgeschichte angegeben. Bitte entferne zuletzt diese Warnmarkierung.

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 Dateiformat zum Speichern von geometrischen Formen. Das von Wavefront Technologies erfundene Format wird von fast allen Animationsprogrammen angenommen und ist daher sehr geeignet für die programmübergreifende Weitergabe von geometrischen Modellen.

Das Format speichert nur die einzelnen Objekte an sich (jede Ecke wird einzeln mit Koordinaten definiert und dann zu Flächen zusammengefügt). Für die Angabe von optischen Daten (z.B. Spiegelung, Transparenz, Glanzlicht, usw.) gibt es das .mtl-Format, welches per Befehl in die .obj-Datei eingebunden und genutzt werden kann.

Aufbau[Bearbeiten]

  • Datei Start "Einleitung", ein oder mehrere Kommentare.
  • ggf. Einbindung der Materialbibliothek Datei (Material Library File).
  • ggf. Objekt Benennung.
  • Liste der Eckpunkte.
  • 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. Obig genannte Befehle:

"# <string Kommentar>" Kennzeichnung eines Kommentars - Alles in der selben 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.

 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), nebeneinander liegende Flächen mit unterschiedliche 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 .

Beispiele[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]