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

Aktuelle Zeit: Mi Jul 09, 2025 01:50

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Plattformunabhängiger Modelloader
BeitragVerfasst: Do Okt 18, 2007 12:28 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
Hi,

ich brauche einen Modelloader, den man mit FreePascal benutzen kann, um die Linuxfreiheit nicht von vornherein einzuschränken. der WFObjLoader benutzt die glBitmap, welche wiederum die Windows.pas benutzt und scheinbar sind die Posermodelle zu groß für ihn (Zu wenig Arbeitsspeicher, das erste Mal, dass ich diese Meldung bekam). gl3Ds ist auch Windowsspezifisch und deshalb nicht ganz das, was ich suche (außerdem bekam ich schon gleich am Anfang Syntax-Fehler in der gl3Ds.pas). Gibt es für Poser geignete Loader (Lightwave, Wafefront OBJ, 3D Studio...) ? Ist Poser überhaupt geignet oder gibt es bessere Lösungen ? (ich habe schonmal mit 3Ds Max probiert einen Menschen zu erstellen, gnadenlos gescheitert)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 18, 2007 14:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Wenn du manuell die glBitmap aus der WFObjLoader.pas entfernst, besteht glaub ich kein Bezug mehr zur Windows.pas.
Ich habe es zwar noch nicht probiert, aber der Loader müsste dann auf Freepascal laufen...
Hier wurde das schon mal ähnlich diskutiert.
Evtl. hat Lord Horazont die glBitmap aus dem Loader entfernt. Kannst ihn ja mal fragen, dann brauchst du dir nicht die selbe Arbeit machen.
Texturen musst du dann aber über die Callbacks laden.

Nils hat geschrieben:
scheinbar sind die Posermodelle zu groß für ihn (Zu wenig Arbeitsspeicher, das erste Mal, dass ich diese Meldung bekam)

Wie groß sind denn die obj-Dateien? Ich habe auch mal ausprobiert, wie viele Vertices er verträgt... Da kamen unter anderem schon Dateigrößen von über 20MB vor 8) Von daher kann ich mir nicht wirklich vorstellen, dass der Arbeitsspeicher zu klein ist.
Hast du überhaupt die aktuellste Version? So eine Meldung haben wir aber auch mal bekommen, nur unter WinXP Home, aber mit der neuen Version sollte der Fehler eigentlich behoben sein.

Nils hat geschrieben:
Ist Poser überhaupt geeignet oder gibt es bessere Lösungen ?

Wenn er gescheit exportiert, warum nicht. Andere Lösungen? -> Blender :wink:

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 18, 2007 19:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
Das Modell ist ~15 MB groß. Ich habe die Version von deiner Seite.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 19, 2007 07:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Kannst es ja mal irgendwo hochladen (gepackt), dann kann ich mal schauen wo dran es liegt, oder liegen könnte :wink:
Welches Betriebssystem hast du denn?

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 19, 2007 11:05 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich hab die Tage mit meinen SceneGraph File Format begonnen, dieses arbeitet auf Streams,callbacks und viel mit Nodes.
So werden z.B. nur die Nodes geladen die im SceneGraph registriert sind und dann auch nur der Nodeheader und ned die Daten.
Anhand der IDs kann ein Node identifiziert und geladen werden. Man kann an NodeIDs ein Draw und Load Callback hängen, um z.B. komplexere und variable Daten im FileFormat zu lesen oder zu zeichnen. Das System kommt nur mit dem NodeTyp und darauf muss man selber seine Strukturen aufziehen. Ich nutze Blender zum exportieren der Daten und Cross ist die ganze Sache auch.
Die Sache wird allerdings erst ende des nächsten Monats released und bis dahin gibs nur snapshots aus dem svn repo von mir.
Hier ein Bild vom gestrigen Stand.
http://karmarama.developer-alliance.org/upload/SceneGraph8a.png (Bild hab ich unter Gentoo 64Bit mit gnome oberfläche(win2k theme) und Karmarama Engine gemacht)

