Kiwi Grass Docs
View product

Rendering and quality

Lighting

Configure URP lighting, shadows, translucency, and cinematic presentation.

Kiwi Grass 26.8.0Unity 6000.0+URP

Kiwi Grass adds a compact cinematic lighting layer on top of its existing URP lighting, shadow, rendering-layer, additional-light, transmission, and two-sided-normal support.

The grass profile and embedded renderer lighting settings expose four controls:

  • Root Occlusion Strength darkens only the lower 35 percent of each blade. Use it to visually connect dense grass to the terrain without crushing the entire blade.
  • Diffuse Wrap softens the lit-mode Lambert response around blade silhouettes. Higher values make a field read as a continuous volume, but excessive wrap reduces directional contrast.
  • Tip Sheen Strength adds a restrained main-light highlight toward blade tips.
  • Tip Sheen Power controls highlight tightness. Lower values broaden the sheen; higher values produce a narrower glint.

The renderer packs these controls into _GrassCinematicLightingParams as root occlusion, diffuse wrap, tip sheen strength, and tip sheen power. They are rendering-only settings and never invalidate persistent placement bakes.

Simple lighting retains the inexpensive fixed diffuse response and root occlusion. The renderer forces tip sheen strength to zero for Simple lighting, and the shader branches around the full lit path. Lit lighting combines wrapped diffuse with a restrained two-sided thin-leaf floor, evaluates the existing ambient probe against the stable terrain hemisphere, and keeps a capped sun-linked foliage bounce so shaded grass remains readable without emissive lift. Transmission blends the blade albedo toward the authored foliage tint instead of multiplying two dark colors. Additional-light sheen is intentionally omitted; tip sheen uses only the rendering-layer-filtered main light and respects its distance and shadow attenuation.

Desktop High and Cinematic add world-space meadow-normal variation and bounded far gust lighting without extra fragment texture samples or shader keywords. The same analytic macro-noise gradient drives Forward and DepthNormals lighting normals, while ShadowCaster keeps the physical terrain surface normal for bias. Far layered-wind gusts can add at most 12% base luminance, pull subtly toward the tip colour, and add one aggregated main-light sheen that respects light layers, distance attenuation, and shadow attenuation; calm regions remain neutral instead of becoming darker. LOD2 and LOD3 use the stable terrain normal, a topology-matched root-to-tip colour-height target, and a fixed far-lighting parity scale so the reduced far path does not introduce a colour step. Field harmonization preserves the current fragment's root-to-tip colour and changes only the sampled variation and dryness semantics, so the distant visible tips are not replaced by a darker fixed midpoint. Ground tint is opt-in through a nonzero tint alpha. Mobile presets resolve all of these strengths to zero and return before macro-noise evaluation.

The import-and-go Soft Meadow baseline uses 0.20 root occlusion, 0.42 diffuse wrap, 0.08 tip sheen strength, and 8 tip sheen power. Its healthy root and tip palette remains muted olive-sage rather than saturated emerald. Full Dryness uses linear RGBA (0.50, 0.43, 0.32, 1) for pale beige straw, keeps roots at 58% through 68% of that colour, varies tips by only 0.96 through 1.04, and reaches the tip colour by roughly 60% of blade height. Root occlusion, scene lights, shadows, wind, and motion remain active, while the broad highlight remains disabled after the far field settles to prevent distant sparkle. Validate custom values in neutral noon, sunrise, and backlit views because environment exposure and tone mapping strongly affect perceived sheen.

Depth Normals Enabled opts grass into URP's DepthNormalsOnly pass for renderer features that explicitly need grass normals. It is disabled in standard import-and-go and Desktop High settings because a full extra deformed-geometry pass is expensive on dense fields. Cinematic enables it. Leave it off when the active renderer does not consume depth normals or when grass self-occlusion adds more distant grain than useful depth.

Standard, Mobile, and Desktop High grass receive main-light shadows but do not render millions of individual blades into every shadow cascade. Root occlusion, wrapped diffuse, transmission, and the terrain's own shadow preserve field volume at a fraction of the cost. Cinematic enables per-blade shadow casting for deliberately budgeted hero shots. For custom profiles, turn Shadow Casting on only after measuring the target camera and cascade count.

Still stuck?

Bring the renderer status with you.

Include the Kiwi Grass version, Unity and URP versions, operating system, graphics API, renderer status, Player log, and a minimal reproduction.

Email supportJoin Discord

Kiwi Grass 26.8.0

Search documentation