Add shader-driven tree beautification: wind sway, SSS, color variation, AO

- Vertex wind animation: 3-layer displacement (trunk/branch/leaf) with
  quadratic height scaling so bases stay grounded
- Shadow pass: matching vertex displacement split into foliage/non-foliage
  passes, removed UV-wiggle approach
- Leaf subsurface scattering: warm backlit glow when looking toward sun
- Per-instance color variation: hue/brightness from position hash via flat
  varying to avoid interpolation flicker
- Canopy ambient occlusion: height-based darkening of tree interiors
- Detail normal perturbation: UV-only procedural normals to break flat cards
- Bayer 4x4 ordered dither replacing sin-hash noise for alpha edges
- Foliage skips shadow map sampling and specular to prevent flicker from
  swaying geometry sampling unstable shadow/highlight values
This commit is contained in:
Kelsi 2026-02-23 03:53:50 -08:00
parent 4511de8d38
commit ef1e5abe8e
11 changed files with 199 additions and 69 deletions

View file

@ -3975,7 +3975,7 @@ void Renderer::renderShadowPass() {
wmoRenderer->renderShadow(currentCmd, lightSpaceMatrix);
}
if (m2Renderer) {
m2Renderer->renderShadow(currentCmd, lightSpaceMatrix);
m2Renderer->renderShadow(currentCmd, lightSpaceMatrix, globalTime);
}
if (characterRenderer) {
characterRenderer->renderShadow(currentCmd, lightSpaceMatrix);