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

Aktuelle Zeit: Di Jul 15, 2025 20:31

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



Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Darstellungsprobleme mit *.3ds
BeitragVerfasst: Di Feb 26, 2008 13:07 
Offline
DGL Member

Registriert: Mo Aug 15, 2005 19:29
Beiträge: 38
Hallo,
nachdem ich mich umentschieden habe doch ein 3D-Spiel, anstatt ein 2D-Spiel, zu machen, kamen die nächsten Schwierigkeiten auf: "Mist, ich kann kein 3d Studio Max". Ok, nachdem ich nach gut 2 Stunden logisch denken und rumprobieren endlich ein Haus hingekriegt habe, wollte ich das voller Motivation in meine OpenGL-Anwendung einbinden (vorher als *.3ds exportiert). Gesagt - getan, mit GL3ds.
Nun folgendes Problem: Teilweise fehlen in OpenGL Wände, Texturen oder Texturen sind einfach verdreht. Unter 3d Studio Max sieht alles aus, wie es sein soll.
Ich werde Screenshots anhängen, damit ihr besser sehen könnt, was ich meine - hoffe ihr könnt helfen.


So sieht's in 3d Studio Max aus.
Ok, Bild ist sehr undeutlich. So sieht's dann in der Anwendung aus. Wenn man drauf achtet sieht man die Tür und das Fenster. Obendrüber das 'verdrehte' Schild. Rechts daneben die fehlende Wand.

Hab gestern abend schon viel hier im Forum gesucht, aber nur erfahren, dass 3ds kein gutes Format sei, da es nicht Open-Source ist. Aber hab keine Alternative dazu gefunden (nur irgendwie erst in Blender laden, dann mit Milkshape exportieren, bla. Ist mir alles zuviel). Gibts keine alternative, die mit 3d Studio Max auch 1a funktioniert? Irgendein andres Format, das 3ds Max exportieren kann? Will hier nicht 5 verschiedene Modell-Softwares installieren...


Gruß Spessi



ps: falls nötig würde ich die *.max Datei hochladen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 14:23 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Das sieht verdächtig danach aus, dass deine Projektion nicht richtig gesetzt ist. Hast du die Projektionsmatrix mit glPerspective initialisiert? (Siehe Tutorial Lektion 2 und Tutorial Lektion 3). Der Screenshot kommt mir so vor, als hättest du eine Orthogonale Projektion aufgesetzt.

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: Di Feb 26, 2008 14:31 
Offline
DGL Member

Registriert: Mo Aug 15, 2005 19:29
Beiträge: 38
Habe das OpenGL 1.5 Template aus dem Downloadbereich... Orthogonal wird da nur der Text oben links ausgegeben.

Hier mein Code:

Code:
  1. procedure TGLForm.ApplicationEventsIdle(Sender: TObject; var Done: Boolean);
  2. begin
  3. // In die Projektionsmatrix wechseln
  4. glMatrixMode(GL_PROJECTION);
  5. // Identitätsmatrix laden
  6. glLoadIdentity;
  7. // Viewport an Clientareal des Fensters anpassen
  8. glViewPort(0, 0, ClientWidth, ClientHeight);
  9. // Perspective, FOV und Tiefenreichweite setzen
  10. gluPerspective(60, ClientWidth/ClientHeight, 1, 128);
  11.  
  12. // In die Modelansichtsmatrix wechseln
  13. glMatrixMode(GL_MODELVIEW);
  14. // Identitätsmatrix laden
  15. glLoadIdentity;
  16. // Farb- und Tiefenpuffer löschen
  17. glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  18.  
  19. glpushmatrix();
  20.  gltranslatef(-10.0,0.0, -20.0);
  21.  glrotatef(-90.0,0.0,0.0,1.0);
  22.  glrotatef(90.0,0.0,1.0,0.0);
  23.  glrotatef(180.0,1.0,0.0,0.0);
  24.  house1.Render;
  25. glpopmatrix();


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 15:13 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 07, 2006 13:37
Beiträge: 83
Wohnort: Partenheim
Da muss ich doch einfach mal wieder ein bisschen Werbung machen (tut mir leid, noeska :twisted: ).
Wenn 3dSMax *.obj exportieren kann, versuch's mal mit dem Loader von MatReno und mir.

An dieser Stelle weise ich auch gerade nochmal darauf hin, dass nun auch die Entwicklung am Restless-Projekt weitergeht (ein Animations-Loader mit eigenem Python-Exporter für Blender).

Conan

_________________
THE TRUTH IS NOT OUT THERE!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 15:25 
Offline
DGL Member

Registriert: Mo Aug 15, 2005 19:29
Beiträge: 38
Hey ho.
Habe jetzt deinen Loader genutzt, bekomme aber beim Ausführen gleich nen Fehler.
*klick*

Code:
  1. // Load 3ds meshes
  2. house1:= TWFObject.Create;
  3. house1.LoadFromFile('data\models\house1.obj');


