Registriert: Di Aug 21, 2012 19:31 Beiträge: 173
Programmiersprache: C#
Moin!
Ich habe mir eine Klassenstruktur für Modelle angelegt die sich wie folgt zusammensetzt:
Dateianhang:
model.jpg
(Ignoriert die Inhalte der Klassen. nicht mehr 100% aktuell)
Das Problem das ich nun habe ist die Tatsache, dass ein Modell mehrere Texturen enthalten kann. Aus den VBOs kann ich zumahl ja schlicht alle vertices drinstecken nicht mehr sehen welche Textur ich gerade binden muss, bzw kann ich glaube ich (?) nur eine Textur binden wenn ich das VBO calle!
Ich hätte jetzt höchstens die Idee, die VBOs eine stufe tiefer zu behandeln als bisher! Also statt pro Model ein VBO anzulgen, ein VBO für jede FaceGroup (hier befinden sich nur Faces mit gleicher textur drin) anzulegen und dann alle VBOs zu zeichen, diezu einem Model gehören.
Gibt es dazu in OGL eine geschickte Lösung? Ist das der richtige Ansatz? Das wüsste ich gern bevor ich mir die Arbeit mache
Grüße
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
_________________ ack nack nack nack nack
Zuletzt geändert von nevermind10844 am Sa Dez 08, 2012 22:07, insgesamt 2-mal geändert.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Aeh, was?
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my 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
Registriert: Di Aug 21, 2012 19:31 Beiträge: 173
Programmiersprache: C#
Sorry für die Verwirrung:
Ich habe FaceGroups, die Triangles enthalten. Alle Triangles einer FaceGroup werden mit der Gleichen Textur gezeichnet. Ein Model besteht aus mehreren FaceGroups.
Wie lade ich meine Daten auf dieser Basis in die VBOs (Wie erhalte ich dabei die zuordnung der Textur zu den entsprechenden Triangles?)
Registriert: Sa Aug 18, 2007 18:47 Beiträge: 694 Wohnort: Köln
Programmiersprache: Java
Was heißt denn "mehrere" Texturen? Meinst du damit wirklich mehrere Texturen die verschiedene Bereiche des Modells unterschiedlich texturieren sollen oder bist du eher auf sowas wie Diffuse/Normal/Specular Map aus, die im Shader kombiniert werden sollen?
Generell würde ich es so angehen, solche Models aus mehreren Teil-Modelle zusammen zusetzen und diese dann gemeinsam in einer Baumstruktur unterzubringen. z.B:
So ist das sehr flexibel, jedem Teil-Modell kann ein Material zugewiesen werden. Außerdem kann jedes Teil-Modell noch relativ zu seinem übergeordnetem Objekt bewegt werden, was bei den FaceGroups etwas schwer werden würde.
_________________ Es werde Licht. glEnable(GL_LIGHTING); Und es ward Licht.
Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"
Registriert: Di Aug 21, 2012 19:31 Beiträge: 173
Programmiersprache: C#
Um bei deinem Beispiel zu bleiben:
Ich habe für die SubObjekte (Reifen, Karosserie, Fenster, ...) jeweils ein seperates VBO. Gibt es jetzt irgendwas, dass mir erlaubt diese VBOs geschikt anzuordnen und den Aufruf zu vereinfachen?
Im moment speichere ich alle VBOs sozusagen in Auto und laufe per schleife drüber wenn ich das auto zeichnen will.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Warum hast du denn separate VBOs dafür? Eigentlich will man da doch, sofern man nicht irgendein merkwüdriges Material hat, dass noch viele zusätzliche Vertexinformationen braucht, ein VBO für ein ganzes Modell und nutzt nur Index Buffer um die einzelnen Teile zu zeichnen. So mach ich es zumindest, und das erscheint mir auch sehr sinnvoll, da man so den Verwaltungsoverhead für viele VBOs einsparen kann.
grüße
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my 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
Mitglieder in diesem Forum: Google [Bot] und 31 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.