FruitFlyLook
The lab's look, as data on one entity. Put it on an entity called `Look`, point its `sun` and `ambient` Fields at the scene's two lights, and every decision about how the room is lit and graded is in one inspector.
FruitFlyLook
The lab's look, as data on one entity. Put it on an entity called Look,
point its sun and ambient Fields at the scene's two lights, and every
decision about how the room is lit and graded is in one inspector.
It owns four things:
- The lighting intent.
sunColor,sunIntensity,sunDirection,ambientColor,ambientIntensity. It writes these onto the two lights when it wakes and whenever a Field changes, so the lights themselves are a cache of what this component says. - The cast shadows.
shadowSoftness,shadowFade,shadowDistance, viarenderer.setShadowConfig. At softness 0 every shadow is a hard stencil; the lab runs at 0.55. - The haze. A depth fog registered as the post effect
fruitFlyHazeon thescenelayer at priority 60, so it runs before anything else the world adds and leaves every widget on screen as authored.hazeDensityis how much air a metre of depth carries;hazeFardecides how much of the sky it tints, because the sky reads as sitting at that plane. SettinghazeDensityto 0 removes the effect. - The vignette. Registered as
fruitFlyVignetteon thescenelayer at priority 200, so it lands last.vignetteIntensity0 removes it.
What it is for
The floor runs to a hard polygonal edge against the sky wherever it ends, and a specimen suspended in the air reads as a cut-out against a clean gradient. The haze answers both: the floor's far edge dissolves into a colour matched to the sky near the horizon, and the air between the viewer and the specimen separates it from the sky behind it. The vignette settles the eye on the middle of the frame without taking anything out of it.
Methods
| Call | What it answers |
|---|---|
look:apply() | Restates every part of the look on the engine. The wake and the inspector do this for you; call it after something else has moved the lights, the shadow config or the post chain. |
look:describe() | What the look is asking for right now, and the shadow config the engine answered with. |
What it does not touch
Only the two effects it registers by name, the two lights its Fields name, and the directional shadow config. Anything else the world puts in the post chain runs beside it under its own name.
Scoped to this part · feeds back into the world's score.