Client: StagingAmbiance — steady beacon, gloam flicker (readability cadence)
Beacon left unmodulated (steady=true light); cold flora gutter on Perlin flicker (flicker=false light) so the warm/cold read survives with hue removed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -40,24 +40,23 @@ namespace ProjectM.Client
|
||||
}
|
||||
}
|
||||
|
||||
void Update()
|
||||
void Update()
|
||||
{
|
||||
float t = Time.time;
|
||||
|
||||
// caustics slowly drift across the seabed
|
||||
if (_caustics != null)
|
||||
_caustics.Rotate(0f, causticsSpinDegPerSec * Time.deltaTime, 0f, Space.World);
|
||||
|
||||
if (_beacon != null)
|
||||
_beacon.intensity = _beaconBase * (1f
|
||||
+ beaconFlickerAmount * Mathf.Sin(t * 7.3f)
|
||||
+ beaconFlickerAmount * 0.5f * Mathf.Sin(t * 17.1f));
|
||||
|
||||
// readability law: STEADY = true light. The warm beacon is left unmodulated (steady) on purpose.
|
||||
// FLICKER = false/counterfeit light -> the cold gloam pools gutter with organic Perlin flicker,
|
||||
// so "ours vs the deep's" reads through cadence even with hue/value removed.
|
||||
if (_flora != null)
|
||||
for (int i = 0; i < _flora.Length; i++)
|
||||
{
|
||||
float phase = i * 1.7f;
|
||||
_flora[i].intensity = _floraBase[i]
|
||||
* (1f + floraPulseAmount * Mathf.Sin(t * floraPulseSpeed + phase));
|
||||
float phase = i * 3.1f;
|
||||
float flick = 0.55f + 0.45f * Mathf.PerlinNoise(t * floraPulseSpeed * 1.8f + phase, phase * 0.7f);
|
||||
_flora[i].intensity = _floraBase[i] * flick;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user