Sweep SOP

From TouchDesigner 088 Wiki

15 SweepSOP.jpg


The Sweep SOP sweeps primitives in the Cross-section input along Backbone Source primitive(s), creating ribbon and tube-like shapes. The cross-section primitives are placed at each point of the backbone perpendicular to it. The Backbone Source can have one or several primitives. If there is more than one, Sweep will sweep the cross section along each one.

A backbone is a primitive curve that can be open or closed, but must have at least two points. The cross section input can also have multiple primitives, and can be assigned to the backbone in various ways. The origin of the cross section primitive is placed at a point on the backbone by default, but you can also choose a point number of the cross section to place. In most cases, it is best to build the cross section primitives in the XY plane; Sweep will automatically orient them properly along the backbone. If the backbone primitive(s) have point colors or texture coordinates, they will be maintained and applied to the cross section primitives.

PythonIcon.png sweepSOP_Class

Parameters - Sweep Page

X-Section / Path / Reference Group /xgrp /pathgrp /refgrp - You can use only a subset of primitives from the Cross-section, Backbone, and Reference inputs by specifying a group here.

Cycle Type /cycle

  • All Primitives at Each Point - Places all the primitives from the Cross-section input at each point on the Backbone.
  • One Primitive at a Time - Similar to the above, except the transformation is applied to individual primitives rather than to the whole.
  • Cycle Primitives - This cycles through incoming primitives when placing them on a backbone. i.e. Start with 0 at vertex 0, primitive 1 > vertex 1, etc.

Angle Fix /angle - Attempts to fix buckling twists that may occur when sweeping.

Fix Flipping /noflip - Attempts to fix buckling twists that may occur when sweeping by fixing flipped normals.

Remove Coincident Points on Path /skipcoin - When selected, any points right on top of one another will be ignored.

Aim at Reference Points /aimatref - Reference Points are used in conjunction with the backbone to control the orientation of the elements along the sweep. This is done by drawing a line between the reference point and corresponding backbone point in order to determine an angle vector which determines the orientation of the cross-section profiles. Enable this parameter to allow this behaviour.

Note: In order for this to work, you must supply Reference Points via the third input, and there must be exactly the same number of Reference Points as there are points in the Backbone.

Use Vertex /usevtx - Use vertex number of the incoming cross-section to place the cross-section on the backbone.

Connection Vertex /vertex - Specify a specific vertex to connect to the backbone.

Scale /scale - Scales the cross sections globally.

Twist /twist - Cumulative rotation of the cross sections around the backbone. If a value of five is specified, the cross section at the first point of the backbone is rotated five degrees, the next ten degrees, the next fifteen degrees and so on.

Roll /roll - Non-cumulative rotation of the cross sections around the backbone. All cross sections get the same rotation.

Note: The Scale, Twist and Roll parameters can now be controlled directly by points' attributes of the same names. Thus, combined with the Channel SOP, those parameters can now be controlled dynamically. You can use scale and other attributes coming in to taper.

Parameters - Output Page

Create Groups /newg - Selecting this option enables the creation of groups. A group is created for each backbone that is incoming. This allows for easy skinning in the Skin SOP.

Sweep Groups /sweepgrp - Specify the name of your output groups in this field.

Skin Output /skin

  • On / Off - Skins / doesn't skin the output.
  • On with Auto Close - Closes the skinned mesh if the path curve which it follows is also closed. This allows you to close primitives properly.

Tip: There is a way of speeding the skinning of many points using the second input of the Point SOP. Suppose you have Thousands of proceedurally animated curves you wish to skin with the Sweep SOP - rather than performing a skining operation after the animation, make a second set of unanimated geometry that is preskinned. Then assuming your have a matching number of points you can just swap in the animated points into the skinned geometry.

This technique is significantly faster than using the Skin Output option of the Sweep SOP, or a Skin SOP following the Sweep SOP.

Fast Sweep /fast - Enables an optimized skinning technique which speeds up output from 2 - 4 times in many cases at the expense of accuracy. In order for it to work correctly, the input topologies must remain consistent between cooks and each cross-section must have the same number of vertices.


Input 1 - The Cross-section Input 2 - The Backbone Path Input 3 - Reference Points

Local Variables

$PT - The current vertex number.
$NPT - The number of points per detail.
$PATH - The path primitive number.
$PCT - Percentage along the backbone path.

See Also