5

我想将我的纹理图像文件包含到我的 collada 文件中。现在我有很多文件:.dae 本身和 .png 纹理文件。

但是我只想要一个文件:.dae,但其中包含纹理。

我可以以某种方式将 .png 图像存储在 .dae 文件本身中吗?可能吗?先感谢您!

4

2 回答 2

22

尽管前面的答案说了什么,但完全可以在 COLLADA 文件本身中嵌入图像。在<init_from>元素下,您会发现您可以使用<ref>元素指定文件名,或者,您可以指定<hex format="PNG">在其下可以将图像数据指定为十六进制编码的二进制八位字节序列。但是,由于使用十六进制编码,这比将图像文件包含在 .zae 存档(实际上是具有不同扩展名和特殊元数据文件的 .zip 文件)中的存储效率要低一些。

我知道这个问题已经有几个月了,但我不得不更正以前的答案。

于 2013-04-25T23:00:01.793 回答
0

您不能在 .dae 文件中嵌入图像。这样做的方法是将它们放在一个 zip 文件中。COLLADA 文件中纹理的路径应该相对于存档中 .dae 文件的位置。

zip 文件有时会使用扩展名 .zae 重命名。COLLADA 1.5 规范在第 20 页正式定义了这些,在此重复以完成:

档案包装

在导入和导出时,DCC 工具必须支持 .zae 格式,这是一个或多个 .dae 文件(COLLADA 文档)和所有引用内容(纹理)的 zip 存档。存档必须包含一个名为 manifest.xml 的文件,这是一个包含<dae_root>元素的 XML 编码文件。此元素是指向 .dae 文件的相对 URI 的 UTF8 编码。如果 URI 包含一个片段,则指示的元素是应用程序加载 .zae 档案的起点。否则,该 <scene>元素将成为应用程序加载 .zae 档案的起点。如果这两个条件都不满足,则行为未定义。

根据 URI 标准,.zae 文件中的 URI 可以使用来自存档根目录的相对路径引用存档中的任何其他文件。

档案本身可能包括其他档案(zip、rar、kmz、zae)。引用嵌套存档中的文档的 URI(本身位于 .zae 存档中)将使用路径中嵌套存档的名称。

例如:

./internal_archive.zip/directory/document.dae#element 

无法使用相对 URI 引用存档之外的内容,但使用绝对 URI 引用内容是有效的,例如:

file:///other_directory/other_document.dae#element
于 2012-08-31T23:12:13.707 回答