Многоуровневый загрузчик COLLADA для контекста OpenGL3.1 + - PullRequest
8 голосов
/ 06 февраля 2011

Какие слои помогут в реализации этого эффективно? Желательно, чтобы я мог перечислить эти три компонента, перечисленные ниже, с ранними уровнями и кодировать остальные по мере продвижения.

Я пишу библиотеку загрузки COLLADA для использования с моим графическим движком. Поэтому, конечно, как только я начал, я заметил, что это довольно большая задача. Теперь я намереваюсь написать библиотеку для использования разных слоев.

Я не , но все же понимаю COLLADA. Я предполагаю, что может быть:

  • Геометрический слой
  • Слой шейдера
  • Texure Layer

Даже те, в которых я не уверен, возможно, должны быть частью другого типа многоуровневой схемы.

Примечание: я, скорее всего, буду использовать irrXML или эту интересную библиотеку XML Я только что прочитал о здесь для чтения файлов, если не указано иное.

1 Ответ

15 голосов
/ 18 февраля 2011

Знаете ли вы, что Открытая библиотека импорта активов (http://assimp.sourceforge.net/)?) имеет вполне приличную поддержку загрузки Collada и использования целей в графических движках. Написание собственного загрузчика collada не только сложноКроме того, требуются годы, чтобы сделать его достаточно стабильным для продуктивного использования, в основном из-за того, что формат ужасно сложный (или, как в шутку сказал основной автор загрузчика Assimp Collada: почти полный тьюринг ) и каждый экспортеримеет свои странные привычки.

Если вам нужны дополнительные функции, вы можете основывать свою работу на загрузчике Assimp Collada и добавлять только то, что вам нужно (лицензия BSD, вы можете брать ее столько, сколько нужно, чтобы указать источник).

Примечание: Я связан с проектом и поэтому не беспристрастен. Но после того ужасного опыта, который мы испытали при написании нашего собственного загрузчика Collada, мне просто хочется предупредить вас ...

Примечание: я, скорее всего, буду использовать irrXML

Мы тоже его используем. Если вы действительно пометите звездут с нуля, не .Используйте DOM-парсер, такой как TinyXML.Collada сложен, но очень четко определен, парсер SAX просто ужесточает работу, так как вам нужно построить дерево документа самостоятельно (а вам * понадобится ** структура данных, чтобы она напоминала полный документ - элементы Collada сильно взаимосвязаны.Чтобы прочесть что-то значимое из них, необходимо разрешить различные перекрестные ссылки).

...