Layered COLLADA Loader für OpenGL3.1 + Context

8

Welche Schichten würden bei der effizienten Umsetzung helfen? Vorzugsweise so, dass ich in der Lage bin, diese drei unten aufgelisteten Komponenten mit den frühen Schichten zu verbinden und den Rest so zu codieren, wie ich gehe.

Ich schreibe eine COLLADA-Ladebibliothek für meine Grafik-Engine. Natürlich merke ich sofort, dass es sich um eine ziemlich große Aufgabe handelt. Ich beabsichtige jetzt, die Bibliothek zu schreiben, um verschiedene Ebenen zu verwenden.

Ich verstehe nicht noch COLLADA. Ich nehme an, es könnte sein:

  • Geometrieebene
  • Shader-Ebene
  • Texure-Ebene

Auch wenn ich mir nicht sicher bin, muss ich vielleicht Teil eines anderen Layering-Schemas sein.

Randnotiz: Ich werde höchstwahrscheinlich irrXML oder dieses interessante XML-Bibliothek Ich lese gerade über hier , um die Dateien zu lesen, sofern nicht anders angegeben.

    
Garet Claborn 06.02.2011, 13:41
quelle

1 Antwort

15

Ist Ihnen Asset-Import-Bibliothek öffnen ( Ссылка ) bekannt? Es hat recht ordentliche Unterstützung für Collada Laden und Ziele in Grafik-Engines verwenden. Einen Collada-Loader selbst zu schreiben ist nicht nur schwierig, es braucht auch ewig, um ihn stabil genug für den produktiven Einsatz zu haben, hauptsächlich weil das Format furchtbar komplex ist (oder der Hauptautor von Assimp's Collada Loader scherzhaft: ) fast turing-komplett ) und jeder Exporteur hat seine eigenen seltsamen Gewohnheiten.

Wenn Sie zusätzliche Funktionen benötigen, können Sie Ihre Arbeit auf Assimps Collada Loader aufbauen und genau das hinzufügen, was Sie brauchen (BSD-Lizenz, Sie können es nehmen, solange Sie die Quelle zuordnen).

Hinweis: Ich bin mit dem Projekt verbunden und daher nicht unvoreingenommen. Aber nach den schrecklichen Erfahrungen, die wir gemacht haben, als wir unseren eigenen Collada Loader geschrieben haben, fühle ich mich, als müsste ich dich warnen ...

  

Randnotiz, werde ich höchstwahrscheinlich irrXML

verwenden

Wir benutzen es auch. Solltest du wirklich bei Null anfangen, tu das nicht . Verwenden Sie einen DOM-Parser wie TinyXML. Collada ist komplex, aber sehr gut definiert, ein SAX-Parser härtet nur die Arbeit aus, da Sie den Dokumentenbaum selbst erstellen müssen (und Sie werden eine Datenstruktur benötigen, die dem ganzen Dokument ähnelt). Collada-Elemente sind stark miteinander verbunden. Um etwas Sinnvolles aus ihnen zu lesen, müssen verschiedene Querverweise aufgelöst werden.

    
Alexander Gessler 18.02.2011, 12:11
quelle

Tags und Links