Collada Digital Asset Exchange(简称Collada或者dae)是一种基于XML的文件格式,用于在3D图形应用程序和相关工具之间交换数字资产,例如几何图形和材质。该格式由Khronos Group制定,并在2004年首次发布。Collada最初是为游戏开发过程中的资产交换而设计,并且很快就成为了其他3D应用程序之间的通用格式。
Collada文件是由一系列元素和属性组成的XML文档。它具有以下三个基本部分:
Collada文件中含有的对象的定义包括:
Collada格式的规范说明文档可以在以下链接中找到:https://www.khronos.org/collada/
以下是一个使用Collada文件格式的简单场景示例:
<?xml version="1.0" encoding="UTF-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>John Doe</author>
</contributor>
</asset>
<library_geometries>
<geometry id="cube">
<mesh>
<source id="positions">
<float_array id="positions_array" count="12">-0.5 -0.5 0.5 0.5 -0.5 0.5 -0.5 0.5 0.5 0.5 0.5 0.5</float_array>
<technique_common>
<accessor source="#positions_array" count="4" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="normals">
<float_array id="normals_array" count="18">0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1</float_array>
<technique_common>
<accessor source="#normals_array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="vertices">
<input semantic="POSITION" source="#positions"/>
</vertices>
<triangles count="2">
<input semantic="VERTEX" source="#vertices" offset="0"/>
<input semantic="NORMAL" source="#normals" offset="1"/>
<p>0 0 1 2 2 1 1 0 2 3 3 1</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="myScene">
<node>
<instance_geometry url="#cube"/>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#myScene"/>
</scene>
</COLLADA>
上述文件实现了一个简单的立方体场景,其中使用了几何体和材质。该文件可以使用Collada兼容的3D软件(例如Autodesk 3ds Max和Blender)进行导入和编辑。