# Meshes

Advanced settings for generating the Waterfall Meshes.

### Buttons

* **Generate Meshes**: Generate the dynamic mesh and material data for the waterfall.
* **Clear Selected Mesh**: Clear the dynamic mesh and material data for the selected mesh only.
* **Clear Meshes**: Clear all of the dynamic mesh and material data.

### Properties

* Mesh Selection
  * **Selected Mesh**: The mesh to generate/modify.
* Generation Settings
  * **Caching Substeps**: Maximum number of caching operations on a path per tick to spread the work out across multiple ticks.
  * Advanced
    * **Generate Mesh for Paths in Range**: Limit the mesh generation to specific paths only.
    * **Path Range**: Limit the mesh generation to specific paths only.
    * **Force Include Hits**: {No Description}
    * **Force Include Hits Threshold**: {No Description}
* Mesh Settings
  * **Segment Length**: How long each segment on the path should be.
  * **Max Segments**: The maximum number of segments each path should have.
  * **Sample Path**: Limit the spline sample between distance 0:1.
* Singular Mesh Settings
  * **EXPERIMENTAL: Sort Points**: Whether to try sorting points in the singular mesh so that overlapping paths don't generate weird geo. *Note: This feature is not perfect yet and doesn't always work in 100% of test cases.*
  * **Subdivide**: Whether to subdivide the singular mesh or just use the path data for vertex generation.
  * **Subdivisions**: The number of subdivisions applied to the singular mesh for vertex generation.
  * **Subdivision Spline Interpolation**: How points are interpolated between two paths.
  * Advanced
    * **Additional Geo**: Applies additional geometry to each side of the waterfall past the start and end of the Top Spline.
    * **Additional Geo Curve**: Applies additional geometry to each side of the waterfall past the start and end of the Top Spline.
    * **Additional Geo Spread Curve**: Applies additional geometry to each side of the waterfall past the start and end of the Top Spline.
* Per Path Settings
  * **Width**: Width of an individual path's mesh.
  * **Subdivisions**: The subdivisions to use for the individual path meshes.
  * Advanced
    * **Width Curve**: Width of an individual path's mesh.
    * **Spline Roll**: How much the first two vertices can roll to match the Top Spline's slope (otherwise flattened in the Z-axis).
* Plane Mesh Settings
  * **Width**: Width of an individual path's mesh.
  * **Subdivisions**: The subdivisions to use for the individual path meshes.
  * **Offset**: -1:1 Offset applied to the vertices along the path's normal.
  * **Align Normal**: Forces the Cross mesh's normals to point towards the path's normal (overrides both OverrideNormal and CylinderNormal).
  * Advanced
    * **Width Curve**: Width of an individual path's mesh.
    * **Offset Curve**: -1:1 Offset applied to the vertices along the path's normal.
    * **Spline Roll**: How much the first two vertices can roll to match the Top Spline's slope (otherwise flattened in the Z-axis).
* Splash Mesh Settings
  * **Subdivisions**: The subdivisions to use for the individual splash meshes.
  * **Front Radius**: The radius of the front part of the generated splash mesh.
  * **Back Radius**: The radius of the back part of the generated splash mesh.
  * **Radius Subdivision**: The subdivisions to use for the generated splash path (circumferance).
  * **Scale**: Simple scale of the generated splash meshes.
  * **Segments**: How many segments to make between the last point of the path and the outer circumference of the splash mesh.
  * Advanced
    * **Distance Falloff**: Distribution of vertices along the distance.
    * **UV Falloff**: How UV0 is distributed between the path point and the circumference.
* Positions
  * **Smoothing Iterations**: Number of times the post-processing smoothing will be applied to cached waterfall positions.
  * **Position Smoothing Per Axis**: How much smoothing to apply in each iteration.
  * Mesh Trace
    * **Mesh Trace Alpha**: 0:1 for how much the mesh should be projected.
    * **Mesh Trace Distance**: Maximum distance for a vertex to trace for nearby obstacle checks.
    * **Mesh Trace Offset**: How far a vertex is offset from a surface if the trace returns true (uses hit normal).
    * **Mesh Trace Projection**: Whether the vertices should be placed at the end of the obstacle traces regardless of whether it hit ot not.
    * **Mesh Trace Mode**: {No Description}
* Normals
  * **Auto Compute Normals**: The geometry scripting can auto compute the normals, discarding all the normals that were computed manually. Note: normals will still be calculated for tangent and position calculations, they'll just be discarded at the very end when the actual mesh is generated.
  * **Flip Normals**: Whether to flip the normals on the generated dynamic meshes.
  * **Mesh Normal Offset**: Offset to add to the generated dynamic mesh normals.
  * **Smooth Normals Iteration**: How many smoothing iterations should be performed on the dynamic mesh normals.
  * **Smooth Normals Alpha**: Percentage of smoothed normals to apply to the normals of the dynamic meshes.
  * **Cylinder Normal**: Treat the normals in a curve like a cylinder.
  * Advanced
    * **Mesh Normal Offset Curve**: Offset to add to the generated dynamic mesh normals.
    * **Cylinder Normal Curve**: Treat the normals in a curve like a cylinder.
    * **Override Normal**: The alpha for how much the Override Normal Direction should be applied.
    * **Override Normal Direction**: The direction of the overwritten normals.
    * **Force Water Normal Dist Z**: The alpha of how much to force the normals towards (0, 0, 1).
* Tangents
  * **Smooth Tangents Iteration**: How many smoothing iterations should be performed on the dynamic mesh tangents.
  * **Smooth Tangents Alpha**: Percentage of smoothed tangents to apply to the tangents of the dynamic meshes.
* UVs
  * **Base UVs Scale**: The scale of the UVs of the generated dynamic meshes.
* Turbulence
  * **Turbulence Includes Splash**: Include the kill (splash) impact in the turbulance calculation for the last points in the paths.
  * **Turbulence Range**: Remaps the hit force to a 0:1 range in order to then convert it to turbulence.
  * **Turbulence Obstacle Weight**: How much obstacle collision calculations affect turbulence.
  * **Turbulence Flow Weight**: How much flow calculations affect turbulence.
  * **Turbulence Spread Up Stream**: ow far turbulence is added upstream.
  * **Turbulence Spread Down Stream**: How far turbulence is added downstream.
  * **Turbulence Falloff**: How far turbulence is added downstream.
* Bulge
  * **Bulge**: Additional bulge to add to the dynamic mesh. Bulge is used for Per Path, Plane, and Splash Meshes.
  * **Flatten First Row Bulge**: If Bulge Curve == nullptr, whether to apply the bulge to the first row of vertices or to flatten them to conform with the top spline.
  * Advanced
    * **Bulge Curve**: Additional bulge to add to the dynamic mesh.
    * **Bulge Profile Curve**: Additional bulge to add to the dynamic mesh.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.shadersource.io/assets-and-plugins/waterfall-tool-2/how-to-use/waterfall-tool-2-editor-mode/advanced-tab/meshes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
