Maya
Freeze Transforms


return to main index



Introduction

To successfully use archive RIB files, also known as pre-baked RIB's, with the RenderMan statements,

ReadArchive
and
DelayedReadArchive

it is essential to know the true size and true location of an object before it is "exported" as an archive RIB file from Maya or Houdini. The following notes assume you are working in Maya. First of all its very important to be aware that terminology that has meaning within Maya may have almost no meaning outside of Maya. Because an archive file, in effect, "exports" geometry from Maya to a non-Maya environment ie. RenderMan, we must ensure a Maya model or object is properly prepared prior to archiving with the mtor plugin.


Freeze Transforms

The move, rotate and scale tools support other illusions - that an object can be directly manipulated with the mouse. What is, infact, being manipulated is the coordinate system within which the surface or surfaces that comprise the object are defined. The "raw" geometry of the surfaces themselves remain totally uneffected by the move, rotate and scale tools.

The freeze-transform command either adds or multiplies the XYZ data, such as polygon and nurbs control vertices, by the translation, rotation and scale values (ie. transformations) stored in the transformation node of a surface.


maya_before_freeze
Figure 1


Figure 1 shows a 1 x 1 (gray) polygon translated 1 unit up the Y axis - confirmed by its translateY attribute. Either the mtor or Rfm Pro plugin can be used to generate a RIB file.


maya_after_freeze
Figure 2


The Freeze Transforms command was applied to the polygon - figure 2. Nothing appears to have happened to the polygon but the translateY attribute has returned to zero.

Carefully comparing the XYZ vertex data of the polygon before and after freezing transforms shows that the translation on the Y axis has modified the Y components of the vertices.


Before Freeze Transforms


AttributeBegin 
    Attribute "identifier" "name" ["|pPlane1|pPlaneShape1"]
    ConcatTransform [1 0 0 0     
                     0 1 0 0 
                     0 0 1 0 
                     0 1 0 1]
    ShadingInterpolation "smooth"
    Color [0.5 0.5 0.5]
    Opacity [1 1 1]
    PointsGeneralPolygons [1] [4] [2 3 1 0] 
                    "P" [-0.5 0 0.5   0.5 0 0.5   
                         -0.5 0 -0.5  0.5 0 -0.5] 
AttributeEnd



After Freeze Transforms


AttributeBegin 
    Attribute "identifier" "name" ["|pPlane1|pPlaneShape1"]
    ConcatTransform [1 0 0 0     
                     0 1 0 0 
                     0 0 1 0 
                     0 0 0 1]
    ShadingInterpolation "smooth"
    Color [0.5 0.5 0.5]
    Opacity [1 1 1]
    PointsGeneralPolygons [1] [4] [2 3 1 0] 
                    "P" [-0.5 1 0.5   0.5 1 0.5   
                         -0.5 1 -0.5  0.5 1 -0.5] 
AttributeEnd


The text of the RIB files have been formatted for easier reading. You may not have seen the ConcatTransform command before. It consists of 16 values representing a transformation matrix. The following matrix

   ConcatTransform  [1 0 0 0     
                     0 1 0 0 
                     0 0 1 0 
                     0 1 0 1]

is equivalent to,

    Translate 0 1 0

Think of "Freeze Transforms" as Apply Transforms.







© 2002- Malcolm Kesson. All rights reserved.