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:
@@ -44,20 +44,19 @@ namespace ProjectM.Client
|
|||||||
{
|
{
|
||||||
float t = Time.time;
|
float t = Time.time;
|
||||||
|
|
||||||
|
// caustics slowly drift across the seabed
|
||||||
if (_caustics != null)
|
if (_caustics != null)
|
||||||
_caustics.Rotate(0f, causticsSpinDegPerSec * Time.deltaTime, 0f, Space.World);
|
_caustics.Rotate(0f, causticsSpinDegPerSec * Time.deltaTime, 0f, Space.World);
|
||||||
|
|
||||||
if (_beacon != null)
|
// readability law: STEADY = true light. The warm beacon is left unmodulated (steady) on purpose.
|
||||||
_beacon.intensity = _beaconBase * (1f
|
// FLICKER = false/counterfeit light -> the cold gloam pools gutter with organic Perlin flicker,
|
||||||
+ beaconFlickerAmount * Mathf.Sin(t * 7.3f)
|
// so "ours vs the deep's" reads through cadence even with hue/value removed.
|
||||||
+ beaconFlickerAmount * 0.5f * Mathf.Sin(t * 17.1f));
|
|
||||||
|
|
||||||
if (_flora != null)
|
if (_flora != null)
|
||||||
for (int i = 0; i < _flora.Length; i++)
|
for (int i = 0; i < _flora.Length; i++)
|
||||||
{
|
{
|
||||||
float phase = i * 1.7f;
|
float phase = i * 3.1f;
|
||||||
_flora[i].intensity = _floraBase[i]
|
float flick = 0.55f + 0.45f * Mathf.PerlinNoise(t * floraPulseSpeed * 1.8f + phase, phase * 0.7f);
|
||||||
* (1f + floraPulseAmount * Mathf.Sin(t * floraPulseSpeed + phase));
|
_flora[i].intensity = _floraBase[i] * flick;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user