Khronos public bugtracker – Bug 424
Last modified: 2014-01-07 10:23:13 PST
The role of the type attribute of a param within an accessor is very unclear in the specification. I suspect this is why the param's are entirely ignored by OpenCOLLADA (which is clearly a bug).
"The type attribute of the <param> element, when it is a child of
the <accessor> element, is restricted to the set of array types:
int, float, Name, bool, IDREF, and SIDREF. See main entry"
It says restricted to the "array" types. However the array type is defined with the array and not the param. It is unclear from this whether data is flushed in units based on the type of the array or type of the param. As an example OpenCOLLADA currently exports matrices in the controller section as a single param, per matrix, of type float4x4. If this is wrong and it is indeed in units of the type defined with the array, such as float_array, then what exactly is the purpose of the type passed with the param and why is it labeled as "required" (even when within the accessor)? Can I set the param type to anything?
<param name="something" type="somethingelse"> ? if it has to be one of the array types can I then use a float_array but set the param type="SIDREF" since this
is one of the array types? If on the other hand I am forced to make it "float" just like the float_array indicates then why exactly is the param type "required" at all? If it serves no purpose. It is my impression that OpenCOLLADA got it wrong and it is indeed the type defined with the array, ie. float_array, that defines units of extraction but this, as I have made clear, still makes the following unclear:
1. What is the role of the type on the param
2. What is the range of names I can set it to (anything?)?
3. Does it have any affect on how the source is flushed? If not why is it a required attribute of param (within an accessor).