// edit Lossy: Bild als Link

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Zuletzt geändert von TAK2004 am Mo Okt 22, 2007 23:41, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 19, 2007 17:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
@MatReno: Momentan bin ich unter Windows mit Delphi (Delphi7 ist imho meilenweit besser als Lazarus) und ansonsten unter Debian. Dürfte denke ich keine Probleme verursachen, da ich auch bei Delphi immer möglichst plattformunabhängig bleibe. Dank Komprimierung ist es mit 3,74MB recht klein geworden: Klick.
@TAK2004: Gut, aber ich habe keine Lust mir jeden Tag Kaffee zu kochen und mich dann auf die Uhr schauend vor den Computer zu setzen, bis es draußen ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 19, 2007 18:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
@TAK:
Wie siehts da mit der "ausreißbarkeit" aus? Muss man deine komplette Engine einbauen, um das Modelformat zu verwenden oder gibts das auch einzeln? Wäre nämlich echt super.
Und mach das Bild kleiner. Das macht mit 1024x768 keinen Spaß. :wink:

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Okt 20, 2007 21:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
@Nils:
Bei mir funzt das Laden des Objektes wunderbar (siehe Anhang). Innerhalb von ca 2 sek.
Ich nutze WinXP pro. Ich sage das deshalb, weil ich mit der home version, glaub ich, schon mal ähnlich Fehler bekommen habe.
Weiß jetzt aber auch nicht woran es liegen könnte... Ich nutze Turbo-Delphi2006.
Hast du es mal mit meinem Beispielprogramm versucht, oder mit einem selbst geschriebenen von dir?


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 22, 2007 18:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
Gut, dass du diesen Beitrag geschrieben hast. Jetzt wissen wir schonmal, was wirklich schief läuft.
Code:
  1.  
  2. Mesh := TWFObject.Create;
  3. Mesh.LoadFromFile('models/Girl.obj');
  4. Mesh.CreateDisplayList;
  5. Mesh.Render;
  6.  

Das ist mein Code. Siehst du hier schon einen Fehler ?

Nun aber mal was anderes (wichtiges): Speichert Poser die Texturen nur anders ab und dein Programm findet sie deshalb nicht oder wieso ist sie grau ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 22, 2007 18:52 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Nils hat geschrieben:
Das ist mein Code. Siehst du hier schon einen Fehler ?

Sollte eigentlich so stimmen...
Hast du die Möglichkeit dein Programm, dass das Objekt lädt, auf anderen Rechnern mit (möglichst) anderen Betriebssystemen laufen zu lassen (WinXP Pro/Home, 2k etc).
Hast du es schon mal mit meinem Beispielprogramm versucht zu laden?

Nils hat geschrieben:
Nun aber mal was anderes (wichtiges): Speichert Poser die Texturen nur anders ab und dein Programm findet sie deshalb nicht oder wieso ist sie grau ?

Das Grau ist das default-Material im WFObjLoader. Die Texturen waren ja gar nicht in der Datei, die du mir geschickt hast, dabei. Daher kann der Loader sie ja auch nicht finden.
Ich weiß jetzt auch nicht mehr, ob Material-Daten mit dabei waren, also ein mtl-Datei neben der Obj-Datei vorhanden war...
Denn da sollten dann Verweise auf die Texturen drin sein.

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 22, 2007 18:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
Ok, ich habe es mit deinem probiert und es funktioniert. Ich habe in der MTL solche Einträge und die Dateien im gleichen Verzeichnis, wieso bleibt es immernoch grau ?
Code:
  1.  
  2. newmtl Body
  3. Ns 30
  4. Ka 0 0 0
  5. Kd 1 1 1
  6. Ks 0 0 0
  7. map_Kd SydBodyTexNoGen.jpg
  8. newmtl Fingernails
  9. Ns 30
  10. Ka 0 0 0
  11. Kd 1 1 1
  12. Ks 0 0 0
  13. map_Kd SydBodyTexNoGen.jpg
  14. ...
  15.  


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 23, 2007 00:10 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Lord Horazont hat geschrieben:
@TAK:
Wie siehts da mit der "ausreißbarkeit" aus? Muss man deine komplette Engine einbauen, um das Modelformat zu verwenden oder gibts das auch einzeln? Wäre nämlich echt super.
Und mach das Bild kleiner. Das macht mit 1024x768 keinen Spaß. :wink:

Gruß Lord Horazont

Naja das ganze Karmarama brauchst du ned aber es wäre praktisch ^^.
Das Format ist ein Scenegraphformat und deswegen hab ich es auch direkt in meinen SceneGraph gebunden.

