Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

05.05.2013, 20:36

.OBJ Wavefront Modelle in OpenGL importieren

Hi Leute,
ich würde gerne Daten aus einer .OBJ Datei für OpenGL auslesen können(also Normals, Vertices, TexCoords). Nur würde ich gerne Indiziert rendern und leider kann man in OpenGL nur einen Indexbuffer erstellen. Also mach ich das, dass ich diese Daten trotzdem benutzen kann. Jemand ne Idee?

MfG
RenX

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

05.05.2013, 20:52

Was meinst Du mit "man kann nur einen Indexbuffer erstellen"?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

05.05.2013, 21:05

Zum Beispiel Texturkoordinaten. Da ja nicht jedes Vertex die selbe TexCoord hat, muss ich ja irgendwie einen zweiten Buffer erstellen können um diese Koordinaten dem Vertex zuweisen zu können. Das selbe ist mit den Normals. Ich weiß nicht wie ich des sonst erklären soll :D

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

05.05.2013, 21:22

Ich versteh's nicht. Wozu brauchst du da mehrere Index-Buffer und warum soll man nur einen erstellen können?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

05.05.2013, 21:31

Die Daten lassen sich nicht 1:1 abbilden. OpenGL/DirectX bieten nur die Möglichkeit Vertices zu indizieren und nicht einzelne Attribute/Attribut-Streams. Du musst quasi alles "mergen" und ggf die Indizierung komplett neu machen und mit Datenredundanz leben.
@D13_Dreinig

6

05.05.2013, 21:43

Gibt es vielleicht ein Dateiformat, das mir die Dateien so abbildet, dass sie auf OpenGL übernehmen kann; also dass ich nicht so viel zu schreiben hab? :D

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

05.05.2013, 21:45

Mal Assimp angeschaut? Das Ding kann doch so gut wie alles ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

8

05.05.2013, 21:46

Hab schon was davon gehört, aber noch nie so wirklich daran gedacht es zu benutzen. Weil ich wollte mit so wenig wie möglich Middleware auskommen. Aber ich denke ich werde mir des mal näher anschauen:D

9

05.05.2013, 22:19

Ist zwar schon wieder ein bisschen her das ich mich Aktiv damit beschäftigt habe, aber im Groben stimmt es das man nur ein Index 'übergeben' kann, während in einem Wavefront OBJ jeweil ein Index für Verticex,Tex-Coords und Normale ist.
Da bleibt Dir nichts anderes übrig (wie bei jeden andern Format auch) es entsprechend 'anzupassen'

Ich selbst habe die verschiedenen Daten in mehreren Listen gespeichert und dann eine entsprechende Liste Neu erstellt.

Eine glaube recht gute Erklärung gab es unter anderen auch hier: http://www.opengl-tutorial.org/intermedi…9-vbo-indexing/

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

10

05.05.2013, 22:59

Hatten wir das Thema nicht schonmal? Wo rauskam das obj fuer grosse Modelle nicht geeignet ist, weil man die Indizierung komplett neu bauen muss beim Laden? Finde den Link leider nicht mehr...

Werbeanzeige