# 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.
