@hyperframes/core 0.8.70 → 0.8.72
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/generated/runtime-inline.js +1 -1
- package/dist/generated/runtime-inline.js.map +1 -1
- package/dist/hyperframe.runtime.iife.js +143 -39
- package/dist/runtime/adapters/seek-dispatch.d.ts +32 -0
- package/dist/runtime/adapters/seek-dispatch.d.ts.map +1 -0
- package/dist/runtime/adapters/seek-dispatch.js +129 -0
- package/dist/runtime/adapters/seek-dispatch.js.map +1 -0
- package/dist/runtime/media.d.ts.map +1 -1
- package/dist/runtime/media.js +17 -0
- package/dist/runtime/media.js.map +1 -1
- package/dist/vfx/displacementMap.frag.d.ts +10 -7
- package/dist/vfx/displacementMap.frag.d.ts.map +1 -1
- package/dist/vfx/displacementMap.frag.js +15 -8
- package/dist/vfx/displacementMap.frag.js.map +1 -1
- package/dist/vfx/lumaMatte.frag.d.ts +43 -0
- package/dist/vfx/lumaMatte.frag.d.ts.map +1 -0
- package/dist/vfx/lumaMatte.frag.js +73 -0
- package/dist/vfx/lumaMatte.frag.js.map +1 -0
- package/dist/vfx/noise.frag.d.ts +96 -0
- package/dist/vfx/noise.frag.d.ts.map +1 -0
- package/dist/vfx/noise.frag.js +169 -0
- package/dist/vfx/noise.frag.js.map +1 -0
- package/dist/vfx/refs/lumaMatte.d.ts +24 -0
- package/dist/vfx/refs/lumaMatte.d.ts.map +1 -0
- package/dist/vfx/refs/lumaMatte.js +33 -0
- package/dist/vfx/refs/lumaMatte.js.map +1 -0
- package/dist/vfx/refs/noise.d.ts +33 -0
- package/dist/vfx/refs/noise.d.ts.map +1 -0
- package/dist/vfx/refs/noise.js +67 -0
- package/dist/vfx/refs/noise.js.map +1 -0
- package/dist/vfx.d.ts +8 -0
- package/dist/vfx.d.ts.map +1 -1
- package/dist/vfx.js +71 -0
- package/dist/vfx.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface HfSeekEventDetail {
|
|
2
|
+
time: number;
|
|
3
|
+
waitUntil: (promise: PromiseLike<unknown>) => void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Join `promise` to the seek-completion barrier: `waitForSeekCompletion` will
|
|
7
|
+
* not resolve until it settles, and its rejection (the first one) becomes the
|
|
8
|
+
* barrier's.
|
|
9
|
+
*
|
|
10
|
+
* Exported because the `"hf-seek"` event's synchronous `waitUntil()` is not
|
|
11
|
+
* the only asynchronous seek work a frame can owe. `runtime/vfx.ts` registers
|
|
12
|
+
* its preview-side capture here, so the CLI seek paths that already await this
|
|
13
|
+
* barrier wait for a `self` chain's paint instead of racing it.
|
|
14
|
+
*/
|
|
15
|
+
export declare function registerSeekCompletion(promise: Promise<unknown>): void;
|
|
16
|
+
export declare function dispatchSeekEvent(time: number): void;
|
|
17
|
+
/**
|
|
18
|
+
* Force-dispatch a `"hf-seek"` event even if `time` equals the last dispatched
|
|
19
|
+
* time, bypassing the dedup guard.
|
|
20
|
+
*
|
|
21
|
+
* Needed for the post-video-injection GPU re-render: the engine seeks to time
|
|
22
|
+
* T (GPU adapters render once, before video frames are injected), then injects
|
|
23
|
+
* the decoded `__render_frame__` images, then must re-render GPU compositions
|
|
24
|
+
* at the *same* T so they re-upload textures from the now-present frames. The
|
|
25
|
+
* normal dedup would swallow that second dispatch.
|
|
26
|
+
*/
|
|
27
|
+
export declare function forceDispatchSeekEvent(time: number): void;
|
|
28
|
+
export declare function isSeekCompletionBarrierActive(): boolean;
|
|
29
|
+
export declare function waitForSeekCompletion(): Promise<void>;
|
|
30
|
+
/** Reset internal state — used in tests to prevent cross-test contamination. */
|
|
31
|
+
export declare function resetSeekDispatchState(): void;
|
|
32
|
+
//# sourceMappingURL=seek-dispatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seek-dispatch.d.ts","sourceRoot":"","sources":["../../../src/runtime/adapters/seek-dispatch.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CACpD;AAyBD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAWtE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAIpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAGzD;AAED,wBAAgB,6BAA6B,IAAI,OAAO,CAEvD;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyB3D;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { swallow } from "../diagnostics.js";
|
|
2
|
+
/**
|
|
3
|
+
* Shared, deduplicated `"hf-seek"` CustomEvent dispatcher for GPU adapters.
|
|
4
|
+
*
|
|
5
|
+
* Both the Three.js and TypeGPU adapters dispatch the same `"hf-seek"` event
|
|
6
|
+
* so that compositions need not know which GPU library they're paired with.
|
|
7
|
+
* Without deduplication, a seek to time T would fire two events (one from each
|
|
8
|
+
* adapter), doubling per-scrub work in any composition that has both present.
|
|
9
|
+
*
|
|
10
|
+
* This module deduplicates by tracking the last dispatched time. If the same
|
|
11
|
+
* time value is dispatched twice in the same synchronous call stack (e.g. two
|
|
12
|
+
* adapters both calling `dispatchSeekEvent(5.0)` without yielding), only the
|
|
13
|
+
* first call fires the event.
|
|
14
|
+
*
|
|
15
|
+
* The deduplication is intentionally coarse (exact float equality). Adapter
|
|
16
|
+
* seek paths clamp and normalise time before calling this function, so the
|
|
17
|
+
* values that arrive here are already stable.
|
|
18
|
+
*/
|
|
19
|
+
let _lastDispatchedTime = -1;
|
|
20
|
+
let _pendingCompletions = new Set();
|
|
21
|
+
let _pendingFailure;
|
|
22
|
+
let _activeCompletionBarriers = 0;
|
|
23
|
+
function dispatch(time) {
|
|
24
|
+
const pending = [];
|
|
25
|
+
let accepting = true;
|
|
26
|
+
const detail = {
|
|
27
|
+
time,
|
|
28
|
+
waitUntil: (promise) => {
|
|
29
|
+
if (!accepting) {
|
|
30
|
+
throw new Error("hf-seek waitUntil() must be called synchronously from the event listener");
|
|
31
|
+
}
|
|
32
|
+
pending.push(promise);
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
try {
|
|
36
|
+
window.dispatchEvent(new CustomEvent("hf-seek", { detail }));
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
swallow("runtime.adapters.seek-dispatch.site1", err);
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
accepting = false;
|
|
43
|
+
}
|
|
44
|
+
if (pending.length === 0)
|
|
45
|
+
return;
|
|
46
|
+
registerSeekCompletion(Promise.all(pending));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Join `promise` to the seek-completion barrier: `waitForSeekCompletion` will
|
|
50
|
+
* not resolve until it settles, and its rejection (the first one) becomes the
|
|
51
|
+
* barrier's.
|
|
52
|
+
*
|
|
53
|
+
* Exported because the `"hf-seek"` event's synchronous `waitUntil()` is not
|
|
54
|
+
* the only asynchronous seek work a frame can owe. `runtime/vfx.ts` registers
|
|
55
|
+
* its preview-side capture here, so the CLI seek paths that already await this
|
|
56
|
+
* barrier wait for a `self` chain's paint instead of racing it.
|
|
57
|
+
*/
|
|
58
|
+
export function registerSeekCompletion(promise) {
|
|
59
|
+
const completion = promise
|
|
60
|
+
.then(() => ({ status: "fulfilled" }))
|
|
61
|
+
.catch((reason) => ({ status: "rejected", reason }));
|
|
62
|
+
_pendingCompletions.add(completion);
|
|
63
|
+
void completion.then((result) => {
|
|
64
|
+
if (!_pendingCompletions.delete(completion))
|
|
65
|
+
return;
|
|
66
|
+
if (result.status === "rejected" && _pendingFailure === undefined) {
|
|
67
|
+
_pendingFailure = { reason: result.reason };
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
export function dispatchSeekEvent(time) {
|
|
72
|
+
if (time === _lastDispatchedTime)
|
|
73
|
+
return;
|
|
74
|
+
_lastDispatchedTime = time;
|
|
75
|
+
dispatch(time);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Force-dispatch a `"hf-seek"` event even if `time` equals the last dispatched
|
|
79
|
+
* time, bypassing the dedup guard.
|
|
80
|
+
*
|
|
81
|
+
* Needed for the post-video-injection GPU re-render: the engine seeks to time
|
|
82
|
+
* T (GPU adapters render once, before video frames are injected), then injects
|
|
83
|
+
* the decoded `__render_frame__` images, then must re-render GPU compositions
|
|
84
|
+
* at the *same* T so they re-upload textures from the now-present frames. The
|
|
85
|
+
* normal dedup would swallow that second dispatch.
|
|
86
|
+
*/
|
|
87
|
+
export function forceDispatchSeekEvent(time) {
|
|
88
|
+
_lastDispatchedTime = time;
|
|
89
|
+
dispatch(time);
|
|
90
|
+
}
|
|
91
|
+
export function isSeekCompletionBarrierActive() {
|
|
92
|
+
return _activeCompletionBarriers > 0;
|
|
93
|
+
}
|
|
94
|
+
export async function waitForSeekCompletion() {
|
|
95
|
+
_activeCompletionBarriers += 1;
|
|
96
|
+
let failed = _pendingFailure;
|
|
97
|
+
try {
|
|
98
|
+
// Let concurrently started barriers snapshot the same retained failure
|
|
99
|
+
// before either one consumes it.
|
|
100
|
+
await Promise.resolve();
|
|
101
|
+
while (_pendingCompletions.size > 0) {
|
|
102
|
+
const results = await Promise.all([..._pendingCompletions]);
|
|
103
|
+
const rejected = results.find((result) => result.status === "rejected");
|
|
104
|
+
if (failed === undefined && rejected?.status === "rejected") {
|
|
105
|
+
failed = { reason: rejected.reason };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const retainedFailure = _pendingFailure;
|
|
109
|
+
if (failed === undefined) {
|
|
110
|
+
failed = retainedFailure;
|
|
111
|
+
}
|
|
112
|
+
if (_pendingFailure === retainedFailure) {
|
|
113
|
+
_pendingFailure = undefined;
|
|
114
|
+
}
|
|
115
|
+
if (failed)
|
|
116
|
+
throw failed.reason;
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
_activeCompletionBarriers -= 1;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/** Reset internal state — used in tests to prevent cross-test contamination. */
|
|
123
|
+
export function resetSeekDispatchState() {
|
|
124
|
+
_lastDispatchedTime = -1;
|
|
125
|
+
_pendingCompletions = new Set();
|
|
126
|
+
_pendingFailure = undefined;
|
|
127
|
+
_activeCompletionBarriers = 0;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=seek-dispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seek-dispatch.js","sourceRoot":"","sources":["../../../src/runtime/adapters/seek-dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/runtime/media.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,EAAwC,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,EAA0C,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/runtime/media.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/media.js
CHANGED
|
@@ -8,10 +8,26 @@ import { rateAt, sourceTimeAt, timeAtSourceTime } from "../speedRamp.js";
|
|
|
8
8
|
import { clampAudioGain } from "../audioGain.js";
|
|
9
9
|
import { isMemberGroupHidden } from "../audioGroups.js";
|
|
10
10
|
import { findInjectedRenderFrame } from "./renderFrameSibling.js";
|
|
11
|
+
import { registerSeekCompletion } from "./adapters/seek-dispatch.js";
|
|
11
12
|
export { readElementPlaybackRate, readElementRateSpec, resolveNaturalMediaTimelineDuration, } from "./playbackRate.js";
|
|
12
13
|
export function readElementPlaybackStart(el) {
|
|
13
14
|
return readMediaStart(el);
|
|
14
15
|
}
|
|
16
|
+
const SEEK_END_EVENTS = ["seeked", "error", "emptied", "abort"];
|
|
17
|
+
// A seeking video still paints its previous frame; frame captures wait on the seek barrier until it lands.
|
|
18
|
+
function holdSeekBarrierUntilVideoLands(el) {
|
|
19
|
+
if (el.tagName !== "VIDEO" || !el.seeking)
|
|
20
|
+
return;
|
|
21
|
+
registerSeekCompletion(new Promise((resolve) => {
|
|
22
|
+
const done = () => {
|
|
23
|
+
for (const type of SEEK_END_EVENTS)
|
|
24
|
+
el.removeEventListener(type, done);
|
|
25
|
+
resolve();
|
|
26
|
+
};
|
|
27
|
+
for (const type of SEEK_END_EVENTS)
|
|
28
|
+
el.addEventListener(type, done);
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
15
31
|
/**
|
|
16
32
|
* Resolve a media element's timeline window without conflating a video's
|
|
17
33
|
* authored display slot with the amount of source left to decode.
|
|
@@ -392,6 +408,7 @@ export function syncRuntimeMedia(params) {
|
|
|
392
408
|
swallow("runtime.media.site3", err);
|
|
393
409
|
}
|
|
394
410
|
}
|
|
411
|
+
holdSeekBarrierUntilVideoLands(el);
|
|
395
412
|
}
|
|
396
413
|
playRequested.delete(el);
|
|
397
414
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/runtime/media.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/runtime/media.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `displacement-map` kernel — GLSL ES 3.00, capture `self`.
|
|
3
3
|
*
|
|
4
|
-
* **
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* **The map layer.** Every corpus instance points its Displacement Map Layer
|
|
5
|
+
* at **the layer itself** (retro-wave `Main/Text` → idx 5 = Text; `Logo Anim/
|
|
6
|
+
* Text Site` and `Logo Anim/Logo` likewise), so `u_src` is both the source and
|
|
7
|
+
* the map and no second capture is needed — that is what the `map` ref param
|
|
8
|
+
* being EMPTY means, and it stays the default. An external map layer is the
|
|
9
|
+
* same kernel reading `u_src2`: the exporter names that element in `map` and
|
|
10
|
+
* wraps it in its own `.hf-vfx-src` capture, and `u_hasSrc2` switches the
|
|
11
|
+
* sampler. The two inputs are read at the same `v_uv`, so an external map is
|
|
12
|
+
* scaled into the host's box (see `captureSource`), not placed in composition
|
|
13
|
+
* space.
|
|
11
14
|
*
|
|
12
15
|
* Per axis: `d = (channel(map) − 0.5) · 2 · max`, then sample `u_src` at
|
|
13
16
|
* `uv + d/u_size` with **clamp-to-transparent** edges (Edge = Off, the only
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displacementMap.frag.d.ts","sourceRoot":"","sources":["../../src/vfx/displacementMap.frag.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"displacementMap.frag.d.ts","sourceRoot":"","sources":["../../src/vfx/displacementMap.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAIX,eAAO,MAAM,qBAAqB,QA+CjC,CAAC"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `displacement-map` kernel — GLSL ES 3.00, capture `self`.
|
|
3
3
|
*
|
|
4
|
-
* **
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* **The map layer.** Every corpus instance points its Displacement Map Layer
|
|
5
|
+
* at **the layer itself** (retro-wave `Main/Text` → idx 5 = Text; `Logo Anim/
|
|
6
|
+
* Text Site` and `Logo Anim/Logo` likewise), so `u_src` is both the source and
|
|
7
|
+
* the map and no second capture is needed — that is what the `map` ref param
|
|
8
|
+
* being EMPTY means, and it stays the default. An external map layer is the
|
|
9
|
+
* same kernel reading `u_src2`: the exporter names that element in `map` and
|
|
10
|
+
* wraps it in its own `.hf-vfx-src` capture, and `u_hasSrc2` switches the
|
|
11
|
+
* sampler. The two inputs are read at the same `v_uv`, so an external map is
|
|
12
|
+
* scaled into the host's box (see `captureSource`), not placed in composition
|
|
13
|
+
* space.
|
|
11
14
|
*
|
|
12
15
|
* Per axis: `d = (channel(map) − 0.5) · 2 · max`, then sample `u_src` at
|
|
13
16
|
* `uv + d/u_size` with **clamp-to-transparent** edges (Edge = Off, the only
|
|
@@ -48,6 +51,10 @@ uniform vec2 u_size;
|
|
|
48
51
|
uniform float u_t;
|
|
49
52
|
uniform float u_fps;
|
|
50
53
|
uniform sampler2D u_src;
|
|
54
|
+
uniform sampler2D u_src2;
|
|
55
|
+
// 1 when the map ref named another element, 0 when the map is the layer
|
|
56
|
+
// itself. Set by the runtime for every pass, from whether a ref resolved.
|
|
57
|
+
uniform float u_hasSrc2;
|
|
51
58
|
uniform float u_useH;
|
|
52
59
|
uniform float u_maxH;
|
|
53
60
|
uniform float u_useV;
|
|
@@ -75,7 +82,7 @@ float hfMapChannel(vec4 premultiplied, float selector) {
|
|
|
75
82
|
}
|
|
76
83
|
|
|
77
84
|
void main() {
|
|
78
|
-
vec4 mapTexel = texture(u_src, v_uv);
|
|
85
|
+
vec4 mapTexel = u_hasSrc2 > 0.5 ? texture(u_src2, v_uv) : texture(u_src, v_uv);
|
|
79
86
|
float h = hfMapChannel(mapTexel, u_useH);
|
|
80
87
|
float v = hfMapChannel(mapTexel, u_useV);
|
|
81
88
|
vec2 d = vec2((h - 0.5) * 2.0 * u_maxH, (v - 0.5) * 2.0 * u_maxV);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displacementMap.frag.js","sourceRoot":"","sources":["../../src/vfx/displacementMap.frag.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"displacementMap.frag.js","sourceRoot":"","sources":["../../src/vfx/displacementMap.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;CACJ,CAAC;AAEX,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,0BAA0B,CAAC;AAE3D,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAmCQ,KAAK,KAAK,KAAK,KAAK,KAAK;;;;;;;;;;;;CAYrE,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `luma-matte` kernel — GLSL ES 3.00, capture `self` plus a `ref` second
|
|
3
|
+
* source.
|
|
4
|
+
*
|
|
5
|
+
* **What it ports.** Not a single After Effects effect: this is the runtime
|
|
6
|
+
* form of every matte the exporter cannot express as CSS — a track matte whose
|
|
7
|
+
* source layer is unsupported (`matte-source-unsupported:*`), a stencil or
|
|
8
|
+
* silhouette (`stencil-*`), and Set Matte. All of them are the same
|
|
9
|
+
* per-pixel operation, `out = src · coverage(matte)`, differing only in which
|
|
10
|
+
* element is the source and which is the matte. The exporter decides that by
|
|
11
|
+
* choosing which element the host wraps and which the `matte` ref names; a
|
|
12
|
+
* stencil is this kernel with the host's own content as the matte.
|
|
13
|
+
*
|
|
14
|
+
* **Coverage.** `src` arrives premultiplied, so scaling all four channels by a
|
|
15
|
+
* single coverage value is the whole operation — no unpremultiply/repremultiply
|
|
16
|
+
* round trip, and a coverage of 0 yields a genuinely empty pixel rather than a
|
|
17
|
+
* black one.
|
|
18
|
+
*
|
|
19
|
+
* - Alpha (1) / Alpha Inverted (2): the matte's alpha.
|
|
20
|
+
* - Luma (3) / Luma Inverted (4): the matte's luminance **composited over
|
|
21
|
+
* black**, which is what the premultiplied texel already holds — a matte that
|
|
22
|
+
* is 50 % grey at 50 % opacity reads as 0.25, matching After Effects, where a
|
|
23
|
+
* luma matte's transparent regions are black rather than ignored.
|
|
24
|
+
*
|
|
25
|
+
* Rec.601 weights, shared with `displacement-map`'s Luminance channel selector
|
|
26
|
+
* so the two agree on what "luminance" means.
|
|
27
|
+
*
|
|
28
|
+
* **Out of scope in v1, recorded rather than implied:** the matte is sampled at
|
|
29
|
+
* the host's own `v_uv`, so the runtime captures it into the host's box (see
|
|
30
|
+
* `captureSource`). After Effects places a matte layer in composition space
|
|
31
|
+
* with its own transform; a matte whose box differs from the layer's is
|
|
32
|
+
* therefore stretched here, not positioned. Every corpus matte is a
|
|
33
|
+
* full-frame sibling of its layer, where the two agree.
|
|
34
|
+
*/
|
|
35
|
+
/** The `mode` enum, named once so the def, the shader and the reference agree. */
|
|
36
|
+
export declare const LUMA_MATTE_MODES: {
|
|
37
|
+
readonly alpha: 1;
|
|
38
|
+
readonly alphaInverted: 2;
|
|
39
|
+
readonly luma: 3;
|
|
40
|
+
readonly lumaInverted: 4;
|
|
41
|
+
};
|
|
42
|
+
export declare const LUMA_MATTE_FRAG: string;
|
|
43
|
+
//# sourceMappingURL=lumaMatte.frag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lumaMatte.frag.d.ts","sourceRoot":"","sources":["../../src/vfx/lumaMatte.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH,kFAAkF;AAClF,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC;AAEX,eAAO,MAAM,eAAe,QA4B3B,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `luma-matte` kernel — GLSL ES 3.00, capture `self` plus a `ref` second
|
|
3
|
+
* source.
|
|
4
|
+
*
|
|
5
|
+
* **What it ports.** Not a single After Effects effect: this is the runtime
|
|
6
|
+
* form of every matte the exporter cannot express as CSS — a track matte whose
|
|
7
|
+
* source layer is unsupported (`matte-source-unsupported:*`), a stencil or
|
|
8
|
+
* silhouette (`stencil-*`), and Set Matte. All of them are the same
|
|
9
|
+
* per-pixel operation, `out = src · coverage(matte)`, differing only in which
|
|
10
|
+
* element is the source and which is the matte. The exporter decides that by
|
|
11
|
+
* choosing which element the host wraps and which the `matte` ref names; a
|
|
12
|
+
* stencil is this kernel with the host's own content as the matte.
|
|
13
|
+
*
|
|
14
|
+
* **Coverage.** `src` arrives premultiplied, so scaling all four channels by a
|
|
15
|
+
* single coverage value is the whole operation — no unpremultiply/repremultiply
|
|
16
|
+
* round trip, and a coverage of 0 yields a genuinely empty pixel rather than a
|
|
17
|
+
* black one.
|
|
18
|
+
*
|
|
19
|
+
* - Alpha (1) / Alpha Inverted (2): the matte's alpha.
|
|
20
|
+
* - Luma (3) / Luma Inverted (4): the matte's luminance **composited over
|
|
21
|
+
* black**, which is what the premultiplied texel already holds — a matte that
|
|
22
|
+
* is 50 % grey at 50 % opacity reads as 0.25, matching After Effects, where a
|
|
23
|
+
* luma matte's transparent regions are black rather than ignored.
|
|
24
|
+
*
|
|
25
|
+
* Rec.601 weights, shared with `displacement-map`'s Luminance channel selector
|
|
26
|
+
* so the two agree on what "luminance" means.
|
|
27
|
+
*
|
|
28
|
+
* **Out of scope in v1, recorded rather than implied:** the matte is sampled at
|
|
29
|
+
* the host's own `v_uv`, so the runtime captures it into the host's box (see
|
|
30
|
+
* `captureSource`). After Effects places a matte layer in composition space
|
|
31
|
+
* with its own transform; a matte whose box differs from the layer's is
|
|
32
|
+
* therefore stretched here, not positioned. Every corpus matte is a
|
|
33
|
+
* full-frame sibling of its layer, where the two agree.
|
|
34
|
+
*/
|
|
35
|
+
import { DISPLACEMENT_MAP_CONSTANTS } from "./displacementMap.frag.js";
|
|
36
|
+
const { lumaR, lumaG, lumaB } = DISPLACEMENT_MAP_CONSTANTS;
|
|
37
|
+
/** The `mode` enum, named once so the def, the shader and the reference agree. */
|
|
38
|
+
export const LUMA_MATTE_MODES = {
|
|
39
|
+
alpha: 1,
|
|
40
|
+
alphaInverted: 2,
|
|
41
|
+
luma: 3,
|
|
42
|
+
lumaInverted: 4,
|
|
43
|
+
};
|
|
44
|
+
export const LUMA_MATTE_FRAG = `#version 300 es
|
|
45
|
+
precision highp float;
|
|
46
|
+
|
|
47
|
+
in vec2 v_uv;
|
|
48
|
+
out vec4 fragColor;
|
|
49
|
+
|
|
50
|
+
uniform vec2 u_size;
|
|
51
|
+
uniform float u_t;
|
|
52
|
+
uniform float u_fps;
|
|
53
|
+
uniform sampler2D u_src;
|
|
54
|
+
uniform sampler2D u_src2;
|
|
55
|
+
uniform float u_mode;
|
|
56
|
+
|
|
57
|
+
// The matte texel is premultiplied, so its rgb is already "over black" — the
|
|
58
|
+
// composite After Effects reads a luma matte through.
|
|
59
|
+
float hfCoverage(vec4 matte, float mode) {
|
|
60
|
+
if (mode < 1.5) return matte.a;
|
|
61
|
+
if (mode < 2.5) return 1.0 - matte.a;
|
|
62
|
+
float luma = dot(matte.rgb, vec3(${lumaR}, ${lumaG}, ${lumaB}));
|
|
63
|
+
if (mode < 3.5) return luma;
|
|
64
|
+
return 1.0 - luma;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
void main() {
|
|
68
|
+
vec4 src = texture(u_src, v_uv);
|
|
69
|
+
vec4 matte = texture(u_src2, v_uv);
|
|
70
|
+
fragColor = src * clamp(hfCoverage(matte, u_mode), 0.0, 1.0);
|
|
71
|
+
}
|
|
72
|
+
`;
|
|
73
|
+
//# sourceMappingURL=lumaMatte.frag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lumaMatte.frag.js","sourceRoot":"","sources":["../../src/vfx/lumaMatte.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,0BAA0B,CAAC;AAE3D,kFAAkF;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,CAAC;IACR,aAAa,EAAE,CAAC;IAChB,IAAI,EAAE,CAAC;IACP,YAAY,EAAE,CAAC;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;qCAkBM,KAAK,KAAK,KAAK,KAAK,KAAK;;;;;;;;;;CAU7D,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `noise` kernel — GLSL ES 3.00, capture `self`.
|
|
3
|
+
*
|
|
4
|
+
* A port of After Effects' `ADBE Noise`, decoded from `AEFX_Noise.metallib`
|
|
5
|
+
* (`docs/superpowers/specs/ae-metal-ir/AEFX_Noise.metallib.ll` in the exporter
|
|
6
|
+
* repo, helper `_Z5Noise8PixelRGBiifiiff`). The kernel is a pure integer hash of
|
|
7
|
+
* `(x, y, seed)` — no lookup table, no state between frames — so it ports
|
|
8
|
+
* exactly and stays seek-safe by construction.
|
|
9
|
+
*
|
|
10
|
+
* **What the IR says, read from the struct metadata rather than from prose.**
|
|
11
|
+
* `NoiseKernelValues` is `{ inDeviceFormat, inNoiseAmount, inUseColorNoise,
|
|
12
|
+
* inClipNoiseOutput, inRandomSeed_High, inRandomSeed_Low, inNoiseOffsetX,
|
|
13
|
+
* inNoiseOffsetY, … }`. So `ADBE Noise-0002` is **Use Color Noise**, a
|
|
14
|
+
* checkbox — not the "Noise Type (Uniform / Gaussian)" popup the deep dive
|
|
15
|
+
* guessed — and the two mystery seed floats are the halves of one 32-bit
|
|
16
|
+
* random seed. Both params are named here the way the metadata names them.
|
|
17
|
+
*
|
|
18
|
+
* Per channel:
|
|
19
|
+
*
|
|
20
|
+
* seed32 = (uint(seedHigh) << 16) | (uint(seedLow) & 0xFFFF)
|
|
21
|
+
* h = jenkinsMix(a, y, seed32) // Bob Jenkins' 1997 mix, verbatim
|
|
22
|
+
* t2 = h * 1103515245 + 12345
|
|
23
|
+
* t4 = t2 * 12996205 + 12345
|
|
24
|
+
* byte = ((t4 >> 16) & 0xFF) ^ ((t2 >> 9) & 0x7F80)
|
|
25
|
+
* noise = amount · (byte / 32704 − 0.5)
|
|
26
|
+
*
|
|
27
|
+
* with `a = x` for monochrome noise and `a = 3x + channel` (R, G, B) for colour
|
|
28
|
+
* noise — four separate hash blocks in the IR, three of them consecutive in
|
|
29
|
+
* `3x`. `32704` is the reciprocal constant `0x3F00002000000000` spelled as a
|
|
30
|
+
* fraction. The noise is ADDED to the buffer's colour and, when Clip Result
|
|
31
|
+
* Values is on, all four channels are clamped to [0, 1] — alpha is clamped but
|
|
32
|
+
* never noised.
|
|
33
|
+
*
|
|
34
|
+
* **Interim seed (plan Task 2.7, pending the Task 4.3 probe).** What the CPU
|
|
35
|
+
* puts in `inRandomSeed_High`/`inRandomSeed_Low` per frame is still unknown —
|
|
36
|
+
* it is the effect's Random Seed combined with something frame-derived, which
|
|
37
|
+
* is why the noise animates with no keyframed property. Until the probe pins
|
|
38
|
+
* it, this kernel seeds the low half with the frame index and leaves the high
|
|
39
|
+
* half at zero, so the pattern is deterministic per frame and different between
|
|
40
|
+
* frames. Switching to the decoded packing is a change to two lines here and
|
|
41
|
+
* two in the reference; nothing else depends on it, and the tests assert the
|
|
42
|
+
* byte distribution and determinism rather than After Effects parity.
|
|
43
|
+
*
|
|
44
|
+
* **Pixel space.** `x` and `y` are integer pixel coordinates with y measured
|
|
45
|
+
* from the TOP, which is how After Effects indexes the buffer — the shader's
|
|
46
|
+
* `v_uv` is y-up, so the row is flipped back here. `inNoiseOffsetX/Y` (the
|
|
47
|
+
* layer's origin inside the source buffer) are not modelled: a HyperFrames host
|
|
48
|
+
* always captures its own box, so its origin is (0, 0).
|
|
49
|
+
*
|
|
50
|
+
* **Premultiplication.** The noise is added to the captured texel as it is,
|
|
51
|
+
* which is premultiplied — the literal port, and After Effects' own buffers are
|
|
52
|
+
* premultiplied too. The consequence is worth stating: on a layer with
|
|
53
|
+
* transparency the noise lands in the transparent region as well, exactly as
|
|
54
|
+
* the effect does in After Effects.
|
|
55
|
+
*
|
|
56
|
+
* **`rgb ≤ a` is enforced regardless of `Clip Result Values`, and that is a
|
|
57
|
+
* deliberate DEPARTURE from AE, not a port of it.** A valid premultiplied
|
|
58
|
+
* colour always has `rgb ≤ a` component-wise (it is `straightRgb · a`); adding
|
|
59
|
+
* noise to `src.rgb` can push it above `src.a` on a near-transparent texel,
|
|
60
|
+
* and `clamp(out4, 0, 1)` alone does not fix that — it clamps each channel to
|
|
61
|
+
* [0, 1] independently, never rgb to a. After Effects can carry that
|
|
62
|
+
* transient state through its float pipeline because everything downstream of
|
|
63
|
+
* it is float too; every render target this runtime writes is 8-bit RGBA
|
|
64
|
+
* (`GL_ATTRS`, `makePingTarget`), and an invalid premultiplied texel read back
|
|
65
|
+
* later (e.g. straight-alpha `rgb / a` for display) reads as a blown-out
|
|
66
|
+
* bright fringe rather than the visible defect After Effects itself never
|
|
67
|
+
* produces. So the clamp to `a` runs unconditionally, on both the `Clip
|
|
68
|
+
* Result Values` on and off paths.
|
|
69
|
+
*
|
|
70
|
+
* **`Clip Result Values` off is otherwise inert here, and that is a real,
|
|
71
|
+
* currently permanent limitation, not a bug to fix in this file.** Every
|
|
72
|
+
* render target in this runtime — the visible `.hf-vfx-out` canvas AND the
|
|
73
|
+
* ping-pong intermediates a multi-node chain reads between passes — is 8-bit
|
|
74
|
+
* `UNSIGNED_BYTE` RGBA, and the GL spec clamps a float fragment output to
|
|
75
|
+
* [0, 1] on conversion to a normalized integer target regardless of what the
|
|
76
|
+
* shader computes. `u_clipping = 0` therefore cannot produce an unclamped
|
|
77
|
+
* value anywhere in this pipeline today; it would take a floating-point
|
|
78
|
+
* render target (a real infrastructure change, not a one-line fix) to give it
|
|
79
|
+
* one. Recorded rather than silently accepted: a reviewer who mutates this
|
|
80
|
+
* shader and finds `u_clipping` untestable is finding a known limitation, not
|
|
81
|
+
* a fresh bug.
|
|
82
|
+
*/
|
|
83
|
+
/**
|
|
84
|
+
* The constants the reference has to agree with, named once. `byteScale` is
|
|
85
|
+
* `0x3F00002000000000` from the IR — (1 + 2⁻⁹) · 2⁻¹⁵, i.e. 1/32704.
|
|
86
|
+
*/
|
|
87
|
+
export declare const NOISE_CONSTANTS: {
|
|
88
|
+
readonly lcgMulA: 1103515245;
|
|
89
|
+
readonly lcgMulB: 12996205;
|
|
90
|
+
readonly lcgAdd: 12345;
|
|
91
|
+
readonly highMask: 32640;
|
|
92
|
+
readonly lowMask: 255;
|
|
93
|
+
readonly byteScale: 32704;
|
|
94
|
+
};
|
|
95
|
+
export declare const NOISE_FRAG: string;
|
|
96
|
+
//# sourceMappingURL=noise.frag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noise.frag.d.ts","sourceRoot":"","sources":["../../src/vfx/noise.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;CAOlB,CAAC;AAIX,eAAO,MAAM,UAAU,QAwEtB,CAAC"}
|