我想将我的纹理图像文件包含到我的 collada 文件中。现在我有很多文件:.dae 本身和 .png 纹理文件。
但是我只想要一个文件:.dae,但其中包含纹理。
我可以以某种方式将 .png 图像存储在 .dae 文件本身中吗?可能吗?先感谢您!
我想将我的纹理图像文件包含到我的 collada 文件中。现在我有很多文件:.dae 本身和 .png 纹理文件。
但是我只想要一个文件:.dae,但其中包含纹理。
我可以以某种方式将 .png 图像存储在 .dae 文件本身中吗?可能吗?先感谢您!
尽管前面的答案说了什么,但完全可以在 COLLADA 文件本身中嵌入图像。在<init_from>
元素下,您会发现您可以使用<ref>
元素指定文件名,或者,您可以指定<hex format="PNG">
在其下可以将图像数据指定为十六进制编码的二进制八位字节序列。但是,由于使用十六进制编码,这比将图像文件包含在 .zae 存档(实际上是具有不同扩展名和特殊元数据文件的 .zip 文件)中的存储效率要低一些。
我知道这个问题已经有几个月了,但我不得不更正以前的答案。
您不能在 .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