Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 12, 2025 00:25

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 31 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: 3d Model Format Vergleich
BeitragVerfasst: So Sep 13, 2009 14:45 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Hi,
im Rahmen des anderen Posts stoße ich im Internet immer wieder auf sehr widersprüchliche Meinungen darüber, welches Format gut/schlecht ist, sich wofür eignet, veraltet ist usw.

Ich habe momentan ein paar Formate im Auge:
Milkshape .ms3d
3dStudio .3ds
Blender .blender

Ausserdem habe ich einen Exporter für .blender zu .xml gefunden.

Ich würde gerne wissen, welche Formate ihr nutzt, wie ihr die obigen bewertet und welche Gründe euch dazu bewogen haben, das Format zu wählen, das ihr gewählt habt.

.ms3d: Milkshape ist nicht Freeware und über die Verwendbarkeit des Formats weiss ich bisher auch nichts (Lizenzrechtlich)
.3ds: wird als vollkommen veraltet bezeichnet, beschränkt in der Verwendung, ausserdem bin ich mir auch hier bisher nicht über die Lizenz im Klaren
.blender: habe ich noch keine Spezifikationen gefunden, auf deren Basis is einen Importer hätte schreiben können. Ansonsten ist es Freeware, und scheint ziemlich viel zu unterstützen.


