{{description>Easy spline extrusion: procedural generation of spline mesh with Curvy Splines, a powerful Unity spline tool.}} ====== Shape Extrusion ====== This component is used in example scene(s) such as: 21_CGExtrusion, 23_CGTube, 25_CGExtrusionAdvanced. Extrudes a [[..:datatypes#Shape|Shape]] along a [[..:datatypes#Path|Path]] to produce a [[..:datatypes#Volume|Volume]]. This is the core module for procedural mesh generation in the Curvy Generator. ===== Slots ===== ==== Inputs ==== ^ Name ^ Type ^ Description ^ | Path | [[..:datatypes#Path|Path]] | The path to extrude along | | Shape | [[..:datatypes#Shape|Shape]] | The cross-section shape to extrude | ==== Outputs ==== ^ Name ^ Type ^ Description ^ | Volume | [[..:datatypes#Volume|Volume]] | The resulting extruded volume | | Volume (Hollow) | [[..:datatypes#Volume|Volume]] | (Optional) An inner volume, for creating hollow shapes like tubes | ===== Settings ===== ==== Path ==== Controls how the path is sampled during extrusion. === Range === Defines which portion of the path to extrude. For closed paths, //From// repeats endlessly; for open paths it is clamped. === Resolution === Controls how many segments are created along the path. Higher values produce a smoother result. === Optimize === When enabled, segments are placed based on the path's curvature rather than at a fixed distance. Fewer segments are used on straight sections, more on curves. === Angle Threshold === //(Optimize only)// The curvature angle at which a new segment is inserted. ==== Cross ==== Controls how the cross-section shape is sampled during extrusion.

=== Range === Defines which portion of the shape to use as the cross-section. For closed shapes, //From// repeats endlessly; for open shapes it is clamped. === Resolution === Controls how many vertices are created around the cross-section. Higher values produce a smoother profile. === Optimize === When enabled, vertices are placed based on the shape's curvature rather than at a fixed distance. === Angle Threshold === //(Optimize only)// The curvature angle at which a new vertex is inserted. === Include CPs === When enabled, a vertex is guaranteed at every control point of the cross-section shape. === Shift === Defines the starting point of the cross-section relative to the extruded volume. * **None** - the shape's own start point is used * **By Orientation** - the start is shifted to the collision point of the path's orientation with the shape * **Custom** - the start is shifted by a user-defined value === Reverse Normal === Flips the normals of the generated volume (does not affect the Hollow output). ==== Scale ==== Controls how the cross-section is scaled along the path. Useful for tapering or swelling effects. === Mode === * **Simple** - scale by a single value * **Advanced** - scale using curves === Reference === * **Self** - scale is applied over the path's active range * **Source** - scale is applied over the path's total length === Uniform Scaling === When enabled, applies the same scale to both X and Y axes of the cross-section. === Scale === The base scale value applied to the cross-section vertices. === Offset === //(Advanced mode only)// Scale starts at this offset along the path. === Multiplier === //(Advanced mode only)// A curve multiplying the base scale value. * **X axis** - [[documentation:glossary#relative_distance|Relative Distance]] (0 = start, 1 = end) * **Y axis** - scale multiplier ==== Hollow ==== Generates a second, smaller volume inside the main volume simultaneously. The value defines how much the inner volume is shrunk as a percentage. Most useful for creating tubes or pipes. === Reverse Normal === Flips the normals of the hollow volume (does not affect the main Volume output).