8

哪些层将有助于有效地实现这一点?最好这样我就能够将下面列出的这三个组件与早期层一起使用,并在我进行时对其余部分进行编码。

我正在编写一个 COLLADA 加载库以与我的图形引擎一起使用。所以当然,一开始我就注意到这似乎是一项相当大的任务。我现在打算编写库以使用不同的层。

还不明白 COLLADA。我假设可能有:

  • 几何层
  • 着色器层
  • 纹理层

即使这些我不确定,也可能需要成为不同类型分层方案的一部分。

旁注,除非另有说明,否则我很可能会使用irrXML或我刚刚在此处阅读的这个有趣的 XML 库来读取文件。

4

1 回答 1

15

您知道Open Asset Import Library ( http://assimp.sourceforge.net/ ) 吗?它对 Collada 加载和图形引擎中的目标使用提供了相当不错的支持。自己编写一个 collada 加载器不仅很难,而且还需要很长时间才能使其足够稳定以进行生产使用,主要是因为格式非常复杂(或者,正如 Assimp 的 Collada 加载器的主要作者开玩笑说的那样:几乎图灵-完整),每个出口商都有自己的奇怪习惯。

如果您需要其他功能,您可以将您的工作基于 Assimp 的 Collada 加载程序并添加您需要的内容(BSD 许可证,只要您注明来源,您就可以使用它)。

注意:我与该项目有联系,因此不是公正的。但是在我们编写自己的 Collada 加载程序时经历了可怕的经历之后,我只是觉得不得不警告你……</p>

旁注,我很可能会使用 irrXML

我们也使用它。如果你真的从头开始,不要。使用 DOM 解析器,例如 TinyXML。Collada 很复杂,但定义非常明确,SAX 解析器只是加强了工作,因为您必须自己构建文档树(并且您*将**需要一个类似于完整文档的数据结构 - Collada 元素是高度互连的。要从中读取有意义的内容,需要解决各种交叉引用)。

于 2011-02-18T12:11:01.930 回答