Wie sieht das bei euch aus`?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 13, 2009 22:13 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
ah fileformats, there are lots of them and none offer all that you want.

I started out with .3ds (gl3ds now glModel). For no reason actualy but for its name and having an 3d editor that could export that.
Next i made a sidestep to milkshape ascii becuase i could edit the fileformat by hand if not to complicated mesh is used and most important for me it allowed bone animation.
Something i never got around to is to apply a milkshape ascii to a .3ds file. Still on my todolist to make an editor for that. That would give good meshes, actualy mesh support is not that good in milkshape ascii.
Next i discovered google sketchup and after working with that i want no other 3d editor anymore. So along came a .obj exporter for sketchup and loading support for my now called glModel unit.
Here on the forums i discovered that directx also has a nice 3d format both for meshes and 3d animation, but it is not as easy to parse as i would like.

But as you already did have a browse here on the forum on fileformats there has been a lot of discussion on it. But it in the end you should go with the format that works best for you and your engine and 3d editor.
For me that is now Google Sketchup and .obj and still milkshape ascii for bone animation.

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 13, 2009 22:23 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
In the meantime i made quite a lot of research about various formats...

On the one hand the directX format offers a lot, but on the other hand i found out, that textures and shaders all need to be generated by DirectX (however that does work) and therefore you are very bound. I doubt this format is so easy to be implemented in an opengl app..

I also had a look on .obj but i didn't really went through it. I now use the Collada format, which is an xml format.
I think it's great, it offers wide range of possibilities, from boneanimation, over different effects and so on
But the two best things in my opinion are the very detailed documentation (over 300 pages) and the xml style. Actually you do not really need the documentation, once you've got such a file, it is nearly selfexplaining.

And blender offers an exporter for collada too

My importer didnt take me much time to write. It now supports basic functions (vertices, normals, colors, uvmapping)

I'll continue with that one i guess


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 06:44 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Zitat:
I'll continue with that one i guess

Na, dann wünsch ich Dir viel Glück. Vorher solltest Du aber das hier: http://www.delphigl.com/forum/viewtopic.php?t=8619 lesen, damit Du nicht sagen kannst, ich hätte Dich nicht gewarnt.

Was dort vielleicht nicht steht: Der Blender Collada Exporter hat einen Fehler irgendwo bei den Bones drin und wird seit 2006 (?) nicht mehr weiterentwickelt.

Viele Grüße
Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 09:16 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Ich fass es nich, gibs denn nichts vernünftiges :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 09:48 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Also stehen wieder neue Formate im Raum..
.x und .obj sehe ich mir gerade an. Und ich habe beschlossen, solange keine Loader für irgendwas zu schreiben, bis ich mich wirklich entschieden habe.. Ich habe hier jetz 3 rudimentäre Loader (milkshape, 3ds, collada) und habe zum glück in keinen bisher sonderlich viel zeit investiert, aber trotzdem...

Also Sascha hat sich in einem anderen Thread für .x ausgesprochen. Wenn ich das vollumfänglich in ogl nutzen kann, wär es durchaus interessant, aber ich habe hier eine PDF rumliegen, in der bemängelt wird, dass Texturen und Shader in dem Format immer mit DirectX erzeugt werden müssen..

Dann noch das .obj Format, darüber bin ich gerade noch am Lesen

Beide sind zumindest durch die Ascii version lesbar und das ist mir wichtig. Xml ist nicht zwingend notwendig aber nur Binary wär mir zu wenig...

Was habt ihr bisher für Erfahrungen mit den Formaten gesammelt?

(Ich würde ja vorschlagen, mal eine Umfrage zu starten, wer welche 3DFormate verwendet, aber es wird wohl herauskommen, dass die Mehrzahl was eigenes nutzt ^^, und wär das in Blender mit Python nicht so .. eigenartig, würd ichs wohl auhc machen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 10:09 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
OBJ hat leider den Nachteil das du immer ein extra File für die Bones/Animations benötigst und je nach Komplexität des Models es auch in mehrere Teilmodels zerlegen musst. Ich kann mir jedenfalls bei besten Willen nicht vorstellen, dass man mit OBJ ein riesiges komplexes und geriggtes Model verwalten kann.

Für statische Objekte finde ich OBJ aber sehr gut zu nutzen :)

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 10:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Kleine randfrage:
Hat irgendwer zufällig ein hübhsches *.x modell rumfliegen, am besten mit bone-animationen etc..?

Bräucht mal eins für testzwecke.. :)

@Thread:
OBJ ist für statische objekte durchaus brauchbar... allerdings alles was darüber hinausgeht würde ich mir einfach ein eigenes format entwickeln.. da hast du dann alles so wie du es brauchst und gut ist ^^ Ist aufjedenfall unaufwändiger als alle anderen Formate auf biegen und brechen so hinzudrehen das sie zur eigenen Engine passen.

Aya


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 11:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Hi,
kannst dir ja mal Restlessansehen (basiert auf obj). Man kann ja auch nur das File-Format nutzen und dir nen eigenen Loader schreiben. Nachteil: Nur ein Exporter für Blender, allerdings kann Blender ja vieles importieren.

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 11:42 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Aya hat geschrieben:

OBJ ist für statische objekte durchaus brauchbar... allerdings alles was darüber hinausgeht würde ich mir einfach ein eigenes format entwickeln.. da hast du dann alles so wie du es brauchst und gut ist ^^ Ist aufjedenfall unaufwändiger als alle anderen Formate auf biegen und brechen so hinzudrehen das sie zur eigenen Engine passen.

Aya


Das hab ich mir ja auch schon gedacht. Allerdings hab ich derzeit Blender als "Entwicklungsumgebung" für 3d Objekte und ich glaube nicht, dass es mir gelingen wird, in Python einen exporter zu schreiben...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 11:52 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Beim Restless ist ein Blender Exporter schon dabei - upps hat MatReno schon geschrieben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 12:18 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Okay so kommt also Restless auch mit ins Spiel. Das Format ist lesbar, das ist schonmal gut :) und wenn wir hier den Entwickler in unseren Reihen haben, ist das auch ein Vorteil ;)
ich hab mir die Specs angesehen und frage mich, warum faces manchmal durch g und manchmal durch f definiert werden. Bei mir steht in der Datei etwas ala
Code:
  1.  
  2. o Suzanne
  3. mtl ~defmtl
  4. g 60 64 48 f


und laut der Specs:
Code:
  1.  
  2. v [x] [y] [z] ([bone_id] [weight])*
  3. o [object_name]
  4. mtl [material_name]
  5. uv [u] [v]
  6. [f or g] ([vertex_id]/[uv_id])3 [s or f]
  7. (op [data_type] [property_name]
  8. opval [data])*


Wann ist es denn nun f und wann g und wofür steht g?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 12:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Beides sind Face-Definitionen.
Also wenn ein 'f' steht, dann hat das face vertex und uv coordinaten, bei einem 'g' nur die vertex coordinaten.
Hat etwas mit dem Einlesen der Datei zu tun. Das spart etwas Zeit.

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 12:37 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Okay also sieht ein Face entweder:
Code:
  1. g 341 347 383 f
aus, wenn es kein uv mapping hat oder
Code:
  1. g 341 347 383 f 1 2
wenn es uv mapping hat?

seh ich das richtig, dass keine normalen gespeichert werden?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 14, 2009 12:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Ja, die Normalen werden per Laufzeit berechnet. Bei Modellen ohne Animation natürlich nur einmal nach dem Laden.
Bei Animationen nur, wenn nötig. Weitere Informationen dazu stehen im pdf NormalCalcuation.

//Edit: Es sieht dann so aus:
Mit UV Koordinaten:
Code:
  1. f 12/23 13/24 14/25 f
flat face
Code:
  1. f 12/23 13/24 14/25 s
smooth face


Ohne UV Koordinaten:
Code:
  1. g 12 13 14 f
flat face
Code:
  1. g 12 13 14 s
smooth face

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 31 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.014s | 16 Queries | GZIP : On ]