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

Aktuelle Zeit: Di Jul 15, 2025 14:37

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



Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: So Jul 06, 2003 12:58 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
Was ist der beste Weg um Objekte in OpenGL zu impotieren?
Gibt es brauchbare fertige Datei Formate mit denen man am besten gleich über Konverter 3DSMax Modelle laden kann?
Wie schwer ist es einen Exporter für 3DSMax zu Coden mit dem man sich vom Prinzip sein eigene Datei Format schafft?
Mir geht es nur um statische Objekte wie Häuser,Steine, etc...
Also nix Animiertes.
Wäre es dafür nicht eigentlich sinnvoll ein eigenes Format zu haben? Es ist ja effektiv nicht mehr als Koordinaten aller Punkte speichern und danach die Punkte zu Polygonen verbinden und mit ner Textur versehen. Vorteil davon ist das man natürlich die komplett Kontrolle hat. Man bräuchte dann halt nur einen Konverter um aus anderen 3D Programmen wie 3DSMax die Modelle zu exportieren...(das ist das woran ich scheitere... ;) )


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 06, 2003 14:38 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
An deiner Stelle würd ich mir einfach ne Import-Unit für ein bereits vorhandenes Dateiformat suchen.Da bieten sich entweder 3DS (für 3DMax-Modelle), MS3D (Milkshape) oder das etwas alllgemeinere ASE (ASCII-Scene-Exporter)-Format an.Für diese gibt es im Netz diverse Delphi-Importunits, und du musst dir nich noch erst ein eigenes Dateiformat entwickeln, zu dem du dann auch noch nen umständlichen (MAX-Script ist AFAIK recht komplex) Exporter schreiben müsstest.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 06, 2003 19:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
ich hab mir jetzt mal diese 3ds import libary gesaugt, die scheint so ziemlich jeder zu benutzen ;) . Aber irgendwie komme ich damit nicht zurecht. Das Demo Programm hat nen leicht gigantischen Quellcode und ich blick das nicht wirklich...
Kennt jemand irgendwelche einfachen Tutorials dafür? Oder nen einfachen Beispiel Code?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 06, 2003 20:01 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Schau mal in mein zweites Bombermantutorial.Da iss ne Unit drin, mit der man 3DS-Modelle ganz einfach in Delphi nutzen kann, die zwar auch auf der 3DS-Importlib basiert, allerdings sehr viel einfacher zu nutzen ist.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 06, 2003 20:04 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
werd ich machen,
das gibt mir schon wieder etwas mehr Hoffnung. Dieses 10k Zeilen Beispiel Programm ist recht derb für jemanden der nicht ganz so tief in der OpenGL Materie drin steckt ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 07, 2003 21:07 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
Das ganze funktionier jetzt endlich. Mit deiner Vereinfachten Import Unit ist das wirklich extrem leichter. Nur habe ich ein kleines Problem mit den Texturen. Wo werden den Polygonen die OpenGL Textur ID's zugewiesen?
Ich konnte nur eine Zeile mit Texturen finden und das ist die wo die Textur im Bomberman Textur Manager zugewiesen wird. Das hab ich einfach nur meinen Textur Manager ersetzt(funktionsweise ist ähnlich). Die Textur wird auch richtig geladen und die OpenGL Textur ID wird auch ordentlich erstellt. Nur irgendwie verarbeitet er sie nicht im Objekt...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 07, 2003 21:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich weiss...da ich in diesem Tut keine 3DS-Modelle mit Texturen verwendet habe, ist mir dies nicht aufgefallen.Such mal nach der Funktion Use3DSData, und ändere folgenden Quellcode :
<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>
<span class='reserved'>for</span> J := <span class='integer'>0</span> <span class='reserved'>to</span> FaceGroups.Count - <span class='integer'>1</span> <span class='reserved'>do</span>
<span class='reserved'>with</span> PFaceGroup(FaceGroups[J])^ <span class='reserved'>do</span>
<span class='reserved'>begin</span>
<span class='reserved'>with</span> PMaterial(MatList.Objects[TextureIndex])^ <span class='reserved'>do</span>
<span class='reserved'>begin</span>
glEnable(GL_CULL_FACE);
// Ab hier ändern um die Texturen zu nutzen
<span class='reserved'>if</span> Texture <> '' <span class='reserved'>then</span>
TextureManager.BindTexture(Texture)
<span class='reserved'>else</span>
<span class='reserved'>begin</span>
glDisable(GL_ALPHA_TEST);
glDisable(GL_TEXTURE_2D);
glColor3f(Diffuse[<span class='integer'>0</span>],Diffuse[<span class='integer'>1</span>],Diffuse[<span class='integer'>2</span>]);
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, @Diffuse);
<span class='reserved'>end</span>;
<span class='reserved'>end</span>;
glDrawElements(GL_TRIANGLES, IndexCount, GL_UNSIGNED_INT, Indices);
<span class='reserved'>end</span>;</pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 08, 2003 20:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
funktioniert :)

