asset node

After reading the specificiation I have a few questions:

  1. I have read that a right-handed coordinate set is used. But the specification doesn’t clarify the direction of positive rotation about an axis.
    e.g. if I look down the x axis towards the origin and I want to perform a positive rotation about that axis, is the rotation clockwise or anti-clockwise?

  2. Maybe this is implied, but are the translation, rotation and scale attributes of a node relative to the parent node?

  3. If I was to generate a matrix from the translation, rotation and scale, and this is a local matrix should I pre or post multiply the matrix against it’s ancestors to get the correct world position?

  4. It appears that column vectors are used for positions etc. To transform a vector should I pre or post multiply?

  5. In the ‘asset’ node you can specify the ‘up-axis’.
    2a. I am assuming that this doesn’t change the handedness of the coordinates, but only the notion of what is up in the scene?

2b. If I have two scenes in two collada files. First scene uses ‘y-up’, and second scene uses ‘z-up’. An artist is using Maya with ‘y-up’ as their preference for working. They import the first scene and the orientation of the scene is correct.

Now they import the second scene. What should happen here?

I assume that the second scene will be transformed so that z is now mapped to y, but now there is a problem because there is no clarification in the specification about how the x and y components of the ‘z-up’ scene are mapped to the x and z components of the ‘y-up’ scene.

  1. The Maya exporter outputs ‘wrapU’,‘wrapV’,‘mirrorU’,‘mirrorV’ for the COMMON profile in a texture library member. Neither the specification nor the schema say what should be in these COMMON profiles. Any information about what each COMMON profile should/can contain?

  2. Similar to question 3. The Maya exporter outputs ‘DOUBLE_SIDED’ as a param in the mesh polygons. Should this kind of generic thing be put into a COMMON profile?

Any help on these is appreciated. Thanks! :slight_smile:

Saying that the coordinate system is right-handed means that positive rotations about an axis are anti-clockwise.

Yes the node transforms are hierarchical so they are “relative” to the parent. The node transforms define the local coordinate system for the node.

Yes it is a local matrix. You should post-multiply while accumulating the transform hierarchy.

Column vectors have to be post multiplied with a matrix. The number of columns of the first matrix have to equal the number of rows of the second matrix. So to multiply a 4x4 matrix against a 4x1 vector requires post multiplication.

Correct.

The importer should notice the difference in orientation of the data and re-orient it to conform to the orientation of the environment (Maya application in this case).

Those are bugs in the Maya plug-in. There is only one COMMON profile and that is documented in chapter 4 of the specification. The Profiles Working Group is designing a new system of profile specification and extensibility using XML Schema language (like the COLLADA schema itself) so that we can create machine readable profile specifications (schemata) and generate working code from them. This is how the COLLADA API works.

That is another bug in the Maya plug-in. The COMMON profile is closed to additions like that. Adding DOUBLE_SIDED to the COMMON profile is an open question.