Model Loader: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Für was brauch ich das?: rs)
K (Welche Modellformate gibt es?)
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 15: Zeile 15:
 
* .collada ([http://www.khronos.org/collada/ Collada])
 
* .collada ([http://www.khronos.org/collada/ Collada])
 
* .3ds (3D Studio)
 
* .3ds (3D Studio)
 +
* .obj (Wavefront OBJ)
 
* .lwo (Lightwave)
 
* .lwo (Lightwave)
 
* .ms3d (Milkshape 3D)
 
* .ms3d (Milkshape 3D)
Zeile 20: Zeile 21:
 
* .md3 (ID Software MD3)
 
* .md3 (ID Software MD3)
 
* .x (Microsoft DirectX)
 
* .x (Microsoft DirectX)
 +
* .off (Object File Format)
  
 
==Wozu gibt es Exporter Plugins und Scripte?==
 
==Wozu gibt es Exporter Plugins und Scripte?==
Zeile 25: Zeile 27:
 
Hierzu gibt es von den meisten 3D Editioren Plugins oder Scripte die dieses erledigen.
 
Hierzu gibt es von den meisten 3D Editioren Plugins oder Scripte die dieses erledigen.
  
Einige Programme wie 3DS Max und Blender bieten beides, wobei in Fall von 3DS Max lieber Plugins verwendet werden sollten (Geschwindigkeitsvorteil). Blender bietet für Scripte einen Python Interpreter, der lediglich ein bischen modifiziert wurde.
+
Einige Programme wie 3DS Max und Blender bieten beides, wobei in Fall von 3DS Max lieber Plugins verwendet werden sollten (Geschwindigkeitsvorteil). Blender bietet für Scripte einen Python Interpreter, der lediglich ein bisschen modifiziert wurde.
  
 
Mit der Möglichkeit, eigene Format zu speichern, kann man sich auch aus dem Lizensproblem für bestimmte Formate rauswinden und man hat die Möglichkeit das Format an benötigte Bedingungen anzupassen.
 
Mit der Möglichkeit, eigene Format zu speichern, kann man sich auch aus dem Lizensproblem für bestimmte Formate rauswinden und man hat die Möglichkeit das Format an benötigte Bedingungen anzupassen.
Zeile 45: Zeile 47:
 
! Umgesetzte Features
 
! Umgesetzte Features
 
|-
 
|-
| [http://sourceforge.net/projects/cal3d/ Cal3D]
+
| [http://gna.org/projects/cal3d/ Cal3D]
 
| C++
 
| C++
 
| alle Cal3D (0.10) Features
 
| alle Cal3D (0.10) Features
Zeile 80: Zeile 82:
 
|}
 
|}
 
|-
 
|-
 +
| OFF
 +
|
 +
* extrem einfaches 3D-Format
 +
* ASCII und Binär-Variante
 +
* nur Vertices, Normalen, Texturkoordinaten und Farben
 +
* nicht auf Dreiecke beschränkt, beliebige Polygone möglich.
 +
* '''nicht jeder Exporter (z.B. Blender) kann das vollständige Format!'''
 +
| Da das Format so einfach ist ist ein Loader schnell implementiert:
 +
[http://web.mit.edu/lugao/MacData/afs/athena/software/geomview_v1.9.3/www/OFF.html Formatbeschreibung].
 
|}
 
|}
 
  
 
[[Kategorie:Technik_oder_Algorithmus]]
 
[[Kategorie:Technik_oder_Algorithmus]]

Aktuelle Version vom 13. Mai 2012, 16:39 Uhr

Was ist das?

Ein Modell-Loader ist eine Unit, oder DLL die ein 3D-Model in einem bestimmten Typ* vorliegt für ein Programm oder für was auch immer lädt, damit es angezeigt werden kann.

Für was brauch ich das?

Wenn man 3D Modelle von speziellen Objekten (z.B. Einheiten, Landschaftsgegenstände und Gebäude in Strategiespiele, oder Gegner für Shooter) benötigt, ist es wesentlich komfortabler ein Modell in einem speziellen 3D Modellierungsprogramm zu modellieren, als es „von Hand“ in OpenGL zu bauen. Man muss allerdings anschließend die Daten (Informationen zur Geometrie, Texturierung eventl. Animierung) selbst aus den abgespeicherten Modellformaten extrahieren.

Und genau da kommt der „Model Loader“ ins Spiel. Dieses Stück Code ermöglicht es dem Nutzer die Daten komfortabel aus den Dateien zu Laden. Das erleichtert die Arbeit im Vergleich zu selber gebauten Objekten natürlich enorm. Und die Modelle sehen, wenn man genügend Talent hat, auch meist wesentlich besser aus.

Speichern alle Formate Animationen?

Nein! Es sind sogar nur recht wenige die Animationen bieten. Außerdem gibt es Modeller die Animationen nicht in einer Datei sondern in vielen Einzeldateien speichern. Allerdings heißt das nicht, dass nur die Modelle aus teuren Modellern Animationen (vernünftig) speichern können. Es gibt auch freie und günstige Software (Milkshape 3D), die so etwas kann.

Welche Modellformate gibt es?

Hier eine kleine Auflistung der gebräuchlichsten Formate:

  • .blend (Blender)
  • .collada (Collada)
  • .3ds (3D Studio)
  • .obj (Wavefront OBJ)
  • .lwo (Lightwave)
  • .ms3d (Milkshape 3D)
  • .bsp (ID Software BSP)
  • .md3 (ID Software MD3)
  • .x (Microsoft DirectX)
  • .off (Object File Format)

Wozu gibt es Exporter Plugins und Scripte?

Für 3D Entwicker ist es wichtig, die erstellten Meshdaten auch in ein vorhandenes oder eigenes Format zu speichern. Hierzu gibt es von den meisten 3D Editioren Plugins oder Scripte die dieses erledigen.

Einige Programme wie 3DS Max und Blender bieten beides, wobei in Fall von 3DS Max lieber Plugins verwendet werden sollten (Geschwindigkeitsvorteil). Blender bietet für Scripte einen Python Interpreter, der lediglich ein bisschen modifiziert wurde.

Mit der Möglichkeit, eigene Format zu speichern, kann man sich auch aus dem Lizensproblem für bestimmte Formate rauswinden und man hat die Möglichkeit das Format an benötigte Bedingungen anzupassen.

Format und Model Loader Liste

Format Format Features Loader
Cal3D
  • kombinieren von Animationen (30% gehen, 50% rennen, 20% stolzieren und Winken)
  • stufenloses Level of Detail
Name nutzbar mit Umgesetzte Features
Cal3D C++ alle Cal3D (0.10) Features
DCal3D Delphi / Object Pascal nur Cal3D 0.6 Features
3DS
  • Meshbasierendes 3D-Format
  • Vertexbasierende Animationen via Keyframes
  • Normalen werden indirekt über Smoothinggroups gesichert

Format stammt noch aus DOS-zeiten, daher diverse Einschränkungen :

  • Maximal 65k Vertices pro Mesh
  • Texturnamen sind auf 8.3 Dateinamen beschränkt
  • Bones werden nicht exportiert
  • Normalen werden nicht exportiert (nur Smoothinggroups)

Kein freies Format

Name nutzbar mit Umgesetzte Features
gl3ds Delphi / Object Pascal Unbekannt
lib3ds C/C++ Unbekannt
OFF
  • extrem einfaches 3D-Format
  • ASCII und Binär-Variante
  • nur Vertices, Normalen, Texturkoordinaten und Farben
  • nicht auf Dreiecke beschränkt, beliebige Polygone möglich.
  • nicht jeder Exporter (z.B. Blender) kann das vollständige Format!
Da das Format so einfach ist ist ein Loader schnell implementiert:

Formatbeschreibung.