@aura3d/engine 4.1.2 → 4.1.3
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/README.md +52 -730
- package/dist/audio/synth/SynthCueBank.d.ts.map +1 -1
- package/dist/audio/synth/SynthCueBank.js +11 -2
- package/dist/audio/synth/SynthCueBank.js.map +1 -1
- package/dist/audio/synth/types.d.ts +4 -0
- package/dist/audio/synth/types.d.ts.map +1 -1
- package/dist/aura3d-cli/commands/evidence/index.d.ts +3 -0
- package/dist/aura3d-cli/commands/evidence/index.d.ts.map +1 -0
- package/dist/aura3d-cli/commands/evidence/index.js +12 -0
- package/dist/aura3d-cli/commands/evidence/index.js.map +1 -0
- package/dist/aura3d-cli/commands/evidence/judge.d.ts +18 -0
- package/dist/aura3d-cli/commands/evidence/judge.d.ts.map +1 -0
- package/dist/aura3d-cli/commands/evidence/judge.js +194 -0
- package/dist/aura3d-cli/commands/evidence/judge.js.map +1 -0
- package/dist/aura3d-cli/commands/evidence/judgeLib.d.ts +84 -0
- package/dist/aura3d-cli/commands/evidence/judgeLib.d.ts.map +1 -0
- package/dist/aura3d-cli/commands/evidence/judgeLib.js +178 -0
- package/dist/aura3d-cli/commands/evidence/judgeLib.js.map +1 -0
- package/dist/aura3d-cli/commands/registry.d.ts +1 -0
- package/dist/aura3d-cli/commands/registry.d.ts.map +1 -1
- package/dist/aura3d-cli/commands/registry.js +1 -0
- package/dist/aura3d-cli/commands/registry.js.map +1 -1
- package/dist/aura3d-cli/look/capture.d.ts +15 -7
- package/dist/aura3d-cli/look/capture.d.ts.map +1 -1
- package/dist/aura3d-cli/look/capture.js +85 -13
- package/dist/aura3d-cli/look/capture.js.map +1 -1
- package/dist/create-aura3d/index.js +1 -1
- package/dist/engine/agent-api/compiler/geometry.d.ts +13 -0
- package/dist/engine/agent-api/compiler/geometry.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/geometry.js +30 -3
- package/dist/engine/agent-api/compiler/geometry.js.map +1 -1
- package/dist/engine/agent-api/compiler/primitives.d.ts +1 -2
- package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/primitives.js +21 -4
- package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
- package/dist/engine/agent-api/index.d.ts +4 -0
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +1 -0
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/nodes/cameras.d.ts +7 -0
- package/dist/engine/agent-api/nodes/cameras.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/cameras.js +7 -0
- package/dist/engine/agent-api/nodes/cameras.js.map +1 -1
- package/dist/engine/agent-api/nodes/chaseCamera.d.ts +122 -0
- package/dist/engine/agent-api/nodes/chaseCamera.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/chaseCamera.js +130 -0
- package/dist/engine/agent-api/nodes/chaseCamera.js.map +1 -0
- package/dist/engine/agent-api/nodes/effects.composite.d.ts +1 -0
- package/dist/engine/agent-api/nodes/effects.composite.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/effects.composite.js +2 -0
- package/dist/engine/agent-api/nodes/effects.composite.js.map +1 -1
- package/dist/engine/agent-api/nodes/effects.toon.d.ts +26 -0
- package/dist/engine/agent-api/nodes/effects.toon.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/effects.toon.js +70 -0
- package/dist/engine/agent-api/nodes/effects.toon.js.map +1 -0
- package/dist/engine/agent-api/nodes/prefabs/index.d.ts +3 -0
- package/dist/engine/agent-api/nodes/prefabs/index.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/prefabs/index.js +3 -0
- package/dist/engine/agent-api/nodes/prefabs/index.js.map +1 -1
- package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.d.ts +32 -0
- package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.d.ts.map +1 -0
- package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.js +77 -0
- package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.js.map +1 -0
- package/dist/engine/production-runtime/actor/ModelTextureShare.d.ts +1 -1
- package/dist/engine/production-runtime/actor/ModelTextureShare.d.ts.map +1 -1
- package/dist/engine/production-runtime/actor/ModelTextureShare.js +1 -1
- package/dist/engine/production-runtime/actor/ModelTextureShare.js.map +1 -1
- package/dist/engine/public/index.d.ts +52 -67
- package/dist/engine/public/index.d.ts.map +1 -1
- package/dist/engine/public/index.js +59 -56
- package/dist/engine/public/index.js.map +1 -1
- package/dist/engine/qa/countedRng.d.ts +2 -0
- package/dist/engine/qa/countedRng.d.ts.map +1 -1
- package/dist/engine/qa/countedRng.js +3 -0
- package/dist/engine/qa/countedRng.js.map +1 -1
- package/dist/engine/qa/fixedStepLoop.d.ts +2 -0
- package/dist/engine/qa/fixedStepLoop.d.ts.map +1 -1
- package/dist/engine/qa/fixedStepLoop.js +3 -0
- package/dist/engine/qa/fixedStepLoop.js.map +1 -1
- package/dist/engine/qa/hooks.js +1 -1
- package/dist/engine/qa/hooks.js.map +1 -1
- package/dist/game/evidence/beacon.d.ts +16 -6
- package/dist/game/evidence/beacon.d.ts.map +1 -1
- package/dist/game/evidence/beacon.js +32 -14
- package/dist/game/evidence/beacon.js.map +1 -1
- package/dist/game/hud/canvasMinimap.d.ts +60 -0
- package/dist/game/hud/canvasMinimap.d.ts.map +1 -0
- package/dist/game/hud/canvasMinimap.js +62 -0
- package/dist/game/hud/canvasMinimap.js.map +1 -0
- package/dist/game/hud/compass.d.ts +16 -0
- package/dist/game/hud/compass.d.ts.map +1 -0
- package/dist/game/hud/compass.js +15 -0
- package/dist/game/hud/compass.js.map +1 -0
- package/dist/game/index.d.ts +4 -0
- package/dist/game/index.d.ts.map +1 -1
- package/dist/game/index.js +2 -0
- package/dist/game/index.js.map +1 -1
- package/dist/math/Random.d.ts +3 -0
- package/dist/math/Random.d.ts.map +1 -1
- package/dist/math/Random.js +7 -0
- package/dist/math/Random.js.map +1 -1
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +3 -4
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/geometry/Primitives.d.ts +4 -1
- package/dist/rendering/geometry/Primitives.d.ts.map +1 -1
- package/dist/rendering/geometry/Primitives.js +5 -1
- package/dist/rendering/geometry/Primitives.js.map +1 -1
- package/dist/rendering/renderer/CullingBatching.d.ts.map +1 -1
- package/dist/rendering/renderer/CullingBatching.js +3 -7
- package/dist/rendering/renderer/CullingBatching.js.map +1 -1
- package/dist/rendering/renderer/InstanceBounds.d.ts +18 -0
- package/dist/rendering/renderer/InstanceBounds.d.ts.map +1 -0
- package/dist/rendering/renderer/InstanceBounds.js +68 -0
- package/dist/rendering/renderer/InstanceBounds.js.map +1 -0
- package/dist/rendering/renderer/RenderShared.d.ts.map +1 -1
- package/dist/rendering/renderer/RenderShared.js +3 -7
- package/dist/rendering/renderer/RenderShared.js.map +1 -1
- package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts.map +1 -1
- package/dist/rendering/shadows/DirectionalCascadeFitter.js +19 -10
- package/dist/rendering/shadows/DirectionalCascadeFitter.js.map +1 -1
- package/dist/rendering/webgl2/LdrPostprocessShader.d.ts +24 -0
- package/dist/rendering/webgl2/LdrPostprocessShader.d.ts.map +1 -0
- package/dist/rendering/webgl2/LdrPostprocessShader.js +233 -0
- package/dist/rendering/webgl2/LdrPostprocessShader.js.map +1 -0
- package/dist/rendering/webgl2/LegacyPost.d.ts +5 -3
- package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
- package/dist/rendering/webgl2/LegacyPost.js +23 -191
- package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
- package/package.json +25 -25
- package/templates/cinematic-scene/package.json +4 -3
- package/templates/mini-game/index.html +3 -1
- package/templates/mini-game/package.json +4 -3
- package/templates/mini-game/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/mini-game/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/mini-game/src/main.ts +1 -1
- package/templates/product-viewer/package.json +4 -3
- package/templates/production-asset-inspector/package.json +1 -1
- package/templates/production-material-studio/package.json +1 -1
- package/templates/production-product-configurator/package.json +1 -1
- package/templates/production-product-viewer/package.json +1 -1
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Legacy WebGL2 LDR postprocess fragment shader, compiled per feature variant.
|
|
3
|
+
*
|
|
4
|
+
* The program used to be one uber-shader that chose tone operator, colour grade, sharpening and FXAA from uniforms. Every
|
|
5
|
+
* `finalColorAt` call inlined the whole tone/grade stack, and the FXAA tail calls it five times (nine with sharpening), so the
|
|
6
|
+
* driver compiled and executed ~25 copies of tone mapping + grade even for a frame that only tone-maps. On a software
|
|
7
|
+
* rasteriser (SwiftShader, 640x360) that single fullscreen draw measured ~600 ms against ~30 ms for the same tone-map
|
|
8
|
+
* written without the dead branches. Defining the feature set at compile time compiles only the paths a frame uses; the
|
|
9
|
+
* arithmetic of each enabled path is unchanged.
|
|
10
|
+
*/
|
|
11
|
+
export function ldrVariantKey(variant) {
|
|
12
|
+
const op = variant.toneMapping ? Math.min(6, Math.max(0, Math.floor(variant.operator))) : 0;
|
|
13
|
+
return [variant.toneMapping ? 1 : 0, op, variant.inputSrgb ? 1 : 0, variant.outputSrgb ? 1 : 0, variant.grade ? 1 : 0, variant.grade && variant.sharpening ? 1 : 0, variant.fxaa ? 1 : 0].join("");
|
|
14
|
+
}
|
|
15
|
+
export function ldrFragmentSource(variant) {
|
|
16
|
+
const op = variant.toneMapping ? Math.min(6, Math.max(0, Math.floor(variant.operator))) : 0;
|
|
17
|
+
return `#version 300 es
|
|
18
|
+
precision highp float;
|
|
19
|
+
#define LDR_TONE ${variant.toneMapping ? 1 : 0}
|
|
20
|
+
#define LDR_OP ${op}
|
|
21
|
+
#define LDR_IN_SRGB ${variant.inputSrgb ? 1 : 0}
|
|
22
|
+
#define LDR_OUT_SRGB ${variant.outputSrgb ? 1 : 0}
|
|
23
|
+
#define LDR_GRADE ${variant.grade ? 1 : 0}
|
|
24
|
+
#define LDR_SHARPEN ${variant.grade && variant.sharpening ? 1 : 0}
|
|
25
|
+
#define LDR_FXAA ${variant.fxaa ? 1 : 0}
|
|
26
|
+
uniform sampler2D u_source;
|
|
27
|
+
uniform vec2 u_texelSize;
|
|
28
|
+
uniform int u_hasToneMapping;
|
|
29
|
+
uniform int u_toneOperator;
|
|
30
|
+
uniform int u_inputColorSpace;
|
|
31
|
+
uniform int u_outputColorSpace;
|
|
32
|
+
uniform float u_exposure;
|
|
33
|
+
uniform float u_whitePoint;
|
|
34
|
+
uniform float u_gamma;
|
|
35
|
+
uniform int u_hasColorGrade;
|
|
36
|
+
uniform float u_contrast;
|
|
37
|
+
uniform float u_temperature;
|
|
38
|
+
uniform float u_tint;
|
|
39
|
+
uniform float u_saturation;
|
|
40
|
+
uniform float u_vibrance;
|
|
41
|
+
uniform float u_vignette;
|
|
42
|
+
uniform float u_sharpening;
|
|
43
|
+
uniform int u_hasFxaa;
|
|
44
|
+
uniform float u_edgeThreshold;
|
|
45
|
+
uniform float u_subpixelBlend;
|
|
46
|
+
in vec2 v_uv;
|
|
47
|
+
out vec4 outColor;
|
|
48
|
+
|
|
49
|
+
float srgbToLinear(float value) {
|
|
50
|
+
return value <= 0.04045 ? value / 12.92 : pow((value + 0.055) / 1.055, 2.4);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
float linearToSrgb(float value) {
|
|
54
|
+
return value <= 0.0031308 ? value * 12.92 : 1.055 * pow(value, 1.0 / 2.4) - 0.055;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
vec3 decodeColor(vec3 color) {
|
|
58
|
+
#if LDR_IN_SRGB
|
|
59
|
+
return vec3(srgbToLinear(color.r), srgbToLinear(color.g), srgbToLinear(color.b));
|
|
60
|
+
#else
|
|
61
|
+
return color;
|
|
62
|
+
#endif
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
vec3 encodeColor(vec3 color) {
|
|
66
|
+
vec3 linear = clamp(color, 0.0, 1.0);
|
|
67
|
+
#if LDR_OUT_SRGB
|
|
68
|
+
return vec3(linearToSrgb(linear.r), linearToSrgb(linear.g), linearToSrgb(linear.b));
|
|
69
|
+
#else
|
|
70
|
+
return linear;
|
|
71
|
+
#endif
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
vec3 acesRrtAndOdtFit(vec3 value) {
|
|
75
|
+
vec3 numerator = value * (value + 0.0245786) - 0.000090537;
|
|
76
|
+
vec3 denominator = value * (0.983729 * value + 0.4329510) + 0.238081;
|
|
77
|
+
return numerator / denominator;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
vec3 acesFilmic(vec3 color) {
|
|
81
|
+
// Match current Three.js ACESFilmicToneMapping. ACES is a coupled RGB
|
|
82
|
+
// transform; a scalar approximation shifts hue and washes saturated colors.
|
|
83
|
+
const mat3 acesInput = mat3(
|
|
84
|
+
vec3(0.59719, 0.07600, 0.02840),
|
|
85
|
+
vec3(0.35458, 0.90834, 0.13383),
|
|
86
|
+
vec3(0.04823, 0.01566, 0.83777)
|
|
87
|
+
);
|
|
88
|
+
const mat3 acesOutput = mat3(
|
|
89
|
+
vec3(1.60475, -0.10208, -0.00327),
|
|
90
|
+
vec3(-0.53108, 1.10813, -0.07276),
|
|
91
|
+
vec3(-0.07367, -0.00605, 1.07602)
|
|
92
|
+
);
|
|
93
|
+
vec3 acesColor = acesInput * (color / 0.6);
|
|
94
|
+
acesColor = acesRrtAndOdtFit(acesColor);
|
|
95
|
+
return clamp(acesOutput * acesColor, 0.0, 1.0);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
float filmic(float value) {
|
|
99
|
+
float x = max(0.0, value);
|
|
100
|
+
float toe = max(0.0, x - 0.004);
|
|
101
|
+
float curve = (toe * (6.2 * toe + 0.5)) / (toe * (6.2 * toe + 1.7) + 0.06);
|
|
102
|
+
return min(curve, x * 1.08);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
float uncharted2(float value) {
|
|
106
|
+
float a = 0.15;
|
|
107
|
+
float b = 0.5;
|
|
108
|
+
float c = 0.1;
|
|
109
|
+
float d = 0.2;
|
|
110
|
+
float e = 0.02;
|
|
111
|
+
float f = 0.3;
|
|
112
|
+
float w = 11.2;
|
|
113
|
+
float x = value * 2.0;
|
|
114
|
+
float curve = ((x * (a * x + c * b) + d * e) / (x * (a * x + b) + d * f)) - e / f;
|
|
115
|
+
float wx = w;
|
|
116
|
+
float white = ((wx * (a * wx + c * b) + d * e) / (wx * (a * wx + b) + d * f)) - e / f;
|
|
117
|
+
return clamp(curve / white, 0.0, 1.0);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
float agx(float value) {
|
|
121
|
+
float x = max(0.0, value);
|
|
122
|
+
float encoded = log2(1.0 + x) / log2(17.0);
|
|
123
|
+
return clamp(encoded * encoded * (3.0 - 2.0 * encoded), 0.0, 1.0);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
float neutral(float value) {
|
|
127
|
+
float x = max(0.0, value);
|
|
128
|
+
return min(1.0, (x * (1.0 + x / 7.5)) / (1.0 + x));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
#if LDR_TONE && LDR_OP != 2
|
|
132
|
+
float toneMapChannel(float value) {
|
|
133
|
+
float exposed = max(0.0, value * u_exposure) / max(0.0001, u_whitePoint);
|
|
134
|
+
#if LDR_OP == 0
|
|
135
|
+
return min(1.0, exposed);
|
|
136
|
+
#elif LDR_OP == 1
|
|
137
|
+
return exposed / (1.0 + exposed);
|
|
138
|
+
#elif LDR_OP == 3
|
|
139
|
+
return filmic(exposed);
|
|
140
|
+
#elif LDR_OP == 4
|
|
141
|
+
return uncharted2(exposed);
|
|
142
|
+
#elif LDR_OP == 5
|
|
143
|
+
return agx(exposed);
|
|
144
|
+
#else
|
|
145
|
+
return neutral(exposed);
|
|
146
|
+
#endif
|
|
147
|
+
}
|
|
148
|
+
#endif
|
|
149
|
+
|
|
150
|
+
vec3 applyToneMapping(vec3 color) {
|
|
151
|
+
#if LDR_TONE
|
|
152
|
+
vec3 decoded = decodeColor(color);
|
|
153
|
+
#if LDR_OP == 2
|
|
154
|
+
vec3 mapped = acesFilmic(max(vec3(0.0), decoded * u_exposure) / max(0.0001, u_whitePoint));
|
|
155
|
+
#else
|
|
156
|
+
vec3 mapped = vec3(toneMapChannel(decoded.r), toneMapChannel(decoded.g), toneMapChannel(decoded.b));
|
|
157
|
+
#endif
|
|
158
|
+
return encodeColor(mapped);
|
|
159
|
+
#else
|
|
160
|
+
return color;
|
|
161
|
+
#endif
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
vec3 applyColorGrade(vec3 color, vec2 uv) {
|
|
165
|
+
#if LDR_GRADE
|
|
166
|
+
float contrastOffset = 0.5 - 0.5 * u_contrast;
|
|
167
|
+
float redShift = u_temperature * 0.08 - u_tint * 0.02;
|
|
168
|
+
float greenShift = u_tint * 0.06;
|
|
169
|
+
float blueShift = -u_temperature * 0.08 - u_tint * 0.02;
|
|
170
|
+
float luma = dot(color, vec3(0.2126, 0.7152, 0.0722));
|
|
171
|
+
vec3 graded = color * u_contrast + vec3(contrastOffset + redShift, contrastOffset + greenShift, contrastOffset + blueShift);
|
|
172
|
+
float distanceFromLuma = min(1.0, abs(graded.r - luma) + abs(graded.g - luma) + abs(graded.b - luma));
|
|
173
|
+
float vibranceBoost = u_vibrance == 0.0 ? 0.0 : u_vibrance * (1.0 - distanceFromLuma);
|
|
174
|
+
float saturation = u_saturation + vibranceBoost;
|
|
175
|
+
graded = vec3(luma) + (graded - vec3(luma)) * saturation;
|
|
176
|
+
vec2 centered = uv * 2.0 - 1.0;
|
|
177
|
+
float vignette = 1.0 - u_vignette * clamp((length(centered) - 0.28) / 1.12, 0.0, 1.0);
|
|
178
|
+
return clamp(graded * vignette, 0.0, 1.0);
|
|
179
|
+
#else
|
|
180
|
+
return color;
|
|
181
|
+
#endif
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
vec3 baseColorAt(vec2 uv) {
|
|
185
|
+
vec2 clampedUv = clamp(uv, vec2(0.0), vec2(1.0));
|
|
186
|
+
vec3 color = texture(u_source, clampedUv).rgb;
|
|
187
|
+
return applyColorGrade(applyToneMapping(color), clampedUv);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
vec3 finalColorAt(vec2 uv) {
|
|
191
|
+
vec3 center = baseColorAt(uv);
|
|
192
|
+
#if LDR_SHARPEN
|
|
193
|
+
if (u_sharpening <= 0.0) return center;
|
|
194
|
+
vec3 blur = (
|
|
195
|
+
baseColorAt(uv + vec2(-u_texelSize.x, 0.0)) +
|
|
196
|
+
baseColorAt(uv + vec2(u_texelSize.x, 0.0)) +
|
|
197
|
+
baseColorAt(uv + vec2(0.0, -u_texelSize.y)) +
|
|
198
|
+
baseColorAt(uv + vec2(0.0, u_texelSize.y))
|
|
199
|
+
) * 0.25;
|
|
200
|
+
return clamp(center + (center - blur) * u_sharpening, 0.0, 1.0);
|
|
201
|
+
#else
|
|
202
|
+
return center;
|
|
203
|
+
#endif
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
float luma(vec3 color) {
|
|
207
|
+
return dot(color, vec3(0.2126, 0.7152, 0.0722));
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
void main() {
|
|
211
|
+
vec3 center = finalColorAt(v_uv);
|
|
212
|
+
float alpha = texture(u_source, clamp(v_uv, vec2(0.0), vec2(1.0))).a;
|
|
213
|
+
#if LDR_FXAA
|
|
214
|
+
vec3 north = finalColorAt(v_uv + vec2(0.0, -u_texelSize.y));
|
|
215
|
+
vec3 south = finalColorAt(v_uv + vec2(0.0, u_texelSize.y));
|
|
216
|
+
vec3 west = finalColorAt(v_uv + vec2(-u_texelSize.x, 0.0));
|
|
217
|
+
vec3 east = finalColorAt(v_uv + vec2(u_texelSize.x, 0.0));
|
|
218
|
+
float centerLuma = luma(center);
|
|
219
|
+
float minLuma = min(centerLuma, min(min(luma(north), luma(south)), min(luma(west), luma(east))));
|
|
220
|
+
float maxLuma = max(centerLuma, max(max(luma(north), luma(south)), max(luma(west), luma(east))));
|
|
221
|
+
if (maxLuma - minLuma < u_edgeThreshold) {
|
|
222
|
+
outColor = vec4(center, alpha);
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
vec3 average = (north + south + west + east) * 0.25;
|
|
226
|
+
outColor = vec4(mix(center, average, clamp(u_subpixelBlend, 0.0, 1.0)), alpha);
|
|
227
|
+
#else
|
|
228
|
+
outColor = vec4(center, alpha);
|
|
229
|
+
#endif
|
|
230
|
+
}
|
|
231
|
+
`;
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=LdrPostprocessShader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LdrPostprocessShader.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/LdrPostprocessShader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,MAAM,UAAU,aAAa,CAAC,OAA0B;IACtD,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrM,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAA0B;IAC1D,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO;;mBAEU,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC7B,EAAE;sBACG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;uBACxB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;sBACnB,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;mBAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8MtC,CAAC;AACF,CAAC"}
|
|
@@ -6,6 +6,7 @@ import type { WebGL2TextureUnit0Snapshot, WebGL2TextureUnitBindingSnapshot } fro
|
|
|
6
6
|
import type { WebGL2DeviceHost } from "./DeviceHost.js";
|
|
7
7
|
import type { PostPipelineOptions } from "../contracts/post.js";
|
|
8
8
|
import type { FrameCamera } from "../contracts/frameGraph.js";
|
|
9
|
+
import { type LdrProgramVariant } from "./LdrPostprocessShader.js";
|
|
9
10
|
/** A texture the after-bloom hook reads or returns (`PostColorInput` in `post/v2Stages`). */
|
|
10
11
|
export interface LdrPresentColorInput {
|
|
11
12
|
readonly colorHandle: WebGLTexture;
|
|
@@ -129,7 +130,8 @@ export declare class WebGL2LegacyPostPipeline {
|
|
|
129
130
|
bloomPyramidResources: WebGL2BloomPyramidResources | null;
|
|
130
131
|
depthOfFieldProgram: WebGLProgram | null;
|
|
131
132
|
lastBloomDiagnostics: WebGL2BloomDiagnostics | null;
|
|
132
|
-
|
|
133
|
+
/** One compiled program per feature variant (see `ldrFragmentSource`). */
|
|
134
|
+
readonly ldrPostprocessPrograms: Map<string, WebGLProgram>;
|
|
133
135
|
motionBlurProgram: WebGLProgram | null;
|
|
134
136
|
nativeFxaaFinalizeProgram: WebGLProgram | null;
|
|
135
137
|
motionBlurVelocitySize: {
|
|
@@ -168,7 +170,7 @@ export declare class WebGL2LegacyPostPipeline {
|
|
|
168
170
|
ensureOutlineBlendLutTexture(options: NativeOutlineOptions): void;
|
|
169
171
|
ensureMotionBlurVelocityTexture(width: number, height: number, velocity: Float32Array): void;
|
|
170
172
|
ensureTaaHistoryTexture(width: number, height: number, history: Uint8Array): void;
|
|
171
|
-
drawNativeLdrStage(sourceTexture: WebGLTexture, framebuffer: WebGLFramebuffer | null, width: number, height: number,
|
|
173
|
+
drawNativeLdrStage(sourceTexture: WebGLTexture, framebuffer: WebGLFramebuffer | null, width: number, height: number, vertexArray: WebGLVertexArrayObject, tonePass: LdrPostprocessPassDescriptor | undefined, colorPass: LdrPostprocessPassDescriptor | undefined, fxaaPass: LdrPostprocessPassDescriptor | undefined, toneMappingDefaults: Readonly<Record<string, unknown>> | undefined): void;
|
|
172
174
|
executeNativeBloomPasses(sourceTexture: WebGLTexture, resources: WebGL2BloomPingPongResources, options: NativeBloomOptions, vertexArray: WebGLVertexArrayObject, hdr: boolean): WebGLTexture;
|
|
173
175
|
executeNativeBloomPyramidPasses(sourceTexture: WebGLTexture, sourceWidth: number, sourceHeight: number, resources: WebGL2BloomPyramidResources, fullResStaging: {
|
|
174
176
|
textureA: WebGLTexture;
|
|
@@ -224,7 +226,7 @@ export declare class WebGL2LegacyPostPipeline {
|
|
|
224
226
|
*/
|
|
225
227
|
executeNativeFxaaFinalize(sourceTexture: WebGLTexture, framebuffer: WebGLFramebuffer | null, outputWidth: number, outputHeight: number, sourceWidth: number, sourceHeight: number, vertexArray: WebGLVertexArrayObject): void;
|
|
226
228
|
createFullscreenProgram(fragmentSource: string, label: string): WebGLProgram;
|
|
227
|
-
ensureLdrPostprocessProgram(): WebGLProgram;
|
|
229
|
+
ensureLdrPostprocessProgram(variant: LdrProgramVariant): WebGLProgram;
|
|
228
230
|
}
|
|
229
231
|
/**
|
|
230
232
|
* Composite response for the native bloom. Flag-on (`excess`, §6.6): the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegacyPost.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/LegacyPost.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LegacyPost.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/LegacyPost.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import { BLOOM_BRIGHT_LUT_HEIGHT, BLOOM_BRIGHT_LUT_WIDTH, BLOOM_COMPOSITE_LUT_SI
|
|
|
10
10
|
// `u_hasFxaa` taps stay the default path.
|
|
11
11
|
import { FXAA_185_FRAGMENT_GLSL } from "../post/shaders/fxaa.glsl.js";
|
|
12
12
|
import { recordPostSkipped } from "../renderer/postSkipped.js";
|
|
13
|
+
import { ldrFragmentSource, ldrVariantKey } from "./LdrPostprocessShader.js";
|
|
13
14
|
export class WebGL2LegacyPostPipeline {
|
|
14
15
|
host;
|
|
15
16
|
constructor(host) {
|
|
@@ -29,7 +30,8 @@ export class WebGL2LegacyPostPipeline {
|
|
|
29
30
|
bloomPyramidResources = null;
|
|
30
31
|
depthOfFieldProgram = null;
|
|
31
32
|
lastBloomDiagnostics = null;
|
|
32
|
-
|
|
33
|
+
/** One compiled program per feature variant (see `ldrFragmentSource`). */
|
|
34
|
+
ldrPostprocessPrograms = new Map();
|
|
33
35
|
motionBlurProgram = null;
|
|
34
36
|
nativeFxaaFinalizeProgram = null;
|
|
35
37
|
motionBlurVelocitySize = null;
|
|
@@ -159,7 +161,6 @@ export class WebGL2LegacyPostPipeline {
|
|
|
159
161
|
const ssrOptions = ssrPass ? normalizeNativeSsrOptions(ssrPass.options) : undefined;
|
|
160
162
|
const taaOptions = taaPass ? normalizeNativeTaaOptions(taaPass.options, source.width, source.height) : undefined;
|
|
161
163
|
const outlineOptions = outlinePass ? normalizeNativeOutlineOptions(outlinePass.options) : undefined;
|
|
162
|
-
const program = this.ensureLdrPostprocessProgram();
|
|
163
164
|
const vertexArray = this.ensurePresentationVertexArray();
|
|
164
165
|
const sourceIsHdr = source.colorTexture.format !== "rgba8";
|
|
165
166
|
// PRD-03 Phase 1: `fxaa.variant === "r185"` splits the finalize — the
|
|
@@ -243,7 +244,7 @@ export class WebGL2LegacyPostPipeline {
|
|
|
243
244
|
if ((depthOfFieldOptions || motionBlurOptions || ssaoOptions || ssrOptions || taaOptions || outlineOptions) && bloomResources) {
|
|
244
245
|
if (tonePass || colorPass) {
|
|
245
246
|
const baseTargetIndex = 0;
|
|
246
|
-
this.drawNativeLdrStage(ldrSourceHandle, bloomResources.framebuffers[baseTargetIndex], source.width, source.height,
|
|
247
|
+
this.drawNativeLdrStage(ldrSourceHandle, bloomResources.framebuffers[baseTargetIndex], source.width, source.height, vertexArray, tonePass, colorPass, undefined, options.toneMappingDefaults);
|
|
247
248
|
ldrSourceHandle = bloomResources.textures[baseTargetIndex];
|
|
248
249
|
temporarySourceIndex = baseTargetIndex;
|
|
249
250
|
}
|
|
@@ -280,11 +281,11 @@ export class WebGL2LegacyPostPipeline {
|
|
|
280
281
|
}
|
|
281
282
|
if (fxaaSplit && bloomResources) {
|
|
282
283
|
const fxaaScratchIndex = temporarySourceIndex === 0 ? 1 : 0;
|
|
283
|
-
this.drawNativeLdrStage(ldrSourceHandle, bloomResources.framebuffers[fxaaScratchIndex], source.width, source.height,
|
|
284
|
+
this.drawNativeLdrStage(ldrSourceHandle, bloomResources.framebuffers[fxaaScratchIndex], source.width, source.height, vertexArray, depthOfFieldOptions || motionBlurOptions || ssaoOptions || ssrOptions || taaOptions || outlineOptions ? undefined : tonePass, depthOfFieldOptions || motionBlurOptions || ssaoOptions || ssrOptions || taaOptions || outlineOptions ? undefined : colorPass, undefined, options.toneMappingDefaults);
|
|
284
285
|
this.executeNativeFxaaFinalize(bloomResources.textures[fxaaScratchIndex], webglOutputTarget?.framebuffer ?? null, outputWidth, outputHeight, source.width, source.height, vertexArray);
|
|
285
286
|
}
|
|
286
287
|
else {
|
|
287
|
-
this.drawNativeLdrStage(ldrSourceHandle, webglOutputTarget?.framebuffer ?? null, outputWidth, outputHeight,
|
|
288
|
+
this.drawNativeLdrStage(ldrSourceHandle, webglOutputTarget?.framebuffer ?? null, outputWidth, outputHeight, vertexArray, depthOfFieldOptions || motionBlurOptions || ssaoOptions || ssrOptions || taaOptions || outlineOptions ? undefined : tonePass, depthOfFieldOptions || motionBlurOptions || ssaoOptions || ssrOptions || taaOptions || outlineOptions ? undefined : colorPass, fxaaPass, options.toneMappingDefaults);
|
|
288
289
|
}
|
|
289
290
|
this.host.gl.flush();
|
|
290
291
|
}
|
|
@@ -483,10 +484,19 @@ export class WebGL2LegacyPostPipeline {
|
|
|
483
484
|
this.host.stateCache.invalidate();
|
|
484
485
|
}
|
|
485
486
|
}
|
|
486
|
-
drawNativeLdrStage(sourceTexture, framebuffer, width, height,
|
|
487
|
+
drawNativeLdrStage(sourceTexture, framebuffer, width, height, vertexArray, tonePass, colorPass, fxaaPass, toneMappingDefaults) {
|
|
487
488
|
const toneOptions = { ...(toneMappingDefaults ?? {}), ...(tonePass?.options ?? {}) };
|
|
488
489
|
const colorOptions = colorPass?.options ?? {};
|
|
489
490
|
const fxaaOptions = fxaaPass?.options ?? {};
|
|
491
|
+
const program = this.ensureLdrPostprocessProgram({
|
|
492
|
+
toneMapping: Boolean(tonePass),
|
|
493
|
+
operator: toneMappingOperatorId(stringOption(toneOptions, "operator", "reinhard")),
|
|
494
|
+
inputSrgb: colorSpaceId(stringOption(toneOptions, "inputColorSpace", "linear")) === 1,
|
|
495
|
+
outputSrgb: colorSpaceId(stringOption(toneOptions, "outputColorSpace", "linear")) === 1,
|
|
496
|
+
grade: Boolean(colorPass),
|
|
497
|
+
sharpening: Boolean(colorPass) && numberOption(colorOptions, "sharpening", 0) > 0,
|
|
498
|
+
fxaa: Boolean(fxaaPass)
|
|
499
|
+
});
|
|
490
500
|
this.host.lifecycle.bindOutput(framebuffer, width, height);
|
|
491
501
|
this.host.gl.useProgram(program);
|
|
492
502
|
this.host.gl.bindVertexArray(vertexArray);
|
|
@@ -1808,10 +1818,11 @@ void main() {
|
|
|
1808
1818
|
}
|
|
1809
1819
|
return program;
|
|
1810
1820
|
}
|
|
1811
|
-
ensureLdrPostprocessProgram() {
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1821
|
+
ensureLdrPostprocessProgram(variant) {
|
|
1822
|
+
const key = ldrVariantKey(variant);
|
|
1823
|
+
const cached = this.ldrPostprocessPrograms.get(key);
|
|
1824
|
+
if (cached)
|
|
1825
|
+
return cached;
|
|
1815
1826
|
const vertex = this.host.device.compileShader(this.host.gl.VERTEX_SHADER, `#version 300 es
|
|
1816
1827
|
precision highp float;
|
|
1817
1828
|
out vec2 v_uv;
|
|
@@ -1821,186 +1832,7 @@ void main() {
|
|
|
1821
1832
|
gl_Position = vec4(position * 2.0 - 1.0, 0.0, 1.0);
|
|
1822
1833
|
}
|
|
1823
1834
|
`, "webgl2-ldr-postprocess");
|
|
1824
|
-
const fragment = this.host.device.compileShader(this.host.gl.FRAGMENT_SHADER,
|
|
1825
|
-
precision highp float;
|
|
1826
|
-
uniform sampler2D u_source;
|
|
1827
|
-
uniform vec2 u_texelSize;
|
|
1828
|
-
uniform int u_hasToneMapping;
|
|
1829
|
-
uniform int u_toneOperator;
|
|
1830
|
-
uniform int u_inputColorSpace;
|
|
1831
|
-
uniform int u_outputColorSpace;
|
|
1832
|
-
uniform float u_exposure;
|
|
1833
|
-
uniform float u_whitePoint;
|
|
1834
|
-
uniform float u_gamma;
|
|
1835
|
-
uniform int u_hasColorGrade;
|
|
1836
|
-
uniform float u_contrast;
|
|
1837
|
-
uniform float u_temperature;
|
|
1838
|
-
uniform float u_tint;
|
|
1839
|
-
uniform float u_saturation;
|
|
1840
|
-
uniform float u_vibrance;
|
|
1841
|
-
uniform float u_vignette;
|
|
1842
|
-
uniform float u_sharpening;
|
|
1843
|
-
uniform int u_hasFxaa;
|
|
1844
|
-
uniform float u_edgeThreshold;
|
|
1845
|
-
uniform float u_subpixelBlend;
|
|
1846
|
-
in vec2 v_uv;
|
|
1847
|
-
out vec4 outColor;
|
|
1848
|
-
|
|
1849
|
-
float srgbToLinear(float value) {
|
|
1850
|
-
return value <= 0.04045 ? value / 12.92 : pow((value + 0.055) / 1.055, 2.4);
|
|
1851
|
-
}
|
|
1852
|
-
|
|
1853
|
-
float linearToSrgb(float value) {
|
|
1854
|
-
return value <= 0.0031308 ? value * 12.92 : 1.055 * pow(value, 1.0 / 2.4) - 0.055;
|
|
1855
|
-
}
|
|
1856
|
-
|
|
1857
|
-
vec3 decodeColor(vec3 color) {
|
|
1858
|
-
return u_inputColorSpace == 1 ? vec3(srgbToLinear(color.r), srgbToLinear(color.g), srgbToLinear(color.b)) : color;
|
|
1859
|
-
}
|
|
1860
|
-
|
|
1861
|
-
vec3 encodeColor(vec3 color) {
|
|
1862
|
-
vec3 linear = clamp(color, 0.0, 1.0);
|
|
1863
|
-
return u_outputColorSpace == 1 ? vec3(linearToSrgb(linear.r), linearToSrgb(linear.g), linearToSrgb(linear.b)) : linear;
|
|
1864
|
-
}
|
|
1865
|
-
|
|
1866
|
-
vec3 acesRrtAndOdtFit(vec3 value) {
|
|
1867
|
-
vec3 numerator = value * (value + 0.0245786) - 0.000090537;
|
|
1868
|
-
vec3 denominator = value * (0.983729 * value + 0.4329510) + 0.238081;
|
|
1869
|
-
return numerator / denominator;
|
|
1870
|
-
}
|
|
1871
|
-
|
|
1872
|
-
vec3 acesFilmic(vec3 color) {
|
|
1873
|
-
// Match current Three.js ACESFilmicToneMapping. ACES is a coupled RGB
|
|
1874
|
-
// transform; a scalar approximation shifts hue and washes saturated colors.
|
|
1875
|
-
const mat3 acesInput = mat3(
|
|
1876
|
-
vec3(0.59719, 0.07600, 0.02840),
|
|
1877
|
-
vec3(0.35458, 0.90834, 0.13383),
|
|
1878
|
-
vec3(0.04823, 0.01566, 0.83777)
|
|
1879
|
-
);
|
|
1880
|
-
const mat3 acesOutput = mat3(
|
|
1881
|
-
vec3(1.60475, -0.10208, -0.00327),
|
|
1882
|
-
vec3(-0.53108, 1.10813, -0.07276),
|
|
1883
|
-
vec3(-0.07367, -0.00605, 1.07602)
|
|
1884
|
-
);
|
|
1885
|
-
vec3 acesColor = acesInput * (color / 0.6);
|
|
1886
|
-
acesColor = acesRrtAndOdtFit(acesColor);
|
|
1887
|
-
return clamp(acesOutput * acesColor, 0.0, 1.0);
|
|
1888
|
-
}
|
|
1889
|
-
|
|
1890
|
-
float filmic(float value) {
|
|
1891
|
-
float x = max(0.0, value);
|
|
1892
|
-
float toe = max(0.0, x - 0.004);
|
|
1893
|
-
float curve = (toe * (6.2 * toe + 0.5)) / (toe * (6.2 * toe + 1.7) + 0.06);
|
|
1894
|
-
return min(curve, x * 1.08);
|
|
1895
|
-
}
|
|
1896
|
-
|
|
1897
|
-
float uncharted2(float value) {
|
|
1898
|
-
float a = 0.15;
|
|
1899
|
-
float b = 0.5;
|
|
1900
|
-
float c = 0.1;
|
|
1901
|
-
float d = 0.2;
|
|
1902
|
-
float e = 0.02;
|
|
1903
|
-
float f = 0.3;
|
|
1904
|
-
float w = 11.2;
|
|
1905
|
-
float x = value * 2.0;
|
|
1906
|
-
float curve = ((x * (a * x + c * b) + d * e) / (x * (a * x + b) + d * f)) - e / f;
|
|
1907
|
-
float wx = w;
|
|
1908
|
-
float white = ((wx * (a * wx + c * b) + d * e) / (wx * (a * wx + b) + d * f)) - e / f;
|
|
1909
|
-
return clamp(curve / white, 0.0, 1.0);
|
|
1910
|
-
}
|
|
1911
|
-
|
|
1912
|
-
float agx(float value) {
|
|
1913
|
-
float x = max(0.0, value);
|
|
1914
|
-
float encoded = log2(1.0 + x) / log2(17.0);
|
|
1915
|
-
return clamp(encoded * encoded * (3.0 - 2.0 * encoded), 0.0, 1.0);
|
|
1916
|
-
}
|
|
1917
|
-
|
|
1918
|
-
float neutral(float value) {
|
|
1919
|
-
float x = max(0.0, value);
|
|
1920
|
-
return min(1.0, (x * (1.0 + x / 7.5)) / (1.0 + x));
|
|
1921
|
-
}
|
|
1922
|
-
|
|
1923
|
-
float toneMapChannel(float value) {
|
|
1924
|
-
float exposed = max(0.0, value * u_exposure) / max(0.0001, u_whitePoint);
|
|
1925
|
-
if (u_toneOperator == 0) return min(1.0, exposed);
|
|
1926
|
-
if (u_toneOperator == 1) return exposed / (1.0 + exposed);
|
|
1927
|
-
if (u_toneOperator == 2) return exposed;
|
|
1928
|
-
if (u_toneOperator == 3) return filmic(exposed);
|
|
1929
|
-
if (u_toneOperator == 4) return uncharted2(exposed);
|
|
1930
|
-
if (u_toneOperator == 5) return agx(exposed);
|
|
1931
|
-
return neutral(exposed);
|
|
1932
|
-
}
|
|
1933
|
-
|
|
1934
|
-
vec3 applyToneMapping(vec3 color) {
|
|
1935
|
-
if (u_hasToneMapping == 0) return color;
|
|
1936
|
-
vec3 decoded = decodeColor(color);
|
|
1937
|
-
vec3 mapped = u_toneOperator == 2
|
|
1938
|
-
? acesFilmic(max(vec3(0.0), decoded * u_exposure) / max(0.0001, u_whitePoint))
|
|
1939
|
-
: vec3(toneMapChannel(decoded.r), toneMapChannel(decoded.g), toneMapChannel(decoded.b));
|
|
1940
|
-
return encodeColor(mapped);
|
|
1941
|
-
}
|
|
1942
|
-
|
|
1943
|
-
vec3 applyColorGrade(vec3 color, vec2 uv) {
|
|
1944
|
-
if (u_hasColorGrade == 0) return color;
|
|
1945
|
-
float contrastOffset = 0.5 - 0.5 * u_contrast;
|
|
1946
|
-
float redShift = u_temperature * 0.08 - u_tint * 0.02;
|
|
1947
|
-
float greenShift = u_tint * 0.06;
|
|
1948
|
-
float blueShift = -u_temperature * 0.08 - u_tint * 0.02;
|
|
1949
|
-
float luma = dot(color, vec3(0.2126, 0.7152, 0.0722));
|
|
1950
|
-
vec3 graded = color * u_contrast + vec3(contrastOffset + redShift, contrastOffset + greenShift, contrastOffset + blueShift);
|
|
1951
|
-
float distanceFromLuma = min(1.0, abs(graded.r - luma) + abs(graded.g - luma) + abs(graded.b - luma));
|
|
1952
|
-
float vibranceBoost = u_vibrance == 0.0 ? 0.0 : u_vibrance * (1.0 - distanceFromLuma);
|
|
1953
|
-
float saturation = u_saturation + vibranceBoost;
|
|
1954
|
-
graded = vec3(luma) + (graded - vec3(luma)) * saturation;
|
|
1955
|
-
vec2 centered = uv * 2.0 - 1.0;
|
|
1956
|
-
float vignette = 1.0 - u_vignette * clamp((length(centered) - 0.28) / 1.12, 0.0, 1.0);
|
|
1957
|
-
return clamp(graded * vignette, 0.0, 1.0);
|
|
1958
|
-
}
|
|
1959
|
-
|
|
1960
|
-
vec3 baseColorAt(vec2 uv) {
|
|
1961
|
-
vec2 clampedUv = clamp(uv, vec2(0.0), vec2(1.0));
|
|
1962
|
-
vec3 color = texture(u_source, clampedUv).rgb;
|
|
1963
|
-
return applyColorGrade(applyToneMapping(color), clampedUv);
|
|
1964
|
-
}
|
|
1965
|
-
|
|
1966
|
-
vec3 finalColorAt(vec2 uv) {
|
|
1967
|
-
vec3 center = baseColorAt(uv);
|
|
1968
|
-
if (u_hasColorGrade == 0 || u_sharpening <= 0.0) return center;
|
|
1969
|
-
vec3 blur = (
|
|
1970
|
-
baseColorAt(uv + vec2(-u_texelSize.x, 0.0)) +
|
|
1971
|
-
baseColorAt(uv + vec2(u_texelSize.x, 0.0)) +
|
|
1972
|
-
baseColorAt(uv + vec2(0.0, -u_texelSize.y)) +
|
|
1973
|
-
baseColorAt(uv + vec2(0.0, u_texelSize.y))
|
|
1974
|
-
) * 0.25;
|
|
1975
|
-
return clamp(center + (center - blur) * u_sharpening, 0.0, 1.0);
|
|
1976
|
-
}
|
|
1977
|
-
|
|
1978
|
-
float luma(vec3 color) {
|
|
1979
|
-
return dot(color, vec3(0.2126, 0.7152, 0.0722));
|
|
1980
|
-
}
|
|
1981
|
-
|
|
1982
|
-
void main() {
|
|
1983
|
-
vec3 center = finalColorAt(v_uv);
|
|
1984
|
-
float alpha = texture(u_source, clamp(v_uv, vec2(0.0), vec2(1.0))).a;
|
|
1985
|
-
if (u_hasFxaa == 0) {
|
|
1986
|
-
outColor = vec4(center, alpha);
|
|
1987
|
-
return;
|
|
1988
|
-
}
|
|
1989
|
-
vec3 north = finalColorAt(v_uv + vec2(0.0, -u_texelSize.y));
|
|
1990
|
-
vec3 south = finalColorAt(v_uv + vec2(0.0, u_texelSize.y));
|
|
1991
|
-
vec3 west = finalColorAt(v_uv + vec2(-u_texelSize.x, 0.0));
|
|
1992
|
-
vec3 east = finalColorAt(v_uv + vec2(u_texelSize.x, 0.0));
|
|
1993
|
-
float centerLuma = luma(center);
|
|
1994
|
-
float minLuma = min(centerLuma, min(min(luma(north), luma(south)), min(luma(west), luma(east))));
|
|
1995
|
-
float maxLuma = max(centerLuma, max(max(luma(north), luma(south)), max(luma(west), luma(east))));
|
|
1996
|
-
if (maxLuma - minLuma < u_edgeThreshold) {
|
|
1997
|
-
outColor = vec4(center, alpha);
|
|
1998
|
-
return;
|
|
1999
|
-
}
|
|
2000
|
-
vec3 average = (north + south + west + east) * 0.25;
|
|
2001
|
-
outColor = vec4(mix(center, average, clamp(u_subpixelBlend, 0.0, 1.0)), alpha);
|
|
2002
|
-
}
|
|
2003
|
-
`, "webgl2-ldr-postprocess");
|
|
1835
|
+
const fragment = this.host.device.compileShader(this.host.gl.FRAGMENT_SHADER, ldrFragmentSource(variant), "webgl2-ldr-postprocess");
|
|
2004
1836
|
const program = this.host.gl.createProgram();
|
|
2005
1837
|
if (!program) {
|
|
2006
1838
|
this.host.gl.deleteShader(vertex);
|
|
@@ -2018,7 +1850,7 @@ void main() {
|
|
|
2018
1850
|
this.host.gl.deleteProgram(program);
|
|
2019
1851
|
throw new RenderDeviceError("WebGL2 LDR postprocess shader link failed", "SHADER_LINK_FAILED", { log });
|
|
2020
1852
|
}
|
|
2021
|
-
this.
|
|
1853
|
+
this.ldrPostprocessPrograms.set(key, program);
|
|
2022
1854
|
return program;
|
|
2023
1855
|
}
|
|
2024
1856
|
}
|