I have an animation that is using euler angles for rotation. Would it be possible to generate a single source array that is accessed by three different samplers in three different ways so I can channel three different outputs to three transform elements?
Example:
<animation id="animation_1">
<source id="euler_input">
<float_array id="euler_input_array" count="4">0 3 4 5</float_array>
<technique_common>
<accessor count="4" source="#euler_input_array">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="euler_interpolation">
<Name_array id="euler_interpolation_array" count="4">LINEAR LINEAR LINEAR LINEAR</Name_array>
<technique_common>
<accessor count="4" source="#euler_interpolation_array">
<param name="INTERPOLATION" type="name"/>
</accessor>
</technique_common>
</source>
<source id="euler_output">
<float_array id="euler_output_array" count="12">0 0 0 0 0 0 -1.5708 0 0 -1.5708 0 0</float_array>
</source>
<source id="euler_output_X">
<technique_common>
<accessor count="4" source="#euler_output_array" stride="3">
<param name="ANGLE" type="float"/>
<param type="float"/>
<param type="float"/>
</accessor>
</technique_common>
</source>
<source id="euler_output_Y">
<technique_common>
<accessor count="4" source="#euler_output_array" stride="3">
<param type="float"/>
<param name="ANGLE" type="float"/>
<param type="float"/>
</accessor>
</technique_common>
</source>
<source id="euler_output_Z">
<technique_common>
<accessor count="4" source="#euler_output_array" stride="3">
<param type="float"/>
<param type="float"/>
<param name="ANGLE" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="euler_sampler_X">
<input semantic="INPUT" source="#euler_input"/>
<input semantic="OUTPUT" source="#euler_output_X"/>
<input semantic="INTERPOLATION" source="#euler_interpolation"/>
</sampler>
<sampler id="euler_sampler_Y">
<input semantic="INPUT" source="#euler_input"/>
<input semantic="OUTPUT" source="#euler_output_Y"/>
<input semantic="INTERPOLATION" source="#euler_interpolation"/>
</sampler>
<sampler id="euler_sampler_Z">
<input semantic="INPUT" source="#euler_input"/>
<input semantic="OUTPUT" source="#euler_output_Z"/>
<input semantic="INTERPOLATION" source="#euler_interpolation"/>
</sampler>
<channel source="#euler_sampler_X" target="AnimatedNode/rotateX.ANGLE"/>
<channel source="#euler_sampler_Y" target="AnimatedNode/rotateY.ANGLE"/>
<channel source="#euler_sampler_Z" target="AnimatedNode/rotateZ.ANGLE"/>
</animation>
The coherency test fails with the following error (three times):
CHECK_count Failed: expected=0, result=0
(type=source,id=euler_output_X)
accessor_stride >= accessor_size but array_count != accessor_count * accessor_size
I fail to understand what this message is trying to tell me.
According to the spec an accessor may access an external array source with interleaved data. What am I doing wrong?