@flighthq/effects 0.1.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/autoExposureEffect.d.ts +3 -0
- package/dist/autoExposureEffect.d.ts.map +1 -0
- package/dist/autoExposureEffect.js +4 -0
- package/dist/autoExposureEffect.js.map +1 -0
- package/dist/barrelDistortionEffect.d.ts +3 -0
- package/dist/barrelDistortionEffect.d.ts.map +1 -0
- package/dist/barrelDistortionEffect.js +4 -0
- package/dist/barrelDistortionEffect.js.map +1 -0
- package/dist/bloomEffect.d.ts +6 -0
- package/dist/bloomEffect.d.ts.map +1 -0
- package/dist/bloomEffect.js +16 -0
- package/dist/bloomEffect.js.map +1 -0
- package/dist/bokehDepthOfFieldEffect.d.ts +3 -0
- package/dist/bokehDepthOfFieldEffect.d.ts.map +1 -0
- package/dist/bokehDepthOfFieldEffect.js +4 -0
- package/dist/bokehDepthOfFieldEffect.js.map +1 -0
- package/dist/brightnessContrastEffect.d.ts +3 -0
- package/dist/brightnessContrastEffect.d.ts.map +1 -0
- package/dist/brightnessContrastEffect.js +4 -0
- package/dist/brightnessContrastEffect.js.map +1 -0
- package/dist/cameraMotionBlurEffect.d.ts +3 -0
- package/dist/cameraMotionBlurEffect.d.ts.map +1 -0
- package/dist/cameraMotionBlurEffect.js +4 -0
- package/dist/cameraMotionBlurEffect.js.map +1 -0
- package/dist/channelMixerEffect.d.ts +3 -0
- package/dist/channelMixerEffect.d.ts.map +1 -0
- package/dist/channelMixerEffect.js +4 -0
- package/dist/channelMixerEffect.js.map +1 -0
- package/dist/chromaticAberrationEffect.d.ts +3 -0
- package/dist/chromaticAberrationEffect.d.ts.map +1 -0
- package/dist/chromaticAberrationEffect.js +4 -0
- package/dist/chromaticAberrationEffect.js.map +1 -0
- package/dist/colorBlindSimulationEffect.d.ts +3 -0
- package/dist/colorBlindSimulationEffect.d.ts.map +1 -0
- package/dist/colorBlindSimulationEffect.js +4 -0
- package/dist/colorBlindSimulationEffect.js.map +1 -0
- package/dist/colorGradeEffect.d.ts +3 -0
- package/dist/colorGradeEffect.d.ts.map +1 -0
- package/dist/colorGradeEffect.js +4 -0
- package/dist/colorGradeEffect.js.map +1 -0
- package/dist/colorScienceMath.d.ts +9 -0
- package/dist/colorScienceMath.d.ts.map +1 -0
- package/dist/colorScienceMath.js +135 -0
- package/dist/colorScienceMath.js.map +1 -0
- package/dist/colorTemperatureMath.d.ts +5 -0
- package/dist/colorTemperatureMath.d.ts.map +1 -0
- package/dist/colorTemperatureMath.js +45 -0
- package/dist/colorTemperatureMath.js.map +1 -0
- package/dist/contactShadowsEffect.d.ts +3 -0
- package/dist/contactShadowsEffect.d.ts.map +1 -0
- package/dist/contactShadowsEffect.js +4 -0
- package/dist/contactShadowsEffect.js.map +1 -0
- package/dist/crtEffect.d.ts +3 -0
- package/dist/crtEffect.d.ts.map +1 -0
- package/dist/crtEffect.js +4 -0
- package/dist/crtEffect.js.map +1 -0
- package/dist/customShaderEffect.d.ts +3 -0
- package/dist/customShaderEffect.d.ts.map +1 -0
- package/dist/customShaderEffect.js +4 -0
- package/dist/customShaderEffect.js.map +1 -0
- package/dist/depthMath.d.ts +4 -0
- package/dist/depthMath.d.ts.map +1 -0
- package/dist/depthMath.js +55 -0
- package/dist/depthMath.js.map +1 -0
- package/dist/directionalBlurEffect.d.ts +3 -0
- package/dist/directionalBlurEffect.d.ts.map +1 -0
- package/dist/directionalBlurEffect.js +4 -0
- package/dist/directionalBlurEffect.js.map +1 -0
- package/dist/displacementEffect.d.ts +3 -0
- package/dist/displacementEffect.d.ts.map +1 -0
- package/dist/displacementEffect.js +4 -0
- package/dist/displacementEffect.js.map +1 -0
- package/dist/ditherEffect.d.ts +3 -0
- package/dist/ditherEffect.d.ts.map +1 -0
- package/dist/ditherEffect.js +4 -0
- package/dist/ditherEffect.js.map +1 -0
- package/dist/edgeDetectMath.d.ts +6 -0
- package/dist/edgeDetectMath.d.ts.map +1 -0
- package/dist/edgeDetectMath.js +72 -0
- package/dist/edgeDetectMath.js.map +1 -0
- package/dist/exposureEffect.d.ts +3 -0
- package/dist/exposureEffect.d.ts.map +1 -0
- package/dist/exposureEffect.js +4 -0
- package/dist/exposureEffect.js.map +1 -0
- package/dist/filmEmulationEffect.d.ts +3 -0
- package/dist/filmEmulationEffect.d.ts.map +1 -0
- package/dist/filmEmulationEffect.js +4 -0
- package/dist/filmEmulationEffect.js.map +1 -0
- package/dist/filmGrainEffect.d.ts +3 -0
- package/dist/filmGrainEffect.d.ts.map +1 -0
- package/dist/filmGrainEffect.js +4 -0
- package/dist/filmGrainEffect.js.map +1 -0
- package/dist/fxaaEffect.d.ts +3 -0
- package/dist/fxaaEffect.d.ts.map +1 -0
- package/dist/fxaaEffect.js +4 -0
- package/dist/fxaaEffect.js.map +1 -0
- package/dist/gaussianMath.d.ts +5 -0
- package/dist/gaussianMath.d.ts.map +1 -0
- package/dist/gaussianMath.js +42 -0
- package/dist/gaussianMath.js.map +1 -0
- package/dist/glitchEffect.d.ts +3 -0
- package/dist/glitchEffect.d.ts.map +1 -0
- package/dist/glitchEffect.js +4 -0
- package/dist/glitchEffect.js.map +1 -0
- package/dist/godRaysEffect.d.ts +3 -0
- package/dist/godRaysEffect.d.ts.map +1 -0
- package/dist/godRaysEffect.js +4 -0
- package/dist/godRaysEffect.js.map +1 -0
- package/dist/godRaysMath.d.ts +8 -0
- package/dist/godRaysMath.d.ts.map +1 -0
- package/dist/godRaysMath.js +49 -0
- package/dist/godRaysMath.js.map +1 -0
- package/dist/grayscaleEffect.d.ts +3 -0
- package/dist/grayscaleEffect.d.ts.map +1 -0
- package/dist/grayscaleEffect.js +4 -0
- package/dist/grayscaleEffect.js.map +1 -0
- package/dist/halftoneEffect.d.ts +3 -0
- package/dist/halftoneEffect.d.ts.map +1 -0
- package/dist/halftoneEffect.js +4 -0
- package/dist/halftoneEffect.js.map +1 -0
- package/dist/hueSaturationEffect.d.ts +3 -0
- package/dist/hueSaturationEffect.d.ts.map +1 -0
- package/dist/hueSaturationEffect.js +4 -0
- package/dist/hueSaturationEffect.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -0
- package/dist/invertEffect.d.ts +3 -0
- package/dist/invertEffect.d.ts.map +1 -0
- package/dist/invertEffect.js +4 -0
- package/dist/invertEffect.js.map +1 -0
- package/dist/kuwaharaEffect.d.ts +3 -0
- package/dist/kuwaharaEffect.d.ts.map +1 -0
- package/dist/kuwaharaEffect.js +4 -0
- package/dist/kuwaharaEffect.js.map +1 -0
- package/dist/kuwaharaMath.d.ts +6 -0
- package/dist/kuwaharaMath.d.ts.map +1 -0
- package/dist/kuwaharaMath.js +70 -0
- package/dist/kuwaharaMath.js.map +1 -0
- package/dist/lensDirtEffect.d.ts +3 -0
- package/dist/lensDirtEffect.d.ts.map +1 -0
- package/dist/lensDirtEffect.js +4 -0
- package/dist/lensDirtEffect.js.map +1 -0
- package/dist/lensDistortionEffect.d.ts +3 -0
- package/dist/lensDistortionEffect.d.ts.map +1 -0
- package/dist/lensDistortionEffect.js +4 -0
- package/dist/lensDistortionEffect.js.map +1 -0
- package/dist/lensFlareEffect.d.ts +3 -0
- package/dist/lensFlareEffect.d.ts.map +1 -0
- package/dist/lensFlareEffect.js +4 -0
- package/dist/lensFlareEffect.js.map +1 -0
- package/dist/liftGammaGainEffect.d.ts +3 -0
- package/dist/liftGammaGainEffect.d.ts.map +1 -0
- package/dist/liftGammaGainEffect.js +4 -0
- package/dist/liftGammaGainEffect.js.map +1 -0
- package/dist/lookupTableGradeEffect.d.ts +3 -0
- package/dist/lookupTableGradeEffect.d.ts.map +1 -0
- package/dist/lookupTableGradeEffect.js +4 -0
- package/dist/lookupTableGradeEffect.js.map +1 -0
- package/dist/lutMath.d.ts +7 -0
- package/dist/lutMath.d.ts.map +1 -0
- package/dist/lutMath.js +39 -0
- package/dist/lutMath.js.map +1 -0
- package/dist/motionBlurEffect.d.ts +3 -0
- package/dist/motionBlurEffect.d.ts.map +1 -0
- package/dist/motionBlurEffect.js +4 -0
- package/dist/motionBlurEffect.js.map +1 -0
- package/dist/outlineEffect.d.ts +3 -0
- package/dist/outlineEffect.d.ts.map +1 -0
- package/dist/outlineEffect.js +4 -0
- package/dist/outlineEffect.js.map +1 -0
- package/dist/panniniProjectionEffect.d.ts +3 -0
- package/dist/panniniProjectionEffect.d.ts.map +1 -0
- package/dist/panniniProjectionEffect.js +4 -0
- package/dist/panniniProjectionEffect.js.map +1 -0
- package/dist/pixelateEffect.d.ts +3 -0
- package/dist/pixelateEffect.d.ts.map +1 -0
- package/dist/pixelateEffect.js +4 -0
- package/dist/pixelateEffect.js.map +1 -0
- package/dist/posterizeEffect.d.ts +3 -0
- package/dist/posterizeEffect.d.ts.map +1 -0
- package/dist/posterizeEffect.js +4 -0
- package/dist/posterizeEffect.js.map +1 -0
- package/dist/radialBlurEffect.d.ts +3 -0
- package/dist/radialBlurEffect.d.ts.map +1 -0
- package/dist/radialBlurEffect.js +4 -0
- package/dist/radialBlurEffect.js.map +1 -0
- package/dist/renderEffectDefaults.d.ts +4 -0
- package/dist/renderEffectDefaults.d.ts.map +1 -0
- package/dist/renderEffectDefaults.js +111 -0
- package/dist/renderEffectDefaults.js.map +1 -0
- package/dist/renderEffectInputs.d.ts +5 -0
- package/dist/renderEffectInputs.d.ts.map +1 -0
- package/dist/renderEffectInputs.js +87 -0
- package/dist/renderEffectInputs.js.map +1 -0
- package/dist/renderEffectInterpolation.d.ts +4 -0
- package/dist/renderEffectInterpolation.d.ts.map +1 -0
- package/dist/renderEffectInterpolation.js +75 -0
- package/dist/renderEffectInterpolation.js.map +1 -0
- package/dist/renderEffectValidation.d.ts +3 -0
- package/dist/renderEffectValidation.d.ts.map +1 -0
- package/dist/renderEffectValidation.js +18 -0
- package/dist/renderEffectValidation.js.map +1 -0
- package/dist/scanlinesEffect.d.ts +3 -0
- package/dist/scanlinesEffect.d.ts.map +1 -0
- package/dist/scanlinesEffect.js +4 -0
- package/dist/scanlinesEffect.js.map +1 -0
- package/dist/screenSpaceFogEffect.d.ts +3 -0
- package/dist/screenSpaceFogEffect.d.ts.map +1 -0
- package/dist/screenSpaceFogEffect.js +4 -0
- package/dist/screenSpaceFogEffect.js.map +1 -0
- package/dist/sepiaEffect.d.ts +3 -0
- package/dist/sepiaEffect.d.ts.map +1 -0
- package/dist/sepiaEffect.js +4 -0
- package/dist/sepiaEffect.js.map +1 -0
- package/dist/sharpenEffect.d.ts +3 -0
- package/dist/sharpenEffect.d.ts.map +1 -0
- package/dist/sharpenEffect.js +4 -0
- package/dist/sharpenEffect.js.map +1 -0
- package/dist/sketchEffect.d.ts +3 -0
- package/dist/sketchEffect.d.ts.map +1 -0
- package/dist/sketchEffect.js +4 -0
- package/dist/sketchEffect.js.map +1 -0
- package/dist/smaaEffect.d.ts +3 -0
- package/dist/smaaEffect.d.ts.map +1 -0
- package/dist/smaaEffect.js +4 -0
- package/dist/smaaEffect.js.map +1 -0
- package/dist/ssaoEffect.d.ts +3 -0
- package/dist/ssaoEffect.d.ts.map +1 -0
- package/dist/ssaoEffect.js +4 -0
- package/dist/ssaoEffect.js.map +1 -0
- package/dist/ssrEffect.d.ts +3 -0
- package/dist/ssrEffect.d.ts.map +1 -0
- package/dist/ssrEffect.js +4 -0
- package/dist/ssrEffect.js.map +1 -0
- package/dist/stylizeMath.d.ts +9 -0
- package/dist/stylizeMath.d.ts.map +1 -0
- package/dist/stylizeMath.js +77 -0
- package/dist/stylizeMath.js.map +1 -0
- package/dist/taaEffect.d.ts +3 -0
- package/dist/taaEffect.d.ts.map +1 -0
- package/dist/taaEffect.js +4 -0
- package/dist/taaEffect.js.map +1 -0
- package/dist/tiltShiftEffect.d.ts +3 -0
- package/dist/tiltShiftEffect.d.ts.map +1 -0
- package/dist/tiltShiftEffect.js +4 -0
- package/dist/tiltShiftEffect.js.map +1 -0
- package/dist/toneMapEffect.d.ts +3 -0
- package/dist/toneMapEffect.d.ts.map +1 -0
- package/dist/toneMapEffect.js +4 -0
- package/dist/toneMapEffect.js.map +1 -0
- package/dist/toneMapMath.d.ts +12 -0
- package/dist/toneMapMath.d.ts.map +1 -0
- package/dist/toneMapMath.js +110 -0
- package/dist/toneMapMath.js.map +1 -0
- package/dist/vignetteEffect.d.ts +3 -0
- package/dist/vignetteEffect.d.ts.map +1 -0
- package/dist/vignetteEffect.js +4 -0
- package/dist/vignetteEffect.js.map +1 -0
- package/dist/volumetricLightEffect.d.ts +3 -0
- package/dist/volumetricLightEffect.d.ts.map +1 -0
- package/dist/volumetricLightEffect.js +4 -0
- package/dist/volumetricLightEffect.js.map +1 -0
- package/dist/whiteBalanceEffect.d.ts +3 -0
- package/dist/whiteBalanceEffect.d.ts.map +1 -0
- package/dist/whiteBalanceEffect.js +4 -0
- package/dist/whiteBalanceEffect.js.map +1 -0
- package/package.json +37 -0
- package/src/autoExposureEffect.test.ts +11 -0
- package/src/barrelDistortionEffect.test.ts +11 -0
- package/src/bloomEffect.test.ts +41 -0
- package/src/bokehDepthOfFieldEffect.test.ts +15 -0
- package/src/brightnessContrastEffect.test.ts +14 -0
- package/src/cameraMotionBlurEffect.test.ts +14 -0
- package/src/channelMixerEffect.test.ts +12 -0
- package/src/chromaticAberrationEffect.test.ts +14 -0
- package/src/colorBlindSimulationEffect.test.ts +13 -0
- package/src/colorGradeEffect.test.ts +11 -0
- package/src/colorScienceMath.test.ts +160 -0
- package/src/colorTemperatureMath.test.ts +67 -0
- package/src/contactShadowsEffect.test.ts +14 -0
- package/src/crtEffect.test.ts +16 -0
- package/src/customShaderEffect.test.ts +14 -0
- package/src/depthMath.test.ts +71 -0
- package/src/directionalBlurEffect.test.ts +11 -0
- package/src/displacementEffect.test.ts +15 -0
- package/src/ditherEffect.test.ts +11 -0
- package/src/edgeDetectMath.test.ts +84 -0
- package/src/exposureEffect.test.ts +7 -0
- package/src/filmEmulationEffect.test.ts +14 -0
- package/src/filmGrainEffect.test.ts +15 -0
- package/src/fxaaEffect.test.ts +14 -0
- package/src/gaussianMath.test.ts +93 -0
- package/src/glitchEffect.test.ts +16 -0
- package/src/godRaysEffect.test.ts +15 -0
- package/src/godRaysMath.test.ts +63 -0
- package/src/grayscaleEffect.test.ts +11 -0
- package/src/halftoneEffect.test.ts +11 -0
- package/src/hueSaturationEffect.test.ts +15 -0
- package/src/invertEffect.test.ts +11 -0
- package/src/kuwaharaEffect.test.ts +11 -0
- package/src/kuwaharaMath.test.ts +65 -0
- package/src/lensDirtEffect.test.ts +15 -0
- package/src/lensDistortionEffect.test.ts +11 -0
- package/src/lensFlareEffect.test.ts +16 -0
- package/src/liftGammaGainEffect.test.ts +15 -0
- package/src/lookupTableGradeEffect.test.ts +11 -0
- package/src/lutMath.test.ts +67 -0
- package/src/motionBlurEffect.test.ts +11 -0
- package/src/outlineEffect.test.ts +15 -0
- package/src/panniniProjectionEffect.test.ts +14 -0
- package/src/pixelateEffect.test.ts +11 -0
- package/src/posterizeEffect.test.ts +11 -0
- package/src/radialBlurEffect.test.ts +15 -0
- package/src/renderEffectDefaults.test.ts +70 -0
- package/src/renderEffectInputs.test.ts +60 -0
- package/src/renderEffectInterpolation.test.ts +71 -0
- package/src/renderEffectValidation.test.ts +37 -0
- package/src/scanlinesEffect.test.ts +11 -0
- package/src/screenSpaceFogEffect.test.ts +14 -0
- package/src/sepiaEffect.test.ts +11 -0
- package/src/sharpenEffect.test.ts +11 -0
- package/src/sketchEffect.test.ts +11 -0
- package/src/smaaEffect.test.ts +11 -0
- package/src/ssaoEffect.test.ts +11 -0
- package/src/ssrEffect.test.ts +11 -0
- package/src/stylizeMath.test.ts +99 -0
- package/src/taaEffect.test.ts +11 -0
- package/src/tiltShiftEffect.test.ts +15 -0
- package/src/toneMapEffect.test.ts +7 -0
- package/src/toneMapMath.test.ts +145 -0
- package/src/vignetteEffect.test.ts +16 -0
- package/src/volumetricLightEffect.test.ts +14 -0
- package/src/whiteBalanceEffect.test.ts +11 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// Animation-friendly interpolation for render-effect intents. Allows tween/timeline to animate
|
|
2
|
+
// effect parameters smoothly across keyframes. All functions are alias-safe.
|
|
3
|
+
// Returns true if `a` and `b` can be interpolated: they must be the same `kind`.
|
|
4
|
+
// A mismatch (different kinds, or either undefined) returns false — callers should snap in that case.
|
|
5
|
+
export function canLerpRenderEffects(a, b) {
|
|
6
|
+
return a.kind === b.kind;
|
|
7
|
+
}
|
|
8
|
+
// Linearly interpolates all numeric fields between two effects of the same kind, writing the
|
|
9
|
+
// result into `out`. Boolean fields snap to `a`'s value (t < 0.5) or `b`'s value (t >= 0.5).
|
|
10
|
+
// Enum/string fields snap at t = 0.5. Readonly arrays (e.g. mipWeights) are not interpolated —
|
|
11
|
+
// `out` receives `a`'s value for t < 0.5, `b`'s otherwise.
|
|
12
|
+
//
|
|
13
|
+
// The `out` parameter must be the same kind as `a` and `b`; its existing fields are overwritten.
|
|
14
|
+
// If `a.kind !== b.kind`, `out` is left unchanged and the function returns false.
|
|
15
|
+
// Returns true on success, false on kind mismatch. Never throws.
|
|
16
|
+
// Alias-safe: reads all values from `a` and `b` before writing to `out` (safe if out === a or out === b).
|
|
17
|
+
export function lerpRenderEffect(a, b, t, out) {
|
|
18
|
+
if (a.kind !== b.kind)
|
|
19
|
+
return false;
|
|
20
|
+
const tc = Math.max(0, Math.min(1, t));
|
|
21
|
+
// Collect all numeric keys from both effects before writing.
|
|
22
|
+
const numericKeys = new Set();
|
|
23
|
+
const booleanKeys = new Set();
|
|
24
|
+
const stringKeys = new Set();
|
|
25
|
+
const aRec = a;
|
|
26
|
+
const bRec = b;
|
|
27
|
+
for (const key of Object.keys(aRec)) {
|
|
28
|
+
if (key === 'kind')
|
|
29
|
+
continue;
|
|
30
|
+
const va = aRec[key];
|
|
31
|
+
const vb = bRec[key];
|
|
32
|
+
if (typeof va === 'number' || typeof vb === 'number') {
|
|
33
|
+
numericKeys.add(key);
|
|
34
|
+
}
|
|
35
|
+
else if (typeof va === 'boolean' || typeof vb === 'boolean') {
|
|
36
|
+
booleanKeys.add(key);
|
|
37
|
+
}
|
|
38
|
+
else if (typeof va === 'string' || typeof vb === 'string') {
|
|
39
|
+
stringKeys.add(key);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
for (const key of Object.keys(bRec)) {
|
|
43
|
+
if (key === 'kind')
|
|
44
|
+
continue;
|
|
45
|
+
if (!numericKeys.has(key) && !booleanKeys.has(key) && !stringKeys.has(key)) {
|
|
46
|
+
const vb = bRec[key];
|
|
47
|
+
if (typeof vb === 'number')
|
|
48
|
+
numericKeys.add(key);
|
|
49
|
+
else if (typeof vb === 'boolean')
|
|
50
|
+
booleanKeys.add(key);
|
|
51
|
+
else if (typeof vb === 'string')
|
|
52
|
+
stringKeys.add(key);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Read snapshot from a and b, then write to out.
|
|
56
|
+
const outRecord = out;
|
|
57
|
+
for (const key of numericKeys) {
|
|
58
|
+
const va = aRec[key];
|
|
59
|
+
const vb = bRec[key];
|
|
60
|
+
if (va !== undefined && vb !== undefined) {
|
|
61
|
+
outRecord[key] = va + (vb - va) * tc;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
outRecord[key] = tc < 0.5 ? va : vb;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
for (const key of booleanKeys) {
|
|
68
|
+
outRecord[key] = tc < 0.5 ? aRec[key] : bRec[key];
|
|
69
|
+
}
|
|
70
|
+
for (const key of stringKeys) {
|
|
71
|
+
outRecord[key] = tc < 0.5 ? aRec[key] : bRec[key];
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=renderEffectInterpolation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderEffectInterpolation.js","sourceRoot":"","sources":["../src/renderEffectInterpolation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RenderEffect, RenderEffectInput } from '@flighthq/types';
|
|
2
|
+
export declare function validateRenderEffectList(effects: readonly Readonly<RenderEffect>[], available: readonly RenderEffectInput[]): RenderEffectInput | null;
|
|
3
|
+
//# sourceMappingURL=renderEffectValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderEffectValidation.d.ts","sourceRoot":"","sources":["../src/renderEffectValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAUvE,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,QAAQ,CAAC,YAAY,CAAC,EAAE,EAC1C,SAAS,EAAE,SAAS,iBAAiB,EAAE,GACtC,iBAAiB,GAAG,IAAI,CAU1B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { getRenderEffectInputs } from './renderEffectInputs';
|
|
2
|
+
// Effect-stack validation and defaulting helpers. Pure data functions — no backend knowledge.
|
|
3
|
+
// Validates that an effect list's required render inputs are satisfied by the available inputs.
|
|
4
|
+
// Returns the first RenderEffectInput that is required but not in `available`, or `null` if the
|
|
5
|
+
// list is fully satisfiable.
|
|
6
|
+
// Sentinel-style return (never throws); ordering/composition stays in the render layer.
|
|
7
|
+
export function validateRenderEffectList(effects, available) {
|
|
8
|
+
for (const effect of effects) {
|
|
9
|
+
const required = getRenderEffectInputs(effect);
|
|
10
|
+
for (const input of required) {
|
|
11
|
+
if (!available.includes(input)) {
|
|
12
|
+
return input;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=renderEffectValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderEffectValidation.js","sourceRoot":"","sources":["../src/renderEffectValidation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,8FAA8F;AAE9F,gGAAgG;AAChG,gGAAgG;AAChG,6BAA6B;AAC7B,wFAAwF;AACxF,MAAM,UAAU,wBAAwB,CACtC,OAA0C,EAC1C,SAAuC;IAEvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanlinesEffect.d.ts","sourceRoot":"","sources":["../src/scanlinesEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAM,GAAG,eAAe,CAE5G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanlinesEffect.js","sourceRoot":"","sources":["../src/scanlinesEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenSpaceFogEffect.d.ts","sourceRoot":"","sources":["../src/screenSpaceFogEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAM,GACzD,oBAAoB,CAEtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenSpaceFogEffect.js","sourceRoot":"","sources":["../src/screenSpaceFogEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,0BAA0B,CACxC,UAAwD,EAAE;IAE1D,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,OAAO,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sepiaEffect.d.ts","sourceRoot":"","sources":["../src/sepiaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAM,GAAG,WAAW,CAEhG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sepiaEffect.js","sourceRoot":"","sources":["../src/sepiaEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,UAA+C,EAAE;IACjF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharpenEffect.d.ts","sourceRoot":"","sources":["../src/sharpenEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAM,GAAG,aAAa,CAEtG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharpenEffect.js","sourceRoot":"","sources":["../src/sharpenEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,UAAiD,EAAE;IACrF,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sketchEffect.d.ts","sourceRoot":"","sources":["../src/sketchEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAM,GAAG,YAAY,CAEnG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sketchEffect.js","sourceRoot":"","sources":["../src/sketchEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,UAAgD,EAAE;IACnF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smaaEffect.d.ts","sourceRoot":"","sources":["../src/smaaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAM,GAAG,UAAU,CAE7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smaaEffect.js","sourceRoot":"","sources":["../src/smaaEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,UAA8C,EAAE;IAC/E,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssaoEffect.d.ts","sourceRoot":"","sources":["../src/ssaoEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAM,GAAG,UAAU,CAE7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssaoEffect.js","sourceRoot":"","sources":["../src/ssaoEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,UAA8C,EAAE;IAC/E,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssrEffect.d.ts","sourceRoot":"","sources":["../src/ssrEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,wBAAgB,eAAe,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAM,GAAG,SAAS,CAE1F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssrEffect.js","sourceRoot":"","sources":["../src/ssrEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,UAA6C,EAAE;IAC7E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function computeCrtMaskParams(resolution: number, // render target height (pixels) for scaling the mask.
|
|
2
|
+
curvature: number, // barrel curvature [0..1]. Default 0.1.
|
|
3
|
+
out: [number, number]): void;
|
|
4
|
+
export declare function computeHalftoneCellParams(frequency: number, angle: number, out: [number, number, number]): void;
|
|
5
|
+
export declare function computeScanlineParams(resolution: number, // render target height for scaling.
|
|
6
|
+
intensity: number, // scanline intensity [0..1].
|
|
7
|
+
out: [number, number]): void;
|
|
8
|
+
export declare function createBayerMatrix(order: number, out: Float32Array): number;
|
|
9
|
+
//# sourceMappingURL=stylizeMath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stylizeMath.d.ts","sourceRoot":"","sources":["../src/stylizeMath.ts"],"names":[],"mappings":"AAQA,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAAE,sDAAsD;AAC1E,SAAS,EAAE,MAAM,EAAE,wCAAwC;AAC3D,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACpB,IAAI,CAMN;AAMD,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAK/G;AAMD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAAE,oCAAoC;AACxD,SAAS,EAAE,MAAM,EAAE,6BAA6B;AAChD,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACpB,IAAI,CAIN;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAkC1E"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Stylize-effect recipe math. Substrate-agnostic helpers for CRT, halftone, dither, scanline,
|
|
2
|
+
// and related stylize effects. All functions are alias-safe and zero-allocation (out-param).
|
|
3
|
+
// Computes CRT mask/barrel parameters for a CRT effect.
|
|
4
|
+
// Writes [maskScale, curvatureStrength] into `out`.
|
|
5
|
+
// maskScale: pixel-grid cell size for the RGB phosphor mask.
|
|
6
|
+
// curvatureStrength: barrel curvature magnitude [0..1].
|
|
7
|
+
// Alias-safe.
|
|
8
|
+
export function computeCrtMaskParams(resolution, // render target height (pixels) for scaling the mask.
|
|
9
|
+
curvature, // barrel curvature [0..1]. Default 0.1.
|
|
10
|
+
out) {
|
|
11
|
+
// Mask scale normalized to physical scanline height.
|
|
12
|
+
const maskScale = Math.max(1, resolution) / 360; // normalize to 360p reference.
|
|
13
|
+
const curv = Math.max(0, Math.min(1, curvature));
|
|
14
|
+
out[0] = maskScale;
|
|
15
|
+
out[1] = curv * 0.1; // map [0..1] to [0..0.1] barrel strength.
|
|
16
|
+
}
|
|
17
|
+
// Computes halftone cell parameters for a given screen frequency and angle.
|
|
18
|
+
// Returns [cellSize, cosAngle, sinAngle] for use in a halftone shader.
|
|
19
|
+
// frequency: dots per pixel (e.g. 1/8 for 8px cells). angle: radians (common 45° = π/4).
|
|
20
|
+
// Alias-safe.
|
|
21
|
+
export function computeHalftoneCellParams(frequency, angle, out) {
|
|
22
|
+
const cellSize = frequency > 1e-10 ? 1 / frequency : 1;
|
|
23
|
+
out[0] = cellSize;
|
|
24
|
+
out[1] = Math.cos(angle);
|
|
25
|
+
out[2] = Math.sin(angle);
|
|
26
|
+
}
|
|
27
|
+
// Computes scanline parameters: [scanlineWidth, scanlineSoftness].
|
|
28
|
+
// scanlineWidth: normalized scanline thickness relative to a single pixel.
|
|
29
|
+
// intensity: scanline darkness [0..1].
|
|
30
|
+
// Alias-safe.
|
|
31
|
+
export function computeScanlineParams(resolution, // render target height for scaling.
|
|
32
|
+
intensity, // scanline intensity [0..1].
|
|
33
|
+
out) {
|
|
34
|
+
const scale = Math.max(1, resolution) / 480; // normalize to 480p reference.
|
|
35
|
+
out[0] = scale;
|
|
36
|
+
out[1] = Math.max(0, Math.min(1, intensity));
|
|
37
|
+
}
|
|
38
|
+
// Creates a Bayer ordered-dither matrix of the given order (1=2×2, 2=4×4, 3=8×8, ...).
|
|
39
|
+
// Writes `order^2` normalized values into `out` in row-major order. Values are in [0..1).
|
|
40
|
+
// `out` must have capacity >= (2^order)^2. Returns the matrix size (2^order).
|
|
41
|
+
// Alias-safe: no external shared state.
|
|
42
|
+
export function createBayerMatrix(order, out) {
|
|
43
|
+
const size = Math.pow(2, Math.max(1, Math.round(order)));
|
|
44
|
+
const sizeSq = size * size;
|
|
45
|
+
// Build the Bayer matrix recursively via the recurrence:
|
|
46
|
+
// B(2n) = [ B(n)*4, B(n)*4+2; B(n)*4+3, B(n)*4+1 ] / (4n^2)
|
|
47
|
+
// Start with the base 2×2 matrix [0,2;3,1] / 4.
|
|
48
|
+
const raw = new Float32Array(sizeSq);
|
|
49
|
+
raw[0] = 0;
|
|
50
|
+
raw[1] = 2;
|
|
51
|
+
raw[2] = 3;
|
|
52
|
+
raw[3] = 1;
|
|
53
|
+
let currentSize = 2;
|
|
54
|
+
while (currentSize < size) {
|
|
55
|
+
const next = currentSize * 2;
|
|
56
|
+
const nextSq = next * next;
|
|
57
|
+
const tmp = new Float32Array(nextSq);
|
|
58
|
+
for (let y = 0; y < currentSize; y++) {
|
|
59
|
+
for (let x = 0; x < currentSize; x++) {
|
|
60
|
+
const base = raw[y * currentSize + x] * 4;
|
|
61
|
+
tmp[y * next + x] = base;
|
|
62
|
+
tmp[y * next + (x + currentSize)] = base + 2;
|
|
63
|
+
tmp[(y + currentSize) * next + x] = base + 3;
|
|
64
|
+
tmp[(y + currentSize) * next + (x + currentSize)] = base + 1;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
raw.set(tmp);
|
|
68
|
+
currentSize = next;
|
|
69
|
+
}
|
|
70
|
+
// Normalize to [0..1).
|
|
71
|
+
const invSizeSq = 1 / sizeSq;
|
|
72
|
+
for (let i = 0; i < sizeSq; i++) {
|
|
73
|
+
out[i] = raw[i] * invSizeSq;
|
|
74
|
+
}
|
|
75
|
+
return size;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=stylizeMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stylizeMath.js","sourceRoot":"","sources":["../src/stylizeMath.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taaEffect.d.ts","sourceRoot":"","sources":["../src/taaEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,wBAAgB,eAAe,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAM,GAAG,SAAS,CAE1F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taaEffect.js","sourceRoot":"","sources":["../src/taaEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,UAA6C,EAAE;IAC7E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiltShiftEffect.d.ts","sourceRoot":"","sources":["../src/tiltShiftEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAM,GAAG,eAAe,CAE5G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiltShiftEffect.js","sourceRoot":"","sources":["../src/tiltShiftEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,UAAmD,EAAE;IACzF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toneMapEffect.d.ts","sourceRoot":"","sources":["../src/toneMapEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAM,GAAG,aAAa,CAEtG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toneMapEffect.js","sourceRoot":"","sources":["../src/toneMapEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,UAAiD,EAAE;IACrF,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AgxToneMapOptions } from '@flighthq/types';
|
|
2
|
+
import type { FilmicToneMapOptions } from '@flighthq/types';
|
|
3
|
+
export declare function computeAcesToneMap(x: number): number;
|
|
4
|
+
export declare function computeAgxToneMap(x: number, options?: Readonly<AgxToneMapOptions>): number;
|
|
5
|
+
export declare function computeExposureScale(exposure: number): number;
|
|
6
|
+
export declare function computeFilmicToneMap(x: number, options?: Readonly<FilmicToneMapOptions>): number;
|
|
7
|
+
export declare function computeReinhardExtendedToneMap(x: number, white: number): number;
|
|
8
|
+
export declare function computeReinhardToneMap(x: number): number;
|
|
9
|
+
export declare function computeUncharted2ToneMap(x: number): number;
|
|
10
|
+
export declare function getAcesInputMatrix(out: Float32Array): void;
|
|
11
|
+
export declare function getAcesOutputMatrix(out: Float32Array): void;
|
|
12
|
+
//# sourceMappingURL=toneMapMath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toneMapMath.d.ts","sourceRoot":"","sources":["../src/toneMapMath.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAI5D,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAOpD;AAID,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAO1F;AAID,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAID,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAmBhG;AAID,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/E;AAGD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD;AAID,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ1D;AAID,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAW1D;AAID,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAW3D"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// Tone-mapping recipe math. Substrate-agnostic evaluators for all ToneMapEffect operators so every
|
|
2
|
+
// backend shares one implementation. All scalar functions operate on a single linear-light luminance
|
|
3
|
+
// or RGB value (per-channel application is the caller's responsibility). All matrix functions write
|
|
4
|
+
// into caller-provided arrays. All functions are alias-safe.
|
|
5
|
+
// Narkowicz ACES filmic approximation — a fast sigmoid fit to the full ACES RRT+ODT.
|
|
6
|
+
// Reference: Narkowicz 2015, "ACES Filmic Tone Mapping Curve".
|
|
7
|
+
export function computeAcesToneMap(x) {
|
|
8
|
+
const a = 2.51;
|
|
9
|
+
const b = 0.03;
|
|
10
|
+
const c = 2.43;
|
|
11
|
+
const d = 0.59;
|
|
12
|
+
const e = 0.14;
|
|
13
|
+
return Math.max(0, Math.min(1, (x * (a * x + b)) / (x * (c * x + d) + e)));
|
|
14
|
+
}
|
|
15
|
+
// AgX tone map — a modern open-domain operator designed for accuracy over the sRGB gamut.
|
|
16
|
+
// Reference: Sobotka 2022 / Filament AgX. Operates on a single channel; apply per-channel.
|
|
17
|
+
export function computeAgxToneMap(x, options) {
|
|
18
|
+
const min_ev = options?.minEv ?? -12.47393;
|
|
19
|
+
const max_ev = options?.maxEv ?? 4.026069;
|
|
20
|
+
const val = Math.max(1e-10, x);
|
|
21
|
+
const log = Math.max(min_ev, Math.min(max_ev, Math.log2(val)));
|
|
22
|
+
const normalized = (log - min_ev) / (max_ev - min_ev);
|
|
23
|
+
return agxDefaultContrastApprox(normalized);
|
|
24
|
+
}
|
|
25
|
+
// Converts an exposure value (EV, photographer's stops) to a linear scene-light multiplier.
|
|
26
|
+
// EV=0 → 1.0, EV=1 → 2.0, EV=-1 → 0.5. Apply before tone mapping.
|
|
27
|
+
export function computeExposureScale(exposure) {
|
|
28
|
+
return Math.pow(2, exposure);
|
|
29
|
+
}
|
|
30
|
+
// Lottes 2016 filmic operator ("Advanced Techniques and Optimization of VDB Volume").
|
|
31
|
+
// A smooth S-curve with adjustable shoulder and contrast.
|
|
32
|
+
export function computeFilmicToneMap(x, options) {
|
|
33
|
+
const maxBrightness = options?.maxBrightness ?? 1.0;
|
|
34
|
+
const contrast = options?.contrast ?? 1.0;
|
|
35
|
+
const linearStart = options?.linearStart ?? 0.22;
|
|
36
|
+
const linearLength = options?.linearLength ?? 0.4;
|
|
37
|
+
const blackTighten = options?.blackTighten ?? 1.33;
|
|
38
|
+
const pedestal = options?.pedestal ?? 0.0;
|
|
39
|
+
const l0 = ((maxBrightness - linearStart) * linearLength) / contrast;
|
|
40
|
+
const L0 = linearStart - linearStart / contrast;
|
|
41
|
+
const L1 = linearStart + (1.0 - linearStart) / contrast;
|
|
42
|
+
const S0 = linearStart + l0;
|
|
43
|
+
const S1 = linearStart + contrast * l0;
|
|
44
|
+
const C2 = contrast / (maxBrightness - S1);
|
|
45
|
+
const CP = -C2 / Math.log(2);
|
|
46
|
+
const w0 = 1.0 - smoothstep01(linearStart, S0, x);
|
|
47
|
+
const T = linearStart * Math.pow(x / linearStart, blackTighten) + pedestal;
|
|
48
|
+
const L = linearStart + contrast * (x - linearStart);
|
|
49
|
+
const S = maxBrightness - (maxBrightness - S1) * Math.exp(CP * (x - S0));
|
|
50
|
+
return Math.max(0, w0 * (1.0 - smoothstep01(L0, L1, x)) * T + smoothstep01(L0, L1, x) * L + (1.0 - w0) * S);
|
|
51
|
+
}
|
|
52
|
+
// Extended Reinhard with white-point: out = x * (1 + x/w²) / (1 + x). At x == w the output is 1.
|
|
53
|
+
// White point `w` should be the maximum scene luminance (default ~∞ → standard Reinhard).
|
|
54
|
+
export function computeReinhardExtendedToneMap(x, white) {
|
|
55
|
+
const w2 = white * white;
|
|
56
|
+
return (x * (1 + x / w2)) / (1 + x);
|
|
57
|
+
}
|
|
58
|
+
// Reinhard tone map operator: out = x / (1 + x). Compresses HDR to [0, 1).
|
|
59
|
+
export function computeReinhardToneMap(x) {
|
|
60
|
+
return x / (1 + x);
|
|
61
|
+
}
|
|
62
|
+
// Hable "Uncharted 2" filmic tone map (John Hable's partial/final equation).
|
|
63
|
+
// Reference: Hable 2010, "Filmic Tonemapping with Piecewise Power Curves".
|
|
64
|
+
export function computeUncharted2ToneMap(x) {
|
|
65
|
+
const A = 0.15;
|
|
66
|
+
const B = 0.5;
|
|
67
|
+
const C = 0.1;
|
|
68
|
+
const D = 0.2;
|
|
69
|
+
const E = 0.02;
|
|
70
|
+
const F = 0.3;
|
|
71
|
+
return (x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F) - E / F;
|
|
72
|
+
}
|
|
73
|
+
// ACES input matrix (converts sRGB to ACES AP0). Writes a column-major 3×3 matrix (9 values) into `out`.
|
|
74
|
+
// Alias-safe: computes all values before writing.
|
|
75
|
+
export function getAcesInputMatrix(out) {
|
|
76
|
+
// sRGB D65 → ACES AP0 D60
|
|
77
|
+
out[0] = 0.59719;
|
|
78
|
+
out[1] = 0.076;
|
|
79
|
+
out[2] = 0.0284;
|
|
80
|
+
out[3] = 0.35458;
|
|
81
|
+
out[4] = 0.90834;
|
|
82
|
+
out[5] = 0.13383;
|
|
83
|
+
out[6] = 0.04823;
|
|
84
|
+
out[7] = 0.01566;
|
|
85
|
+
out[8] = 0.83777;
|
|
86
|
+
}
|
|
87
|
+
// ACES output matrix (converts ACES AP1 to sRGB). Writes a column-major 3×3 matrix (9 values) into `out`.
|
|
88
|
+
// Alias-safe.
|
|
89
|
+
export function getAcesOutputMatrix(out) {
|
|
90
|
+
// ACES AP1 → sRGB D65
|
|
91
|
+
out[0] = 1.60475;
|
|
92
|
+
out[1] = -0.10208;
|
|
93
|
+
out[2] = -0.00327;
|
|
94
|
+
out[3] = -0.53108;
|
|
95
|
+
out[4] = 1.10813;
|
|
96
|
+
out[5] = -0.07276;
|
|
97
|
+
out[6] = -0.07367;
|
|
98
|
+
out[7] = -0.00605;
|
|
99
|
+
out[8] = 1.07602;
|
|
100
|
+
}
|
|
101
|
+
function agxDefaultContrastApprox(x) {
|
|
102
|
+
const x2 = x * x;
|
|
103
|
+
const x4 = x2 * x2;
|
|
104
|
+
return 15.5 * x4 * x2 - 40.14 * x4 * x + 31.96 * x4 - 6.868 * x2 * x + 0.4298 * x2 + 0.1191 * x - 0.00232;
|
|
105
|
+
}
|
|
106
|
+
function smoothstep01(edge0, edge1, x) {
|
|
107
|
+
const t = Math.max(0, Math.min(1, (x - edge0) / (edge1 - edge0)));
|
|
108
|
+
return t * t * (3 - 2 * t);
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=toneMapMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toneMapMath.js","sourceRoot":"","sources":["../src/toneMapMath.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vignetteEffect.d.ts","sourceRoot":"","sources":["../src/vignetteEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAM,GAAG,cAAc,CAEzG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vignetteEffect.js","sourceRoot":"","sources":["../src/vignetteEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,UAAkD,EAAE;IACvF,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,OAAO,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volumetricLightEffect.d.ts","sourceRoot":"","sources":["../src/volumetricLightEffect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAM,GAC1D,qBAAqB,CAEvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volumetricLightEffect.js","sourceRoot":"","sources":["../src/volumetricLightEffect.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,2BAA2B,CACzC,UAAyD,EAAE;IAE3D,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,OAAO,EAAE,CAAC;AACvD,CAAC"}
|