@vitreajs/vitrea 0.20.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts
CHANGED
|
@@ -3266,6 +3266,60 @@ interface MaterialProfile {
|
|
|
3266
3266
|
* it at every ratio and this anchor is the identity on the landed material.
|
|
3267
3267
|
*/
|
|
3268
3268
|
readonly collapseTransmission2x: number;
|
|
3269
|
+
/**
|
|
3270
|
+
* **How much of the blurred backdrop's CHROMATICITY the body restores** (W31;
|
|
3271
|
+
* claims §5.161 §5, fitted in §5.164) — a fraction in [0, 1], inert at 0.
|
|
3272
|
+
*
|
|
3273
|
+
* The body is a neutral plate composited over the blurred backdrop, so what a
|
|
3274
|
+
* photograph's hues survive the composite at is `1 − sizedAlpha` — 0.513 on the
|
|
3275
|
+
* macOS 27 light document and 0.095 on the dark one, against a reference that
|
|
3276
|
+
* reads 0.90–0.97 of its own backdrop's chroma on the same cells. Apple's body
|
|
3277
|
+
* at the same LEVEL keeps the hue, which is what a darkening acting on the
|
|
3278
|
+
* backdrop's luma while leaving its chromaticity alone does and what a plate
|
|
3279
|
+
* does not. No constant the material had could close that (W29 Decision Log
|
|
3280
|
+
* 6 (c)): it is a mechanism, and this is the one leaf that adds it.
|
|
3281
|
+
*
|
|
3282
|
+
* Applied immediately after `colour = mix(backdrop, adapted, presentAlpha)`
|
|
3283
|
+
* and before the tint composition, so an author's tint still displaces the
|
|
3284
|
+
* result. The colour is mixed toward `backdrop · (Y / Y_backdrop)` — the
|
|
3285
|
+
* backdrop's chromaticity carried to the colour's OWN linear luma — by this
|
|
3286
|
+
* fraction, so **luma is preserved by construction rather than by
|
|
3287
|
+
* correction**: both endpoints of the mix have linear luma exactly `Y`,
|
|
3288
|
+
* `dot(rgb, (0.2126, 0.7152, 0.0722))` is a linear functional, and the mix has
|
|
3289
|
+
* luma `Y` in exact arithmetic. (OKLab `L` is NOT linear luma, which is why the
|
|
3290
|
+
* formulation is in linear RGB: holding `L` while moving toward a saturated
|
|
3291
|
+
* chromaticity moves `Y` by −22 % at sRGB blue and +10 % at green.) Gamut is
|
|
3292
|
+
* taken by scaling chroma toward the neutral at fixed luma, never by clipping
|
|
3293
|
+
* per channel.
|
|
3294
|
+
*
|
|
3295
|
+
* **No `toneAdapt` gate**, and the reason is measured rather than assumed
|
|
3296
|
+
* (claims §5.161 §11, finding N1). A retention toward the backdrop's
|
|
3297
|
+
* chromaticity is the identity wherever the backdrop is achromatic, and the
|
|
3298
|
+
* only region `backdropToneAdaptation` can fire in on the macOS 27 documents
|
|
3299
|
+
* is `x < backdropToneHigh` = 1e-4 of linear light — achromatic to within the
|
|
3300
|
+
* capture's own quantisation. A future document that re-opens
|
|
3301
|
+
* `backdropToneHigh` must re-examine that, and must read it at a span at or
|
|
3302
|
+
* below `sizeSpanMin` where `backdropToneSizeBias` is not there to help.
|
|
3303
|
+
*
|
|
3304
|
+
* Conditioned by SCHEME (two values across the light and dark documents) and
|
|
3305
|
+
* by POSE: each receded document carries its own, read on the inactive cells,
|
|
3306
|
+
* because the recede's untinted body has no chroma law at all otherwise —
|
|
3307
|
+
* W27c's collapse acts on the tint SEED inside `if (tintK > 0.0)`. The
|
|
3308
|
+
* accessibility documents inherit the light value.
|
|
3309
|
+
*
|
|
3310
|
+
* **Ships at 0, a multiplied zero**: the mix's second term is `0 · (target −
|
|
3311
|
+
* colour)` and `colour` leaves the composite exactly as
|
|
3312
|
+
* `mix(backdrop, adapted, presentAlpha)` produced it, which is why the 34
|
|
3313
|
+
* renderer goldens are byte-identical across the commit that added it and why
|
|
3314
|
+
* `MATERIAL_IDENTITY_TABLE` can drop it from the fingerprint.
|
|
3315
|
+
*
|
|
3316
|
+
* One place it cannot act, declared rather than discovered: on the unsampled
|
|
3317
|
+
* layer path (`flags.x <= 0.5` and not `domMaterial`) the shader overwrites
|
|
3318
|
+
* `colour` with `adapted` and writes a layer for the browser to composite, so
|
|
3319
|
+
* there is no backdrop in hand and no chromaticity to restore toward. The
|
|
3320
|
+
* retention is silently the identity there.
|
|
3321
|
+
*/
|
|
3322
|
+
readonly bodyChromaRetention: number;
|
|
3269
3323
|
/**
|
|
3270
3324
|
* **The rim that survives the collapse (W23)** — the one mark the collapsed
|
|
3271
3325
|
* appearance keeps.
|
|
@@ -3516,6 +3570,7 @@ interface MaterialProfilePatch {
|
|
|
3516
3570
|
readonly backdropToneSizeBias?: number;
|
|
3517
3571
|
readonly collapseTransmission?: number;
|
|
3518
3572
|
readonly collapseTransmission2x?: number;
|
|
3573
|
+
readonly bodyChromaRetention?: number;
|
|
3519
3574
|
readonly rimCollapsed?: number;
|
|
3520
3575
|
readonly rimCollapsedTinted?: number;
|
|
3521
3576
|
readonly rimTintChroma?: number;
|
package/dist/index.js
CHANGED
|
@@ -1092,7 +1092,7 @@ function isHealthy(state) {
|
|
|
1092
1092
|
|
|
1093
1093
|
// src/renderer-seam.ts
|
|
1094
1094
|
async function loadWebGPURendererModule() {
|
|
1095
|
-
return import('./dist-
|
|
1095
|
+
return import('./dist-N437MSRG.js');
|
|
1096
1096
|
}
|
|
1097
1097
|
async function loadWebGPURenderer() {
|
|
1098
1098
|
const { createWebGPURenderer } = await loadWebGPURendererModule();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitreajs/vitrea",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Framework-agnostic Liquid Glass material runtime: scene model, capability resolution, material policy, accessibility policy.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/SSFSKIM/designer",
|