Bridge SOP

From TouchDesigner 088 Wiki

Summary

The Bridge SOP is useful for skinning trimmed surfaces, holes, creating highly controllable joins between arms and body, branches or tube intersections.

The Bridge SOP is similar to the Skin SOP but with much greater control over the resulting surface. Given a set of profiles (i.e. curves on surface) and/or spatial faces, the Bridge SOP builds a NURBS skin with specified tangent and curvature characteristics. The precision of the resulting surface is highly dependent on the number of required cross-sections and on the quality of the profile extraction. High precisions will generate a very dense surface with, potentially, many multiple knots.

In general, the higher the order of the curve, the better the fit the Bridge SOP will be able to provide. However, it is generally better to stick to cubics (order 4) curves, as the software is optimized for cubics.

Because the Bridge SOP can join both a set of spatial curves and trim curves, it can be used much like the Skin SOP and/or the Fillet SOP. However, bridging trimmed surfaces is more expensive than bridging carved surfaces.

You will usually need a Trim, Bridge, or Profile SOP after a Project SOP.

  • Use a Trim SOP to cut a hole in the projected surface
  • Use a Bridge SOPto skin the profile curve to another profile curve.
  • Use a Profile SOP to extract the curve on surface or remap it's position.

Note: To texture-map the resulting skin, use an Orthographic projection rather than a Spline-based projection. This results in better continuity across the surfaces.

PythonIcon.png bridgeSOP_Class

Parameters

Group - The Group edit field allows you to enter profile groups for profiles and/or faces to bridge. This is optional if you have regular geometric curves or surfaces, however, you must enter something here in order for Bridge to work with profile curves. For example *.0 will Bridge the 0th (first) profiles of all incoming primitives.

Note: Always specify the curves on surface if you want the Bridge SOP bridge curves on surfaces; otherwise it will attempt to bridge free-floating curves.

Bridge - Allows bridging of subgroups of N primitives or patterns of primitives.

N /inc - Determines the pattern of primitives to bridge using this SOP.

Order /order - Sets the spline order for both profile extraction and skinning operations.

Parameters - Surface Properties Page

Min. X-sections /isodivs - The minimum number of cross-sections in the resulting skin. If you create a high-density surface, TouchDesigner's level of detail may display the surface less smoothly than it actually is. You can increase the level of detail by adjusting the viewdisplay options (e.g. viewdisplay -l 1.5 SOPmain.persp1 ) for the Viewport.

Production Tip: If, in generating a smooth surface, you create an extremely complex surface, some of the complexity can be removed without damaging the appearance of the surface by appending a Refine SOP, and using its Unrefine option. In the Refine SOP, set the First U parameter to zero and, in the Unrefine option's parameters, set the U value close to the order of the surface created in the Bridge SOP.

Use - Specifies the type of normal to use for computing direction:

  • Frenet Frame - The Frenet Frame of the face. This option uses a local coordinate system on the curve to compute the direction.
  • Normal - The Normal of the face.

Circular Arc Fillets - Tells TouchDesigner to try to generate a round fillet rather than a free-form fillet. Only the sign (positive or negative) of the tangent scales is used; the scale magnitude is ignored when building a circular fillet.

The radius of the fillet is computed automatically and adjusted according to the distance between the rails (curves and/or profiles) and their tangents.

Rotate / Scale Tangents /rotatet1-3 /scalet1-3 - The scaling and rotation parameters contain three fields:

  • the first field applies to the first face in the input.
  • the second field applies to all intermediate faces.
  • the third field applies to the last face in the input.

The rotation fields (degrees) apply further rotation to the tangents, while the scale parameter further scales the tangents.

Use Curvature - Takes curvature into consideration as well.

Scale Curvatures /scalec1-3 - Further scaling of the curvature.

Note: If the resulting skin bulges too greatly, you can achieve a smooth resulting transition between surfaces by disabling the Preserve Tangent & Preserve Curvature Magnitude parameters, and manually tweaking the Tangent Scales and the Curvature Scales. In general, avoid tweaking the Rotations of the Tangents unless you wish to deform the resulting surface.

If the bridge bulges on one side but not the other, try increasing the Min. Number of Cross sections in the bridge.

Parameters - Profile Extraction Page

This page's parameters are similar to those found in the Fit and Project SOPs

Divisions Per Span /sdivs - Number of 2-D points evaluated in each span.

Tolerance /tolerance - Precision of 2-D fitting algorithm.

Preserve Sharp Corners - Enables or disables fitting of sharp turns. If cracks appear in the resulting skin, Preserve Sharp Corners is usually a good solution; however, it may add additional knots which can create undesirable "ripples" in some cases.

If this option is disabled, fewer isoparms are generated and the surface may not follow the contours of the profile curves perfectly unless the profile curves were built using the Preserve Sharp Corners option.

Example

Joining Two Trim (Profile) Curves

  1. Place a Circle SOP. Primitive Type: NURBS; Radius = 0.2, 0.2
  2. Place a Grid SOP. Primitive Type: NURBS.
  3. Feed both the Circle and Grid SOPs into a Project SOP. Make it the display SOP. You notice the projected circle on the grid - our trim curve.
  4. Append a Trim SOP and make it the display SOP. Turn on Gouraud shading for the Viewport - you now see the trimmed holes in the surface of the grid.
  5. Append a Copy SOP. Number of Copies: 2; Translation Z: 1.0; Rotation X: 30. Make it the display SOP. Now we have two grids with trimmed holes in them.
  6. Append a Bridge SOP, and make it the display SOP. Scale Tangents: 0, 0, 0; Use Curvature: On; Preserve Curvature Magnitudes: Off; Scale Curvatures: 3, 3, 3 . Nothing happens. Why?
  7. We need to specify which profile curves to skin. Turn on Profile Numbers in the Viewport options (click M at the bottom-right of Viewport, and enable the icon). We can see the profile numbers of the two trim curves are 0.0 and 1.0 - meaning the 0th profile of the 0th primitive and the 0th profile of the 1st primitive). The strange numbering is because primitive numbers start at 0 instead of 1.
  8. In the Bridge SOP's Group field enter: .0 - this means to include the 0th (first) curve from all (the * wildcard character) primitives in the skin. You now see the resulting bridge between the two trim curves. The skin bulges outwards.
  9. We can control the bulge by playing with the Scale Curvatures and the Tangent Magnitudes. Set the Scale Curvatures to: -3, -3, -3 . Now we have an inward-bulging tube connecting the two holes.
    BridgeSOPExample.gif

  10. Experiment with moving the location and size of the holes (change the Translation and Radius in the Circle SOP). The Bridge SOP dynamically updates the geometry connecting the two surfaces. Setting the Scale Curvature to: 0, 0, 0 produces a straight-through connection between the two holes.

See Also