{{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).