So sieht mein in der OnCreate-Prozedur aus. (Die Datei existiert, ja :wink: )


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 15:42 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 07, 2006 13:37
Beiträge: 83
Wohnort: Partenheim
Also entweder stehen in deiner obj-Datei alle Gleitkommawerte mit einem "," statt einem ".", was noch leicht zu beheben wäre, oder unser obj-Format ist inkompatibel zu 3dSMax, das täte mir leid.

Du könntest dich natürlich auch mit Blender anfreunden, das wirst du nicht bereuen.

Conan

_________________
THE TRUTH IS NOT OUT THERE!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 15:47 
Offline
DGL Member

Registriert: Mo Aug 15, 2005 19:29
Beiträge: 38
Kann ich dir mein Obj-File mal zeigen?
Ich lads mal hoch


Edit: Blender wollte ich eigentlich nicht benutzen, da ich mich jetzt mit 3ds Max eingearbeitet habe und auch überall gelesen habe, dass das das einfachste sei.


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 16:01 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 07, 2006 13:37
Beiträge: 83
Wohnort: Partenheim
Okay, der Fehler ist leicht behoben. Wundert mich sehr, aber 3dSMax setzt hinter die Tokens "v", "vt" und "vn" zwei statt einem Leerzeichen.
Ich hab' ein kleines Programm geschrieben, mit dem du das leicht beheben kannst. Hab's mal angehängt. Du ziehst einfach die Datei auf die .exe und ersetzt "v " durch "v", "vt " durch "vt" und "vn " durch "vn". Damit sollte es schon funktionieren. Entsprechendes bei der .mtl-Datei, wenn dort auch zwei statt einem Leerzeichen zwischen Bezeichner und Werten vorkommen.

Conan


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

_________________
THE TRUTH IS NOT OUT THERE!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 16:29 
Offline
DGL Member

Registriert: Mo Aug 15, 2005 19:29
Beiträge: 38
Dankeschön. Das Laden funktioniert schonmal. Allerdings weist mein Modell weder die Öffnungen für die Tür / Fenster auf (oder man sieht sie einfach nicht?) noch zeigt er Texturen an. Hab die Texturen im gleichen Verzeichnis, in dem die .obj-Datei ist. Ist das richtig?



Edit: Hab eben ne *.mtl-Datei exportiert, weil du das vorhin auch erwähnt hattest, und die doppelten Leerzeichen entfernt. Hab die Datei dann genauso wie die *.obj-Datei genannt und ins gleiche Verzeichnis gepackt. Immernoch keine Texturen :( (In deinem Viewer übrigens auch nicht). Müssen die Texturen in den gleichen Ordner wie die obj-Datei?

Gruß


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 16:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 07, 2006 13:37
Beiträge: 83
Wohnort: Partenheim
Ich dachte schon, aber setz' vorsichtshalber die Properties "MTLFolder" und "TextureFolder" und zwar vor "LoadFromFile".
Die Texturen kannst du aber auch selbst laden und mit den Callbacks "OnLoadTexture : OnLoadTextureCallback" und "OnBindTexture : OnBindTextureCallback" linken und binden. Das macht die Struktur in großen Projekten übersichtlicher.

Conan

_________________
THE TRUTH IS NOT OUT THERE!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 18:07 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
can you upload the .3ds version with textures. i wil give them a go later this week.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 18:32 
Offline
DGL Member

Registriert: Mo Aug 15, 2005 19:29
Beiträge: 38
Ja, aktuelle Version ist angehängt.
Ich benutze 3d Studio Max 8. Wäre schon, wenn das relativ schnell gehn würde (zumindest einen Workaround), denn langsam ist das ganz schön demotivierend :(

Kann es daran liegen, dass ich die gegenüberliegende Wände gecloned habe?


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 19:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Wenn du auch mal das komplette exportierte Obj mit Mtl-Datei und Texturen hochladen würdest,
könnte ich mal schauen, woran es bei unserem Loader liegt. Vllt bekomme ich es ja noch hin :wink:

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 19:38 
Offline
DGL Member

Registriert: Mo Aug 15, 2005 19:29
Beiträge: 38
Habe mich da mit Conan schon unterhalten. Aber gerne lade ich dir die Dateien auch hoch, irgendwie muss das ja endlich gehn :(
Er meinte, dass das Problem an 3d Studio Max selber liegt, dass dort irgendwie die Texturen nicht zugewiesen werden. Aber vielleicht kennst du dich ja mit 3ds Max und man könnte das Problem gleich an der Wurzel beheben?

Naja, mach dir ein eigenes Bild - im Anhang die Dateien.


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 26, 2008 20:46 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
Ok, there is a bug in the reading and or using of texture coordinates. It is on my todo list.
Are the meshes you use for walls doublesided? I think they are singlesided and thus only one side can be shown.
Cloning should be ok as 3ds max should make extra meshes, as long as you do not mirror things it should work.

After the release of a new openal unit i realy should finish the rewrite of gl3ds.

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


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 14 Queries | GZIP : On ]