@fps-games/editor 0.1.4-beta.4 → 0.1.5-beta.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/dist/build-info.json +45 -0
- package/dist/local-editor-harness.d.ts +25 -5
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +518 -90
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-performance-stats.d.ts +12 -0
- package/dist/local-editor-performance-stats.d.ts.map +1 -0
- package/dist/local-editor-performance-stats.js +46 -0
- package/dist/local-editor-performance-stats.js.map +1 -0
- package/dist/playable-babylon-facade.d.ts +4 -4
- package/dist/playable-babylon-facade.d.ts.map +1 -1
- package/dist/playable-babylon-facade.js +2 -2
- package/dist/playable-babylon-facade.js.map +1 -1
- package/dist/playable-babylon-rendering.d.ts +66 -9
- package/dist/playable-babylon-rendering.d.ts.map +1 -1
- package/dist/playable-babylon-rendering.js +567 -13
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +12 -9
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-sdk-vite.d.ts +2 -0
- package/dist/playable-sdk-vite.d.ts.map +1 -0
- package/dist/playable-sdk-vite.js +2 -0
- package/dist/playable-sdk-vite.js.map +1 -0
- package/dist/playable-sdk.d.ts +6 -4
- package/dist/playable-sdk.d.ts.map +1 -1
- package/dist/playable-sdk.js +3 -2
- package/dist/playable-sdk.js.map +1 -1
- package/dist/static-shadow-cpu-worker.d.ts +7 -0
- package/dist/static-shadow-cpu-worker.d.ts.map +1 -0
- package/dist/static-shadow-cpu-worker.js +221 -0
- package/dist/static-shadow-cpu-worker.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts +5 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/index.js +5 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.d.ts +5 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js +46 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.d.ts +5 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js +398 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.d.ts +4 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js +584 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.d.ts +61 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js +382 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.d.ts +47 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js +285 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.d.ts +88 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js +813 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.d.ts +27 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js +220 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-system.d.ts +38 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-system.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-system.js +173 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-system.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.d.ts +286 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js +82 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +3 -0
- package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js +3 -0
- package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.d.ts +34 -0
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js +272 -0
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.d.ts +49 -0
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +141 -0
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +11 -0
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js +137 -6
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/rendering.d.ts +19 -0
- package/node_modules/@fps-games/editor-babylon/dist/rendering.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/rendering.js +66 -0
- package/node_modules/@fps-games/editor-babylon/dist/rendering.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +17 -3
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +256 -8
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +19 -2
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/package.json +5 -5
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.d.ts +8 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js +14 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +10 -2
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +17 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +494 -43
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +72 -5
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +595 -5
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/package.json +3 -3
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +14 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.js +34 -10
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +2 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.js +11 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/serialized-object.d.ts +7 -0
- package/node_modules/@fps-games/editor-core/dist/serialized-object.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/serialized-object.js +1 -0
- package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +2 -2
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js +10 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts +4 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +29 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +12 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js +5 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js +8 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.d.ts +34 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js +272 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +0 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts +12 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +161 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.d.ts +4 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js +4 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.d.ts +19 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js +57 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.d.ts +7 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +1003 -7
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/profile.d.ts +12 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/profile.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/profile.js +521 -6
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +217 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +26 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.d.ts +9 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js +12 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js +75 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts +17 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +262 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js +7 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.d.ts +6 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js +31 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +21 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.d.ts +151 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js +445 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +37 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.d.ts +15 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.d.ts +36 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js +65 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js +87 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +8 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +226 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +64 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/package.json +7 -3
- package/node_modules/@fps-games/editor-protocol/package.json +1 -1
- package/package.json +12 -8
|
@@ -22,6 +22,14 @@ export const EDITOR_SCENE_DEFAULT_PLANAR_SHADOW_EXCLUDE_PATTERNS = [
|
|
|
22
22
|
'_shadow',
|
|
23
23
|
'_planarShadow',
|
|
24
24
|
];
|
|
25
|
+
export const EDITOR_SCENE_DEFAULT_BLOB_SHADOW_EXCLUDE_PATTERNS = [
|
|
26
|
+
...EDITOR_SCENE_DEFAULT_PLANAR_SHADOW_EXCLUDE_PATTERNS,
|
|
27
|
+
'_blobShadow',
|
|
28
|
+
];
|
|
29
|
+
export const EDITOR_SCENE_DEFAULT_STATIC_PROJECTED_SHADOW_EXCLUDE_PATTERNS = [
|
|
30
|
+
...EDITOR_SCENE_DEFAULT_BLOB_SHADOW_EXCLUDE_PATTERNS,
|
|
31
|
+
'_staticProjectedShadow',
|
|
32
|
+
];
|
|
25
33
|
export const EDITOR_SCENE_RENDERING_PROFILE_ALLOWED_PATCH_PATHS = [
|
|
26
34
|
'globalVolume.enabled',
|
|
27
35
|
'globalVolume.hdr',
|
|
@@ -40,6 +48,31 @@ export const EDITOR_SCENE_RENDERING_PROFILE_ALLOWED_PATCH_PATHS = [
|
|
|
40
48
|
'globalVolume.postProcessing.bloom.weight',
|
|
41
49
|
'globalVolume.postProcessing.bloom.kernel',
|
|
42
50
|
'globalVolume.postProcessing.bloom.scale',
|
|
51
|
+
'shadows.defaultMode',
|
|
52
|
+
'shadows.blob.enabled',
|
|
53
|
+
'shadows.blob.appearance.color',
|
|
54
|
+
'shadows.blob.appearance.color.a',
|
|
55
|
+
'shadows.blob.appearance.edgeSoftness',
|
|
56
|
+
'shadows.blob.plane.height',
|
|
57
|
+
'shadows.blob.plane.yOffset',
|
|
58
|
+
'shadows.blob.size.sizeMultiplier',
|
|
59
|
+
'shadows.blob.size.minSize',
|
|
60
|
+
'shadows.blob.size.maxSize',
|
|
61
|
+
'shadows.staticProjected.enabled',
|
|
62
|
+
'shadows.staticProjected.appearance.color',
|
|
63
|
+
'shadows.staticProjected.appearance.color.a',
|
|
64
|
+
'shadows.staticProjected.plane.height',
|
|
65
|
+
'shadows.staticProjected.plane.yOffset',
|
|
66
|
+
'shadows.staticProjected.bake.resolution',
|
|
67
|
+
'shadows.staticProjected.bake.padding',
|
|
68
|
+
'shadows.staticProjected.bake.blur',
|
|
69
|
+
'shadows.staticProjected.bake.maxSize',
|
|
70
|
+
'shadows.staticProjected.bake.texelsPerMeter',
|
|
71
|
+
'shadows.staticProjected.bake.atlasSize',
|
|
72
|
+
'shadows.staticProjected.bake.maxAtlasPages',
|
|
73
|
+
'shadows.staticProjected.bake.sdfRadiusPx',
|
|
74
|
+
'shadows.staticProjected.bake.spatialChunkSize',
|
|
75
|
+
'shadows.staticProjected.bake.targetChunkCount',
|
|
43
76
|
'shadows.planar.enabled',
|
|
44
77
|
'shadows.planar.appearance.color',
|
|
45
78
|
'shadows.planar.appearance.color.a',
|
|
@@ -51,22 +84,61 @@ export const EDITOR_SCENE_RENDERING_PROFILE_ALLOWED_PATCH_PATHS = [
|
|
|
51
84
|
'shadows.planar.casters.rootBoundaryPatterns',
|
|
52
85
|
'shadows.planar.receivers.patterns',
|
|
53
86
|
];
|
|
87
|
+
export const EDITOR_SCENE_RENDERING_GROUP_IDS = [0, 1, 2, 3];
|
|
88
|
+
export const EDITOR_SCENE_DEFAULT_RENDERING_GROUPS = [{
|
|
89
|
+
renderingGroupId: 0,
|
|
90
|
+
name: '普通场景',
|
|
91
|
+
alphaIndexPresets: [
|
|
92
|
+
{ name: '默认透明顺序', alphaIndex: 0 },
|
|
93
|
+
{ name: '地表贴花', alphaIndex: 100 },
|
|
94
|
+
{ name: '近景覆盖', alphaIndex: 200 },
|
|
95
|
+
],
|
|
96
|
+
}, {
|
|
97
|
+
renderingGroupId: 1,
|
|
98
|
+
name: '水面 / 透明地表',
|
|
99
|
+
alphaIndexPresets: [
|
|
100
|
+
{ name: '水面', alphaIndex: 0 },
|
|
101
|
+
{ name: '透明地表', alphaIndex: 100 },
|
|
102
|
+
{ name: '水面高光', alphaIndex: 200 },
|
|
103
|
+
],
|
|
104
|
+
}, {
|
|
105
|
+
renderingGroupId: 2,
|
|
106
|
+
name: '特效',
|
|
107
|
+
alphaIndexPresets: [
|
|
108
|
+
{ name: '普通特效', alphaIndex: 0 },
|
|
109
|
+
{ name: '前景特效', alphaIndex: 100 },
|
|
110
|
+
{ name: '最前特效', alphaIndex: 200 },
|
|
111
|
+
],
|
|
112
|
+
}, {
|
|
113
|
+
renderingGroupId: 3,
|
|
114
|
+
name: '世界空间 UI / 引导箭头',
|
|
115
|
+
alphaIndexPresets: [
|
|
116
|
+
{ name: '世界空间 UI', alphaIndex: 0 },
|
|
117
|
+
{ name: '引导箭头', alphaIndex: 100 },
|
|
118
|
+
{ name: '顶层提示', alphaIndex: 200 },
|
|
119
|
+
],
|
|
120
|
+
}];
|
|
54
121
|
export function normalizeEditorSceneRenderingProfile(config) {
|
|
55
122
|
const root = readRecord(config);
|
|
56
123
|
const shadows = readRecord(root.shadows);
|
|
57
124
|
const settings = readRecord(shadows.settings);
|
|
125
|
+
const blob = readRecord(shadows.blob);
|
|
58
126
|
const blobSettings = readRecord(shadows.blobSettings);
|
|
127
|
+
const normalizedBlob = normalizeEditorSceneBlobShadowProfile(blob, blobSettings, shadows);
|
|
128
|
+
const normalizedStaticProjected = normalizeEditorSceneStaticProjectedShadowProfile(shadows.staticProjected);
|
|
59
129
|
const shadowRange = readRecord(shadows.shadowRange);
|
|
60
130
|
const shadowOrtho = readRecord(shadows.shadowOrtho);
|
|
61
131
|
const csm = readRecord(shadows.csm);
|
|
62
132
|
const shadowMeshes = readRecord(root.shadowMeshes);
|
|
63
133
|
return {
|
|
134
|
+
renderingGroups: normalizeEditorSceneRenderingGroupsProfile(root.renderingGroups),
|
|
64
135
|
environment: normalizeEditorSceneEnvironmentProfile(root.globalVolume),
|
|
65
136
|
postProcess: normalizeEditorScenePostProcessProfile(root.globalVolume),
|
|
66
137
|
shadows: {
|
|
138
|
+
defaultMode: readResolvedShadowMode(shadows.defaultMode, 'none'),
|
|
67
139
|
enabled: readBoolean(shadows.enabled, false),
|
|
68
140
|
useCsm: readBoolean(shadows.useCsm, false),
|
|
69
|
-
useBlobShadow:
|
|
141
|
+
useBlobShadow: normalizedBlob.enabled,
|
|
70
142
|
settings: {
|
|
71
143
|
mapSize: readNonNegativeNumber(settings.mapSize, 1024),
|
|
72
144
|
darkness: readNonNegativeNumber(settings.darkness, 0.3),
|
|
@@ -79,11 +151,13 @@ export function normalizeEditorSceneRenderingProfile(config) {
|
|
|
79
151
|
shadowColor: readRgb(settings.shadowColor, { r: 0, g: 0, b: 0 }),
|
|
80
152
|
},
|
|
81
153
|
blobSettings: {
|
|
82
|
-
opacity: readClampedNumber(blobSettings.opacity, 0.
|
|
83
|
-
yOffset: readNonNegativeNumber(blobSettings.yOffset, 0.
|
|
84
|
-
sizeMultiplier: readNonNegativeNumber(blobSettings.sizeMultiplier, 1),
|
|
154
|
+
opacity: readClampedNumber(blobSettings.opacity, 0.35, 0, 1),
|
|
155
|
+
yOffset: readNonNegativeNumber(blobSettings.yOffset, 0.08),
|
|
156
|
+
sizeMultiplier: readNonNegativeNumber(blobSettings.sizeMultiplier, 1.25),
|
|
85
157
|
minSize: readNonNegativeNumber(blobSettings.minSize, 0.25),
|
|
86
158
|
},
|
|
159
|
+
blob: normalizedBlob,
|
|
160
|
+
staticProjected: normalizedStaticProjected,
|
|
87
161
|
shadowRange: {
|
|
88
162
|
minZ: readNonNegativeNumber(shadowRange.minZ, 1),
|
|
89
163
|
maxZ: readNonNegativeNumber(shadowRange.maxZ, 60),
|
|
@@ -157,6 +231,79 @@ export function createEditorScenePlanarShadowPreviewSettings(profile, input = {}
|
|
|
157
231
|
},
|
|
158
232
|
};
|
|
159
233
|
}
|
|
234
|
+
export function createEditorSceneBlobShadowPreviewSettings(profile, input = {}) {
|
|
235
|
+
const blob = profile.shadows.blob;
|
|
236
|
+
return {
|
|
237
|
+
enabled: blob.enabled && (input.enabled ?? true),
|
|
238
|
+
plane: {
|
|
239
|
+
height: blob.plane.height,
|
|
240
|
+
yOffset: blob.plane.yOffset,
|
|
241
|
+
},
|
|
242
|
+
appearance: {
|
|
243
|
+
color: blob.appearance.color,
|
|
244
|
+
edgeSoftness: blob.appearance.edgeSoftness,
|
|
245
|
+
},
|
|
246
|
+
size: {
|
|
247
|
+
sizeMultiplier: blob.size.sizeMultiplier,
|
|
248
|
+
minSize: blob.size.minSize,
|
|
249
|
+
maxSize: blob.size.maxSize,
|
|
250
|
+
},
|
|
251
|
+
casters: {
|
|
252
|
+
autoDetectAll: input.autoDetectAllCasters ?? false,
|
|
253
|
+
includePatterns: [
|
|
254
|
+
...(input.additionalCasterIncludePatterns ?? []),
|
|
255
|
+
],
|
|
256
|
+
excludePatterns: [
|
|
257
|
+
...EDITOR_SCENE_DEFAULT_BLOB_SHADOW_EXCLUDE_PATTERNS,
|
|
258
|
+
...(input.additionalExcludePatterns ?? []),
|
|
259
|
+
],
|
|
260
|
+
rootBoundaryPatterns: [
|
|
261
|
+
...(input.additionalRootBoundaryPatterns ?? []),
|
|
262
|
+
],
|
|
263
|
+
minVolume: 0.001,
|
|
264
|
+
},
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
export function createEditorSceneStaticProjectedShadowPreviewSettings(profile, input = {}) {
|
|
268
|
+
const staticProjected = profile.shadows.staticProjected;
|
|
269
|
+
return {
|
|
270
|
+
enabled: staticProjected.enabled && (input.enabled ?? true),
|
|
271
|
+
plane: {
|
|
272
|
+
height: staticProjected.plane.height,
|
|
273
|
+
yOffset: staticProjected.plane.yOffset,
|
|
274
|
+
},
|
|
275
|
+
appearance: {
|
|
276
|
+
color: staticProjected.appearance.color,
|
|
277
|
+
},
|
|
278
|
+
direction: { mode: 'follow-light' },
|
|
279
|
+
bake: {
|
|
280
|
+
resolution: staticProjected.bake.resolution,
|
|
281
|
+
padding: staticProjected.bake.padding,
|
|
282
|
+
blur: staticProjected.bake.blur,
|
|
283
|
+
maxSize: staticProjected.bake.maxSize,
|
|
284
|
+
texelsPerMeter: staticProjected.bake.texelsPerMeter,
|
|
285
|
+
atlasSize: staticProjected.bake.atlasSize,
|
|
286
|
+
maxAtlasPages: staticProjected.bake.maxAtlasPages,
|
|
287
|
+
sdfRadiusPx: staticProjected.bake.sdfRadiusPx,
|
|
288
|
+
spatialChunkSize: staticProjected.bake.spatialChunkSize,
|
|
289
|
+
targetChunkCount: staticProjected.bake.targetChunkCount,
|
|
290
|
+
},
|
|
291
|
+
casters: {
|
|
292
|
+
autoDetectAll: input.autoDetectAllCasters ?? false,
|
|
293
|
+
includePatterns: [
|
|
294
|
+
...(input.additionalCasterIncludePatterns ?? []),
|
|
295
|
+
],
|
|
296
|
+
excludePatterns: [
|
|
297
|
+
...EDITOR_SCENE_DEFAULT_STATIC_PROJECTED_SHADOW_EXCLUDE_PATTERNS,
|
|
298
|
+
...(input.additionalExcludePatterns ?? []),
|
|
299
|
+
],
|
|
300
|
+
rootBoundaryPatterns: [
|
|
301
|
+
...(input.additionalRootBoundaryPatterns ?? []),
|
|
302
|
+
],
|
|
303
|
+
minVolume: 0.001,
|
|
304
|
+
},
|
|
305
|
+
};
|
|
306
|
+
}
|
|
160
307
|
export function applyEditorSceneRenderingProfilePatch(config, changes) {
|
|
161
308
|
const draft = cloneRecord(config);
|
|
162
309
|
const changedPaths = [];
|
|
@@ -180,6 +327,10 @@ export function summarizeEditorSceneRenderingProfile(value) {
|
|
|
180
327
|
postProcessEnabled: value?.postProcess?.enabled ?? null,
|
|
181
328
|
postProcessExposure: value?.postProcess?.imageProcessing?.exposure ?? null,
|
|
182
329
|
postProcessBloomEnabled: value?.postProcess?.bloom?.enabled ?? null,
|
|
330
|
+
blobEnabled: value?.shadows?.blob?.enabled ?? null,
|
|
331
|
+
blobOpacity: value?.shadows?.blob?.appearance?.color?.a ?? null,
|
|
332
|
+
staticProjectedEnabled: value?.shadows?.staticProjected?.enabled ?? null,
|
|
333
|
+
staticProjectedOpacity: value?.shadows?.staticProjected?.appearance?.color?.a ?? null,
|
|
183
334
|
planarEnabled: value?.shadows?.planar?.enabled ?? null,
|
|
184
335
|
planarOpacity: value?.shadows?.planar?.appearance?.color?.a ?? null,
|
|
185
336
|
planeHeight: value?.shadows?.planar?.plane?.height ?? null,
|
|
@@ -188,7 +339,122 @@ export function summarizeEditorSceneRenderingProfile(value) {
|
|
|
188
339
|
};
|
|
189
340
|
}
|
|
190
341
|
export function isEditorSceneRenderingProfilePatchPath(path) {
|
|
191
|
-
return EDITOR_SCENE_RENDERING_PROFILE_ALLOWED_PATCH_PATHS.includes(path)
|
|
342
|
+
return EDITOR_SCENE_RENDERING_PROFILE_ALLOWED_PATCH_PATHS.includes(path)
|
|
343
|
+
|| parseEditorSceneRenderingGroupNamePatchPath(path) != null
|
|
344
|
+
|| parseEditorSceneRenderingAlphaPresetPatchPath(path) != null;
|
|
345
|
+
}
|
|
346
|
+
export function applyEditorSceneRenderingProfileAction(config, input) {
|
|
347
|
+
const draft = cloneRecord(config);
|
|
348
|
+
const changedPaths = [];
|
|
349
|
+
const renderingGroupId = readRenderingGroupId(input.renderingGroupId);
|
|
350
|
+
if (renderingGroupId == null) {
|
|
351
|
+
return {
|
|
352
|
+
config: draft,
|
|
353
|
+
changedPaths,
|
|
354
|
+
normalized: normalizeEditorSceneRenderingProfile(draft),
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
if (input.actionId === 'rendering-alpha-preset.add') {
|
|
358
|
+
const nextIndex = appendEditorSceneRenderingAlphaPreset(draft, renderingGroupId);
|
|
359
|
+
changedPaths.push(`renderingGroups.slots.${renderingGroupId}.alphaIndexPresets.${nextIndex}`);
|
|
360
|
+
}
|
|
361
|
+
else if (input.actionId === 'rendering-alpha-preset.delete') {
|
|
362
|
+
const presetIndex = readPresetIndex(input.presetIndex);
|
|
363
|
+
if (presetIndex != null && removeEditorSceneRenderingAlphaPreset(draft, renderingGroupId, presetIndex)) {
|
|
364
|
+
changedPaths.push(`renderingGroups.slots.${renderingGroupId}.alphaIndexPresets.${presetIndex}`);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return {
|
|
368
|
+
config: draft,
|
|
369
|
+
changedPaths,
|
|
370
|
+
normalized: normalizeEditorSceneRenderingProfile(draft),
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
export function resolveEditorSceneRenderingAlphaIndexPresetValueMigration(input) {
|
|
374
|
+
const changePath = input.change?.path;
|
|
375
|
+
if (!changePath || !input.changedPaths.includes(changePath))
|
|
376
|
+
return null;
|
|
377
|
+
const alphaPresetPatch = parseEditorSceneRenderingAlphaPresetPatchPath(changePath);
|
|
378
|
+
if (!alphaPresetPatch || alphaPresetPatch.field !== 'alphaIndex')
|
|
379
|
+
return null;
|
|
380
|
+
const toAlphaIndex = readFiniteNumber(input.change?.value, Number.NaN);
|
|
381
|
+
if (!Number.isFinite(toAlphaIndex))
|
|
382
|
+
return null;
|
|
383
|
+
const previousPreset = input.previousProfile.renderingGroups.slots
|
|
384
|
+
.find(slot => slot.renderingGroupId === alphaPresetPatch.renderingGroupId)
|
|
385
|
+
?.alphaIndexPresets[alphaPresetPatch.presetIndex];
|
|
386
|
+
if (!previousPreset || !Number.isFinite(previousPreset.alphaIndex))
|
|
387
|
+
return null;
|
|
388
|
+
if (previousPreset.alphaIndex === toAlphaIndex)
|
|
389
|
+
return null;
|
|
390
|
+
return {
|
|
391
|
+
renderingGroupId: alphaPresetPatch.renderingGroupId,
|
|
392
|
+
fromAlphaIndex: previousPreset.alphaIndex,
|
|
393
|
+
toAlphaIndex,
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
function normalizeEditorSceneBlobShadowProfile(value, legacyBlobSettingsValue, legacyShadowsValue) {
|
|
397
|
+
const blob = readRecord(value);
|
|
398
|
+
const plane = readRecord(blob.plane);
|
|
399
|
+
const appearance = readRecord(blob.appearance);
|
|
400
|
+
const size = readRecord(blob.size);
|
|
401
|
+
const legacyBlobSettings = readRecord(legacyBlobSettingsValue);
|
|
402
|
+
const legacyShadows = readRecord(legacyShadowsValue);
|
|
403
|
+
const legacyOpacity = legacyBlobSettings.opacity;
|
|
404
|
+
const colorFallback = readRgba(appearance.color, {
|
|
405
|
+
r: 0,
|
|
406
|
+
g: 0,
|
|
407
|
+
b: 0,
|
|
408
|
+
a: readClampedNumber(legacyOpacity, 0.35, 0, 1),
|
|
409
|
+
});
|
|
410
|
+
return {
|
|
411
|
+
enabled: readBoolean(blob.enabled, readBoolean(legacyShadows.useBlobShadow, true)),
|
|
412
|
+
plane: {
|
|
413
|
+
height: readFiniteNumber(plane.height, 0),
|
|
414
|
+
yOffset: readNonNegativeNumber(plane.yOffset ?? legacyBlobSettings.yOffset, 0.08),
|
|
415
|
+
},
|
|
416
|
+
appearance: {
|
|
417
|
+
color: readRgba(appearance.color, colorFallback),
|
|
418
|
+
edgeSoftness: readClampedNumber(appearance.edgeSoftness, 0.55, 0, 0.98),
|
|
419
|
+
},
|
|
420
|
+
size: {
|
|
421
|
+
sizeMultiplier: readNonNegativeNumber(size.sizeMultiplier ?? legacyBlobSettings.sizeMultiplier, 1.25),
|
|
422
|
+
minSize: readNonNegativeNumber(size.minSize ?? legacyBlobSettings.minSize, 0.25),
|
|
423
|
+
maxSize: readPositiveNumber(size.maxSize, 20),
|
|
424
|
+
},
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
function normalizeEditorSceneRenderingGroupsProfile(value) {
|
|
428
|
+
const root = readRecord(value);
|
|
429
|
+
const rawSlots = Array.isArray(root.slots) ? root.slots : [];
|
|
430
|
+
return {
|
|
431
|
+
slots: EDITOR_SCENE_DEFAULT_RENDERING_GROUPS.map((defaultSlot) => {
|
|
432
|
+
const rawSlot = rawSlots.find((entry) => (readRenderingGroupId(readRecord(entry).renderingGroupId) === defaultSlot.renderingGroupId));
|
|
433
|
+
const slot = readRecord(rawSlot);
|
|
434
|
+
return {
|
|
435
|
+
renderingGroupId: defaultSlot.renderingGroupId,
|
|
436
|
+
name: readNonEmptyString(slot.name, defaultSlot.name),
|
|
437
|
+
alphaIndexPresets: normalizeEditorSceneRenderingAlphaIndexPresets(slot.alphaIndexPresets, defaultSlot.alphaIndexPresets),
|
|
438
|
+
};
|
|
439
|
+
}),
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
function normalizeEditorSceneRenderingAlphaIndexPresets(value, fallback) {
|
|
443
|
+
const source = Array.isArray(value) ? value : fallback;
|
|
444
|
+
const seen = new Set();
|
|
445
|
+
const presets = [];
|
|
446
|
+
source.forEach((entry, index) => {
|
|
447
|
+
const record = readRecord(entry);
|
|
448
|
+
const alphaIndex = readFiniteNumber(record.alphaIndex, Number.NaN);
|
|
449
|
+
if (!Number.isFinite(alphaIndex) || seen.has(alphaIndex))
|
|
450
|
+
return;
|
|
451
|
+
seen.add(alphaIndex);
|
|
452
|
+
presets.push({
|
|
453
|
+
name: readNonEmptyString(record.name, `Order ${index + 1}`),
|
|
454
|
+
alphaIndex,
|
|
455
|
+
});
|
|
456
|
+
});
|
|
457
|
+
return presets;
|
|
192
458
|
}
|
|
193
459
|
function normalizeEditorScenePlanarShadowProfile(value) {
|
|
194
460
|
const planar = readRecord(value);
|
|
@@ -229,6 +495,35 @@ function normalizeEditorScenePlanarShadowProfile(value) {
|
|
|
229
495
|
},
|
|
230
496
|
};
|
|
231
497
|
}
|
|
498
|
+
function normalizeEditorSceneStaticProjectedShadowProfile(value) {
|
|
499
|
+
const staticProjected = readRecord(value);
|
|
500
|
+
const plane = readRecord(staticProjected.plane);
|
|
501
|
+
const appearance = readRecord(staticProjected.appearance);
|
|
502
|
+
const bake = readRecord(staticProjected.bake);
|
|
503
|
+
const spatialChunkSize = readPositiveNumber(bake.spatialChunkSize ?? bake.maxSize, 16);
|
|
504
|
+
return {
|
|
505
|
+
enabled: readBoolean(staticProjected.enabled, false),
|
|
506
|
+
plane: {
|
|
507
|
+
height: readFiniteNumber(plane.height, 0),
|
|
508
|
+
yOffset: readNonNegativeNumber(plane.yOffset, 0.08),
|
|
509
|
+
},
|
|
510
|
+
appearance: {
|
|
511
|
+
color: readRgba(appearance.color, { r: 0, g: 0, b: 0, a: 0.35 }),
|
|
512
|
+
},
|
|
513
|
+
bake: {
|
|
514
|
+
resolution: readPositiveNumber(bake.resolution, 2048),
|
|
515
|
+
padding: readNonNegativeNumber(bake.padding, 0.15),
|
|
516
|
+
blur: readNonNegativeNumber(bake.blur, 0),
|
|
517
|
+
maxSize: spatialChunkSize,
|
|
518
|
+
texelsPerMeter: readPositiveNumber(bake.texelsPerMeter, 256),
|
|
519
|
+
atlasSize: readPositiveNumber(bake.atlasSize, 4096),
|
|
520
|
+
maxAtlasPages: readPositiveNumber(bake.maxAtlasPages, 8),
|
|
521
|
+
sdfRadiusPx: readNonNegativeNumber(bake.sdfRadiusPx, 8),
|
|
522
|
+
spatialChunkSize,
|
|
523
|
+
targetChunkCount: readPositiveNumber(bake.targetChunkCount, 64),
|
|
524
|
+
},
|
|
525
|
+
};
|
|
526
|
+
}
|
|
232
527
|
function normalizeEditorSceneEnvironmentProfile(globalVolumeValue) {
|
|
233
528
|
const globalVolume = readRecord(globalVolumeValue);
|
|
234
529
|
const environment = readRecord(globalVolume.environment);
|
|
@@ -249,6 +544,27 @@ function normalizeEditorSceneEnvironmentProfile(globalVolumeValue) {
|
|
|
249
544
|
};
|
|
250
545
|
}
|
|
251
546
|
function applyAllowedRenderingPatch(draft, path, value) {
|
|
547
|
+
const groupNamePatch = parseEditorSceneRenderingGroupNamePatchPath(path);
|
|
548
|
+
if (groupNamePatch) {
|
|
549
|
+
const slot = ensureRenderingGroupSlot(draft, groupNamePatch.renderingGroupId);
|
|
550
|
+
slot.name = readNonEmptyString(value, slot.name);
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
const alphaPresetPatch = parseEditorSceneRenderingAlphaPresetPatchPath(path);
|
|
554
|
+
if (alphaPresetPatch) {
|
|
555
|
+
const slot = ensureRenderingGroupSlot(draft, alphaPresetPatch.renderingGroupId);
|
|
556
|
+
const preset = slot.alphaIndexPresets[alphaPresetPatch.presetIndex];
|
|
557
|
+
if (!preset)
|
|
558
|
+
return;
|
|
559
|
+
if (alphaPresetPatch.field === 'name') {
|
|
560
|
+
preset.name = readNonEmptyString(value, preset.name);
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
preset.alphaIndex = readFiniteNumber(value, preset.alphaIndex);
|
|
564
|
+
slot.alphaIndexPresets = normalizeEditorSceneRenderingAlphaIndexPresets(slot.alphaIndexPresets, []);
|
|
565
|
+
}
|
|
566
|
+
return;
|
|
567
|
+
}
|
|
252
568
|
const globalVolume = ensureObject(draft, 'globalVolume');
|
|
253
569
|
if (path === 'globalVolume.enabled') {
|
|
254
570
|
globalVolume.enabled = value === true;
|
|
@@ -345,7 +661,142 @@ function applyAllowedRenderingPatch(draft, path, value) {
|
|
|
345
661
|
ensureObject(ensureObject(globalVolume, 'postProcessing'), 'bloom').scale = readPositiveNumber(value, 0.5);
|
|
346
662
|
return;
|
|
347
663
|
}
|
|
348
|
-
const
|
|
664
|
+
const shadows = ensureObject(draft, 'shadows');
|
|
665
|
+
if (path === 'shadows.defaultMode') {
|
|
666
|
+
shadows.defaultMode = readResolvedShadowMode(value, 'none');
|
|
667
|
+
return;
|
|
668
|
+
}
|
|
669
|
+
const blob = ensureObject(shadows, 'blob');
|
|
670
|
+
if (path === 'shadows.blob.enabled') {
|
|
671
|
+
blob.enabled = value === true;
|
|
672
|
+
return;
|
|
673
|
+
}
|
|
674
|
+
if (path === 'shadows.blob.appearance.color') {
|
|
675
|
+
const appearance = ensureObject(blob, 'appearance');
|
|
676
|
+
const current = readRgba(readRecord(appearance.color), { r: 0, g: 0, b: 0, a: 0.35 });
|
|
677
|
+
const next = readRecord(value);
|
|
678
|
+
appearance.color = {
|
|
679
|
+
r: readClampedNumber(next.r, current.r, 0, 1),
|
|
680
|
+
g: readClampedNumber(next.g, current.g, 0, 1),
|
|
681
|
+
b: readClampedNumber(next.b, current.b, 0, 1),
|
|
682
|
+
a: readClampedNumber(next.a, current.a, 0, 1),
|
|
683
|
+
};
|
|
684
|
+
return;
|
|
685
|
+
}
|
|
686
|
+
if (path === 'shadows.blob.appearance.color.a') {
|
|
687
|
+
const appearance = ensureObject(blob, 'appearance');
|
|
688
|
+
const current = readRgba(readRecord(appearance.color), { r: 0, g: 0, b: 0, a: 0.35 });
|
|
689
|
+
appearance.color = {
|
|
690
|
+
...current,
|
|
691
|
+
a: readClampedNumber(value, current.a, 0, 1),
|
|
692
|
+
};
|
|
693
|
+
return;
|
|
694
|
+
}
|
|
695
|
+
if (path === 'shadows.blob.appearance.edgeSoftness') {
|
|
696
|
+
ensureObject(blob, 'appearance').edgeSoftness = readClampedNumber(value, 0.55, 0, 0.98);
|
|
697
|
+
return;
|
|
698
|
+
}
|
|
699
|
+
if (path === 'shadows.blob.plane.height') {
|
|
700
|
+
ensureObject(blob, 'plane').height = readFiniteNumber(value, 0);
|
|
701
|
+
return;
|
|
702
|
+
}
|
|
703
|
+
if (path === 'shadows.blob.plane.yOffset') {
|
|
704
|
+
ensureObject(blob, 'plane').yOffset = readNonNegativeNumber(value, 0.08);
|
|
705
|
+
return;
|
|
706
|
+
}
|
|
707
|
+
if (path === 'shadows.blob.size.sizeMultiplier') {
|
|
708
|
+
ensureObject(blob, 'size').sizeMultiplier = readNonNegativeNumber(value, 1.25);
|
|
709
|
+
return;
|
|
710
|
+
}
|
|
711
|
+
if (path === 'shadows.blob.size.minSize') {
|
|
712
|
+
ensureObject(blob, 'size').minSize = readNonNegativeNumber(value, 0.25);
|
|
713
|
+
return;
|
|
714
|
+
}
|
|
715
|
+
if (path === 'shadows.blob.size.maxSize') {
|
|
716
|
+
ensureObject(blob, 'size').maxSize = readPositiveNumber(value, 20);
|
|
717
|
+
return;
|
|
718
|
+
}
|
|
719
|
+
const staticProjected = ensureObject(shadows, 'staticProjected');
|
|
720
|
+
if (path === 'shadows.staticProjected.enabled') {
|
|
721
|
+
staticProjected.enabled = value === true;
|
|
722
|
+
return;
|
|
723
|
+
}
|
|
724
|
+
if (path === 'shadows.staticProjected.appearance.color') {
|
|
725
|
+
const appearance = ensureObject(staticProjected, 'appearance');
|
|
726
|
+
const current = readRgba(readRecord(appearance.color), { r: 0, g: 0, b: 0, a: 0.35 });
|
|
727
|
+
const next = readRecord(value);
|
|
728
|
+
appearance.color = {
|
|
729
|
+
r: readClampedNumber(next.r, current.r, 0, 1),
|
|
730
|
+
g: readClampedNumber(next.g, current.g, 0, 1),
|
|
731
|
+
b: readClampedNumber(next.b, current.b, 0, 1),
|
|
732
|
+
a: readClampedNumber(next.a, current.a, 0, 1),
|
|
733
|
+
};
|
|
734
|
+
return;
|
|
735
|
+
}
|
|
736
|
+
if (path === 'shadows.staticProjected.appearance.color.a') {
|
|
737
|
+
const appearance = ensureObject(staticProjected, 'appearance');
|
|
738
|
+
const current = readRgba(readRecord(appearance.color), { r: 0, g: 0, b: 0, a: 0.35 });
|
|
739
|
+
appearance.color = {
|
|
740
|
+
...current,
|
|
741
|
+
a: readClampedNumber(value, current.a, 0, 1),
|
|
742
|
+
};
|
|
743
|
+
return;
|
|
744
|
+
}
|
|
745
|
+
if (path === 'shadows.staticProjected.plane.height') {
|
|
746
|
+
ensureObject(staticProjected, 'plane').height = readFiniteNumber(value, 0);
|
|
747
|
+
return;
|
|
748
|
+
}
|
|
749
|
+
if (path === 'shadows.staticProjected.plane.yOffset') {
|
|
750
|
+
ensureObject(staticProjected, 'plane').yOffset = readNonNegativeNumber(value, 0.08);
|
|
751
|
+
return;
|
|
752
|
+
}
|
|
753
|
+
if (path === 'shadows.staticProjected.bake.resolution') {
|
|
754
|
+
ensureObject(staticProjected, 'bake').resolution = readPositiveNumber(value, 2048);
|
|
755
|
+
return;
|
|
756
|
+
}
|
|
757
|
+
if (path === 'shadows.staticProjected.bake.padding') {
|
|
758
|
+
ensureObject(staticProjected, 'bake').padding = readNonNegativeNumber(value, 0.15);
|
|
759
|
+
return;
|
|
760
|
+
}
|
|
761
|
+
if (path === 'shadows.staticProjected.bake.blur') {
|
|
762
|
+
ensureObject(staticProjected, 'bake').blur = readNonNegativeNumber(value, 0);
|
|
763
|
+
return;
|
|
764
|
+
}
|
|
765
|
+
if (path === 'shadows.staticProjected.bake.maxSize') {
|
|
766
|
+
const bake = ensureObject(staticProjected, 'bake');
|
|
767
|
+
const spatialChunkSize = readPositiveNumber(value, 16);
|
|
768
|
+
bake.maxSize = spatialChunkSize;
|
|
769
|
+
bake.spatialChunkSize = spatialChunkSize;
|
|
770
|
+
return;
|
|
771
|
+
}
|
|
772
|
+
if (path === 'shadows.staticProjected.bake.texelsPerMeter') {
|
|
773
|
+
ensureObject(staticProjected, 'bake').texelsPerMeter = readPositiveNumber(value, 256);
|
|
774
|
+
return;
|
|
775
|
+
}
|
|
776
|
+
if (path === 'shadows.staticProjected.bake.atlasSize') {
|
|
777
|
+
ensureObject(staticProjected, 'bake').atlasSize = readPositiveNumber(value, 4096);
|
|
778
|
+
return;
|
|
779
|
+
}
|
|
780
|
+
if (path === 'shadows.staticProjected.bake.maxAtlasPages') {
|
|
781
|
+
ensureObject(staticProjected, 'bake').maxAtlasPages = readPositiveNumber(value, 8);
|
|
782
|
+
return;
|
|
783
|
+
}
|
|
784
|
+
if (path === 'shadows.staticProjected.bake.sdfRadiusPx') {
|
|
785
|
+
ensureObject(staticProjected, 'bake').sdfRadiusPx = readNonNegativeNumber(value, 8);
|
|
786
|
+
return;
|
|
787
|
+
}
|
|
788
|
+
if (path === 'shadows.staticProjected.bake.spatialChunkSize') {
|
|
789
|
+
const bake = ensureObject(staticProjected, 'bake');
|
|
790
|
+
const spatialChunkSize = readPositiveNumber(value, 16);
|
|
791
|
+
bake.spatialChunkSize = spatialChunkSize;
|
|
792
|
+
bake.maxSize = spatialChunkSize;
|
|
793
|
+
return;
|
|
794
|
+
}
|
|
795
|
+
if (path === 'shadows.staticProjected.bake.targetChunkCount') {
|
|
796
|
+
ensureObject(staticProjected, 'bake').targetChunkCount = readPositiveNumber(value, 64);
|
|
797
|
+
return;
|
|
798
|
+
}
|
|
799
|
+
const planar = ensureObject(shadows, 'planar');
|
|
349
800
|
if (path === 'shadows.planar.enabled') {
|
|
350
801
|
planar.enabled = value === true;
|
|
351
802
|
return;
|
|
@@ -443,6 +894,54 @@ function ensureObject(target, key) {
|
|
|
443
894
|
}
|
|
444
895
|
return current;
|
|
445
896
|
}
|
|
897
|
+
function ensureRenderingGroupsProfileDraft(target) {
|
|
898
|
+
const normalized = normalizeEditorSceneRenderingGroupsProfile(target.renderingGroups);
|
|
899
|
+
const draft = JSON.parse(JSON.stringify(normalized));
|
|
900
|
+
target.renderingGroups = draft;
|
|
901
|
+
return draft;
|
|
902
|
+
}
|
|
903
|
+
function ensureRenderingGroupSlot(target, renderingGroupId) {
|
|
904
|
+
const renderingGroups = ensureRenderingGroupsProfileDraft(target);
|
|
905
|
+
return renderingGroups.slots.find((slot) => slot.renderingGroupId === renderingGroupId)
|
|
906
|
+
?? renderingGroups.slots[renderingGroupId];
|
|
907
|
+
}
|
|
908
|
+
function appendEditorSceneRenderingAlphaPreset(target, renderingGroupId) {
|
|
909
|
+
const slot = ensureRenderingGroupSlot(target, renderingGroupId);
|
|
910
|
+
let alphaIndex = slot.alphaIndexPresets.length > 0
|
|
911
|
+
? Math.max(...slot.alphaIndexPresets.map(preset => preset.alphaIndex)) + 100
|
|
912
|
+
: 0;
|
|
913
|
+
const used = new Set(slot.alphaIndexPresets.map(preset => preset.alphaIndex));
|
|
914
|
+
while (used.has(alphaIndex))
|
|
915
|
+
alphaIndex += 100;
|
|
916
|
+
slot.alphaIndexPresets.push({
|
|
917
|
+
name: `新顺序 ${slot.alphaIndexPresets.length + 1}`,
|
|
918
|
+
alphaIndex,
|
|
919
|
+
});
|
|
920
|
+
return slot.alphaIndexPresets.length - 1;
|
|
921
|
+
}
|
|
922
|
+
function removeEditorSceneRenderingAlphaPreset(target, renderingGroupId, presetIndex) {
|
|
923
|
+
const slot = ensureRenderingGroupSlot(target, renderingGroupId);
|
|
924
|
+
if (presetIndex < 0 || presetIndex >= slot.alphaIndexPresets.length)
|
|
925
|
+
return false;
|
|
926
|
+
slot.alphaIndexPresets.splice(presetIndex, 1);
|
|
927
|
+
return true;
|
|
928
|
+
}
|
|
929
|
+
function parseEditorSceneRenderingGroupNamePatchPath(path) {
|
|
930
|
+
const match = path.match(/^renderingGroups\.slots\.(0|1|2|3)\.name$/);
|
|
931
|
+
if (!match)
|
|
932
|
+
return null;
|
|
933
|
+
return { renderingGroupId: Number(match[1]) };
|
|
934
|
+
}
|
|
935
|
+
function parseEditorSceneRenderingAlphaPresetPatchPath(path) {
|
|
936
|
+
const match = path.match(/^renderingGroups\.slots\.(0|1|2|3)\.alphaIndexPresets\.(\d+)\.(name|alphaIndex)$/);
|
|
937
|
+
if (!match)
|
|
938
|
+
return null;
|
|
939
|
+
return {
|
|
940
|
+
renderingGroupId: Number(match[1]),
|
|
941
|
+
presetIndex: Number(match[2]),
|
|
942
|
+
field: match[3],
|
|
943
|
+
};
|
|
944
|
+
}
|
|
446
945
|
function readRecord(value) {
|
|
447
946
|
return value && typeof value === 'object' && !Array.isArray(value)
|
|
448
947
|
? value
|
|
@@ -482,9 +981,20 @@ function readStringOrNull(value) {
|
|
|
482
981
|
const text = typeof value === 'string' ? value.trim() : '';
|
|
483
982
|
return text || null;
|
|
484
983
|
}
|
|
984
|
+
function readNonEmptyString(value, fallback) {
|
|
985
|
+
const text = typeof value === 'string' ? value.trim() : '';
|
|
986
|
+
return text || fallback;
|
|
987
|
+
}
|
|
485
988
|
function readBoolean(value, fallback) {
|
|
486
989
|
return typeof value === 'boolean' ? value : fallback;
|
|
487
990
|
}
|
|
991
|
+
function readRenderingGroupId(value) {
|
|
992
|
+
return value === 0 || value === 1 || value === 2 || value === 3 ? value : null;
|
|
993
|
+
}
|
|
994
|
+
function readPresetIndex(value) {
|
|
995
|
+
const index = typeof value === 'number' && Number.isInteger(value) ? value : null;
|
|
996
|
+
return index != null && index >= 0 ? index : null;
|
|
997
|
+
}
|
|
488
998
|
function readToneMappingType(value, fallback) {
|
|
489
999
|
return value === 'standard' || value === 'aces' || value === 'khr-pbr-neutral' ? value : fallback;
|
|
490
1000
|
}
|
|
@@ -494,6 +1004,11 @@ function readSamples(value, fallback) {
|
|
|
494
1004
|
function readPlaneHeightMode(value, fallback) {
|
|
495
1005
|
return value === 'fixed' || value === 'receiver' ? value : fallback;
|
|
496
1006
|
}
|
|
1007
|
+
function readResolvedShadowMode(value, fallback) {
|
|
1008
|
+
return value === 'none' || value === 'blob' || value === 'static' || value === 'planar' || value === 'dynamic'
|
|
1009
|
+
? value
|
|
1010
|
+
: fallback;
|
|
1011
|
+
}
|
|
497
1012
|
function readFiniteNumber(value, fallback) {
|
|
498
1013
|
return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
|
|
499
1014
|
}
|