# Primitive SOP

## Parameters - Transform Page

Source Group `/group` - If there are input groups, specifying a group name in this field will cause this SOP to act only upon the group specified. You can specify profile curves within the group by providing a profile pattern (e.g. *.3 specifies the fourth profile in all spline surfaces).

Tip: By specifying both a primitive and a profile here (example: 0 0.* ), you can affect a transformation of both the parent surface and a profile curve.

Template Group `/templateGrp` - A subset of template points to transform to.

Do Transformation `/doxform` - When checked, allows transformations to occur.

Rotate to Template `/dorot` - A template can be specified using the second input of the Primitive SOP. When set to On, this template can be used to transform each primitive to the location and orientation of the template point. This is similar to what the Copy SOP does except that the actual primitives are transformed, no copies made.

• Off - Don't rotate.
• On - The primitive gets rotated as if its normal was (0,0,1), and is meant to point the same direction as the template normal.
• Match Normals - Rotates the primitive so that its real normal lines up with the normal of the template point.

Transform Order `/xOrd` - Sets the overall transform order for the transformations. The transform order determines the order in which transformations take place. Depending on the order, you can achieve different results using the exact same values. Choose the appropriate order from the menu.

Rotate Order `/rOrd` - Sets the order of the rotations within the overall transform order.

Translate `/tx /ty /tz` - These three fields move the input geometry in the three axes. Profiles use tx and ty only.

Rotation `/rx /ry /rz` - These three fields rotate the Source geometry in the three axes. Profiles use rz only.

Scale `/sx /sy /sz` These three fields scale the Source geometry in the three axes. Profiles use sx and sy only.

Pivot `/px /py /pz` - The pivot point for the transformations. Profiles use px and py only.

Lookat Object `/lookat` - Selects the object the primitive should point towards. This performs the lookat in object space; if you need to a lookat in world space, use the lookat in the object's Transform page instead.

Tip: In order to get multiple sprites to always be perpendicular to the camera, feed them into a Primitive SOP and specify the camera as your Lookat Object. Then the sprites should always be perpendicular to the camera.

Up Vector `/upvectorx /upvectory /upvectorz` - Defines the orientation of the primitive along the X, Y, or Z axes.

The Up Vector determines how a primitive orients itself with respect to the target object (specified in Lookat Object). The default value is of 1 in the Y direction. This will produce nice behaviour if you want the object to rotate somewhat in the Z axis as the Lookat Object gets very close and/or passes the target. Scaling the Up Vector will cause the Lookat primitives to remain more upright as they get very close and/or pass the target. The stronger the Up Vector, the more the primitives will want to stay vertical and resist the rotation.