Um die Datei zu laden ist aber ned viel nötig. Nen Fileheader und dann kommen nur noch Nodeheader+Nodedata.
In den Nodeheadern stehen dann Hashes,IDs,offset zum nächsten Node und die Datengröße.
Wenn du also die file durchgehst und auf IDs triffst die du kennst, dann kannst du einfach die Daten vom node laden.
Die Daten kannst du z.B. in ein record speichern.

Ein TKar_Node, in meinem SceneGraph, kennt den Header und die Daten zum Node liegen als pointer vor.
Ich verwende momentan Records, die ich dann befülle aber ich überlege es in Klassen zu packen und den LoadData und Draw Callback mit zu binden.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 23, 2007 10:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Nils hat geschrieben:
Ich habe in der MTL solche Einträge und die Dateien im gleichen Verzeichnis, wieso bleibt es immernoch grau ?

Evtl. liegt es daran, dass in der Obj-Datei kein usemtl Body bzw. usemtl Fingernails unter dem entsprechenden Objekt (gekennzeichnet mit "o" oder "g") steht... Das müsstest du mal überprüfen.
Wenn du generell 2 verschiedene Materials (wie hier) verwenden willst, müssen es auch 2 objekte in der Obj-Datei sein.

Wenn das nicht hilft, dann lade mir nochmal alles hoch (mit Textur, Mtl-Datei), ich hoffe, das macht dann keine größeren Umstände ;)
Dann kann ich nochmal über alles drüberschaun, damit ich den Fehler besser finden kann.

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 23, 2007 18:33 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Okt 03, 2007 14:22
Beiträge: 388
Ok, ich habe es nicht hinbekommen, hier ist alles (~12,7MB): http://rapidshare.com/files/64646846/Girl.rar.html

Wieso funktioniert eigentlich das Laden des Modells bei meinem kleinem Codeabschnitt nicht ? Hast du das bei dir irgendwie anders gemacht oder sind gewisse Grundeinstellungen erforderlich ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Geschafft!
BeitragVerfasst: Mi Okt 24, 2007 22:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Hallo,
Es klappt! Nach ~1 Stunde rumprobieren habe ich die Fehelerquellen gefunden:
Code:
  1.     1. Obj-Datei: Suche nach "mtllib" -> Tabulator nach "mtllib" durch Leerzeichen ersetzen
  2.         - Tabulator zeichen werden nicht erkannt (-> Obj-Spezifikation)
  3.     2. Obj-Datei: Überall wo "usemtl" steht !!muss!! davor ein "o" oder "g" stehen.
  4.         - Grund: Jedes Child kann nur ein Material haben
  5.         - Bemerkung: Jedes "g" oder "o" muss einen anderen Namen haben
  6.     3. (optional) unnötige gruppen unter gruppen entfernen. Bsp.:
  7.         ...
  8.         g Body
  9.         g Body      <-- entfernen, spart Rechen-, Renderzeit
  10.         ...
  11.     4. Texturen: PowerOfTwo Texturen verwenden. D.h.: Große auf 1024x512, 1024x1024 beschränken
  12.         - am besten mit Gimp scalieren
  13.         - sollte 1024 nicht überschreiten
  14.     5. Texturen: Keine png-verwenden! -> als jpg, tga, oder bmp speichern!
  15.         - in der mtl-Datei muss man natürlich die png-Endung ersetzen!
  16.         - Mit Lossy's Loader ist es aber auch möglich png's zu laden
  17.           leider nur über eine zusätzliche dll. Müsstest das dann selber
  18.           in der glBitmap und im Loader anpassen.
  19.     6. Mtl-Datei: In der mtl haben manche Materials keine "map_Kd" gehabt (korrigiert!)


Es war zwar viel Arbeit, sich mit WordPad durch 15 Megabytes an Text zu quälen, aber ich denke
das Resultat ist doch nett anzusehen. Damit du das nicht auch nochmal machen musst, habe ich alles
zusammengepackt und wieder hochgeladen. LINK!
Das nächste mal musst du aber selbst obige Schritte durchführen, da sich der Poser-Exporter scheinbar nicht an die Obj-Spezifikation hält...

Außerdem habe ich ihr noch die Fingernägel geschnitten :mrgreen: (kleiner Scherz!)


Naja, im Großen und Ganzen funktioniert es nun!
Viel Spaß!

Gruß,
MatReno


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
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  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


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.009s | 14 Queries | GZIP : On ]