What is a DAE file?
A DAE file is a Digital Asset Exchange file format that is used for exchanging data between interactive 3D applications. This file format is based on the COLLADA (COLLAborative Design Activity) XML schema which is an open standard XML schema for the exchange of digital assets among graphics software applications. It has been adopted by ISO as a publicly available specification, ISO/pAS 17506. DAE files can be opened in applications such as Adobe Photoshop, AutoDesk Maya, AutoDesk AutoCAD, and APIs such as Aspose.CAD.
DAE File Format
The DAE file format is based on the COLLADA XML schema where all the elements are defined as XML tags. It enables binding of diverse DCC and 3D processing tools into a production pipeline for 3D assets. It has comprehensive encoding of visual scenes including geometry, animation, shaders and physics. The format is open, archive-grade and retains meta information.
COLLADA Tags
The COLLADA schema tag is as shown below.
<?xml version="1.0"?>
<COLLADA
xmlns="http://www.collada.org/2005/11/COLLADASchema"
version="1.4.1"
>
...
</COLLADA>
Asset Tag
The asset tag describes the author and environment of the file
<asset>
<author>alorino</author>
<up_axis>Y_UP</up_axis>
</asset>
Camera Library
COLLADA assets are contained inside libraries. The camera library contains unsurprisingly, cameras. Common cameras are perspective or orthographic. The camera library tag is defined as follow.
<library_cameras>
<camera id="PerspCamera" name="PerspCamera">
<optics>
<technique_common>
<perspective>
<yfov>37.8493</yfov>
<aspect_ratio>1</aspect_ratio>
<znear>10</znear>
<zfar>1000</zfar>
</perspective>
</technique_common>
</optics>
</camera>
</library_cameras>
Lights
Common lights are point, spot or directional
<library_lights>
</light>
<light id="pointLightShape1-lib" name="pointLightShape1">
<technique_common>
<point>
<color>1 1 1 </color>
<constant_attenuation>1</constant_attenuation>
<linear_attenuation>0</linear_attenuation>
<quadratic_attenuation>0</quadratic_attenuation>
</point>
</technique_common>
</light>
</library_lights>
Materials Instance
The Materials instance effects are defined as follow.
<library_materials>
<material id="Blue" name="Blue">
<instance_effect url="#Blue-fx"/>
</material>
</library_materials>
Common Effects
Common effects act like the OpenGL 1 state and can be defined as follow.
<library_effects>
<effect id="Blue-fx">
<profile_COMMON>
<technique sid="common">
<phong>
<emission>
<color>0 0 0 1 </color>
</emission>
...
<index_of_refraction>
<float>0</float>
</index_of_refraction>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
Geometry Attributes
Geometry describes the OpenGL attributes and defined as follow.
<library_geometries>
<geometry id="box-lib" name="box">
<mesh>
<source id="box-lib-positions" name="position">
</source>
<source id="box-lib-normals" name="normal">
</source>
...
<vertices id="box-lib-vertices">
<input semantic="POSITION" source="#box-lib-positions"/>
</vertices>
<polylist count="6" material="BlueSG">
<input offset="0" semantic="VERTEX" source="#box-lib-vertices"/>
<input offset="1" semantic="NORMAL" source="#box-lib-normals"/>
<vcount>4 4 4 4 4 4 </vcount>
<p>0 0 2 1 3 2 1 3 0 4 1 5 5 6 4 7 ...</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
Visual Scenes
Visual scenes are like unity scenes and contain a hierarchy of nodes as follow.
<library_visual_scenes>
<visual_scene id="VisualSceneNode" name="untitled">
<node id="Camera" name="Camera">
</node>
...
</visual_scene>
</library_visual_scenes>