Indirection from <triangles>-input to vertex data

Hi there!
I was wondering why there’s an indirection from the <triangles>’ VERTEX-semantic input over <vertices> to the actual vertex data <source>. I see that indirection in blender’s collada exports as well as in the collada-reference. However there is no such indirection for the respective normals. Why are they handled differently and must I implement multiple loading strategies in my collada-importer for more possible indirection-cases?

Best regards,
Michael Steinberg

(On a sidenote, this forum’s spell checker doesn’t know the word ‘collada’, hehe)

This has been discussed before. It’s a constant point of confusion for people trying to learn Collada. IMO it was a poor design decision.

I won’t attempt to explain the reasoning behind the situation further, but you should be aware that in Collada the positions must must be referenced indirectly via a <vertices> element, while normal, tex coords, etc, can be referenced either from the primitive (i.e. <triangles>, <polygons>, etc) or from the <vertices> element along with the positions. Most people reference the non-position data from the primitive, but you should write your importer to handle both cases.