@aura3d/engine 4.2.0 → 4.3.1
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 +1 -1
- package/dist/aura3d-cli/cli-help.d.ts.map +1 -1
- package/dist/aura3d-cli/cli-help.js +4 -2
- package/dist/aura3d-cli/cli-help.js.map +1 -1
- package/dist/aura3d-cli/cli.js +85 -2
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/commands/assets/index.js +2 -2
- package/dist/aura3d-cli/commands/assets/index.js.map +1 -1
- package/dist/aura3d-cli/commands/meshyLedger.d.ts +125 -14
- package/dist/aura3d-cli/commands/meshyLedger.d.ts.map +1 -1
- package/dist/aura3d-cli/commands/meshyLedger.js +262 -35
- package/dist/aura3d-cli/commands/meshyLedger.js.map +1 -1
- package/dist/aura3d-cli/commands/prd13/run.js +19 -16
- package/dist/aura3d-cli/commands/prd13/run.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts +10 -0
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +13 -0
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/skin/analysis.d.ts +137 -0
- package/dist/aura3d-cli/skin/analysis.d.ts.map +1 -0
- package/dist/aura3d-cli/skin/analysis.js +382 -0
- package/dist/aura3d-cli/skin/analysis.js.map +1 -0
- package/dist/aura3d-cli/skin/command.d.ts +75 -0
- package/dist/aura3d-cli/skin/command.d.ts.map +1 -0
- package/dist/aura3d-cli/skin/command.js +208 -0
- package/dist/aura3d-cli/skin/command.js.map +1 -0
- package/dist/aura3d-cli/skin/glbEdit.d.ts +14 -0
- package/dist/aura3d-cli/skin/glbEdit.d.ts.map +1 -0
- package/dist/aura3d-cli/skin/glbEdit.js +152 -0
- package/dist/aura3d-cli/skin/glbEdit.js.map +1 -0
- package/dist/aura3d-cli/skin/gltf.d.ts +159 -0
- package/dist/aura3d-cli/skin/gltf.d.ts.map +1 -0
- package/dist/aura3d-cli/skin/gltf.js +379 -0
- package/dist/aura3d-cli/skin/gltf.js.map +1 -0
- package/dist/aura3d-cli/skin/rebuildLimbs.d.ts +31 -0
- package/dist/aura3d-cli/skin/rebuildLimbs.d.ts.map +1 -0
- package/dist/aura3d-cli/skin/rebuildLimbs.js +326 -0
- package/dist/aura3d-cli/skin/rebuildLimbs.js.map +1 -0
- package/dist/aura3d-cli/skin/refitSkeleton.d.ts +23 -0
- package/dist/aura3d-cli/skin/refitSkeleton.d.ts.map +1 -0
- package/dist/aura3d-cli/skin/refitSkeleton.js +288 -0
- package/dist/aura3d-cli/skin/refitSkeleton.js.map +1 -0
- package/dist/aura3d-cli/skin/repair.d.ts +45 -0
- package/dist/aura3d-cli/skin/repair.d.ts.map +1 -0
- package/dist/aura3d-cli/skin/repair.js +192 -0
- package/dist/aura3d-cli/skin/repair.js.map +1 -0
- package/dist/create-aura3d/index.js +1 -1
- package/dist/engine/agent-api/camera/layers.d.ts.map +1 -1
- package/dist/engine/agent-api/camera/layers.js +6 -1
- package/dist/engine/agent-api/camera/layers.js.map +1 -1
- package/dist/engine/agent-api/compiler/customMaterial.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/customMaterial.js +12 -1
- package/dist/engine/agent-api/compiler/customMaterial.js.map +1 -1
- package/dist/engine/agent-api/compiler/lines.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/lines.js +8 -6
- package/dist/engine/agent-api/compiler/lines.js.map +1 -1
- package/dist/engine/agent-api/nodes/types.d.ts +6 -0
- package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
- package/dist/engine/agent-api/vfx/effects-api.d.ts.map +1 -1
- package/dist/engine/agent-api/vfx/effects-api.js +12 -3
- package/dist/engine/agent-api/vfx/effects-api.js.map +1 -1
- package/dist/engine/agent-api/vfx/gameEffects.d.ts.map +1 -1
- package/dist/engine/agent-api/vfx/gameEffects.js +20 -3
- package/dist/engine/agent-api/vfx/gameEffects.js.map +1 -1
- package/dist/engine/contracts/camera.d.ts +1 -0
- package/dist/engine/contracts/camera.d.ts.map +1 -1
- package/dist/engine/contracts/effects.d.ts +4 -2
- package/dist/engine/contracts/effects.d.ts.map +1 -1
- package/dist/engine/contracts/effects.js.map +1 -1
- package/dist/game/index.d.ts +2 -2
- package/dist/game/index.d.ts.map +1 -1
- package/dist/game/index.js +1 -1
- package/dist/game/index.js.map +1 -1
- package/dist/game/motion/facing.d.ts +30 -0
- package/dist/game/motion/facing.d.ts.map +1 -0
- package/dist/game/motion/facing.js +50 -0
- package/dist/game/motion/facing.js.map +1 -0
- package/dist/game/motion/handBounce.d.ts +251 -0
- package/dist/game/motion/handBounce.d.ts.map +1 -0
- package/dist/game/motion/handBounce.js +315 -0
- package/dist/game/motion/handBounce.js.map +1 -0
- package/dist/game/motion/index.d.ts +6 -0
- package/dist/game/motion/index.d.ts.map +1 -1
- package/dist/game/motion/index.js +3 -0
- package/dist/game/motion/index.js.map +1 -1
- package/dist/game/motion/twoHandGrip.d.ts +229 -0
- package/dist/game/motion/twoHandGrip.d.ts.map +1 -0
- package/dist/game/motion/twoHandGrip.js +413 -0
- package/dist/game/motion/twoHandGrip.js.map +1 -0
- package/dist/game/session/warmPrograms.d.ts +17 -0
- package/dist/game/session/warmPrograms.d.ts.map +1 -1
- package/dist/game/session/warmPrograms.js +18 -1
- package/dist/game/session/warmPrograms.js.map +1 -1
- package/dist/physics/ensure.d.ts +2 -0
- package/dist/physics/ensure.d.ts.map +1 -0
- package/dist/physics/ensure.js +4 -0
- package/dist/physics/ensure.js.map +1 -0
- package/dist/physics/index.d.ts +1 -0
- package/dist/physics/index.d.ts.map +1 -1
- package/dist/physics/index.js +1 -0
- package/dist/physics/index.js.map +1 -1
- package/dist/physics/world.d.ts +1 -0
- package/dist/physics/world.d.ts.map +1 -1
- package/dist/physics/world.js +1 -0
- package/dist/physics/world.js.map +1 -1
- package/dist/physics-rapier/index.d.ts +2 -0
- package/dist/physics-rapier/index.d.ts.map +1 -1
- package/dist/physics-rapier/index.js +12 -10
- package/dist/physics-rapier/index.js.map +1 -1
- package/dist/physics-rapier/rapierInit.d.ts +6 -0
- package/dist/physics-rapier/rapierInit.d.ts.map +1 -0
- package/dist/physics-rapier/rapierInit.js +12 -0
- package/dist/physics-rapier/rapierInit.js.map +1 -0
- package/dist/physics-rapier/rapierInit.lazy.d.ts +6 -0
- package/dist/physics-rapier/rapierInit.lazy.d.ts.map +1 -0
- package/dist/physics-rapier/rapierInit.lazy.js +19 -0
- package/dist/physics-rapier/rapierInit.lazy.js.map +1 -0
- package/dist/rendering/DepthPass.d.ts.map +1 -1
- package/dist/rendering/DepthPass.js +30 -8
- package/dist/rendering/DepthPass.js.map +1 -1
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +7 -0
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/Renderer.d.ts +0 -2
- package/dist/rendering/Renderer.d.ts.map +1 -1
- package/dist/rendering/Renderer.js +6 -16
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/contracts/output.d.ts +9 -1
- package/dist/rendering/contracts/output.d.ts.map +1 -1
- package/dist/rendering/contracts/output.js.map +1 -1
- package/dist/rendering/output/OutputPass.d.ts +2 -0
- package/dist/rendering/output/OutputPass.d.ts.map +1 -1
- package/dist/rendering/output/OutputPass.js +26 -3
- package/dist/rendering/output/OutputPass.js.map +1 -1
- package/dist/rendering/output/ToneMappingOperators.glsl.d.ts +3 -1
- package/dist/rendering/output/ToneMappingOperators.glsl.d.ts.map +1 -1
- package/dist/rendering/output/ToneMappingOperators.glsl.js +19 -1
- package/dist/rendering/output/ToneMappingOperators.glsl.js.map +1 -1
- package/dist/rendering/post/v2Stages.d.ts +2 -7
- package/dist/rendering/post/v2Stages.d.ts.map +1 -1
- package/dist/rendering/post/v2Stages.js +2 -17
- package/dist/rendering/post/v2Stages.js.map +1 -1
- package/dist/rendering/post/vignetteColor.d.ts +8 -0
- package/dist/rendering/post/vignetteColor.d.ts.map +1 -0
- package/dist/rendering/post/vignetteColor.js +18 -0
- package/dist/rendering/post/vignetteColor.js.map +1 -0
- package/dist/rendering/renderer/PostprocessExecution.d.ts +10 -0
- package/dist/rendering/renderer/PostprocessExecution.d.ts.map +1 -1
- package/dist/rendering/renderer/PostprocessExecution.js +38 -38
- package/dist/rendering/renderer/PostprocessExecution.js.map +1 -1
- package/dist/rendering/renderer/coreOutputPostRoute.d.ts +25 -17
- package/dist/rendering/renderer/coreOutputPostRoute.d.ts.map +1 -1
- package/dist/rendering/renderer/coreOutputPostRoute.js +27 -18
- package/dist/rendering/renderer/coreOutputPostRoute.js.map +1 -1
- package/dist/rendering/renderer/qrSubFlags.d.ts +1 -1
- package/dist/rendering/renderer/qrSubFlags.d.ts.map +1 -1
- package/dist/rendering/renderer/qrSubFlags.js +2 -8
- package/dist/rendering/renderer/qrSubFlags.js.map +1 -1
- package/dist/rendering/shaders/chunks/author/index.d.ts.map +1 -1
- package/dist/rendering/shaders/chunks/author/index.js +7 -0
- package/dist/rendering/shaders/chunks/author/index.js.map +1 -1
- package/dist/rendering/shaders/chunks/author/shadow.glsl.d.ts +11 -0
- package/dist/rendering/shaders/chunks/author/shadow.glsl.d.ts.map +1 -0
- package/dist/rendering/shaders/chunks/author/shadow.glsl.js +57 -0
- package/dist/rendering/shaders/chunks/author/shadow.glsl.js.map +1 -0
- package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts +20 -0
- package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts.map +1 -1
- package/dist/rendering/shadows/DirectionalCascadeFitter.js +80 -7
- package/dist/rendering/shadows/DirectionalCascadeFitter.js.map +1 -1
- package/dist/rendering/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -1
- package/dist/rendering/shadows/Prd02DepthShaderLibrary.js +9 -1
- package/dist/rendering/shadows/Prd02DepthShaderLibrary.js.map +1 -1
- package/dist/rendering/shadows/ShadowSystem.d.ts.map +1 -1
- package/dist/rendering/shadows/ShadowSystem.js +7 -2
- package/dist/rendering/shadows/ShadowSystem.js.map +1 -1
- package/dist/rendering/webgl2/LdrPostprocessShader.d.ts +2 -0
- package/dist/rendering/webgl2/LdrPostprocessShader.d.ts.map +1 -1
- package/dist/rendering/webgl2/LdrPostprocessShader.js +25 -3
- package/dist/rendering/webgl2/LdrPostprocessShader.js.map +1 -1
- package/dist/rendering/webgl2/LegacyPost.d.ts +11 -2
- package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
- package/dist/rendering/webgl2/LegacyPost.js +191 -16
- package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
- package/package.json +33 -26
- package/templates/cinematic-scene/package.json +2 -2
- package/templates/mini-game/package.json +2 -2
- package/templates/product-viewer/package.json +2 -2
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LdrPostprocessShader.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/LdrPostprocessShader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,iHAAiH;IACjH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LdrPostprocessShader.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/LdrPostprocessShader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,iHAAiH;IACjH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,iIAAiI;IACjI,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAIhE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA8OpE"}
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
*/
|
|
11
11
|
export function ldrVariantKey(variant) {
|
|
12
12
|
const op = variant.toneMapping ? Math.min(6, Math.max(0, Math.floor(variant.operator))) : 0;
|
|
13
|
-
|
|
13
|
+
const base = [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
|
+
return variant.toneMapping && variant.vignette ? `${base}v` : base;
|
|
14
15
|
}
|
|
15
16
|
export function ldrFragmentSource(variant) {
|
|
16
17
|
const op = variant.toneMapping ? Math.min(6, Math.max(0, Math.floor(variant.operator))) : 0;
|
|
@@ -23,6 +24,7 @@ precision highp float;
|
|
|
23
24
|
#define LDR_GRADE ${variant.grade ? 1 : 0}
|
|
24
25
|
#define LDR_SHARPEN ${variant.grade && variant.sharpening ? 1 : 0}
|
|
25
26
|
#define LDR_FXAA ${variant.fxaa ? 1 : 0}
|
|
27
|
+
#define LDR_VIGNETTE ${variant.toneMapping && variant.vignette ? 1 : 0}
|
|
26
28
|
uniform sampler2D u_source;
|
|
27
29
|
uniform vec2 u_texelSize;
|
|
28
30
|
uniform int u_hasToneMapping;
|
|
@@ -43,6 +45,12 @@ uniform float u_sharpening;
|
|
|
43
45
|
uniform int u_hasFxaa;
|
|
44
46
|
uniform float u_edgeThreshold;
|
|
45
47
|
uniform float u_subpixelBlend;
|
|
48
|
+
#if LDR_VIGNETTE
|
|
49
|
+
uniform float u_vignetteIntensity;
|
|
50
|
+
uniform float u_vignetteSmoothness;
|
|
51
|
+
uniform float u_vignetteRoundness;
|
|
52
|
+
uniform vec3 u_vignetteColor;
|
|
53
|
+
#endif
|
|
46
54
|
in vec2 v_uv;
|
|
47
55
|
out vec4 outColor;
|
|
48
56
|
|
|
@@ -147,9 +155,23 @@ float toneMapChannel(float value) {
|
|
|
147
155
|
}
|
|
148
156
|
#endif
|
|
149
157
|
|
|
150
|
-
|
|
158
|
+
#if LDR_VIGNETTE
|
|
159
|
+
// PostGraph v2: the vignette is a light falloff, so it multiplies the linear colour before the tone operator
|
|
160
|
+
// (tone map and encode run once, after every effect). Same radial law as the display-grade vignette.
|
|
161
|
+
vec3 vignetteLinear(vec3 color, vec2 uv) {
|
|
162
|
+
vec2 p = (uv - 0.5) * 2.0;
|
|
163
|
+
p.x *= (u_texelSize.y / u_texelSize.x) * u_vignetteRoundness;
|
|
164
|
+
float len = length(p) * u_vignetteIntensity;
|
|
165
|
+
return color * mix(vec3(1.0), u_vignetteColor, pow(clamp(len, 0.0, 1.0), u_vignetteSmoothness));
|
|
166
|
+
}
|
|
167
|
+
#endif
|
|
168
|
+
|
|
169
|
+
vec3 applyToneMapping(vec3 color, vec2 uv) {
|
|
151
170
|
#if LDR_TONE
|
|
152
171
|
vec3 decoded = decodeColor(color);
|
|
172
|
+
#if LDR_VIGNETTE
|
|
173
|
+
decoded = vignetteLinear(decoded, uv);
|
|
174
|
+
#endif
|
|
153
175
|
#if LDR_OP == 2
|
|
154
176
|
vec3 mapped = acesFilmic(max(vec3(0.0), decoded * u_exposure) / max(0.0001, u_whitePoint));
|
|
155
177
|
#else
|
|
@@ -184,7 +206,7 @@ vec3 applyColorGrade(vec3 color, vec2 uv) {
|
|
|
184
206
|
vec3 baseColorAt(vec2 uv) {
|
|
185
207
|
vec2 clampedUv = clamp(uv, vec2(0.0), vec2(1.0));
|
|
186
208
|
vec3 color = texture(u_source, clampedUv).rgb;
|
|
187
|
-
return applyColorGrade(applyToneMapping(color), clampedUv);
|
|
209
|
+
return applyColorGrade(applyToneMapping(color, clampedUv), clampedUv);
|
|
188
210
|
}
|
|
189
211
|
|
|
190
212
|
vec3 finalColorAt(vec2 uv) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LdrPostprocessShader.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/LdrPostprocessShader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"LdrPostprocessShader.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/webgl2/LdrPostprocessShader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH,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,MAAM,IAAI,GAAG,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;IACzM,OAAO,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,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;uBAChB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkOrE,CAAC;AACF,CAAC"}
|
|
@@ -163,6 +163,13 @@ export declare class WebGL2LegacyPostPipeline {
|
|
|
163
163
|
intensity: number;
|
|
164
164
|
}): void;
|
|
165
165
|
presentLdrPostprocess(source: RenderTarget, options: WebGL2LdrPostprocessPresentationOptions): void;
|
|
166
|
+
/**
|
|
167
|
+
* PostGraph v2 bloom stage: runs the native HDR bloom over `source` and writes the
|
|
168
|
+
* composite (source + bloom) into the rgba16f `destination`, so the single tone map
|
|
169
|
+
* and encode run afterwards in the OutputPass. The same passes `presentLdrPostprocess`
|
|
170
|
+
* runs for a bloom descriptor, minus the fused tone/grade/FXAA stage.
|
|
171
|
+
*/
|
|
172
|
+
presentHdrBloom(source: RenderTarget, bloomOptionsRaw: Readonly<Record<string, unknown>>, destination: RenderTarget): void;
|
|
166
173
|
drawRenderTargetToBackbuffer(source: WebGL2RenderTarget, outputWidth: number, outputHeight: number): void;
|
|
167
174
|
ensureBloomPingPongResources(width: number, height: number, hdr?: boolean): WebGL2BloomPingPongResources;
|
|
168
175
|
ensureBloomLutTextures(options: NativeBloomOptions): void;
|
|
@@ -171,7 +178,7 @@ export declare class WebGL2LegacyPostPipeline {
|
|
|
171
178
|
ensureMotionBlurVelocityTexture(width: number, height: number, velocity: Float32Array): void;
|
|
172
179
|
ensureTaaHistoryTexture(width: number, height: number, history: Uint8Array): void;
|
|
173
180
|
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;
|
|
174
|
-
executeNativeBloomPasses(sourceTexture: WebGLTexture, resources: WebGL2BloomPingPongResources, options: NativeBloomOptions, vertexArray: WebGLVertexArrayObject, hdr: boolean): WebGLTexture;
|
|
181
|
+
executeNativeBloomPasses(sourceTexture: WebGLTexture, resources: WebGL2BloomPingPongResources, options: NativeBloomOptions, vertexArray: WebGLVertexArrayObject, hdr: boolean, destination?: WebGL2RenderTarget): WebGLTexture;
|
|
175
182
|
executeNativeBloomPyramidPasses(sourceTexture: WebGLTexture, sourceWidth: number, sourceHeight: number, resources: WebGL2BloomPyramidResources, fullResStaging: {
|
|
176
183
|
textureA: WebGLTexture;
|
|
177
184
|
framebufferA: WebGLFramebuffer;
|
|
@@ -243,7 +250,9 @@ export declare function normalizeNativeBloomOptions(options: Readonly<Record<str
|
|
|
243
250
|
* chain applies exposure here, the final graph applies it in S10 composite
|
|
244
251
|
* and this pass receives `1`.
|
|
245
252
|
*/
|
|
246
|
-
export declare function createLegacyOutputPass(pipeline: PostPipelineOptions, base?: Readonly<Record<string, unknown
|
|
253
|
+
export declare function createLegacyOutputPass(pipeline: PostPipelineOptions, base?: Readonly<Record<string, unknown>>,
|
|
254
|
+
/** The authored vignette, folded into the OUT stage so it composes in linear light before the single tone map. */
|
|
255
|
+
vignette?: PostPipelineOptions["vignette"]): LdrPostprocessPassDescriptor;
|
|
247
256
|
/**
|
|
248
257
|
* `executePostGraphWebGL2` — the C-13 device carve (CONTRACTS §3.1 /
|
|
249
258
|
* PRD-03 §7.2). It receives the device's GL internals (the registered
|
|
@@ -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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"}
|
|
@@ -9,7 +9,10 @@ import { BLOOM_BRIGHT_LUT_HEIGHT, BLOOM_BRIGHT_LUT_WIDTH, BLOOM_COMPOSITE_LUT_SI
|
|
|
9
9
|
// split is opt-in via `fxaa: { variant: "r185" }`; the legacy in-shader
|
|
10
10
|
// `u_hasFxaa` taps stay the default path.
|
|
11
11
|
import { FXAA_185_FRAGMENT_GLSL } from "../post/shaders/fxaa.glsl.js";
|
|
12
|
-
import { recordPostSkipped } from "../renderer/postSkipped.js";
|
|
12
|
+
import { recordPostSkipped, recordPostStage } from "../renderer/postSkipped.js";
|
|
13
|
+
import { vignetteColorRgb } from "../post/vignetteColor.js";
|
|
14
|
+
import { outputPassForDevice } from "../output/OutputPass.js";
|
|
15
|
+
import { TONE_MAP_OPERATOR_FUNCTIONS } from "../output/ToneMappingOperators.glsl.js";
|
|
13
16
|
import { ldrFragmentSource, ldrVariantKey } from "./LdrPostprocessShader.js";
|
|
14
17
|
export class WebGL2LegacyPostPipeline {
|
|
15
18
|
host;
|
|
@@ -301,6 +304,74 @@ export class WebGL2LegacyPostPipeline {
|
|
|
301
304
|
}
|
|
302
305
|
this.host.device.setRenderTarget(webglOutputTarget ?? null);
|
|
303
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* PostGraph v2 bloom stage: runs the native HDR bloom over `source` and writes the
|
|
309
|
+
* composite (source + bloom) into the rgba16f `destination`, so the single tone map
|
|
310
|
+
* and encode run afterwards in the OutputPass. The same passes `presentLdrPostprocess`
|
|
311
|
+
* runs for a bloom descriptor, minus the fused tone/grade/FXAA stage.
|
|
312
|
+
*/
|
|
313
|
+
presentHdrBloom(source, bloomOptionsRaw, destination) {
|
|
314
|
+
this.host.lifecycle.assertAlive();
|
|
315
|
+
if (!(source instanceof WebGL2RenderTarget) || !this.host.renderTargets.has(source) || source.disposed) {
|
|
316
|
+
throw new RenderDeviceError("Render target is not a live WebGL2 resource owned by this device", "INVALID_RESOURCE", { targetId: source.id });
|
|
317
|
+
}
|
|
318
|
+
if (!(destination instanceof WebGL2RenderTarget) || !this.host.renderTargets.has(destination) || destination.disposed
|
|
319
|
+
|| destination.colorTexture.format !== "rgba16f" || destination.width !== source.width || destination.height !== source.height) {
|
|
320
|
+
throw new RenderDeviceError("HDR bloom destination must be a live rgba16f WebGL2 target matching the source size.", "INVALID_RESOURCE", { targetId: destination.id });
|
|
321
|
+
}
|
|
322
|
+
if (source.colorTexture.format === "rgba8") {
|
|
323
|
+
throw new RenderDeviceError("HDR bloom requires a floating-point source target.", "WEBGL_LDR_POSTPROCESS_FORMAT_UNSUPPORTED", { targetId: source.id });
|
|
324
|
+
}
|
|
325
|
+
this.host.resolveMultisampleTarget(source);
|
|
326
|
+
const bloomOptions = normalizeNativeBloomOptions({ ...bloomOptionsRaw, v2: true });
|
|
327
|
+
const vertexArray = this.ensurePresentationVertexArray();
|
|
328
|
+
const resources = this.ensureBloomPingPongResources(source.width, source.height, true);
|
|
329
|
+
const previousState = this.prepareFullscreenPresentation(destination.framebuffer, source.width, source.height);
|
|
330
|
+
try {
|
|
331
|
+
if (bloomOptions.quality === "performance") {
|
|
332
|
+
this.executeNativeBloomPasses(source.colorHandle, resources, bloomOptions, vertexArray, true, destination);
|
|
333
|
+
this.recordBloomDiagnostics(bloomOptions, source.width, source.height, true, 1);
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
const plan = resolveBloomPyramidPlan(source.width, source.height, bloomOptions.quality, true);
|
|
337
|
+
const pyramid = this.ensureBloomPyramidResources(plan, true);
|
|
338
|
+
const pyramidResult = this.executeNativeBloomPyramidPasses(source.colorHandle, source.width, source.height, pyramid, {
|
|
339
|
+
textureA: resources.textures[0],
|
|
340
|
+
framebufferA: resources.framebuffers[0],
|
|
341
|
+
textureB: resources.textures[1],
|
|
342
|
+
framebufferB: resources.framebuffers[1]
|
|
343
|
+
}, bloomOptions, vertexArray, true);
|
|
344
|
+
this.host.gl.bindFramebuffer(this.host.gl.FRAMEBUFFER, destination.framebuffer);
|
|
345
|
+
this.host.gl.viewport(0, 0, source.width, source.height);
|
|
346
|
+
const composite = this.ensureBloomCompositeProgram();
|
|
347
|
+
this.host.gl.useProgram(composite);
|
|
348
|
+
this.host.gl.bindVertexArray(vertexArray);
|
|
349
|
+
this.bindFullscreenTexture(0, source.colorHandle);
|
|
350
|
+
this.bindFullscreenTexture(1, pyramidResult);
|
|
351
|
+
if (this.bloomCompositeLutTexture)
|
|
352
|
+
this.bindFullscreenTexture(2, this.bloomCompositeLutTexture);
|
|
353
|
+
this.host.gl.uniform1i(this.host.gl.getUniformLocation(composite, "u_source"), 0);
|
|
354
|
+
this.host.gl.uniform1i(this.host.gl.getUniformLocation(composite, "u_blurred"), 1);
|
|
355
|
+
this.host.gl.uniform1i(this.host.gl.getUniformLocation(composite, "u_compositeLut"), 2);
|
|
356
|
+
this.host.gl.uniform1i(this.host.gl.getUniformLocation(composite, "u_hdr"), 1);
|
|
357
|
+
this.host.gl.uniform1f(this.host.gl.getUniformLocation(composite, "u_intensity"), bloomOptions.intensity * nativeBloomResponseGain(plan, bloomOptions));
|
|
358
|
+
this.host.gl.drawArrays(this.host.gl.TRIANGLES, 0, 3);
|
|
359
|
+
this.recordBloomDiagnostics(bloomOptions, source.width, source.height, true, plan.mipCount);
|
|
360
|
+
}
|
|
361
|
+
this.host.gl.flush();
|
|
362
|
+
}
|
|
363
|
+
finally {
|
|
364
|
+
this.restoreFullscreenPresentationState(previousState, source.width, source.height);
|
|
365
|
+
this.host.stateCache.invalidate();
|
|
366
|
+
}
|
|
367
|
+
this.host.lifecycle.lastError = this.host.lifecycle.readError();
|
|
368
|
+
if (this.host.lifecycle.lastError) {
|
|
369
|
+
throw new RenderDeviceError(`WebGL2 HDR bloom failed: ${this.host.lifecycle.lastError}`, "WEBGL_LDR_POSTPROCESS_FAILED", {
|
|
370
|
+
targetId: source.id,
|
|
371
|
+
error: this.host.lifecycle.lastError
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
}
|
|
304
375
|
drawRenderTargetToBackbuffer(source, outputWidth, outputHeight) {
|
|
305
376
|
const program = this.ensurePresentationProgram();
|
|
306
377
|
const vertexArray = this.ensurePresentationVertexArray();
|
|
@@ -488,8 +559,10 @@ export class WebGL2LegacyPostPipeline {
|
|
|
488
559
|
const toneOptions = { ...(toneMappingDefaults ?? {}), ...(tonePass?.options ?? {}) };
|
|
489
560
|
const colorOptions = colorPass?.options ?? {};
|
|
490
561
|
const fxaaOptions = fxaaPass?.options ?? {};
|
|
562
|
+
const toneVignette = tonePass ? linearVignetteOption(toneOptions) : undefined;
|
|
491
563
|
const program = this.ensureLdrPostprocessProgram({
|
|
492
564
|
toneMapping: Boolean(tonePass),
|
|
565
|
+
vignette: toneVignette !== undefined,
|
|
493
566
|
operator: toneMappingOperatorId(stringOption(toneOptions, "operator", "reinhard")),
|
|
494
567
|
inputSrgb: colorSpaceId(stringOption(toneOptions, "inputColorSpace", "linear")) === 1,
|
|
495
568
|
outputSrgb: colorSpaceId(stringOption(toneOptions, "outputColorSpace", "linear")) === 1,
|
|
@@ -521,9 +594,15 @@ export class WebGL2LegacyPostPipeline {
|
|
|
521
594
|
this.host.gl.uniform1i(this.host.gl.getUniformLocation(program, "u_hasFxaa"), fxaaPass ? 1 : 0);
|
|
522
595
|
this.host.gl.uniform1f(this.host.gl.getUniformLocation(program, "u_edgeThreshold"), numberOption(fxaaOptions, "edgeThreshold", 0.125));
|
|
523
596
|
this.host.gl.uniform1f(this.host.gl.getUniformLocation(program, "u_subpixelBlend"), numberOption(fxaaOptions, "subpixelBlend", 0.75));
|
|
597
|
+
if (toneVignette) {
|
|
598
|
+
this.host.gl.uniform1f(this.host.gl.getUniformLocation(program, "u_vignetteIntensity"), toneVignette.intensity);
|
|
599
|
+
this.host.gl.uniform1f(this.host.gl.getUniformLocation(program, "u_vignetteSmoothness"), toneVignette.smoothness);
|
|
600
|
+
this.host.gl.uniform1f(this.host.gl.getUniformLocation(program, "u_vignetteRoundness"), toneVignette.roundness);
|
|
601
|
+
this.host.gl.uniform3f(this.host.gl.getUniformLocation(program, "u_vignetteColor"), toneVignette.color[0], toneVignette.color[1], toneVignette.color[2]);
|
|
602
|
+
}
|
|
524
603
|
this.host.gl.drawArrays(this.host.gl.TRIANGLES, 0, 3);
|
|
525
604
|
}
|
|
526
|
-
executeNativeBloomPasses(sourceTexture, resources, options, vertexArray, hdr) {
|
|
605
|
+
executeNativeBloomPasses(sourceTexture, resources, options, vertexArray, hdr, destination) {
|
|
527
606
|
const brightLut = this.bloomBrightLutTexture;
|
|
528
607
|
const compositeLut = this.bloomCompositeLutTexture;
|
|
529
608
|
if (!hdr && (!brightLut || !compositeLut)) {
|
|
@@ -561,7 +640,7 @@ export class WebGL2LegacyPostPipeline {
|
|
|
561
640
|
this.host.gl.uniform1i(this.host.gl.getUniformLocation(blurProgram, "u_horizontal"), 0);
|
|
562
641
|
this.host.gl.drawArrays(this.host.gl.TRIANGLES, 0, 3);
|
|
563
642
|
const compositeProgram = this.ensureBloomCompositeProgram();
|
|
564
|
-
this.host.gl.bindFramebuffer(this.host.gl.FRAMEBUFFER, framebufferB);
|
|
643
|
+
this.host.gl.bindFramebuffer(this.host.gl.FRAMEBUFFER, destination?.framebuffer ?? framebufferB);
|
|
565
644
|
this.host.gl.useProgram(compositeProgram);
|
|
566
645
|
this.bindFullscreenTexture(0, sourceTexture);
|
|
567
646
|
this.bindFullscreenTexture(1, textureA);
|
|
@@ -573,7 +652,7 @@ export class WebGL2LegacyPostPipeline {
|
|
|
573
652
|
this.host.gl.uniform1i(this.host.gl.getUniformLocation(compositeProgram, "u_hdr"), hdr ? 1 : 0);
|
|
574
653
|
this.host.gl.uniform1f(this.host.gl.getUniformLocation(compositeProgram, "u_intensity"), options.intensity);
|
|
575
654
|
this.host.gl.drawArrays(this.host.gl.TRIANGLES, 0, 3);
|
|
576
|
-
return textureB;
|
|
655
|
+
return destination ? destination.colorHandle : textureB;
|
|
577
656
|
}
|
|
578
657
|
executeNativeBloomPyramidPasses(sourceTexture, sourceWidth, sourceHeight, resources, fullResStaging, options, vertexArray, hdr) {
|
|
579
658
|
const plan = resources.plan;
|
|
@@ -2121,6 +2200,23 @@ function taaNumberOption(options, key, fallback) {
|
|
|
2121
2200
|
}
|
|
2122
2201
|
return value;
|
|
2123
2202
|
}
|
|
2203
|
+
/** The linear-light vignette a tone-mapping descriptor carries (`options.vignette`), or undefined when it is off. */
|
|
2204
|
+
function linearVignetteOption(toneOptions) {
|
|
2205
|
+
const raw = toneOptions.vignette;
|
|
2206
|
+
if (raw === null || typeof raw !== "object")
|
|
2207
|
+
return undefined;
|
|
2208
|
+
const v = raw;
|
|
2209
|
+
const intensity = typeof v.intensity === "number" && Number.isFinite(v.intensity) ? v.intensity : 0;
|
|
2210
|
+
if (intensity <= 0)
|
|
2211
|
+
return undefined;
|
|
2212
|
+
const finite = (n, fallback) => (typeof n === "number" && Number.isFinite(n) ? n : fallback);
|
|
2213
|
+
return {
|
|
2214
|
+
intensity,
|
|
2215
|
+
smoothness: finite(v.smoothness, 1),
|
|
2216
|
+
roundness: finite(v.roundness, 1),
|
|
2217
|
+
color: vignetteColorRgb(v.color)
|
|
2218
|
+
};
|
|
2219
|
+
}
|
|
2124
2220
|
function toneMappingOperatorId(value) {
|
|
2125
2221
|
if (value === "linear")
|
|
2126
2222
|
return 0;
|
|
@@ -2146,12 +2242,15 @@ function toneMappingOperatorId(value) {
|
|
|
2146
2242
|
* chain applies exposure here, the final graph applies it in S10 composite
|
|
2147
2243
|
* and this pass receives `1`.
|
|
2148
2244
|
*/
|
|
2149
|
-
export function createLegacyOutputPass(pipeline, base
|
|
2245
|
+
export function createLegacyOutputPass(pipeline, base,
|
|
2246
|
+
/** The authored vignette, folded into the OUT stage so it composes in linear light before the single tone map. */
|
|
2247
|
+
vignette) {
|
|
2150
2248
|
const operator = pipeline.toneMapping === "none" ? "linear" : pipeline.toneMapping;
|
|
2151
2249
|
return {
|
|
2152
2250
|
name: "tone-mapping",
|
|
2153
2251
|
options: {
|
|
2154
2252
|
...(base ?? {}),
|
|
2253
|
+
...(vignette ? { vignette } : {}),
|
|
2155
2254
|
operator,
|
|
2156
2255
|
exposure: pipeline.exposure,
|
|
2157
2256
|
inputColorSpace: "srgb-linear",
|
|
@@ -2162,6 +2261,22 @@ export function createLegacyOutputPass(pipeline, base) {
|
|
|
2162
2261
|
}
|
|
2163
2262
|
};
|
|
2164
2263
|
}
|
|
2264
|
+
/** The OutputPass OUT-stage configuration for a v2 chain, or undefined when the chain needs the fused present. */
|
|
2265
|
+
function outputPassRouteTone(passes, pipeline, source, host) {
|
|
2266
|
+
if (source.colorTexture.format === "rgba8" || !host.device)
|
|
2267
|
+
return undefined;
|
|
2268
|
+
if (!passes.every((pass) => pass.name === "tone-mapping" || pass.name === "bloom"))
|
|
2269
|
+
return undefined;
|
|
2270
|
+
const tonePass = passes.find((pass) => pass.name === "tone-mapping");
|
|
2271
|
+
const whitePoint = tonePass?.options?.whitePoint;
|
|
2272
|
+
if (whitePoint !== undefined && whitePoint !== 1)
|
|
2273
|
+
return undefined;
|
|
2274
|
+
const operator = pipeline.toneMapping === "none" ? "linear" : pipeline.toneMapping;
|
|
2275
|
+
if (!TONE_MAP_OPERATOR_FUNCTIONS[operator])
|
|
2276
|
+
return undefined;
|
|
2277
|
+
const vignette = linearVignetteOption({ vignette: pipeline.vignette });
|
|
2278
|
+
return { operator, vignette: vignette ? { intensity: vignette.intensity, smoothness: vignette.smoothness, roundness: vignette.roundness, color: vignette.color } : undefined };
|
|
2279
|
+
}
|
|
2165
2280
|
/**
|
|
2166
2281
|
* `executePostGraphWebGL2` — the C-13 device carve (CONTRACTS §3.1 /
|
|
2167
2282
|
* PRD-03 §7.2). It receives the device's GL internals (the registered
|
|
@@ -2194,7 +2309,14 @@ export function executePostGraphWebGL2(host, source, request) {
|
|
|
2194
2309
|
workSource = hdrResult.target;
|
|
2195
2310
|
afterBloomStage = hdrResult.afterBloom;
|
|
2196
2311
|
}
|
|
2197
|
-
|
|
2312
|
+
// The vignette is a light falloff: it composes in linear light inside the single OUT
|
|
2313
|
+
// stage (before the one tone map and encode) instead of darkening display-referred
|
|
2314
|
+
// bytes in the LDR tail. The OUT stage always exists on this route — a tone-mapping
|
|
2315
|
+
// descriptor, or the linear OutputPass injected for `toneMapping: "none"`.
|
|
2316
|
+
const vignetteInOut = Boolean(pipeline.vignette)
|
|
2317
|
+
&& (request.passes.some((pass) => pass.name === "tone-mapping") || pipeline.toneMapping === "none");
|
|
2318
|
+
const tailPipeline = vignetteInOut ? { ...pipeline, vignette: undefined } : pipeline;
|
|
2319
|
+
const needsTail = Boolean(v2 && v2.v2NeedsLdrTail(tailPipeline));
|
|
2198
2320
|
const ldrTailTarget = needsTail && v2
|
|
2199
2321
|
? v2.acquireV2Target(host, { width: source.width, height: source.height, format: "rgba8" })
|
|
2200
2322
|
: undefined;
|
|
@@ -2203,19 +2325,72 @@ export function executePostGraphWebGL2(host, source, request) {
|
|
|
2203
2325
|
const pipelineForOut = needsTail && pipeline.dither !== false
|
|
2204
2326
|
? { ...pipeline, dither: false }
|
|
2205
2327
|
: pipeline;
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2328
|
+
// §6.9/T0-17 (FLAG-ON-4): on the v2 chain the HDR stages own their
|
|
2329
|
+
// effects — S2 GTAO (ssao), S6 (depth-of-field), S7 (motion-blur),
|
|
2330
|
+
// S5 (taa). The legacy twin must not double-run, and its native depth
|
|
2331
|
+
// read would throw WEBGL_LDR_POSTPROCESS_DEPTH_REQUIRED per frame on
|
|
2332
|
+
// the pooled depth-less stage output.
|
|
2333
|
+
const v2Passes = request.passes
|
|
2212
2334
|
.filter((pass) => !(v2 && ((pipeline.ao && pass.name === "ssao")
|
|
2213
2335
|
|| (pipeline.dof && pass.name === "depth-of-field")
|
|
2214
2336
|
|| (pipeline.motionBlur && pass.name === "motion-blur")
|
|
2215
|
-
|| ((pipeline.antiAliasing === "taa" || Boolean(pipeline.taa)) && pass.name === "taa"))))
|
|
2337
|
+
|| ((pipeline.antiAliasing === "taa" || Boolean(pipeline.taa)) && pass.name === "taa"))));
|
|
2338
|
+
// The single tone map and sRGB encode run in the OutputPass whenever the remaining
|
|
2339
|
+
// descriptors are only bloom and tone mapping (every effect before them composes in
|
|
2340
|
+
// linear HDR); chains with legacy display-space kernels (ssr, outline, grade, fxaa
|
|
2341
|
+
// descriptors) or a non-default white point keep the fused present.
|
|
2342
|
+
const outputPassTone = v2 ? outputPassRouteTone(v2Passes, pipeline, source, host) : undefined;
|
|
2343
|
+
if (v2 && outputPassTone) {
|
|
2344
|
+
const bloomPass = v2Passes.find((pass) => pass.name === "bloom");
|
|
2345
|
+
const owned = [];
|
|
2346
|
+
try {
|
|
2347
|
+
let current = workSource;
|
|
2348
|
+
if (bloomPass) {
|
|
2349
|
+
const bloomed = v2.acquireV2Target(host, { width: source.width, height: source.height, format: "rgba16f" });
|
|
2350
|
+
owned.push(bloomed);
|
|
2351
|
+
host.post.presentHdrBloom(workSource, bloomPass.options, bloomed);
|
|
2352
|
+
current = bloomed;
|
|
2353
|
+
if (afterBloomStage) {
|
|
2354
|
+
afterBloomRan = true;
|
|
2355
|
+
current = afterBloomStage.run(bloomed);
|
|
2356
|
+
}
|
|
2357
|
+
}
|
|
2358
|
+
else {
|
|
2359
|
+
host.resolveMultisampleTarget(workSource);
|
|
2360
|
+
}
|
|
2361
|
+
// Bind the final destination first: the OutputPass restores the previously bound target, so the
|
|
2362
|
+
// frame ends on the default framebuffer (or the explicit output target), never on an HDR target.
|
|
2363
|
+
host.device.setRenderTarget(request.outputTarget ?? null);
|
|
2364
|
+
// `dither: false`: the S12 finalize owns the one triangular dither when a tail exists, and
|
|
2365
|
+
// the fused OUT this replaces never dithered; the chain's output must not change.
|
|
2366
|
+
outputPassForDevice(host.device).execute(current, null, {
|
|
2367
|
+
toneMapping: outputPassTone.operator,
|
|
2368
|
+
exposure: pipelineForOut.exposure,
|
|
2369
|
+
dithering: false,
|
|
2370
|
+
backgroundCoverage: false,
|
|
2371
|
+
fullCoverage: true,
|
|
2372
|
+
...(vignetteInOut && outputPassTone.vignette ? { vignette: outputPassTone.vignette } : {})
|
|
2373
|
+
}, ldrTailTarget ?? request.outputTarget ?? "canvas");
|
|
2374
|
+
}
|
|
2375
|
+
finally {
|
|
2376
|
+
afterBloomStage?.release();
|
|
2377
|
+
for (const target of owned)
|
|
2378
|
+
v2.releaseV2Target(host, target);
|
|
2379
|
+
}
|
|
2380
|
+
if (workSource !== source)
|
|
2381
|
+
v2.releaseV2Target(host, workSource);
|
|
2382
|
+
if (ldrTailTarget) {
|
|
2383
|
+
v2.runV2LdrTail(host, ldrTailTarget, tailPipeline, request.outputTarget, request.frameContext);
|
|
2384
|
+
v2.releaseV2Target(host, ldrTailTarget);
|
|
2385
|
+
}
|
|
2386
|
+
host.device.setRenderTarget(request.outputTarget ?? null);
|
|
2387
|
+
recordPostStage("out:output-pass");
|
|
2388
|
+
return;
|
|
2389
|
+
}
|
|
2390
|
+
const mappedPasses = v2Passes
|
|
2216
2391
|
.map((pass) => {
|
|
2217
2392
|
if (pass.name === "tone-mapping") {
|
|
2218
|
-
return createLegacyOutputPass(pipelineForOut, pass.options);
|
|
2393
|
+
return createLegacyOutputPass(pipelineForOut, pass.options, vignetteInOut ? pipeline.vignette : undefined);
|
|
2219
2394
|
}
|
|
2220
2395
|
if (pass.name === "bloom") {
|
|
2221
2396
|
return { name: pass.name, options: { ...pass.options, v2: true } };
|
|
@@ -2242,7 +2417,7 @@ export function executePostGraphWebGL2(host, source, request) {
|
|
|
2242
2417
|
// OutputPass (createLegacyOutputPass maps 'none' to the linear operator)
|
|
2243
2418
|
// instead of throwing WEBGL_LDR_POSTPROCESS_FORMAT_UNSUPPORTED per frame.
|
|
2244
2419
|
const passes = pipeline.toneMapping === "none" && !depthSkippedPasses.some((pass) => pass.name === "tone-mapping")
|
|
2245
|
-
? [...depthSkippedPasses, createLegacyOutputPass(pipelineForOut)]
|
|
2420
|
+
? [...depthSkippedPasses, createLegacyOutputPass(pipelineForOut, undefined, vignetteInOut ? pipeline.vignette : undefined)]
|
|
2246
2421
|
: depthSkippedPasses;
|
|
2247
2422
|
try {
|
|
2248
2423
|
host.post.presentLdrPostprocess(workSource, {
|
|
@@ -2272,7 +2447,7 @@ export function executePostGraphWebGL2(host, source, request) {
|
|
|
2272
2447
|
if (workSource !== source && v2)
|
|
2273
2448
|
v2.releaseV2Target(host, workSource);
|
|
2274
2449
|
if (ldrTailTarget && v2) {
|
|
2275
|
-
v2.runV2LdrTail(host, ldrTailTarget,
|
|
2450
|
+
v2.runV2LdrTail(host, ldrTailTarget, tailPipeline, request.outputTarget, request.frameContext);
|
|
2276
2451
|
v2.releaseV2Target(host, ldrTailTarget);
|
|
2277
2452
|
}
|
|
2278
2453
|
}
|