基本3D格式
BIM文件格式
CAD文件格式
GIS文件格式

dae文件

Collada Digital Asset Exchange(简称Collada或者dae)是一种基于XML的文件格式,用于在3D图形应用程序和相关工具之间交换数字资产,例如几何图形和材质。该格式由Khronos Group制定,并在2004年首次发布。Collada最初是为游戏开发过程中的资产交换而设计,并且很快就成为了其他3D应用程序之间的通用格式。

文件结构

Collada文件是由一系列元素和属性组成的XML文档。它具有以下三个基本部分:

  1. Asset:这个元素包含了文件的元数据,例如创作者、版权信息、单位标准等;
  2. Library:这个元素包含3D场景中所有的对象的定义,例如几何体、材质、动画、灯光等;
  3. Scene:这个元素定义了场景中的实例化对象的层次结构。

Collada文件中含有的对象的定义包括:

  1. 几何体(Geometries):3D空间中的物体形状,例如球、立方体和平面;
  2. 材质和贴图(Materials and Textures):定义了对象的颜色和表面纹理;
  3. 动画(Animations):定义了对象在时间上的变化,例如物体的旋转、平移和缩放;
  4. 物理特征(Physics properties):定义了对象的物理特性,例如物体的密度、弹性和自由落体;
  5. 灯光(Lights):场景中用于模拟光源的元素。

规范链接

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)进行导入和编辑。