wird im 3ds Format die Textur Verzerrung mit gespeichert? Bei 3DSMax kann man das ja auch einfach machen. Bei OpenGL geht es ja auch einfach. Wird das im 3ds Format auch gespeichert/Wie kann ich es auslesen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 08, 2003 20:51 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wenn du mir sagst was unter "Texturverzerrung" gemeint ist, kann ich dir auch sagen obs ins 3DS-Format mitexportiert wird.Wenn du damit selbstmanipulierte Texturkoordinaten meinst, dann ja, die werden mitexportiert und vom 3DS-Loader natürlich auch interpretiert.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 08, 2003 21:05 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
argh, ich überleg die ganze Zeit wie das unter 3DSMax heißt...
aber selbstmanipulierte Texturkoordinaten trifft es glaub ich.
Halt das Texturen Verzerrt werden. so das sie z.B. in x richtung zwei mal angezeigt wird. So das man nicht für jede Seite eines Objekts ne extra angepaßte Textur nehmen muß weil es sonst total verzerrt ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 08, 2003 21:24 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
3DSMax macht in dem von dir verwendeten Fall (z.B. Texturen 2 mal in S-Richtung) auch nichts anderes, als die Texturkoordinaten des Meshs so anzupassen, das die Textur in dieser Richtung zweimal wiederholt wird.Und da die Texturkoordinaten natürlich nach 3DS exportiert werden, und der Loader sie auch interpretiert geht das definitiv...deinen Modellen sollte auf dem Weg in deine Delphi/OpenGL-Anwendung also nix im Weg stehen!

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 08, 2003 21:32 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
gut,
dann muß ich jetzt nur noch rausfinden wie das funktioniert :D ;)
wenn ich es nicht hinbekomme bin ich morgen Abend wieder da :D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 09, 2003 14:48 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
das ganze ist einfach ein 3DSMax Problem. Wie ich feststellen mußte reicht es nicht aus das ganze unter 3DSMax im Material Editor einzustellen. Das wird irgendwie total ignoriert. Das ganze funktioniert erst wenn ich jedem Element nen uvw Mod zuweise und es dort einstelle. Ist das normal?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 09, 2003 14:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ja, das ist so wie es ist schon "richtig".AFAIK werden diese Materialmanipulationen nicht nach 3DS exportiert.Allerdings ist das UVW-Mapping dieser Methode auf jeden Fall vorzuziehen und bietet auch weitaus mehr Flexibilität.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 09, 2003 14:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
dann muß ich mich mal etwas mehr damit beschäftiegen. Ich hab gestern Nacht ein wenig damit rum probiert hab damit aber irgendwie nicht wirklich was zu Stande bekommen. Gibts irgendwo Tutorials dafür?
bzw. wie kann ich es für Einzelne Polygone Zuweisen? Ich hab das gestern irgendwie immer nur fürs ganze Element hinbekommen. Aber das bringt ja nicht viel da man ja meistens unterschiedliche verzerrungen für einzelne Polygone braucht. Gibts irgendne möglichkeit das auf die einzelnen Material ID's anzuwenden?


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


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 7 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 | 15 Queries | GZIP : On ]