您是否了解 Open Asset Import Library(http://assimp.sourceforge.net/)? 它对Collada加载具有相当不错的支持,并针对图形引擎的使用。自己编写Collada加载器不仅难度大,而且需要很长时间才能使其稳定到足以生产使用的程度,主要是因为该格式非常复杂(或者正如Assimp的Collada加载器的主要作者开玩笑地说:几乎是图灵完备的),并且每个导出程序都有自己奇怪的习惯。
如果您需要其他功能,则可以基于Assimp的Collada加载器构建并只添加所需内容(BSD许可证,只要您归属来源即可)。
注意:我与该项目有关联,因此不具备中立性。但在撰写我们自己的Collada加载器遭遇了可怕的经历后,我只是想警告您……
顺便提一下,我将很可能使用irrXML
我们也在使用它。如果您真的要从头开始,请不要这样做。使用DOM解析器,例如TinyXML。 Collada虽然复杂,但非常明确定义,SAX解析器只会使工作更加困难,因为您必须自己构建文档树(而且您需要一个数据结构来表示完整的文档 - Collada元素高度相互关联。要从中读取有意义的信息,需要解决各种交叉引用)。
noboost
。如果您使用 C++ 接口并为每个线程创建和使用一个 Importer 实例,那么一切都会很好。没有线程问题(我不确定文档中是否明确说明了这一点,但请放心,它在未来的版本中也不会改变)。 - Alexander Gessler