ShadowSpec ​Contract 2.0.0 · package sha256
a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e· generated fromconfigurator-runtime.d.tsbyservices/onsite-scripter/scripts/build-contract-docs.mjs; edit the source, not this file.
Type · import type { ShadowSpec } from '@holostep-configurators/runtime-client/contract'; · stable · since 2.0.0 · section 7. Collections and shapes
The runtime owns the shadow map and its filter per quality tier (info().renderer.tier): high
2048 px, medium 1024 px, low 1024 px with a tighter filter (today's live tiers). No tier drops
the shadow. The filter and bias also follow the receivers. While a part of role 'product'
receives this shadow, the filter narrows to about 3 shadow-map texels, so on a 1024 px map a lit
face that receives it shows no screen-fixed self-shadow grain and the floor no smeared blotch;
with only the ground and scenery receiving, it stays at 14 texels, today's soft default. A scene
model's parts receive only through a receive: true rule (PartState.shadows), so with no
such rule and no receiving product item the base stays 14.
softness scales that base: the filter radius is max(1, base × softness / 0.3) shadow-map
texels, so the default 0.3 is the base and 0 the hardest the tier draws; the low tier's tighter
filter applies on top. A tier or receiver change re-applies them; apps
write no tier or filter code.
export type ShadowSpec = boolean | {
softness?: number;
strength?: number;
thinParts?: boolean;
covers?: Query;
};
| Rule | Result |
|---|---|
| 1. Neutral name | pass: ShadowSpec names no product |
| 2. A precedent | pass: Unity Light.shadows (row K27); Babylon.js ShadowGenerator (row K27) |
| 3. Two apps, or labs | pass: 10 apps (ledger: app-378d190f1b, app-4f16d2f6da, app-510d750508, app-59c5b5751e, app-ceb4eccc72, app-fc07850558, app-fc306ec3dc; fleet cross-check: app-04c2774145, app-4762caacdc, app-4f16d2f6da, app-59c5b5751e, app-ceb4eccc72, app-e61a0b42ad, app-fc306ec3dc) |
| 4. The cheaper fix first | decided per need in Appendix B: rows K27 at tier stable (a member only where no rule, data, asset or app code serves the need) |