@fps-games/engine 0.0.1-beta.5 → 0.0.1-beta.8
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/asset-resource.d.ts +39 -0
- package/dist/asset-resource.d.ts.map +1 -0
- package/dist/asset-resource.js +121 -0
- package/dist/asset-resource.js.map +1 -0
- package/dist/babylon/game-world-plugin-lifecycle.d.ts +26 -0
- package/dist/babylon/game-world-plugin-lifecycle.d.ts.map +1 -0
- package/dist/babylon/game-world-plugin-lifecycle.js +257 -0
- package/dist/babylon/game-world-plugin-lifecycle.js.map +1 -0
- package/dist/babylon/plugin-contract.d.ts +15 -0
- package/dist/babylon/plugin-contract.d.ts.map +1 -0
- package/dist/babylon/plugin-contract.js +9 -0
- package/dist/babylon/plugin-contract.js.map +1 -0
- package/dist/babylon/renderer/brdf-texture-settlement.d.ts +7 -0
- package/dist/babylon/renderer/brdf-texture-settlement.d.ts.map +1 -0
- package/dist/babylon/renderer/brdf-texture-settlement.js +29 -0
- package/dist/babylon/renderer/brdf-texture-settlement.js.map +1 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.d.ts +7 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.js +357 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.js.map +1 -0
- package/dist/babylon/renderer/environment/index.d.ts +4 -0
- package/dist/babylon/renderer/environment/index.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/index.js +4 -0
- package/dist/babylon/renderer/environment/index.js.map +1 -0
- package/dist/babylon/renderer/environment/profile.d.ts +3 -0
- package/dist/babylon/renderer/environment/profile.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/profile.js +27 -0
- package/dist/babylon/renderer/environment/profile.js.map +1 -0
- package/dist/babylon/renderer/environment/types.d.ts +24 -0
- package/dist/babylon/renderer/environment/types.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/types.js +6 -0
- package/dist/babylon/renderer/environment/types.js.map +1 -0
- package/dist/babylon/renderer/index.d.ts +24 -0
- package/dist/babylon/renderer/index.d.ts.map +1 -0
- package/dist/babylon/renderer/index.js +24 -0
- package/dist/babylon/renderer/index.js.map +1 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.d.ts +17 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.d.ts.map +1 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.js +67 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.js.map +1 -0
- package/dist/babylon/renderer/material-owner-candidates.d.ts +19 -0
- package/dist/babylon/renderer/material-owner-candidates.d.ts.map +1 -0
- package/dist/babylon/renderer/material-owner-candidates.js +212 -0
- package/dist/babylon/renderer/material-owner-candidates.js.map +1 -0
- package/dist/babylon/renderer/materials/index.d.ts +3 -0
- package/dist/babylon/renderer/materials/index.d.ts.map +1 -0
- package/dist/babylon/renderer/materials/index.js +3 -0
- package/dist/babylon/renderer/materials/index.js.map +1 -0
- package/dist/babylon/renderer/materials/material-runtime.d.ts +29 -0
- package/dist/babylon/renderer/materials/material-runtime.d.ts.map +1 -0
- package/dist/babylon/renderer/materials/material-runtime.js +660 -0
- package/dist/babylon/renderer/materials/material-runtime.js.map +1 -0
- package/dist/babylon/renderer/materials/material-slot-owner.d.ts +42 -0
- package/dist/babylon/renderer/materials/material-slot-owner.d.ts.map +1 -0
- package/dist/babylon/renderer/materials/material-slot-owner.js +318 -0
- package/dist/babylon/renderer/materials/material-slot-owner.js.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.d.ts +4 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.js +45 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.js.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.d.ts +3 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.js +2 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.js.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.d.ts +7 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.js +2 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.js.map +1 -0
- package/dist/babylon/renderer/outlines/index.d.ts +4 -0
- package/dist/babylon/renderer/outlines/index.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/index.js +3 -0
- package/dist/babylon/renderer/outlines/index.js.map +1 -0
- package/dist/babylon/renderer/outlines/runtime-override.d.ts +36 -0
- package/dist/babylon/renderer/outlines/runtime-override.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/runtime-override.js +131 -0
- package/dist/babylon/renderer/outlines/runtime-override.js.map +1 -0
- package/dist/babylon/renderer/outlines/types.d.ts +7 -0
- package/dist/babylon/renderer/outlines/types.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/types.js +2 -0
- package/dist/babylon/renderer/outlines/types.js.map +1 -0
- package/dist/babylon/renderer/placement/index.d.ts +2 -0
- package/dist/babylon/renderer/placement/index.d.ts.map +1 -0
- package/dist/babylon/renderer/placement/index.js +2 -0
- package/dist/babylon/renderer/placement/index.js.map +1 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.d.ts +24 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.d.ts.map +1 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.js +63 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.js.map +1 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.d.ts +7 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.js +301 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.js.map +1 -0
- package/dist/babylon/renderer/post-process/index.d.ts +5 -0
- package/dist/babylon/renderer/post-process/index.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/index.js +5 -0
- package/dist/babylon/renderer/post-process/index.js.map +1 -0
- package/dist/babylon/renderer/post-process/profile.d.ts +5 -0
- package/dist/babylon/renderer/post-process/profile.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/profile.js +155 -0
- package/dist/babylon/renderer/post-process/profile.js.map +1 -0
- package/dist/babylon/renderer/post-process/types.d.ts +81 -0
- package/dist/babylon/renderer/post-process/types.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/types.js +24 -0
- package/dist/babylon/renderer/post-process/types.js.map +1 -0
- package/dist/babylon/renderer/post-process/volume-stack.d.ts +4 -0
- package/dist/babylon/renderer/post-process/volume-stack.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/volume-stack.js +105 -0
- package/dist/babylon/renderer/post-process/volume-stack.js.map +1 -0
- package/dist/babylon/renderer/rendering/image-node.d.ts +35 -0
- package/dist/babylon/renderer/rendering/image-node.d.ts.map +1 -0
- package/dist/babylon/renderer/rendering/image-node.js +39 -0
- package/dist/babylon/renderer/rendering/image-node.js.map +1 -0
- package/dist/babylon/renderer/rendering/index.d.ts +3 -0
- package/dist/babylon/renderer/rendering/index.d.ts.map +1 -0
- package/dist/babylon/renderer/rendering/index.js +3 -0
- package/dist/babylon/renderer/rendering/index.js.map +1 -0
- package/dist/babylon/renderer/rendering/node-rendering.d.ts +19 -0
- package/dist/babylon/renderer/rendering/node-rendering.d.ts.map +1 -0
- package/dist/babylon/renderer/rendering/node-rendering.js +66 -0
- package/dist/babylon/renderer/rendering/node-rendering.js.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.d.ts +5 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.js +46 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.js.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.d.ts +5 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.js +402 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.d.ts +84 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.js +566 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.d.ts +7 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.js +316 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.js.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.d.ts +5 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.js +1562 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.d.ts +14 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.js +14 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.js.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.d.ts +68 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.js +829 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.d.ts +148 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.js +4529 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.d.ts +4 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.js +645 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.d.ts +61 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.js +382 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.d.ts +47 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.js +285 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.d.ts +88 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.js +830 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.d.ts +3 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.js +60 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.d.ts +27 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.js +220 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.js.map +1 -0
- package/dist/babylon/renderer/shadows/types.d.ts +421 -0
- package/dist/babylon/renderer/shadows/types.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/types.js +127 -0
- package/dist/babylon/renderer/shadows/types.js.map +1 -0
- package/dist/babylon/renderer-controller.d.ts +93 -0
- package/dist/babylon/renderer-controller.d.ts.map +1 -0
- package/dist/babylon/renderer-controller.js +699 -0
- package/dist/babylon/renderer-controller.js.map +1 -0
- package/dist/babylon.d.ts +4 -0
- package/dist/babylon.d.ts.map +1 -1
- package/dist/babylon.js +4 -0
- package/dist/babylon.js.map +1 -1
- package/dist/build-info.json +4 -4
- package/dist/compiled-scene-data.d.ts +23 -0
- package/dist/compiled-scene-data.d.ts.map +1 -0
- package/dist/compiled-scene-data.js +100 -0
- package/dist/compiled-scene-data.js.map +1 -0
- package/dist/ground-decal.d.ts +22 -0
- package/dist/ground-decal.d.ts.map +1 -0
- package/dist/ground-decal.js +48 -0
- package/dist/ground-decal.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/material-owner.d.ts +128 -0
- package/dist/material-owner.d.ts.map +1 -0
- package/dist/material-owner.js +434 -0
- package/dist/material-owner.js.map +1 -0
- package/dist/material-profile.d.ts +62 -0
- package/dist/material-profile.d.ts.map +1 -0
- package/dist/material-profile.js +132 -0
- package/dist/material-profile.js.map +1 -0
- package/dist/rendering/index.d.ts +14 -0
- package/dist/rendering/index.d.ts.map +1 -0
- package/dist/rendering/index.js +12 -0
- package/dist/rendering/index.js.map +1 -0
- package/dist/rendering/rendering-profile-types.d.ts +322 -0
- package/dist/rendering/rendering-profile-types.d.ts.map +1 -0
- package/dist/rendering/rendering-profile-types.js +2 -0
- package/dist/rendering/rendering-profile-types.js.map +1 -0
- package/dist/rendering/rendering-profile-validation.d.ts +2 -0
- package/dist/rendering/rendering-profile-validation.d.ts.map +1 -0
- package/dist/rendering/rendering-profile-validation.js +364 -0
- package/dist/rendering/rendering-profile-validation.js.map +1 -0
- package/dist/rendering/rendering-profile-values.d.ts +19 -0
- package/dist/rendering/rendering-profile-values.d.ts.map +1 -0
- package/dist/rendering/rendering-profile-values.js +79 -0
- package/dist/rendering/rendering-profile-values.js.map +1 -0
- package/dist/rendering/rendering-profile.d.ts +15 -0
- package/dist/rendering/rendering-profile.d.ts.map +1 -0
- package/dist/rendering/rendering-profile.js +442 -0
- package/dist/rendering/rendering-profile.js.map +1 -0
- package/dist/rendering/shadow-map-experiment-depth.d.ts +63 -0
- package/dist/rendering/shadow-map-experiment-depth.d.ts.map +1 -0
- package/dist/rendering/shadow-map-experiment-depth.js +186 -0
- package/dist/rendering/shadow-map-experiment-depth.js.map +1 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.d.ts +94 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.d.ts.map +1 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.js +407 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.js.map +1 -0
- package/dist/rendering/shadow-map-experiment.d.ts +189 -0
- package/dist/rendering/shadow-map-experiment.d.ts.map +1 -0
- package/dist/rendering/shadow-map-experiment.js +549 -0
- package/dist/rendering/shadow-map-experiment.js.map +1 -0
- package/dist/rendering/shadow-quality.d.ts +5 -0
- package/dist/rendering/shadow-quality.d.ts.map +1 -0
- package/dist/rendering/shadow-quality.js +83 -0
- package/dist/rendering/shadow-quality.js.map +1 -0
- package/dist/rendering/shadow-runtime.d.ts +59 -0
- package/dist/rendering/shadow-runtime.d.ts.map +1 -0
- package/dist/rendering/shadow-runtime.js +378 -0
- package/dist/rendering/shadow-runtime.js.map +1 -0
- package/dist/rendering/shadow-settings.d.ts +15 -0
- package/dist/rendering/shadow-settings.d.ts.map +1 -0
- package/dist/rendering/shadow-settings.js +129 -0
- package/dist/rendering/shadow-settings.js.map +1 -0
- package/dist/rendering/shadow-types.d.ts +99 -0
- package/dist/rendering/shadow-types.d.ts.map +1 -0
- package/dist/rendering/shadow-types.js +5 -0
- package/dist/rendering/shadow-types.js.map +1 -0
- package/dist/rendering/shadow-validation.d.ts +3 -0
- package/dist/rendering/shadow-validation.d.ts.map +1 -0
- package/dist/rendering/shadow-validation.js +166 -0
- package/dist/rendering/shadow-validation.js.map +1 -0
- package/dist/rendering/value.d.ts +2 -0
- package/dist/rendering/value.d.ts.map +1 -0
- package/dist/rendering/value.js +6 -0
- package/dist/rendering/value.js.map +1 -0
- package/dist/runtime-data-token.d.ts +4 -0
- package/dist/runtime-data-token.d.ts.map +1 -0
- package/dist/runtime-data-token.js +4 -0
- package/dist/runtime-data-token.js.map +1 -0
- package/dist/runtime-data-types.d.ts +83 -0
- package/dist/runtime-data-types.d.ts.map +1 -0
- package/dist/runtime-data-types.js +2 -0
- package/dist/runtime-data-types.js.map +1 -0
- package/dist/runtime-data.d.ts +18 -0
- package/dist/runtime-data.d.ts.map +1 -0
- package/dist/runtime-data.js +301 -0
- package/dist/runtime-data.js.map +1 -0
- package/dist/runtime-scene-resolvers.d.ts +37 -0
- package/dist/runtime-scene-resolvers.d.ts.map +1 -0
- package/dist/runtime-scene-resolvers.js +40 -0
- package/dist/runtime-scene-resolvers.js.map +1 -0
- package/dist/scene-artifact-types.d.ts +383 -0
- package/dist/scene-artifact-types.d.ts.map +1 -0
- package/dist/scene-artifact-types.js +2 -0
- package/dist/scene-artifact-types.js.map +1 -0
- package/dist/scene-artifact-validation.d.ts +19 -0
- package/dist/scene-artifact-validation.d.ts.map +1 -0
- package/dist/scene-artifact-validation.js +1352 -0
- package/dist/scene-artifact-validation.js.map +1 -0
- package/dist/static-shadow-artifact.d.ts +131 -0
- package/dist/static-shadow-artifact.d.ts.map +1 -0
- package/dist/static-shadow-artifact.js +327 -0
- package/dist/static-shadow-artifact.js.map +1 -0
- package/package.json +9 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/post-process/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gCAAgC,EAIrC,KAAK,oCAAoC,EAE1C,MAAM,YAAY,CAAC;AAMpB,wBAAgB,yCAAyC,CAAC,KAAK,EAAE,OAAO,GAAG,gCAAgC,CA8B1G;AAED,wBAAgB,6CAA6C,CAAC,KAAK,EAAE,OAAO,GAAG,oCAAoC,CA4BlH;AAuDD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlE"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { DEFAULT_BABYLON_DEFAULT_POST_PROCESS_PROFILE, DEFAULT_BABYLON_POST_PROCESS_VOLUME_ID, } from './types.js';
|
|
2
|
+
const POST_PROCESS_SAMPLE_VALUES = [1, 2, 4, 8];
|
|
3
|
+
export function normalizeBabylonDefaultPostProcessProfile(value) {
|
|
4
|
+
const source = readRecord(value);
|
|
5
|
+
const fallback = DEFAULT_BABYLON_DEFAULT_POST_PROCESS_PROFILE;
|
|
6
|
+
const imageProcessing = readRecord(source.imageProcessing);
|
|
7
|
+
const toneMapping = readRecord(source.toneMapping);
|
|
8
|
+
const antialiasing = readRecord(source.antialiasing);
|
|
9
|
+
const bloom = readRecord(source.bloom);
|
|
10
|
+
return {
|
|
11
|
+
enabled: readBoolean(source.enabled, fallback.enabled),
|
|
12
|
+
hdr: readBoolean(source.hdr, fallback.hdr),
|
|
13
|
+
imageProcessing: {
|
|
14
|
+
exposure: readFiniteNumber(imageProcessing.exposure, fallback.imageProcessing.exposure),
|
|
15
|
+
contrast: readFiniteNumber(imageProcessing.contrast, fallback.imageProcessing.contrast),
|
|
16
|
+
},
|
|
17
|
+
toneMapping: {
|
|
18
|
+
enabled: readBoolean(toneMapping.enabled, fallback.toneMapping.enabled),
|
|
19
|
+
type: readToneMappingType(toneMapping.type, fallback.toneMapping.type),
|
|
20
|
+
},
|
|
21
|
+
antialiasing: {
|
|
22
|
+
samples: readSamples(antialiasing.samples, fallback.antialiasing.samples),
|
|
23
|
+
},
|
|
24
|
+
bloom: {
|
|
25
|
+
enabled: readBoolean(bloom.enabled, fallback.bloom.enabled),
|
|
26
|
+
threshold: readNonNegativeNumber(bloom.threshold, fallback.bloom.threshold),
|
|
27
|
+
weight: readNonNegativeNumber(bloom.weight, fallback.bloom.weight),
|
|
28
|
+
kernel: readNonNegativeNumber(bloom.kernel, fallback.bloom.kernel),
|
|
29
|
+
scale: readPositiveNumber(bloom.scale, fallback.bloom.scale),
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function normalizeBabylonDefaultPostProcessVolumeStack(value) {
|
|
34
|
+
const root = readRecord(value);
|
|
35
|
+
const explicitVolumes = Array.isArray(root.postProcessVolumes)
|
|
36
|
+
? root.postProcessVolumes
|
|
37
|
+
: Array.isArray(root.volumes)
|
|
38
|
+
? root.volumes
|
|
39
|
+
: null;
|
|
40
|
+
if (explicitVolumes) {
|
|
41
|
+
const volumes = explicitVolumes
|
|
42
|
+
.map((volume, index) => normalizePostProcessVolume(volume, index))
|
|
43
|
+
.filter((volume) => !!volume);
|
|
44
|
+
return { volumes };
|
|
45
|
+
}
|
|
46
|
+
const globalVolume = readRecord(root.globalVolume);
|
|
47
|
+
const globalProfile = createProfileFromGlobalVolume(globalVolume);
|
|
48
|
+
return {
|
|
49
|
+
volumes: [{
|
|
50
|
+
id: DEFAULT_BABYLON_POST_PROCESS_VOLUME_ID,
|
|
51
|
+
enabled: true,
|
|
52
|
+
global: true,
|
|
53
|
+
priority: 0,
|
|
54
|
+
blendWeight: 1,
|
|
55
|
+
blendRadius: 0,
|
|
56
|
+
shape: null,
|
|
57
|
+
profile: globalProfile,
|
|
58
|
+
}],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function normalizePostProcessVolume(value, index) {
|
|
62
|
+
const source = readRecord(value);
|
|
63
|
+
const enabled = readBoolean(source.enabled, true);
|
|
64
|
+
const global = readBoolean(source.global, false);
|
|
65
|
+
const shape = global ? null : readShape(source.shape);
|
|
66
|
+
if (!global && !shape)
|
|
67
|
+
return null;
|
|
68
|
+
return {
|
|
69
|
+
id: readString(source.id, `post-process-volume-${index + 1}`),
|
|
70
|
+
enabled,
|
|
71
|
+
global,
|
|
72
|
+
priority: readFiniteNumber(source.priority, 0),
|
|
73
|
+
blendWeight: readClampedNumber(source.blendWeight, 1, 0, 1),
|
|
74
|
+
blendRadius: readNonNegativeNumber(source.blendRadius, 0),
|
|
75
|
+
shape,
|
|
76
|
+
profile: normalizeBabylonDefaultPostProcessProfile(readRecord(source.profile)),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function createProfileFromGlobalVolume(globalVolume) {
|
|
80
|
+
const imageProcessing = readRecord(globalVolume.imageProcessing);
|
|
81
|
+
const postProcessing = readRecord(globalVolume.postProcessing);
|
|
82
|
+
const bloom = readRecord(postProcessing.bloom);
|
|
83
|
+
return normalizeBabylonDefaultPostProcessProfile({
|
|
84
|
+
enabled: globalVolume.enabled,
|
|
85
|
+
hdr: globalVolume.hdr,
|
|
86
|
+
imageProcessing: {
|
|
87
|
+
exposure: imageProcessing.exposure,
|
|
88
|
+
contrast: imageProcessing.contrast,
|
|
89
|
+
},
|
|
90
|
+
toneMapping: readRecord(globalVolume.toneMapping),
|
|
91
|
+
antialiasing: {
|
|
92
|
+
samples: readRecord(globalVolume.antialiasing).samples,
|
|
93
|
+
},
|
|
94
|
+
bloom,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function readShape(value) {
|
|
98
|
+
const source = readRecord(value);
|
|
99
|
+
const type = source.type;
|
|
100
|
+
if (type === 'sphere') {
|
|
101
|
+
const center = readVec3(source.center, { x: 0, y: 0, z: 0 });
|
|
102
|
+
const radius = readPositiveNumber(source.radius, 0);
|
|
103
|
+
return radius > 0 ? { type, center, radius } : null;
|
|
104
|
+
}
|
|
105
|
+
if (type === 'box') {
|
|
106
|
+
const center = readVec3(source.center, { x: 0, y: 0, z: 0 });
|
|
107
|
+
const size = readVec3(source.size, { x: 0, y: 0, z: 0 });
|
|
108
|
+
return size.x > 0 && size.y > 0 && size.z > 0 ? { type, center, size } : null;
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
export function readRecord(value) {
|
|
113
|
+
return value && typeof value === 'object' && !Array.isArray(value)
|
|
114
|
+
? value
|
|
115
|
+
: {};
|
|
116
|
+
}
|
|
117
|
+
function readString(value, fallback) {
|
|
118
|
+
return typeof value === 'string' && value.trim() ? value : fallback;
|
|
119
|
+
}
|
|
120
|
+
function readBoolean(value, fallback) {
|
|
121
|
+
return typeof value === 'boolean' ? value : fallback;
|
|
122
|
+
}
|
|
123
|
+
function readFiniteNumber(value, fallback) {
|
|
124
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
|
|
125
|
+
}
|
|
126
|
+
function readNonNegativeNumber(value, fallback) {
|
|
127
|
+
const numberValue = readFiniteNumber(value, fallback);
|
|
128
|
+
return Math.max(0, numberValue);
|
|
129
|
+
}
|
|
130
|
+
function readPositiveNumber(value, fallback) {
|
|
131
|
+
const numberValue = readFiniteNumber(value, fallback);
|
|
132
|
+
return numberValue > 0 ? numberValue : fallback;
|
|
133
|
+
}
|
|
134
|
+
function readClampedNumber(value, fallback, min, max) {
|
|
135
|
+
const numberValue = readFiniteNumber(value, fallback);
|
|
136
|
+
return Math.min(max, Math.max(min, numberValue));
|
|
137
|
+
}
|
|
138
|
+
function readSamples(value, fallback) {
|
|
139
|
+
const numberValue = readFiniteNumber(value, fallback);
|
|
140
|
+
return POST_PROCESS_SAMPLE_VALUES.includes(numberValue)
|
|
141
|
+
? numberValue
|
|
142
|
+
: fallback;
|
|
143
|
+
}
|
|
144
|
+
function readToneMappingType(value, fallback) {
|
|
145
|
+
return value === 'standard' || value === 'aces' || value === 'khr-pbr-neutral' ? value : fallback;
|
|
146
|
+
}
|
|
147
|
+
function readVec3(value, fallback) {
|
|
148
|
+
const source = readRecord(value);
|
|
149
|
+
return {
|
|
150
|
+
x: readFiniteNumber(source.x, fallback.x),
|
|
151
|
+
y: readFiniteNumber(source.y, fallback.y),
|
|
152
|
+
z: readFiniteNumber(source.z, fallback.z),
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../src/babylon/renderer/post-process/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4CAA4C,EAC5C,sCAAsC,GAOvC,MAAM,YAAY,CAAC;AAIpB,MAAM,0BAA0B,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU,CAAC;AAEzD,MAAM,UAAU,yCAAyC,CAAC,KAAc;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,4CAA4C,CAAC;IAC9D,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvC,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;QACtD,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;QAC1C,eAAe,EAAE;YACf,QAAQ,EAAE,gBAAgB,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC;YACvF,QAAQ,EAAE,gBAAgB,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC;SACxF;QACD,WAAW,EAAE;YACX,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;YACvE,IAAI,EAAE,mBAAmB,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;SACvE;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;SAC1E;QACD,KAAK,EAAE;YACL,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YAC3D,SAAS,EAAE,qBAAqB,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;YAC3E,MAAM,EAAE,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YAClE,MAAM,EAAE,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YAClE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;SAC7D;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6CAA6C,CAAC,KAAc;IAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC5D,CAAC,CAAC,IAAI,CAAC,kBAAkB;QACzB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,OAAO;YACd,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,eAAe;aAC5B,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACjE,MAAM,CAAC,CAAC,MAAM,EAA6C,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3E,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,6BAA6B,CAAC,YAAY,CAAC,CAAC;IAClE,OAAO;QACL,OAAO,EAAE,CAAC;gBACR,EAAE,EAAE,sCAAsC;gBAC1C,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,aAAa;aACvB,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc,EAAE,KAAa;IAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,uBAAuB,KAAK,GAAG,CAAC,EAAE,CAAC;QAC7D,OAAO;QACP,MAAM;QACN,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9C,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,WAAW,EAAE,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACzD,KAAK;QACL,OAAO,EAAE,yCAAyC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,YAAqC;IAC1E,MAAM,eAAe,GAAG,UAAU,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,yCAAyC,CAAC;QAC/C,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,GAAG,EAAE,YAAY,CAAC,GAAG;QACrB,eAAe,EAAE;YACf,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,QAAQ,EAAE,eAAe,CAAC,QAAQ;SACnC;QACD,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC;QACjD,YAAY,EAAE;YACZ,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,OAAO;SACvD;QACD,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAC,KAAgC;QAClC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,QAAgB;IAClD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtE,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,QAAiB;IACpD,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,QAAgB;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,QAAgB;IAC7D,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,QAAgB;IAC1D,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,QAAgB,EAAE,GAAW,EAAE,GAAW;IACnF,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,QAA0C;IAC7E,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,WAA+C,CAAC;QACzF,CAAC,CAAC,WAA+C;QACjD,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAc,EACd,QAAkD;IAElD,OAAO,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpG,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,QAAuC;IACvE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO;QACL,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzC,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzC,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export type BabylonDefaultToneMappingType = 'standard' | 'aces' | 'khr-pbr-neutral';
|
|
2
|
+
export type BabylonDefaultPostProcessSamples = 1 | 2 | 4 | 8;
|
|
3
|
+
export interface BabylonDefaultPostProcessVec3 {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
z: number;
|
|
7
|
+
}
|
|
8
|
+
export interface BabylonDefaultPostProcessProfile {
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
hdr: boolean;
|
|
11
|
+
imageProcessing: {
|
|
12
|
+
exposure: number;
|
|
13
|
+
contrast: number;
|
|
14
|
+
};
|
|
15
|
+
toneMapping: {
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
type: BabylonDefaultToneMappingType;
|
|
18
|
+
};
|
|
19
|
+
antialiasing: {
|
|
20
|
+
samples: BabylonDefaultPostProcessSamples;
|
|
21
|
+
};
|
|
22
|
+
bloom: {
|
|
23
|
+
enabled: boolean;
|
|
24
|
+
threshold: number;
|
|
25
|
+
weight: number;
|
|
26
|
+
kernel: number;
|
|
27
|
+
scale: number;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export type PostProcessVolumeShape = {
|
|
31
|
+
type: 'sphere';
|
|
32
|
+
center: BabylonDefaultPostProcessVec3;
|
|
33
|
+
radius: number;
|
|
34
|
+
} | {
|
|
35
|
+
type: 'box';
|
|
36
|
+
center: BabylonDefaultPostProcessVec3;
|
|
37
|
+
size: BabylonDefaultPostProcessVec3;
|
|
38
|
+
};
|
|
39
|
+
export interface BabylonDefaultPostProcessVolume {
|
|
40
|
+
id: string;
|
|
41
|
+
enabled: boolean;
|
|
42
|
+
global: boolean;
|
|
43
|
+
priority: number;
|
|
44
|
+
blendWeight: number;
|
|
45
|
+
blendRadius: number;
|
|
46
|
+
shape: PostProcessVolumeShape | null;
|
|
47
|
+
profile: BabylonDefaultPostProcessProfile;
|
|
48
|
+
}
|
|
49
|
+
export interface BabylonDefaultPostProcessVolumeStack {
|
|
50
|
+
volumes: BabylonDefaultPostProcessVolume[];
|
|
51
|
+
}
|
|
52
|
+
export interface BabylonDefaultPostProcessResolveInput {
|
|
53
|
+
cameraPosition?: BabylonDefaultPostProcessVec3 | null;
|
|
54
|
+
}
|
|
55
|
+
export interface BabylonDefaultPostProcessResolvedVolume {
|
|
56
|
+
id: string;
|
|
57
|
+
priority: number;
|
|
58
|
+
influence: number;
|
|
59
|
+
global: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface BabylonDefaultPostProcessResolveResult {
|
|
62
|
+
profile: BabylonDefaultPostProcessProfile;
|
|
63
|
+
structuralKey: string;
|
|
64
|
+
activeVolumes: BabylonDefaultPostProcessResolvedVolume[];
|
|
65
|
+
}
|
|
66
|
+
export interface BabylonDefaultPostProcessPipelineController {
|
|
67
|
+
addCamera(camera: Camera): void;
|
|
68
|
+
removeCamera(camera: Camera): void;
|
|
69
|
+
setProfile(profile: BabylonDefaultPostProcessProfile | null | undefined): void;
|
|
70
|
+
getProfile(): BabylonDefaultPostProcessProfile | null;
|
|
71
|
+
getPipeline(): unknown | null;
|
|
72
|
+
dispose(): void;
|
|
73
|
+
}
|
|
74
|
+
export interface BabylonDefaultPostProcessPipelineControllerOptions {
|
|
75
|
+
name?: string;
|
|
76
|
+
fxaaEnabled?: boolean;
|
|
77
|
+
}
|
|
78
|
+
export declare const DEFAULT_BABYLON_POST_PROCESS_VOLUME_ID = "global-post-process-volume";
|
|
79
|
+
export declare const DEFAULT_BABYLON_DEFAULT_POST_PROCESS_PROFILE: BabylonDefaultPostProcessProfile;
|
|
80
|
+
import type { Camera } from '@babylonjs/core/Cameras/camera.js';
|
|
81
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/post-process/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const DEFAULT_BABYLON_POST_PROCESS_VOLUME_ID = 'global-post-process-volume';
|
|
2
|
+
export const DEFAULT_BABYLON_DEFAULT_POST_PROCESS_PROFILE = {
|
|
3
|
+
enabled: true,
|
|
4
|
+
hdr: true,
|
|
5
|
+
imageProcessing: {
|
|
6
|
+
exposure: 1,
|
|
7
|
+
contrast: 1,
|
|
8
|
+
},
|
|
9
|
+
toneMapping: {
|
|
10
|
+
enabled: true,
|
|
11
|
+
type: 'aces',
|
|
12
|
+
},
|
|
13
|
+
antialiasing: {
|
|
14
|
+
samples: 4,
|
|
15
|
+
},
|
|
16
|
+
bloom: {
|
|
17
|
+
enabled: false,
|
|
18
|
+
threshold: 0.9,
|
|
19
|
+
weight: 0.2,
|
|
20
|
+
kernel: 64,
|
|
21
|
+
scale: 0.5,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/babylon/renderer/post-process/types.ts"],"names":[],"mappings":"AA2FA,MAAM,CAAC,MAAM,sCAAsC,GAAG,4BAA4B,CAAC;AAEnF,MAAM,CAAC,MAAM,4CAA4C,GAAqC;IAC5F,OAAO,EAAE,IAAI;IACb,GAAG,EAAE,IAAI;IACT,eAAe,EAAE;QACf,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;KACZ;IACD,WAAW,EAAE;QACX,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM;KACb;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,CAAC;KACX;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,GAAG;KACX;CACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type BabylonDefaultPostProcessProfile, type BabylonDefaultPostProcessResolveInput, type BabylonDefaultPostProcessResolveResult, type BabylonDefaultPostProcessVolumeStack } from './types.js';
|
|
2
|
+
export declare function resolveBabylonDefaultPostProcessVolumeStack(value: BabylonDefaultPostProcessVolumeStack | unknown, input?: BabylonDefaultPostProcessResolveInput): BabylonDefaultPostProcessResolveResult;
|
|
3
|
+
export declare function createPostProcessStructuralKey(profile: BabylonDefaultPostProcessProfile): string;
|
|
4
|
+
//# sourceMappingURL=volume-stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volume-stack.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/post-process/volume-stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gCAAgC,EACrC,KAAK,qCAAqC,EAC1C,KAAK,sCAAsC,EAG3C,KAAK,oCAAoC,EAE1C,MAAM,YAAY,CAAC;AAYpB,wBAAgB,2CAA2C,CACzD,KAAK,EAAE,oCAAoC,GAAG,OAAO,EACrD,KAAK,GAAE,qCAA0C,GAChD,sCAAsC,CA0BxC;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gCAAgC,GAAG,MAAM,CAShG"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { DEFAULT_BABYLON_DEFAULT_POST_PROCESS_PROFILE, } from './types.js';
|
|
2
|
+
import { normalizeBabylonDefaultPostProcessProfile, normalizeBabylonDefaultPostProcessVolumeStack, } from './profile.js';
|
|
3
|
+
export function resolveBabylonDefaultPostProcessVolumeStack(value, input = {}) {
|
|
4
|
+
const stack = normalizeBabylonDefaultPostProcessVolumeStack(value);
|
|
5
|
+
const activeVolumes = stack.volumes
|
|
6
|
+
.map((volume, order) => ({ volume, order, influence: resolveVolumeInfluence(volume, input.cameraPosition ?? null) }))
|
|
7
|
+
.filter(entry => entry.volume.enabled && entry.influence > 0)
|
|
8
|
+
.sort((left, right) => left.volume.priority - right.volume.priority || left.order - right.order);
|
|
9
|
+
const globalVolumes = activeVolumes.filter(entry => entry.volume.global);
|
|
10
|
+
const localVolumes = activeVolumes.filter(entry => !entry.volume.global);
|
|
11
|
+
const influencedVolumes = [...globalVolumes, ...localVolumes];
|
|
12
|
+
let profile = normalizeBabylonDefaultPostProcessProfile(DEFAULT_BABYLON_DEFAULT_POST_PROCESS_PROFILE);
|
|
13
|
+
for (const entry of influencedVolumes) {
|
|
14
|
+
profile = blendPostProcessProfile(profile, entry.volume.profile, entry.influence);
|
|
15
|
+
}
|
|
16
|
+
applyStructuralFields(profile, localVolumes.length > 0 ? localVolumes : globalVolumes);
|
|
17
|
+
return {
|
|
18
|
+
profile,
|
|
19
|
+
structuralKey: createPostProcessStructuralKey(profile),
|
|
20
|
+
activeVolumes: influencedVolumes.map(entry => ({
|
|
21
|
+
id: entry.volume.id,
|
|
22
|
+
priority: entry.volume.priority,
|
|
23
|
+
influence: entry.influence,
|
|
24
|
+
global: entry.volume.global,
|
|
25
|
+
})),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function createPostProcessStructuralKey(profile) {
|
|
29
|
+
return JSON.stringify({
|
|
30
|
+
enabled: profile.enabled,
|
|
31
|
+
hdr: profile.hdr,
|
|
32
|
+
toneMappingEnabled: profile.toneMapping.enabled,
|
|
33
|
+
toneMappingType: profile.toneMapping.type,
|
|
34
|
+
samples: profile.antialiasing.samples,
|
|
35
|
+
bloomEnabled: profile.bloom.enabled,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function resolveVolumeInfluence(volume, cameraPosition) {
|
|
39
|
+
if (!volume.enabled)
|
|
40
|
+
return 0;
|
|
41
|
+
if (volume.global)
|
|
42
|
+
return volume.blendWeight;
|
|
43
|
+
if (!cameraPosition || !volume.shape)
|
|
44
|
+
return 0;
|
|
45
|
+
const distance = distanceToShapeSurface(cameraPosition, volume.shape);
|
|
46
|
+
const spatialInfluence = distance <= 0
|
|
47
|
+
? 1
|
|
48
|
+
: volume.blendRadius > 0
|
|
49
|
+
? Math.max(0, 1 - distance / volume.blendRadius)
|
|
50
|
+
: 0;
|
|
51
|
+
return clamp01(spatialInfluence * volume.blendWeight);
|
|
52
|
+
}
|
|
53
|
+
function distanceToShapeSurface(point, shape) {
|
|
54
|
+
if (shape.type === 'sphere') {
|
|
55
|
+
return distance(point, shape.center) - shape.radius;
|
|
56
|
+
}
|
|
57
|
+
const half = {
|
|
58
|
+
x: shape.size.x / 2,
|
|
59
|
+
y: shape.size.y / 2,
|
|
60
|
+
z: shape.size.z / 2,
|
|
61
|
+
};
|
|
62
|
+
const dx = Math.abs(point.x - shape.center.x) - half.x;
|
|
63
|
+
const dy = Math.abs(point.y - shape.center.y) - half.y;
|
|
64
|
+
const dz = Math.abs(point.z - shape.center.z) - half.z;
|
|
65
|
+
const outside = Math.hypot(Math.max(dx, 0), Math.max(dy, 0), Math.max(dz, 0));
|
|
66
|
+
const inside = Math.min(Math.max(dx, dy, dz), 0);
|
|
67
|
+
return outside + inside;
|
|
68
|
+
}
|
|
69
|
+
function blendPostProcessProfile(current, next, influence) {
|
|
70
|
+
const amount = clamp01(influence);
|
|
71
|
+
return {
|
|
72
|
+
...current,
|
|
73
|
+
imageProcessing: {
|
|
74
|
+
exposure: mix(current.imageProcessing.exposure, next.imageProcessing.exposure, amount),
|
|
75
|
+
contrast: mix(current.imageProcessing.contrast, next.imageProcessing.contrast, amount),
|
|
76
|
+
},
|
|
77
|
+
bloom: {
|
|
78
|
+
enabled: current.bloom.enabled,
|
|
79
|
+
threshold: mix(current.bloom.threshold, next.bloom.threshold, amount),
|
|
80
|
+
weight: mix(current.bloom.weight, next.bloom.weight, amount),
|
|
81
|
+
kernel: mix(current.bloom.kernel, next.bloom.kernel, amount),
|
|
82
|
+
scale: mix(current.bloom.scale, next.bloom.scale, amount),
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function applyStructuralFields(profile, influencedVolumes) {
|
|
87
|
+
const winner = influencedVolumes[influencedVolumes.length - 1]?.volume.profile;
|
|
88
|
+
if (!winner)
|
|
89
|
+
return;
|
|
90
|
+
profile.enabled = winner.enabled;
|
|
91
|
+
profile.hdr = winner.hdr;
|
|
92
|
+
profile.toneMapping = { ...winner.toneMapping };
|
|
93
|
+
profile.antialiasing = { ...winner.antialiasing };
|
|
94
|
+
profile.bloom.enabled = winner.bloom.enabled;
|
|
95
|
+
}
|
|
96
|
+
function mix(left, right, amount) {
|
|
97
|
+
return left + (right - left) * amount;
|
|
98
|
+
}
|
|
99
|
+
function distance(left, right) {
|
|
100
|
+
return Math.hypot(left.x - right.x, left.y - right.y, left.z - right.z);
|
|
101
|
+
}
|
|
102
|
+
function clamp01(value) {
|
|
103
|
+
return Math.min(1, Math.max(0, Number.isFinite(value) ? value : 0));
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=volume-stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volume-stack.js","sourceRoot":"","sources":["../../../../src/babylon/renderer/post-process/volume-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Color3 } from '@babylonjs/core/Maths/math.color.js';
|
|
2
|
+
import type { StandardMaterial } from '@babylonjs/core/Materials/standardMaterial.js';
|
|
3
|
+
import type { Texture } from '@babylonjs/core/Materials/Textures/texture.js';
|
|
4
|
+
import type { MeshBuilder } from '@babylonjs/core/Meshes/meshBuilder.js';
|
|
5
|
+
import type { Scene } from '@babylonjs/core/scene.js';
|
|
6
|
+
export interface BabylonImageNodeRuntime {
|
|
7
|
+
Color3: typeof Color3;
|
|
8
|
+
StandardMaterial: typeof StandardMaterial;
|
|
9
|
+
Texture: typeof Texture;
|
|
10
|
+
MeshBuilder: typeof MeshBuilder;
|
|
11
|
+
}
|
|
12
|
+
export interface BabylonImageNodeOptions {
|
|
13
|
+
babylon: BabylonImageNodeRuntime;
|
|
14
|
+
scene: Scene;
|
|
15
|
+
name: string;
|
|
16
|
+
url: string;
|
|
17
|
+
size: {
|
|
18
|
+
width: number;
|
|
19
|
+
height: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface BabylonImageNode {
|
|
23
|
+
mesh: ReturnType<typeof MeshBuilder.CreateGround>;
|
|
24
|
+
material: StandardMaterial;
|
|
25
|
+
texture: Texture;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Creates the Babylon rendering for a canonical ImageRenderer scene node.
|
|
29
|
+
*
|
|
30
|
+
* The image starts as a horizontal XZ plane to preserve the editor's existing
|
|
31
|
+
* texture-drop presentation. Its authored Transform remains ordinary scene
|
|
32
|
+
* data, so users can move, rotate, and scale it like any other node.
|
|
33
|
+
*/
|
|
34
|
+
export declare function createBabylonImageNode(options: BabylonImageNodeOptions): BabylonImageNode;
|
|
35
|
+
//# sourceMappingURL=image-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-node.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/rendering/image-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,WAAW,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,uBAAuB,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;IAClD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,gBAAgB,CAsCzF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates the Babylon rendering for a canonical ImageRenderer scene node.
|
|
3
|
+
*
|
|
4
|
+
* The image starts as a horizontal XZ plane to preserve the editor's existing
|
|
5
|
+
* texture-drop presentation. Its authored Transform remains ordinary scene
|
|
6
|
+
* data, so users can move, rotate, and scale it like any other node.
|
|
7
|
+
*/
|
|
8
|
+
export function createBabylonImageNode(options) {
|
|
9
|
+
// Use the caller's Babylon module. Packed Vite consumers can otherwise load
|
|
10
|
+
// the editor's private renderer through a separate module graph from the
|
|
11
|
+
// project's @babylonjs/core. Mixing a material from one graph with a Scene
|
|
12
|
+
// from the other splits ShaderStore and makes StandardMaterial request
|
|
13
|
+
// /default.vertex.fx from the host page.
|
|
14
|
+
const { Color3: BabylonColor3, StandardMaterial: BabylonStandardMaterial, Texture: BabylonTexture, MeshBuilder: BabylonMeshBuilder, } = options.babylon;
|
|
15
|
+
const mesh = BabylonMeshBuilder.CreateGround(`${options.name}.image`, {
|
|
16
|
+
width: options.size.width,
|
|
17
|
+
height: options.size.height,
|
|
18
|
+
subdivisions: 1,
|
|
19
|
+
}, options.scene);
|
|
20
|
+
mesh.isPickable = true;
|
|
21
|
+
mesh.receiveShadows = false;
|
|
22
|
+
const material = new BabylonStandardMaterial(`${options.name}.imageMaterial`, options.scene);
|
|
23
|
+
const texture = new BabylonTexture(options.url, options.scene, false, true);
|
|
24
|
+
// Babylon ground UVs map +Z to V=1. Flip V once so the loaded image top
|
|
25
|
+
// points toward the editor's right-handed forward axis (-Z).
|
|
26
|
+
texture.vScale = -1;
|
|
27
|
+
texture.vOffset = 1;
|
|
28
|
+
texture.hasAlpha = true;
|
|
29
|
+
material.diffuseTexture = texture;
|
|
30
|
+
material.useAlphaFromDiffuseTexture = true;
|
|
31
|
+
material.diffuseColor = new BabylonColor3(1, 1, 1);
|
|
32
|
+
material.emissiveColor = new BabylonColor3(1, 1, 1);
|
|
33
|
+
material.specularColor = new BabylonColor3(0, 0, 0);
|
|
34
|
+
material.backFaceCulling = false;
|
|
35
|
+
material.disableLighting = true;
|
|
36
|
+
mesh.material = material;
|
|
37
|
+
return { mesh, material, texture };
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=image-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-node.js","sourceRoot":"","sources":["../../../../src/babylon/renderer/rendering/image-node.ts"],"names":[],"mappings":"AA8BA;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgC;IACrE,4EAA4E;IAC5E,yEAAyE;IACzE,2EAA2E;IAC3E,uEAAuE;IACvE,yCAAyC;IACzC,MAAM,EACJ,MAAM,EAAE,aAAa,EACrB,gBAAgB,EAAE,uBAAuB,EACzC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,kBAAkB,GAChC,GAAG,OAAO,CAAC,OAAO,CAAC;IAEpB,MAAM,IAAI,GAAG,kBAAkB,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,QAAQ,EAAE;QACpE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;QACzB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;QAC3B,YAAY,EAAE,CAAC;KAChB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAE5B,MAAM,QAAQ,GAAG,IAAI,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5E,wEAAwE;IACxE,6DAA6D;IAC7D,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpB,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,cAAc,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,0BAA0B,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,YAAY,GAAG,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;IACjC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC;IAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEzB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/rendering/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/babylon/renderer/rendering/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface BabylonRenderingSettings {
|
|
2
|
+
renderingGroupId?: unknown;
|
|
3
|
+
alphaIndex?: unknown;
|
|
4
|
+
}
|
|
5
|
+
export interface BabylonRenderableMesh {
|
|
6
|
+
name?: string;
|
|
7
|
+
renderingGroupId: number;
|
|
8
|
+
alphaIndex: number;
|
|
9
|
+
getTotalVertices(): number;
|
|
10
|
+
getChildMeshes?(directDescendantsOnly?: boolean): unknown[];
|
|
11
|
+
}
|
|
12
|
+
export interface BabylonRenderableNode {
|
|
13
|
+
getChildMeshes?(directDescendantsOnly?: boolean): unknown[];
|
|
14
|
+
}
|
|
15
|
+
export type BabylonRenderingRestore = () => void;
|
|
16
|
+
export declare function applyBabylonRenderingToMesh(mesh: unknown, rendering: BabylonRenderingSettings | null | undefined): BabylonRenderingRestore;
|
|
17
|
+
export declare function collectRenderableBabylonMeshes(root: unknown, contentRoot?: unknown | null): BabylonRenderableMesh[];
|
|
18
|
+
export declare function applyBabylonRenderingToNodeTree(root: unknown, rendering: BabylonRenderingSettings | null | undefined, contentRoot?: unknown | null): BabylonRenderingRestore;
|
|
19
|
+
//# sourceMappingURL=node-rendering.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-rendering.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/rendering/node-rendering.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,IAAI,MAAM,CAAC;IAC3B,cAAc,CAAC,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;CAC7D;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;CAC7D;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC;AAEjD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,wBAAwB,GAAG,IAAI,GAAG,SAAS,GACrD,uBAAuB,CAazB;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,OAAO,EACb,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,GAC3B,qBAAqB,EAAE,CAezB;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,wBAAwB,GAAG,IAAI,GAAG,SAAS,EACtD,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,GAC3B,uBAAuB,CAOzB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export function applyBabylonRenderingToMesh(mesh, rendering) {
|
|
2
|
+
if (!isRenderableBabylonMesh(mesh))
|
|
3
|
+
return noop;
|
|
4
|
+
const renderingGroupId = readBabylonRenderingGroupId(rendering?.renderingGroupId);
|
|
5
|
+
const alphaIndex = readFiniteNumber(rendering?.alphaIndex);
|
|
6
|
+
if (renderingGroupId == null && alphaIndex == null)
|
|
7
|
+
return noop;
|
|
8
|
+
const previousRenderingGroupId = mesh.renderingGroupId;
|
|
9
|
+
const previousAlphaIndex = mesh.alphaIndex;
|
|
10
|
+
if (renderingGroupId != null)
|
|
11
|
+
mesh.renderingGroupId = renderingGroupId;
|
|
12
|
+
if (alphaIndex != null)
|
|
13
|
+
mesh.alphaIndex = alphaIndex;
|
|
14
|
+
return () => {
|
|
15
|
+
mesh.renderingGroupId = previousRenderingGroupId;
|
|
16
|
+
mesh.alphaIndex = previousAlphaIndex;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function collectRenderableBabylonMeshes(root, contentRoot) {
|
|
20
|
+
const meshes = [];
|
|
21
|
+
const seen = new Set();
|
|
22
|
+
const append = (node) => {
|
|
23
|
+
if (!node || seen.has(node))
|
|
24
|
+
return;
|
|
25
|
+
seen.add(node);
|
|
26
|
+
if (isRenderableBabylonMesh(node))
|
|
27
|
+
meshes.push(node);
|
|
28
|
+
const childMeshes = isBabylonRenderableNode(node) ? node.getChildMeshes?.(false) : [];
|
|
29
|
+
if (Array.isArray(childMeshes)) {
|
|
30
|
+
for (const child of childMeshes)
|
|
31
|
+
append(child);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
append(root);
|
|
35
|
+
if (contentRoot && contentRoot !== root)
|
|
36
|
+
append(contentRoot);
|
|
37
|
+
return meshes;
|
|
38
|
+
}
|
|
39
|
+
export function applyBabylonRenderingToNodeTree(root, rendering, contentRoot) {
|
|
40
|
+
const restoreCallbacks = collectRenderableBabylonMeshes(root, contentRoot)
|
|
41
|
+
.map(mesh => applyBabylonRenderingToMesh(mesh, rendering));
|
|
42
|
+
if (restoreCallbacks.length === 0)
|
|
43
|
+
return noop;
|
|
44
|
+
return () => {
|
|
45
|
+
for (const restore of restoreCallbacks.reverse())
|
|
46
|
+
restore();
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function isBabylonRenderableNode(node) {
|
|
50
|
+
return !!node && typeof node === 'object' && typeof node.getChildMeshes === 'function';
|
|
51
|
+
}
|
|
52
|
+
function isRenderableBabylonMesh(node) {
|
|
53
|
+
return !!node
|
|
54
|
+
&& typeof node === 'object'
|
|
55
|
+
&& typeof node.getTotalVertices === 'function'
|
|
56
|
+
&& typeof node.renderingGroupId === 'number'
|
|
57
|
+
&& typeof node.alphaIndex === 'number';
|
|
58
|
+
}
|
|
59
|
+
function readBabylonRenderingGroupId(value) {
|
|
60
|
+
return value === 0 || value === 1 || value === 2 || value === 3 ? value : null;
|
|
61
|
+
}
|
|
62
|
+
function readFiniteNumber(value) {
|
|
63
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : null;
|
|
64
|
+
}
|
|
65
|
+
function noop() { }
|
|
66
|
+
//# sourceMappingURL=node-rendering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-rendering.js","sourceRoot":"","sources":["../../../../src/babylon/renderer/rendering/node-rendering.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const BLOB_SHADOW_SHADER_NAME = "fpsBlobShadow";
|
|
2
|
+
export declare function registerBlobShadowShaders(): void;
|
|
3
|
+
export declare function getBlobShadowShaderAttributes(): string[];
|
|
4
|
+
export declare function getBlobShadowShaderUniforms(): string[];
|
|
5
|
+
//# sourceMappingURL=blob-shadow-shaders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blob-shadow-shaders.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/shadows/blob-shadow-shaders.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD,wBAAgB,yBAAyB,IAAI,IAAI,CAqChD;AAED,wBAAgB,6BAA6B,IAAI,MAAM,EAAE,CAExD;AAED,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAEtD"}
|