hello
currently i’m coding a COLLADA exporter, which exports some 3d-models, which are animated using 3d-vector translation and quaternion rotation
as i’ve figured out, the code will look like this:
<library_animations>
<animation id="animation">
<source id="timing">
<float-array id="timing_array" count="2">
0.0 1.0
</float-array>
<technique_common>
<accessor source="#timing_array" count="2" stride="1">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="transformations">
<float_array id="transformations_array" count="32">
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2
</float_array>
<technique_common>
<accessor source="#transformations_array" count="2" stride="16">
<param name="(0)(0)" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="interpolations">
<Name_array id="interpolations_array" count="2">LINEAR LINEAR</Name_array>
<technique_common>
<accessor source="#interpolations_array" count="2" stride="1">
<param name="INTERPOLATION" type="Name"/>
</accessor>
</technique_common>
</source>
<sampler id="sampler">
<input semantic="INPUT" source="#timing"/>
<input semantic="OUTPUT" source="#transformations"/>
<input semantic="INTERPOLATION" source="#interpolations"/>
</sampler>
<channel source="#sampler" target="#3d-object-node/transformation"/>
</animation>
</library_animations>
// scene
<library_visual_scenes>
<visual_scene id="scene" name="scene">
<node id="3d-object-node" name="3d-object-node" type="NODE">
<matrix sid="transformation">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<instance_geometry> ... </instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
// also here i’ve omitted interpolation, intangents and outtangents - what do they mean? can anybody explain me?
so i can output animation transformations as OpenGL matrices
but what if what i’m aiming for is to separate translation from quaternion rotation in the output file?
can i specify not 16D “float4x4” but some types for 3D translation vector and 4D quaternion?