Expand description
Built-in procedural grass blade (CEL-73): the default scatter mesh when a
CesScatterLayer has no mesh assigned. A tapered, quadratically-bent blade
with a dark→light-green vertex-colour gradient, so a dense field reads as
grass with zero committed assets.
The look follows the hexaquo “full-geometry grass” approach, baking into the static mesh the two normal tricks that make flat blade geometry shade like a rounded 3-D blade (no custom shader needed):
- Rounded width normals — the left/right edge normals fan outward (as if the cross-section were a cylinder), so interpolation across the blade width sweeps the normal and the blade catches a soft highlight down its length.
- Tip-up normals — the forward normal lerps toward vertical from base to tip, so tips face the sky and pick up a specular glint.
What a static mesh can’t carry (would need a dedicated grass shader): wind
sway, view-space thickening, and per-patch colour/scale noise. Per-instance
scale jitter (0.8–1.2) is applied by ScatterPlace.slang instead.
Functions§
- grass_
blade_ mesh - Build the blade
ArrayMeshwith rounded + tip-up baked normals and its own double-sided vertex-colour material.