@fps-games/editor 0.2.0-beta.2 → 0.2.0-beta.4
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/agent-bridge/capabilities/assets.js.map +1 -1
- package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/editor-state.js +26 -17
- package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.js +61 -13
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.d.ts +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.js +110 -25
- package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
- package/dist/agent-bridge/capabilities/selection.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/selection.js +8 -5
- package/dist/agent-bridge/capabilities/selection.js.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.js +11 -2
- package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
- package/dist/agent-bridge/capabilities/transform.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/transform.js +6 -4
- package/dist/agent-bridge/capabilities/transform.js.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.js +79 -47
- package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
- package/dist/agent-bridge/capability-sources.js.map +1 -1
- package/dist/agent-bridge/diagnostics.js.map +1 -1
- package/dist/agent-bridge/index.js.map +1 -1
- package/dist/agent-bridge/register.js.map +1 -1
- package/dist/agent-bridge/shared.d.ts +8 -3
- package/dist/agent-bridge/shared.d.ts.map +1 -1
- package/dist/agent-bridge/shared.js +32 -0
- package/dist/agent-bridge/shared.js.map +1 -1
- package/dist/agent-bridge/source-types.js.map +1 -1
- package/dist/authoring-apply.js.map +1 -1
- package/dist/build-info.json +48 -48
- package/dist/editor-plugin-agent-capabilities.js.map +1 -1
- package/dist/editor-plugin-hierarchy-command.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/local-editor-lifecycle-operations.js.map +1 -1
- package/dist/local-editor-agent-actions.d.ts.map +1 -1
- package/dist/local-editor-agent-actions.js +9 -5
- package/dist/local-editor-agent-actions.js.map +1 -1
- package/dist/local-editor-agent-bridge-transport.js.map +1 -1
- package/dist/local-editor-agent-bridge.js.map +1 -1
- package/dist/local-editor-agent-context.js.map +1 -1
- package/dist/local-editor-harness.d.ts +57 -1
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +393 -41
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-marker-graph.js.map +1 -1
- package/dist/local-editor-performance-stats.js.map +1 -1
- package/dist/local-editor-plugin-inspector.js.map +1 -1
- package/dist/local-editor-plugin-panel.js.map +1 -1
- package/dist/local-editor-scene-render-scheduler.js.map +1 -1
- package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
- package/dist/local-editor-viewport-render-coordinator.js.map +1 -1
- package/dist/playable-babylon-facade.js.map +1 -1
- package/dist/playable-babylon-outline-inspector.js.map +1 -1
- package/dist/playable-babylon-outline-runtime.js.map +1 -1
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +36 -0
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-product-local-editor.js.map +1 -1
- package/dist/playable-product-projection-preview.js.map +1 -1
- package/dist/playable-product-rendering.js.map +1 -1
- package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
- package/dist/playable-product-scene-capabilities.js +49 -2
- package/dist/playable-product-scene-capabilities.js.map +1 -1
- package/dist/playable-runtime-babylon.js.map +1 -1
- package/dist/playable-runtime.js.map +1 -1
- package/dist/playable-sdk-upgrade-doctor.js.map +1 -1
- package/dist/playable-sdk-vite.js.map +1 -1
- package/dist/playable-sdk.js.map +1 -1
- package/dist/playable-standard-project.js.map +1 -1
- package/dist/static-shadow-cpu-worker.js.map +1 -1
- package/dist/vite.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/lighting/directional-light-angles.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/apply.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/placement/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/placement/runtime-drop-position.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/volume-stack.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/rendering/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/rendering/node-rendering.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/infinite-grid-layer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/primitive-projection-instancing.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-measurement-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.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 +3 -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 +2 -0
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-clipboard.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-root-ownership.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-auto-scroll.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +2 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +260 -94
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +7 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +186 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +2 -2
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +14 -8
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -1
- 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 +23 -7
- 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-hierarchy-view.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 +6 -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-input-router.d.ts +3 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +60 -13
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
- 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-plugin-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +24 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +69 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-auto-scroll.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-session.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +58 -14
- 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-types.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.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 +196 -11
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/package.json +4 -4
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/document-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +9 -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 +18 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.d.ts +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/types.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-command.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-operation-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-operations.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +6 -6
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/drop-cache.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js +28 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/managed-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js +13 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +58 -23
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.js.map +1 -1
- 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/identity.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/managed-runtime-instance.js.map +1 -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/asset-placement/runtime-scene.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/transport.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js +7 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/constants.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/drift.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/runtime-transform-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/response.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/adapter-dispatcher.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/project-asset-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/readers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/pan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-format.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-state.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-storage.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/rig.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/save-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/snapshot.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/core-contracts/index.js.map +1 -1
- 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/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +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/resolver.js.map +1 -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/types.js.map +1 -1
- 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.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/camera-section.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-property.js.map +1 -1
- 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/format.js.map +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/inspector/light-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/marker-section.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/object-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/readonly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-summary.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/safe-value.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/internal/local-harness.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/save-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/snapshot.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/storage.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
- 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 +5 -0
- 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/local-harness/host-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +18 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +60 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/timing.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/game-objects.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/geometry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/default-assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js +28 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/duplicate.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/paths.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/preview.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js +26 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +0 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +8 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.js.map +1 -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.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/json-field.js.map +1 -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.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.js.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 +18 -1
- 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/package-resolution/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/shadow-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/source-structure-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/structure.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/asset-manager.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal-scene-feature.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-asset-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/draft.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/index.js.map +1 -1
- 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/route.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/index.js.map +1 -1
- 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.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +13 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/artifacts.js.map +1 -1
- 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.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/validation.js.map +1 -1
- 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.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
- 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/serialized-property/patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/classification.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
- 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.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/object-command-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/property-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/system-defaults.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/http.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/host.js.map +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.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/report.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +6 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js +37 -8
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/path-write-coordinator.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +4 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +14 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +5 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +3 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +2 -11
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +8 -7
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +84 -6
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +4 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +1 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +0 -33
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/package.json +9 -6
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +2 -2
- package/node_modules/@fps-games/editor-tooling/dist/contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/data-object.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/migration.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/package.json +3 -3
- package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
- package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts +2 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.js +25 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.js.map +1 -0
- package/node_modules/@fps-games/playable-assets/package.json +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/marker-graph-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/package.json +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-authoring.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-types.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-values.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-quality.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-settings.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-types.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/value.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/package.json +2 -2
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/standard-plugins.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/tokens.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/package.json +12 -12
- package/node_modules/@fps-games/playable-runtime-data/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
- package/node_modules/@fps-games/playable-scene/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-scene/dist/transform-math.js.map +1 -1
- package/node_modules/@fps-games/playable-scene/package.json +2 -2
- package/node_modules/@fps-games/plugin-api/dist/index.js.map +1 -1
- package/node_modules/@fps-games/plugin-api/package.json +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/package.json +5 -5
- package/node_modules/@fps-games/plugin-host/dist/index.js.map +1 -1
- package/node_modules/@fps-games/plugin-host/package.json +2 -2
- package/node_modules/@fps-games/plugin-markers/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/package.json +5 -5
- package/node_modules/@fps-games/plugin-materials/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/package.json +5 -5
- package/node_modules/@fps-games/plugin-rendering/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
- package/node_modules/@fps-games/plugin-scene/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/package.json +5 -5
- package/node_modules/@fps-games/plugin-shadows/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
- package/package.json +27 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rendering/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rendering/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC","sourcesContent":["export * from './node-rendering.js';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-rendering.js","sourceRoot":"","sources":["../../src/rendering/node-rendering.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-rendering.js","sourceRoot":"","sources":["../../src/rendering/node-rendering.ts"],"names":[],"mappings":"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","sourcesContent":["export interface BabylonRenderingSettings {\n renderingGroupId?: unknown;\n alphaIndex?: unknown;\n}\n\nexport interface BabylonRenderableMesh {\n name?: string;\n renderingGroupId: number;\n alphaIndex: number;\n getTotalVertices(): number;\n getChildMeshes?(directDescendantsOnly?: boolean): unknown[];\n}\n\nexport interface BabylonRenderableNode {\n getChildMeshes?(directDescendantsOnly?: boolean): unknown[];\n}\n\nexport type BabylonRenderingRestore = () => void;\n\nexport function applyBabylonRenderingToMesh(\n mesh: unknown,\n rendering: BabylonRenderingSettings | null | undefined,\n): BabylonRenderingRestore {\n if (!isRenderableBabylonMesh(mesh)) return noop;\n const renderingGroupId = readBabylonRenderingGroupId(rendering?.renderingGroupId);\n const alphaIndex = readFiniteNumber(rendering?.alphaIndex);\n if (renderingGroupId == null && alphaIndex == null) return noop;\n const previousRenderingGroupId = mesh.renderingGroupId;\n const previousAlphaIndex = mesh.alphaIndex;\n if (renderingGroupId != null) mesh.renderingGroupId = renderingGroupId;\n if (alphaIndex != null) mesh.alphaIndex = alphaIndex;\n return () => {\n mesh.renderingGroupId = previousRenderingGroupId;\n mesh.alphaIndex = previousAlphaIndex;\n };\n}\n\nexport function collectRenderableBabylonMeshes(\n root: unknown,\n contentRoot?: unknown | null,\n): BabylonRenderableMesh[] {\n const meshes: BabylonRenderableMesh[] = [];\n const seen = new Set<unknown>();\n const append = (node: unknown): void => {\n if (!node || seen.has(node)) return;\n seen.add(node);\n if (isRenderableBabylonMesh(node)) meshes.push(node);\n const childMeshes = isBabylonRenderableNode(node) ? node.getChildMeshes?.(false) : [];\n if (Array.isArray(childMeshes)) {\n for (const child of childMeshes) append(child);\n }\n };\n append(root);\n if (contentRoot && contentRoot !== root) append(contentRoot);\n return meshes;\n}\n\nexport function applyBabylonRenderingToNodeTree(\n root: unknown,\n rendering: BabylonRenderingSettings | null | undefined,\n contentRoot?: unknown | null,\n): BabylonRenderingRestore {\n const restoreCallbacks = collectRenderableBabylonMeshes(root, contentRoot)\n .map(mesh => applyBabylonRenderingToMesh(mesh, rendering));\n if (restoreCallbacks.length === 0) return noop;\n return () => {\n for (const restore of restoreCallbacks.reverse()) restore();\n };\n}\n\nfunction isBabylonRenderableNode(node: unknown): node is BabylonRenderableNode {\n return !!node && typeof node === 'object' && typeof (node as BabylonRenderableNode).getChildMeshes === 'function';\n}\n\nfunction isRenderableBabylonMesh(node: unknown): node is BabylonRenderableMesh {\n return !!node\n && typeof node === 'object'\n && typeof (node as BabylonRenderableMesh).getTotalVertices === 'function'\n && typeof (node as BabylonRenderableMesh).renderingGroupId === 'number'\n && typeof (node as BabylonRenderableMesh).alphaIndex === 'number';\n}\n\nfunction readBabylonRenderingGroupId(value: unknown): 0 | 1 | 2 | 3 | null {\n return value === 0 || value === 1 || value === 2 || value === 3 ? value : null;\n}\n\nfunction readFiniteNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n}\n\nfunction noop(): void {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob-shadow-shaders.js","sourceRoot":"","sources":["../../src/shadows/blob-shadow-shaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEvD,MAAM,UAAU,yBAAyB;IACvC,MAAM,SAAS,GAAG,GAAG,uBAAuB,cAAc,CAAC;IAC3D,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;QAAE,OAAO;IAE3C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;;;;;;;;;;;;;;CAclC,CAAC;IAEA,MAAM,CAAC,YAAY,CAAC,GAAG,uBAAuB,gBAAgB,CAAC,GAAG;;;;;;;;;;;;;;;;CAgBnE,CAAC;AACF,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO,CAAC,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;AACpE,CAAC"}
|
|
1
|
+
{"version":3,"file":"blob-shadow-shaders.js","sourceRoot":"","sources":["../../src/shadows/blob-shadow-shaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEvD,MAAM,UAAU,yBAAyB;IACvC,MAAM,SAAS,GAAG,GAAG,uBAAuB,cAAc,CAAC;IAC3D,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;QAAE,OAAO;IAE3C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;;;;;;;;;;;;;;CAclC,CAAC;IAEA,MAAM,CAAC,YAAY,CAAC,GAAG,uBAAuB,gBAAgB,CAAC,GAAG;;;;;;;;;;;;;;;;CAgBnE,CAAC;AACF,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO,CAAC,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;AACpE,CAAC","sourcesContent":["import { Effect } from '@babylonjs/core/Materials/effect.js';\n\nexport const BLOB_SHADOW_SHADER_NAME = 'fpsBlobShadow';\n\nexport function registerBlobShadowShaders(): void {\n const vertexKey = `${BLOB_SHADOW_SHADER_NAME}VertexShader`;\n if (Effect.ShadersStore[vertexKey]) return;\n\n Effect.ShadersStore[vertexKey] = `\nprecision highp float;\n\nattribute vec3 position;\nattribute vec2 uv;\n\nuniform mat4 worldViewProjection;\n\nvarying vec2 v_uv;\n\nvoid main() {\n v_uv = uv;\n gl_Position = worldViewProjection * vec4(position, 1.0);\n}\n`;\n\n Effect.ShadersStore[`${BLOB_SHADOW_SHADER_NAME}FragmentShader`] = `\nprecision highp float;\n\nuniform vec4 u_shadowColor;\nuniform float u_edgeSoftness;\n\nvarying vec2 v_uv;\n\nvoid main() {\n vec2 centered = (v_uv - vec2(0.5)) * 2.0;\n float distanceFromCenter = length(centered);\n float inner = clamp(u_edgeSoftness, 0.0, 0.98);\n float alpha = (1.0 - smoothstep(inner, 1.0, distanceFromCenter)) * u_shadowColor.a;\n if (alpha <= 0.001) discard;\n gl_FragColor = vec4(u_shadowColor.rgb, alpha);\n}\n`;\n}\n\nexport function getBlobShadowShaderAttributes(): string[] {\n return ['position', 'uv'];\n}\n\nexport function getBlobShadowShaderUniforms(): string[] {\n return ['worldViewProjection', 'u_shadowColor', 'u_edgeSoftness'];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob-shadow-system.js","sourceRoot":"","sources":["../../src/shadows/blob-shadow-system.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blob-shadow-system.js","sourceRoot":"","sources":["../../src/shadows/blob-shadow-system.ts"],"names":[],"mappings":"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","sourcesContent":["import { Constants } from '@babylonjs/core/Engines/constants.js';\nimport { Color4 } from '@babylonjs/core/Maths/math.color.js';\nimport { Material } from '@babylonjs/core/Materials/material.js';\nimport { ShaderMaterial } from '@babylonjs/core/Materials/shaderMaterial.js';\nimport { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh.js';\nimport { Mesh } from '@babylonjs/core/Meshes/mesh.js';\nimport { TransformNode } from '@babylonjs/core/Meshes/transformNode.js';\nimport { VertexData } from '@babylonjs/core/Meshes/mesh.vertexData.js';\nimport type { Observer } from '@babylonjs/core/Misc/observable.js';\nimport type { Scene } from '@babylonjs/core/scene.js';\nimport {\n BLOB_SHADOW_SHADER_NAME,\n getBlobShadowShaderAttributes,\n getBlobShadowShaderUniforms,\n registerBlobShadowShaders,\n} from './blob-shadow-shaders.js';\nimport {\n DEFAULT_BLOB_SHADOW_OPTIONS,\n type BlobShadowCasterInfo,\n type BlobShadowCasterOverride,\n type BlobShadowOptions,\n type BlobShadowSystem,\n type ResolvedBlobShadowOptions,\n} from './types.js';\n\nconst BLOB_SHADOW_ALPHA_INDEX = 3;\n\ntype BlobShadowRuntimeCasterInfo = BlobShadowCasterInfo & {\n override: BlobShadowCasterOverride;\n};\n\nexport function createBlobShadowSystem(\n scene: Scene,\n options: Partial<BlobShadowOptions> = {},\n): BlobShadowSystem {\n return new BabylonBlobShadowSystem(scene, options);\n}\n\nclass BabylonBlobShadowSystem implements BlobShadowSystem {\n private options: ResolvedBlobShadowOptions;\n private material: ShaderMaterial | null = null;\n private readonly casters = new Map<AbstractMesh, BlobShadowRuntimeCasterInfo>();\n private renderObserver: Observer<Scene> | null = null;\n private meshAddedObserver: Observer<AbstractMesh> | null = null;\n private initialized = false;\n private casterPatterns: string[] = [];\n\n constructor(\n private readonly scene: Scene,\n options: Partial<BlobShadowOptions>,\n ) {\n this.options = resolveBlobShadowOptions(options);\n this.casterPatterns = [...this.options.casters.includePatterns];\n }\n\n initialize(): void {\n if (this.initialized || !this.options.enabled) return;\n registerBlobShadowShaders();\n this.material = this.createShadowMaterial();\n this.renderObserver = this.scene.onBeforeRenderObservable.add(() => this.syncCasters());\n this.initialized = true;\n this.refresh();\n }\n\n addCaster(mesh: AbstractMesh, override: BlobShadowCasterOverride = {}): boolean {\n const root = this.findCasterRoot(mesh);\n if (!this.initialized || this.casters.has(root)) return false;\n if (!this.isValidShadowSource(root)) return false;\n const shadow = this.createShadowForNode(root);\n if (!shadow) return false;\n this.casters.set(root, { source: root, shadow, override: sanitizeCasterOverride(override) });\n return true;\n }\n\n removeCaster(mesh: AbstractMesh): void {\n this.disposeCaster(this.findCasterRoot(mesh));\n }\n\n enableCasterAutoDetection(patterns: string[]): void {\n this.options = {\n ...this.options,\n casters: {\n ...this.options.casters,\n autoDetectAll: false,\n includePatterns: normalizeStringList(patterns),\n },\n };\n this.casterPatterns = [...this.options.casters.includePatterns];\n this.refresh();\n this.ensureMeshObserver();\n }\n\n enableAutoDetectionForAll(): void {\n this.options = {\n ...this.options,\n casters: {\n ...this.options.casters,\n autoDetectAll: true,\n },\n };\n this.casterPatterns = [];\n this.refresh();\n this.ensureMeshObserver();\n }\n\n refresh(): void {\n if (!this.initialized) return;\n this.pruneDisposedCasters();\n for (const mesh of this.scene.meshes) this.tryAutoAddCaster(mesh);\n if (this.options.casters.autoDetectAll || this.casterPatterns.length > 0) {\n this.ensureMeshObserver();\n }\n this.syncMaterial();\n this.syncCasters();\n }\n\n setOptions(options: Partial<BlobShadowOptions>): void {\n const wasEnabled = this.options.enabled;\n this.options = resolveBlobShadowOptions(options, this.options);\n this.casterPatterns = [...this.options.casters.includePatterns];\n if (!wasEnabled && this.options.enabled) this.initialize();\n else if (wasEnabled && !this.options.enabled) this.dispose();\n else this.refresh();\n }\n\n getOptions(): ResolvedBlobShadowOptions {\n return cloneResolvedOptions(this.options);\n }\n\n getCasterCount(): number {\n return this.casters.size;\n }\n\n dispose(): void {\n if (this.renderObserver) {\n this.scene.onBeforeRenderObservable.remove(this.renderObserver);\n this.renderObserver = null;\n }\n if (this.meshAddedObserver) {\n this.scene.onNewMeshAddedObservable.remove(this.meshAddedObserver);\n this.meshAddedObserver = null;\n }\n for (const root of [...this.casters.keys()]) this.disposeCaster(root);\n this.material?.dispose();\n this.material = null;\n this.initialized = false;\n }\n\n private createShadowMaterial(): ShaderMaterial {\n const material = new ShaderMaterial(\n 'fps.blobShadow',\n this.scene,\n { vertex: BLOB_SHADOW_SHADER_NAME, fragment: BLOB_SHADOW_SHADER_NAME },\n {\n attributes: getBlobShadowShaderAttributes(),\n uniforms: getBlobShadowShaderUniforms(),\n },\n );\n material.backFaceCulling = false;\n material.disableDepthWrite = true;\n material.depthFunction = Constants.LEQUAL;\n material.needAlphaBlending = () => true;\n material.transparencyMode = Material.MATERIAL_ALPHABLEND;\n material.alphaMode = Constants.ALPHA_COMBINE;\n this.syncMaterial(material);\n return material;\n }\n\n private syncMaterial(material = this.material): void {\n if (!material) return;\n const color = this.options.appearance.color;\n material.setColor4('u_shadowColor', new Color4(\n clamp01(color.r),\n clamp01(color.g),\n clamp01(color.b),\n clamp01(color.a),\n ));\n material.setFloat('u_edgeSoftness', clamp01(this.options.appearance.edgeSoftness));\n }\n\n private syncCasters(): void {\n if (!this.initialized) return;\n this.pruneDisposedCasters();\n for (const info of this.casters.values()) {\n this.syncCaster(info);\n }\n }\n\n private syncCaster(info: BlobShadowRuntimeCasterInfo): void {\n const source = info.source;\n const shadow = info.shadow;\n if (source.isDisposed() || shadow.isDisposed()) return;\n source.computeWorldMatrix(true);\n const bounds = source.getHierarchyBoundingVectors(true);\n const min = bounds.min;\n const max = bounds.max;\n const center = min.add(max).scale(0.5);\n const width = Math.max(0, max.x - min.x);\n const depth = Math.max(0, max.z - min.z);\n const sizeMultiplier = readPositiveNumber(info.override.sizeMultiplier, this.options.size.sizeMultiplier);\n const minSize = readNonNegativeNumber(info.override.minSize, this.options.size.minSize);\n const maxSize = readPositiveNumber(info.override.maxSize, this.options.size.maxSize);\n const planeY = this.options.plane.height + readFiniteNumber(info.override.yOffset, this.options.plane.yOffset);\n const sizeX = clamp(width * sizeMultiplier, minSize, maxSize);\n const sizeZ = clamp(depth * sizeMultiplier, minSize, maxSize);\n shadow.position.copyFromFloats(\n center.x,\n planeY,\n center.z,\n );\n shadow.scaling.copyFromFloats(sizeX, 1, sizeZ);\n }\n\n private createShadowForNode(root: AbstractMesh): Mesh | null {\n if (!this.material) return null;\n const shadow = new Mesh(`${root.name}_blobShadow`, this.scene);\n const vertexData = new VertexData();\n vertexData.positions = [\n -0.5, 0, -0.5,\n 0.5, 0, -0.5,\n 0.5, 0, 0.5,\n -0.5, 0, 0.5,\n ];\n vertexData.indices = [0, 1, 2, 0, 2, 3];\n vertexData.uvs = [\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 1,\n ];\n vertexData.normals = [\n 0, 1, 0,\n 0, 1, 0,\n 0, 1, 0,\n 0, 1, 0,\n ];\n vertexData.applyToMesh(shadow);\n shadow.material = this.material;\n shadow.isPickable = false;\n shadow.receiveShadows = false;\n shadow.alphaIndex = BLOB_SHADOW_ALPHA_INDEX;\n shadow.renderOutline = false;\n shadow.renderOverlay = false;\n shadow.metadata = {\n ...(shadow.metadata && typeof shadow.metadata === 'object' ? shadow.metadata : {}),\n disableBlobShadow: true,\n blobShadowInternal: true,\n };\n this.syncCaster({ source: root, shadow, override: {} });\n return shadow;\n }\n\n private tryAutoAddCaster(mesh: AbstractMesh): void {\n if (!this.initialized || this.casters.has(mesh)) return;\n if (!this.isValidShadowSource(mesh)) return;\n if (!this.options.casters.autoDetectAll && !this.matchesCasterPattern(mesh)) return;\n const root = this.findCasterRoot(mesh);\n if (this.isAlreadyCoveredByCaster(root)) return;\n this.addCaster(root);\n }\n\n private ensureMeshObserver(): void {\n if (this.meshAddedObserver) return;\n this.meshAddedObserver = this.scene.onNewMeshAddedObservable.add((mesh) => {\n queueMicrotask(() => {\n if (!this.initialized || mesh.isDisposed()) return;\n this.tryAutoAddCaster(mesh);\n });\n });\n }\n\n private pruneDisposedCasters(): void {\n for (const [root, info] of [...this.casters]) {\n if (root.isDisposed() || info.shadow.isDisposed()) this.disposeCaster(root);\n }\n }\n\n private disposeCaster(root: AbstractMesh): void {\n const info = this.casters.get(root);\n if (!info) return;\n info.shadow.dispose();\n this.casters.delete(root);\n }\n\n private isValidShadowSource(mesh: AbstractMesh): boolean {\n if (mesh.isDisposed() || !mesh.isEnabled(false)) return false;\n if (this.isInternalMesh(mesh)) return false;\n if (this.matchesExcludedPattern(mesh)) return false;\n mesh.computeWorldMatrix(true);\n const bounds = mesh.getHierarchyBoundingVectors(true);\n const size = bounds.max.subtract(bounds.min);\n const volume = Math.abs(size.x * size.y * size.z);\n return Number.isFinite(volume) && volume >= this.options.casters.minVolume;\n }\n\n private matchesCasterPattern(mesh: AbstractMesh): boolean {\n return this.matchesAnyPattern(mesh, this.casterPatterns);\n }\n\n private matchesExcludedPattern(mesh: AbstractMesh): boolean {\n return this.matchesAnyPattern(mesh, this.options.casters.excludePatterns);\n }\n\n private matchesAnyPattern(mesh: AbstractMesh, patterns: readonly string[]): boolean {\n if (patterns.length === 0) return false;\n const names = this.collectMeshNames(mesh);\n return patterns.some((pattern) => {\n const normalized = pattern.trim().toLowerCase();\n return normalized.length > 0 && names.some((name) => name.includes(normalized));\n });\n }\n\n private collectMeshNames(mesh: AbstractMesh): string[] {\n const names = new Set<string>();\n let cursor: unknown = mesh;\n while (cursor && typeof cursor === 'object') {\n const name = typeof (cursor as { name?: unknown }).name === 'string' ? (cursor as { name: string }).name : '';\n if (name) names.add(name.toLowerCase());\n cursor = (cursor as { parent?: unknown }).parent;\n }\n return [...names];\n }\n\n private isInternalMesh(mesh: AbstractMesh): boolean {\n const metadata = mesh.metadata;\n return !!metadata\n && typeof metadata === 'object'\n && ((metadata as { disableBlobShadow?: unknown }).disableBlobShadow === true\n || (metadata as { blobShadowInternal?: unknown }).blobShadowInternal === true\n || (metadata as { disablePlanarShadow?: unknown }).disablePlanarShadow === true\n || (metadata as { planarShadowInternal?: unknown }).planarShadowInternal === true);\n }\n\n private findCasterRoot(mesh: AbstractMesh): AbstractMesh {\n let cursor: AbstractMesh = mesh;\n let parent = mesh.parent;\n while (parent instanceof AbstractMesh || parent instanceof TransformNode) {\n if (parent instanceof AbstractMesh && this.matchesAnyPattern(parent, this.options.casters.rootBoundaryPatterns)) {\n return parent;\n }\n if (parent instanceof AbstractMesh) cursor = parent;\n parent = parent.parent;\n }\n return cursor;\n }\n\n private isAlreadyCoveredByCaster(root: AbstractMesh): boolean {\n if (this.casters.has(root)) return true;\n for (const caster of this.casters.keys()) {\n if (root.isDescendantOf(caster) || caster.isDescendantOf(root)) return true;\n }\n return false;\n }\n}\n\nexport function resolveBlobShadowOptions(\n options: Partial<BlobShadowOptions> = {},\n fallback: ResolvedBlobShadowOptions = DEFAULT_BLOB_SHADOW_OPTIONS,\n): ResolvedBlobShadowOptions {\n return {\n enabled: readBoolean(options.enabled, fallback.enabled),\n plane: {\n height: readFiniteNumber(options.plane?.height, fallback.plane.height),\n yOffset: readFiniteNumber(options.plane?.yOffset, fallback.plane.yOffset),\n },\n appearance: {\n color: {\n r: readClampedNumber(options.appearance?.color?.r, fallback.appearance.color.r, 0, 1),\n g: readClampedNumber(options.appearance?.color?.g, fallback.appearance.color.g, 0, 1),\n b: readClampedNumber(options.appearance?.color?.b, fallback.appearance.color.b, 0, 1),\n a: readClampedNumber(options.appearance?.color?.a, fallback.appearance.color.a, 0, 1),\n },\n edgeSoftness: readClampedNumber(options.appearance?.edgeSoftness, fallback.appearance.edgeSoftness, 0, 0.98),\n },\n size: {\n sizeMultiplier: readPositiveNumber(options.size?.sizeMultiplier, fallback.size.sizeMultiplier),\n minSize: readNonNegativeNumber(options.size?.minSize, fallback.size.minSize),\n maxSize: readPositiveNumber(options.size?.maxSize, fallback.size.maxSize),\n },\n casters: {\n autoDetectAll: readBoolean(options.casters?.autoDetectAll, fallback.casters.autoDetectAll),\n includePatterns: normalizeStringList(options.casters?.includePatterns ?? fallback.casters.includePatterns),\n excludePatterns: normalizeStringList(options.casters?.excludePatterns ?? fallback.casters.excludePatterns),\n rootBoundaryPatterns: normalizeStringList(options.casters?.rootBoundaryPatterns ?? fallback.casters.rootBoundaryPatterns),\n minVolume: readNonNegativeNumber(options.casters?.minVolume, fallback.casters.minVolume),\n },\n debug: readBoolean(options.debug, fallback.debug),\n };\n}\n\nfunction sanitizeCasterOverride(value: BlobShadowCasterOverride): BlobShadowCasterOverride {\n return {\n ...(Number.isFinite(value.sizeMultiplier) ? { sizeMultiplier: value.sizeMultiplier } : {}),\n ...(Number.isFinite(value.minSize) ? { minSize: value.minSize } : {}),\n ...(Number.isFinite(value.maxSize) ? { maxSize: value.maxSize } : {}),\n ...(Number.isFinite(value.yOffset) ? { yOffset: value.yOffset } : {}),\n };\n}\n\nfunction cloneResolvedOptions(options: ResolvedBlobShadowOptions): ResolvedBlobShadowOptions {\n return {\n enabled: options.enabled,\n plane: { ...options.plane },\n appearance: {\n color: { ...options.appearance.color },\n edgeSoftness: options.appearance.edgeSoftness,\n },\n size: { ...options.size },\n casters: {\n autoDetectAll: options.casters.autoDetectAll,\n includePatterns: [...options.casters.includePatterns],\n excludePatterns: [...options.casters.excludePatterns],\n rootBoundaryPatterns: [...options.casters.rootBoundaryPatterns],\n minVolume: options.casters.minVolume,\n },\n debug: options.debug,\n };\n}\n\nfunction normalizeStringList(value: readonly string[] | undefined): string[] {\n return [...new Set((value ?? []).map((item) => item.trim()).filter(Boolean))];\n}\n\nfunction readBoolean(value: unknown, fallback: boolean): boolean {\n return typeof value === 'boolean' ? value : fallback;\n}\n\nfunction readFiniteNumber(value: unknown, fallback: number): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback;\n}\n\nfunction readNonNegativeNumber(value: unknown, fallback: number): number {\n const next = readFiniteNumber(value, fallback);\n return next >= 0 ? next : fallback;\n}\n\nfunction readPositiveNumber(value: unknown, fallback: number): number {\n const next = readFiniteNumber(value, fallback);\n return next > 0 ? next : fallback;\n}\n\nfunction readClampedNumber(value: unknown, fallback: number, min: number, max: number): number {\n return clamp(readFiniteNumber(value, fallback), min, max);\n}\n\nfunction clamp01(value: number): number {\n return clamp(value, 0, 1);\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-shadow-system.js","sourceRoot":"","sources":["../../src/shadows/dynamic-shadow-system.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dynamic-shadow-system.js","sourceRoot":"","sources":["../../src/shadows/dynamic-shadow-system.ts"],"names":[],"mappings":"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","sourcesContent":["import { Camera } from '@babylonjs/core/Cameras/camera.js';\nimport type { DirectionalLight } from '@babylonjs/core/Lights/directionalLight.js';\nimport { CascadedShadowGenerator } from '@babylonjs/core/Lights/Shadows/cascadedShadowGenerator.js';\nimport { ShadowGenerator } from '@babylonjs/core/Lights/Shadows/shadowGenerator.js';\nimport { Matrix, Vector3 } from '@babylonjs/core/Maths/math.vector.js';\nimport type { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh.js';\nimport type { Observer } from '@babylonjs/core/Misc/observable.js';\nimport type { Scene } from '@babylonjs/core/scene.js';\n\nimport '@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js';\n\nexport interface DynamicShadowParams {\n opacity: number;\n softness: number;\n bias: number;\n normalBias: number;\n maxDistance: number;\n resolution: 512 | 1024 | 2048 | 4096;\n cascadeCount: 1 | 2 | 4;\n blurKernel: number;\n}\n\nexport interface DynamicShadowOptions {\n enabled: boolean;\n camera?: Camera | null;\n params: DynamicShadowParams;\n useCsm?: boolean;\n boundsPadding?: number;\n stableSnapping?: boolean;\n debug?: boolean;\n}\n\nexport interface DynamicShadowLightOrthoBounds {\n left: number;\n right: number;\n top: number;\n bottom: number;\n minZ: number;\n maxZ: number;\n}\n\nexport interface DynamicShadowWorldBounds {\n min: { x: number; y: number; z: number };\n max: { x: number; y: number; z: number };\n}\n\nexport interface DynamicShadowDiagnostics {\n enabled: boolean;\n casterCount: number;\n receiverCount: number;\n generator: {\n className: string | null;\n mapSize: unknown;\n darkness: number | null;\n bias: number | null;\n normalBias: number | null;\n blurKernel: number | null;\n renderListCount: number;\n useCsm: boolean;\n } | null;\n params: DynamicShadowParams;\n bounds: {\n world: DynamicShadowWorldBounds;\n lightOrtho: DynamicShadowLightOrthoBounds;\n texelSize: number;\n cameraProjection: 'orthographic' | 'perspective' | 'none';\n } | null;\n fallbackReasons: string[];\n}\n\nexport interface DynamicShadowSystem {\n initialize(): void;\n addCaster(mesh: AbstractMesh): boolean;\n removeCaster(mesh: AbstractMesh): void;\n addReceiver(mesh: AbstractMesh): void;\n removeReceiver(mesh: AbstractMesh): void;\n setCamera(camera: Camera | null): void;\n setOptions(options: Partial<DynamicShadowOptions>): void;\n refresh(): void;\n getShadowGenerator(): ShadowGenerator | null;\n getDiagnostics(): DynamicShadowDiagnostics;\n dispose(): void;\n}\n\ntype DynamicShadowReceiverInfo = {\n mesh: AbstractMesh;\n trackedMeshes: AbstractMesh[];\n};\n\ntype DynamicShadowReceiverStateInfo = {\n mesh: AbstractMesh;\n previousReceiveShadows: boolean;\n refCount: number;\n};\n\nconst DEFAULT_DYNAMIC_SHADOW_PARAMS: DynamicShadowParams = {\n opacity: 0.42,\n softness: 0.4,\n bias: 0.001,\n normalBias: 0.01,\n maxDistance: 48,\n resolution: 1024,\n cascadeCount: 2,\n blurKernel: 4,\n};\n\nexport function createDynamicShadowSystem(\n scene: Scene,\n directionalLight: DirectionalLight,\n options: Partial<DynamicShadowOptions> = {},\n): DynamicShadowSystem {\n return new BabylonDynamicShadowSystem(scene, directionalLight, options);\n}\n\nclass BabylonDynamicShadowSystem implements DynamicShadowSystem {\n private options: DynamicShadowOptions;\n private shadowGenerator: ShadowGenerator | null = null;\n private readonly casters = new Set<AbstractMesh>();\n private readonly receivers = new Map<AbstractMesh, DynamicShadowReceiverInfo>();\n private readonly receiverStates = new Map<AbstractMesh, DynamicShadowReceiverStateInfo>();\n private renderObserver: Observer<Scene> | null = null;\n private initialized = false;\n private diagnostics: DynamicShadowDiagnostics;\n private previousSceneShadowsEnabled: boolean | null = null;\n private previousLightShadowEnabled: boolean | null = null;\n private previousLightAutoUpdateExtends: boolean | null = null;\n private previousLightFrustum: DynamicShadowLightOrthoBounds | null = null;\n private useCsmExplicit = false;\n\n constructor(\n private readonly scene: Scene,\n private readonly directionalLight: DirectionalLight,\n options: Partial<DynamicShadowOptions>,\n ) {\n this.useCsmExplicit = hasExplicitUseCsm(options);\n this.options = resolveDynamicShadowOptions(options);\n this.diagnostics = this.createDiagnostics(null, []);\n }\n\n initialize(): void {\n if (this.initialized || !this.options.enabled) return;\n this.previousSceneShadowsEnabled = this.scene.shadowsEnabled;\n this.previousLightShadowEnabled = this.directionalLight.shadowEnabled;\n this.previousLightAutoUpdateExtends = this.directionalLight.autoUpdateExtends;\n this.previousLightFrustum = {\n left: this.directionalLight.orthoLeft,\n right: this.directionalLight.orthoRight,\n top: this.directionalLight.orthoTop,\n bottom: this.directionalLight.orthoBottom,\n minZ: this.directionalLight.shadowMinZ,\n maxZ: this.directionalLight.shadowMaxZ,\n };\n this.scene.shadowsEnabled = true;\n this.directionalLight.shadowEnabled = true;\n this.directionalLight.autoUpdateExtends = false;\n this.ensureShadowGenerator();\n this.renderObserver = this.scene.onBeforeRenderObservable.add(() => this.refresh());\n this.initialized = true;\n this.refresh();\n }\n\n addCaster(mesh: AbstractMesh): boolean {\n if (isDisposed(mesh)) return false;\n this.casters.add(mesh);\n if (!this.options.enabled || !this.initialized) return true;\n this.shadowGenerator?.addShadowCaster(mesh as Parameters<ShadowGenerator['addShadowCaster']>[0], true);\n this.refresh();\n return true;\n }\n\n removeCaster(mesh: AbstractMesh): void {\n this.casters.delete(mesh);\n this.shadowGenerator?.removeShadowCaster(mesh as Parameters<ShadowGenerator['removeShadowCaster']>[0], true);\n this.refresh();\n }\n\n addReceiver(mesh: AbstractMesh): void {\n if (isDisposed(mesh)) return;\n if (!this.receivers.has(mesh)) {\n this.receivers.set(mesh, createReceiverInfo(mesh, this.receiverStates));\n }\n if (!this.options.enabled || !this.initialized) return;\n activateReceiverInfo(this.receivers.get(mesh));\n this.refresh();\n }\n\n removeReceiver(mesh: AbstractMesh): void {\n const info = this.receivers.get(mesh);\n if (info) releaseReceiverInfo(info, this.receiverStates);\n this.receivers.delete(mesh);\n this.refresh();\n }\n\n setCamera(camera: Camera | null): void {\n this.options = {\n ...this.options,\n camera,\n };\n if (this.shadowGenerator) this.shadowGenerator.camera = camera;\n this.refresh();\n }\n\n setOptions(options: Partial<DynamicShadowOptions>): void {\n const previous = this.options;\n if (hasExplicitUseCsm(options)) this.useCsmExplicit = true;\n this.options = resolveDynamicShadowOptions(options, this.options, this.useCsmExplicit);\n if (previous.enabled && !this.options.enabled) {\n this.dispose();\n return;\n }\n const generatorNeedsRecreate = previous.params.resolution !== this.options.params.resolution\n || previous.params.cascadeCount !== this.options.params.cascadeCount\n || previous.useCsm !== this.options.useCsm;\n if (generatorNeedsRecreate && this.initialized) this.recreateShadowGenerator();\n else if (this.shadowGenerator) this.shadowGenerator.camera = this.options.camera ?? null;\n if (!previous.enabled && this.options.enabled) this.initialize();\n else this.refresh();\n }\n\n refresh(): void {\n if (!this.options.enabled || !this.initialized) return;\n this.pruneDisposedEntries();\n const generator = this.ensureShadowGenerator();\n if (!generator) {\n this.diagnostics = this.createDiagnostics(null, ['shadow generator unavailable']);\n return;\n }\n this.applyGeneratorParams(this.options.params);\n this.syncShadowMapRenderList();\n for (const receiver of this.receivers.values()) activateReceiverInfo(receiver);\n const fit = this.fitDirectionalLightBounds();\n this.diagnostics = this.createDiagnostics(fit, []);\n }\n\n getShadowGenerator(): ShadowGenerator | null {\n return this.shadowGenerator;\n }\n\n getDiagnostics(): DynamicShadowDiagnostics {\n return cloneDynamicShadowDiagnostics(this.diagnostics);\n }\n\n dispose(): void {\n if (this.renderObserver) {\n this.scene.onBeforeRenderObservable.remove(this.renderObserver);\n this.renderObserver = null;\n }\n for (const receiver of this.receivers.values()) releaseReceiverInfo(receiver, this.receiverStates);\n this.receiverStates.clear();\n this.receivers.clear();\n this.casters.clear();\n this.shadowGenerator?.dispose();\n this.shadowGenerator = null;\n if (this.previousSceneShadowsEnabled !== null) {\n this.scene.shadowsEnabled = this.previousSceneShadowsEnabled;\n this.previousSceneShadowsEnabled = null;\n }\n if (this.previousLightShadowEnabled !== null) {\n this.directionalLight.shadowEnabled = this.previousLightShadowEnabled;\n this.previousLightShadowEnabled = null;\n }\n if (this.previousLightAutoUpdateExtends !== null) {\n this.directionalLight.autoUpdateExtends = this.previousLightAutoUpdateExtends;\n this.previousLightAutoUpdateExtends = null;\n }\n if (this.previousLightFrustum) {\n this.directionalLight.orthoLeft = this.previousLightFrustum.left;\n this.directionalLight.orthoRight = this.previousLightFrustum.right;\n this.directionalLight.orthoTop = this.previousLightFrustum.top;\n this.directionalLight.orthoBottom = this.previousLightFrustum.bottom;\n this.directionalLight.shadowMinZ = this.previousLightFrustum.minZ;\n this.directionalLight.shadowMaxZ = this.previousLightFrustum.maxZ;\n this.previousLightFrustum = null;\n }\n this.initialized = false;\n this.diagnostics = this.createDiagnostics(null, []);\n }\n\n private ensureShadowGenerator(): ShadowGenerator | null {\n if (this.shadowGenerator) return this.shadowGenerator;\n const params = this.options.params;\n if (this.options.useCsm && params.cascadeCount > 1 && CascadedShadowGenerator.IsSupported) {\n const generator = new CascadedShadowGenerator(\n params.resolution,\n this.directionalLight,\n undefined,\n this.options.camera ?? undefined,\n );\n generator.numCascades = params.cascadeCount;\n generator.stabilizeCascades = true;\n this.shadowGenerator = generator;\n } else {\n this.shadowGenerator = new ShadowGenerator(\n params.resolution,\n this.directionalLight,\n undefined,\n this.options.camera ?? undefined,\n );\n }\n this.applyGeneratorParams(params);\n return this.shadowGenerator;\n }\n\n private recreateShadowGenerator(): void {\n const existingCasters = [...this.casters];\n this.shadowGenerator?.dispose();\n this.shadowGenerator = null;\n const generator = this.ensureShadowGenerator();\n for (const caster of existingCasters) {\n generator?.addShadowCaster(caster as Parameters<ShadowGenerator['addShadowCaster']>[0], true);\n }\n }\n\n private applyGeneratorParams(params: DynamicShadowParams): void {\n const generator = this.shadowGenerator;\n if (!generator) return;\n generator.useBlurExponentialShadowMap = false;\n generator.useKernelBlur = false;\n generator.usePercentageCloserFiltering = true;\n generator.filteringQuality = ShadowGenerator.QUALITY_HIGH;\n generator.setDarkness(clamp01(1 - params.opacity));\n generator.bias = params.bias;\n generator.normalBias = params.normalBias;\n if (generator instanceof CascadedShadowGenerator) {\n generator.numCascades = params.cascadeCount;\n generator.shadowMaxZ = params.maxDistance;\n }\n }\n\n private syncShadowMapRenderList(): void {\n const renderList = this.shadowGenerator?.getShadowMap?.()?.renderList;\n if (!renderList) return;\n renderList.length = 0;\n for (const caster of this.casters) {\n if (!isDisposed(caster)) {\n this.shadowGenerator?.addShadowCaster(caster as Parameters<ShadowGenerator['addShadowCaster']>[0], true);\n }\n }\n }\n\n private fitDirectionalLightBounds(): DynamicShadowDiagnostics['bounds'] {\n const params = this.options.params;\n const points = this.collectCoveragePoints(params);\n if (points.length === 0) return null;\n const worldBounds = boundsFromPoints(points);\n const viewMatrix = createShadowViewMatrix(this.directionalLight);\n const lightPoints = points.map(point => Vector3.TransformCoordinates(point, viewMatrix));\n const lightBounds = boundsFromPoints(lightPoints);\n const padding = readPositiveNumber(this.options.boundsPadding, Math.max(0.5, params.maxDistance * 0.025));\n const rawLeft = lightBounds.min.x - padding;\n const rawRight = lightBounds.max.x + padding;\n const rawBottom = lightBounds.min.y - padding;\n const rawTop = lightBounds.max.y + padding;\n const width = Math.max(1e-4, rawRight - rawLeft);\n const height = Math.max(1e-4, rawTop - rawBottom);\n const texelSize = Math.max(width, height) / params.resolution;\n const bounds = this.options.stableSnapping === false || texelSize <= 0\n ? {\n left: rawLeft,\n right: rawRight,\n bottom: rawBottom,\n top: rawTop,\n minZ: lightBounds.min.z - padding,\n maxZ: lightBounds.max.z + padding,\n }\n : {\n left: Math.floor(rawLeft / texelSize) * texelSize,\n right: Math.ceil(rawRight / texelSize) * texelSize,\n bottom: Math.floor(rawBottom / texelSize) * texelSize,\n top: Math.ceil(rawTop / texelSize) * texelSize,\n minZ: Math.floor((lightBounds.min.z - padding) / texelSize) * texelSize,\n maxZ: Math.ceil((lightBounds.max.z + padding) / texelSize) * texelSize,\n };\n this.directionalLight.orthoLeft = bounds.left;\n this.directionalLight.orthoRight = bounds.right;\n this.directionalLight.orthoBottom = bounds.bottom;\n this.directionalLight.orthoTop = bounds.top;\n this.directionalLight.shadowMinZ = bounds.minZ;\n this.directionalLight.shadowMaxZ = Math.max(this.directionalLight.shadowMinZ + 1, bounds.maxZ);\n return {\n world: {\n min: serializeVec3(worldBounds.min),\n max: serializeVec3(worldBounds.max),\n },\n lightOrtho: {\n left: bounds.left,\n right: bounds.right,\n bottom: bounds.bottom,\n top: bounds.top,\n minZ: this.directionalLight.shadowMinZ,\n maxZ: this.directionalLight.shadowMaxZ,\n },\n texelSize,\n cameraProjection: readCameraProjection(this.options.camera),\n };\n }\n\n private collectCoveragePoints(params: DynamicShadowParams): Vector3[] {\n const points: Vector3[] = [];\n const lightDirection = readLightDirection(this.directionalLight.getShadowDirection(0));\n const shadowOffset = lightDirection.scale(params.maxDistance);\n for (const caster of this.casters) {\n points.push(...readMeshBoundsCorners(caster));\n for (const corner of readMeshBoundsCorners(caster)) points.push(corner.add(shadowOffset));\n }\n for (const receiver of this.receivers.keys()) points.push(...readMeshBoundsCorners(receiver));\n points.push(...readCameraCoveragePoints(this.options.camera, this.scene, params.maxDistance));\n return points.filter(point => Number.isFinite(point.x) && Number.isFinite(point.y) && Number.isFinite(point.z));\n }\n\n private pruneDisposedEntries(): void {\n for (const caster of [...this.casters]) {\n if (isDisposed(caster)) this.casters.delete(caster);\n }\n for (const [receiver, info] of [...this.receivers]) {\n if (isDisposed(receiver)) {\n releaseReceiverInfo(info, this.receiverStates);\n this.receivers.delete(receiver);\n }\n }\n }\n\n private createDiagnostics(\n bounds: DynamicShadowDiagnostics['bounds'],\n fallbackReasons: string[],\n ): DynamicShadowDiagnostics {\n const generator = this.shadowGenerator;\n const renderList = generator?.getShadowMap?.()?.renderList ?? [];\n return {\n enabled: this.options.enabled,\n casterCount: this.casters.size,\n receiverCount: this.receivers.size,\n generator: generator\n ? {\n className: generator.getClassName?.() ?? null,\n mapSize: generator.getShadowMap?.()?.getSize?.() ?? null,\n darkness: generator.getDarkness?.() ?? null,\n bias: generator.bias ?? null,\n normalBias: generator.normalBias ?? null,\n blurKernel: generator.blurKernel ?? null,\n renderListCount: renderList.length,\n useCsm: generator instanceof CascadedShadowGenerator,\n }\n : null,\n params: { ...this.options.params },\n bounds,\n fallbackReasons,\n };\n }\n}\n\nfunction resolveDynamicShadowOptions(\n options: Partial<DynamicShadowOptions>,\n fallback?: DynamicShadowOptions,\n preserveFallbackUseCsm = false,\n): DynamicShadowOptions {\n const params = resolveDynamicShadowParams(options.params, fallback?.params);\n return {\n enabled: options.enabled ?? fallback?.enabled ?? true,\n camera: options.camera ?? fallback?.camera ?? null,\n params,\n useCsm: options.useCsm ?? (preserveFallbackUseCsm ? fallback?.useCsm : undefined) ?? params.cascadeCount > 1,\n boundsPadding: readPositiveNumber(options.boundsPadding, fallback?.boundsPadding ?? Math.max(0.5, params.maxDistance * 0.025)),\n stableSnapping: options.stableSnapping ?? fallback?.stableSnapping ?? true,\n debug: options.debug ?? fallback?.debug ?? false,\n };\n}\n\nfunction hasExplicitUseCsm(options: Partial<DynamicShadowOptions>): boolean {\n return Object.prototype.hasOwnProperty.call(options, 'useCsm') && typeof options.useCsm === 'boolean';\n}\n\nfunction resolveDynamicShadowParams(\n params: Partial<DynamicShadowParams> | undefined,\n fallback: DynamicShadowParams = DEFAULT_DYNAMIC_SHADOW_PARAMS,\n): DynamicShadowParams {\n return {\n opacity: clamp01(readFiniteNumber(params?.opacity, fallback.opacity)),\n softness: clamp01(readFiniteNumber(params?.softness, fallback.softness)),\n bias: readFiniteNumber(params?.bias, fallback.bias),\n normalBias: readFiniteNumber(params?.normalBias, fallback.normalBias),\n maxDistance: readPositiveNumber(params?.maxDistance, fallback.maxDistance),\n resolution: readShadowResolution(params?.resolution, fallback.resolution),\n cascadeCount: readCascadeCount(params?.cascadeCount, fallback.cascadeCount),\n blurKernel: Math.max(0, Math.round(readFiniteNumber(params?.blurKernel, fallback.blurKernel))),\n };\n}\n\nfunction createReceiverInfo(\n mesh: AbstractMesh,\n receiverStates: Map<AbstractMesh, DynamicShadowReceiverStateInfo>,\n): DynamicShadowReceiverInfo {\n const trackedMeshes = [mesh];\n const sourceMesh = (mesh as { sourceMesh?: AbstractMesh }).sourceMesh;\n if (sourceMesh && sourceMesh !== mesh) trackedMeshes.push(sourceMesh);\n for (const trackedMesh of trackedMeshes) acquireReceiverState(trackedMesh, receiverStates);\n return { mesh, trackedMeshes };\n}\n\nfunction activateReceiverInfo(info: DynamicShadowReceiverInfo | undefined): void {\n if (!info) return;\n for (const mesh of info.trackedMeshes) mesh.receiveShadows = true;\n}\n\nfunction acquireReceiverState(\n mesh: AbstractMesh,\n receiverStates: Map<AbstractMesh, DynamicShadowReceiverStateInfo>,\n): void {\n const existing = receiverStates.get(mesh);\n if (existing) {\n existing.refCount += 1;\n return;\n }\n receiverStates.set(mesh, {\n mesh,\n previousReceiveShadows: mesh.receiveShadows,\n refCount: 1,\n });\n}\n\nfunction releaseReceiverInfo(\n info: DynamicShadowReceiverInfo,\n receiverStates: Map<AbstractMesh, DynamicShadowReceiverStateInfo>,\n): void {\n for (const mesh of info.trackedMeshes) releaseReceiverState(mesh, receiverStates);\n}\n\nfunction releaseReceiverState(\n mesh: AbstractMesh,\n receiverStates: Map<AbstractMesh, DynamicShadowReceiverStateInfo>,\n): void {\n const state = receiverStates.get(mesh);\n if (!state) return;\n state.refCount -= 1;\n if (state.refCount > 0) return;\n state.mesh.receiveShadows = state.previousReceiveShadows;\n receiverStates.delete(mesh);\n}\n\nfunction readMeshBoundsCorners(mesh: AbstractMesh): Vector3[] {\n if (isDisposed(mesh)) return [];\n mesh.computeWorldMatrix(true);\n const bounds = mesh.getHierarchyBoundingVectors(true);\n return createBoundsCorners(bounds.min, bounds.max);\n}\n\nfunction readCameraCoveragePoints(camera: Camera | null | undefined, scene: Scene, maxDistance: number): Vector3[] {\n if (!camera) return [];\n const position = camera.globalPosition ?? camera.position;\n if (!position) return [];\n const forward = safeCameraDirection(camera, Vector3.Forward(), new Vector3(0, 0, 1));\n const right = safeCameraDirection(camera, Vector3.Right(), new Vector3(1, 0, 0));\n const up = safeCameraDirection(camera, Vector3.Up(), new Vector3(0, 1, 0));\n const farDistance = Math.max(1, Math.min(maxDistance, readPositiveNumber(camera.maxZ, maxDistance)));\n const nearDistance = Math.max(0.1, Math.min(farDistance, readPositiveNumber(camera.minZ, 0.1)));\n const aspect = readSceneAspect(scene);\n if (camera.mode === Camera.ORTHOGRAPHIC_CAMERA) {\n const halfHeight = Math.max(0.5, Math.abs(readFiniteNumber(camera.orthoTop, 1) - readFiniteNumber(camera.orthoBottom, -1)) * 0.5);\n const halfWidth = Math.max(0.5, Math.abs(readFiniteNumber(camera.orthoRight, aspect) - readFiniteNumber(camera.orthoLeft, -aspect)) * 0.5);\n return [\n ...createCameraPlaneCorners(position.add(forward.scale(nearDistance)), right, up, halfWidth, halfHeight),\n ...createCameraPlaneCorners(position.add(forward.scale(farDistance)), right, up, halfWidth, halfHeight),\n ];\n }\n const fov = readPositiveNumber((camera as { fov?: number }).fov, 0.8);\n const farHalfHeight = Math.tan(fov * 0.5) * farDistance;\n const farHalfWidth = farHalfHeight * aspect;\n const nearHalfHeight = Math.tan(fov * 0.5) * nearDistance;\n const nearHalfWidth = nearHalfHeight * aspect;\n return [\n ...createCameraPlaneCorners(position.add(forward.scale(nearDistance)), right, up, nearHalfWidth, nearHalfHeight),\n ...createCameraPlaneCorners(position.add(forward.scale(farDistance)), right, up, farHalfWidth, farHalfHeight),\n ];\n}\n\nfunction createCameraPlaneCorners(center: Vector3, right: Vector3, up: Vector3, halfWidth: number, halfHeight: number): Vector3[] {\n return [\n center.add(right.scale(-halfWidth)).add(up.scale(-halfHeight)),\n center.add(right.scale(halfWidth)).add(up.scale(-halfHeight)),\n center.add(right.scale(halfWidth)).add(up.scale(halfHeight)),\n center.add(right.scale(-halfWidth)).add(up.scale(halfHeight)),\n ];\n}\n\nfunction createShadowViewMatrix(light: DirectionalLight): Matrix {\n let lightPosition = light.position;\n if (light.computeTransformedInformation()) {\n lightPosition = light.transformedPosition;\n }\n const lightDirection = readLightDirection(light.getShadowDirection(0));\n if (Math.abs(Vector3.Dot(lightDirection, Vector3.Up())) === 1) {\n lightDirection.z = 1e-13;\n }\n return Matrix.LookAtLH(\n lightPosition,\n lightPosition.add(lightDirection),\n Vector3.Up(),\n );\n}\n\nfunction boundsFromPoints(points: Vector3[]): { min: Vector3; max: Vector3 } {\n const min = new Vector3(Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY);\n const max = new Vector3(Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY);\n for (const point of points) {\n min.minimizeInPlace(point);\n max.maximizeInPlace(point);\n }\n return { min, max };\n}\n\nfunction createBoundsCorners(min: Vector3, max: Vector3): Vector3[] {\n return [\n new Vector3(min.x, min.y, min.z),\n new Vector3(max.x, min.y, min.z),\n new Vector3(max.x, max.y, min.z),\n new Vector3(min.x, max.y, min.z),\n new Vector3(min.x, min.y, max.z),\n new Vector3(max.x, min.y, max.z),\n new Vector3(max.x, max.y, max.z),\n new Vector3(min.x, max.y, max.z),\n ];\n}\n\nfunction safeCameraDirection(camera: Camera, localAxis: Vector3, fallback: Vector3): Vector3 {\n try {\n const direction = camera.getDirection(localAxis);\n if (isFiniteVector(direction) && direction.lengthSquared() > 1e-8) return direction.normalize();\n } catch {\n // Camera direction is best-effort diagnostics input; use a stable fallback.\n }\n return fallback.clone();\n}\n\nfunction readLightDirection(direction: Vector3): Vector3 {\n return isFiniteVector(direction) && direction.lengthSquared() > 1e-8\n ? direction.clone().normalize()\n : new Vector3(-0.3, -1, -0.2).normalize();\n}\n\nfunction readCameraProjection(camera: Camera | null | undefined): 'orthographic' | 'perspective' | 'none' {\n if (!camera) return 'none';\n return camera.mode === Camera.ORTHOGRAPHIC_CAMERA ? 'orthographic' : 'perspective';\n}\n\nfunction readSceneAspect(scene: Scene): number {\n const engine = scene.getEngine();\n const width = Math.max(1, engine.getRenderWidth());\n const height = Math.max(1, engine.getRenderHeight());\n return width / height;\n}\n\nfunction cloneDynamicShadowDiagnostics(diagnostics: DynamicShadowDiagnostics): DynamicShadowDiagnostics {\n return {\n ...diagnostics,\n generator: diagnostics.generator ? { ...diagnostics.generator } : null,\n params: { ...diagnostics.params },\n bounds: diagnostics.bounds\n ? {\n world: {\n min: { ...diagnostics.bounds.world.min },\n max: { ...diagnostics.bounds.world.max },\n },\n lightOrtho: { ...diagnostics.bounds.lightOrtho },\n texelSize: diagnostics.bounds.texelSize,\n cameraProjection: diagnostics.bounds.cameraProjection,\n }\n : null,\n fallbackReasons: [...diagnostics.fallbackReasons],\n };\n}\n\nfunction serializeVec3(value: Vector3): { x: number; y: number; z: number } {\n return { x: value.x, y: value.y, z: value.z };\n}\n\nfunction isFiniteVector(value: Vector3): boolean {\n return Number.isFinite(value.x) && Number.isFinite(value.y) && Number.isFinite(value.z);\n}\n\nfunction isDisposed(mesh: AbstractMesh): boolean {\n return typeof mesh.isDisposed === 'function' && mesh.isDisposed();\n}\n\nfunction readFiniteNumber(value: unknown, fallback: number): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback;\n}\n\nfunction readPositiveNumber(value: unknown, fallback: number): number {\n const number = readFiniteNumber(value, fallback);\n return number > 0 ? number : fallback;\n}\n\nfunction clamp01(value: number): number {\n if (!Number.isFinite(value)) return 0;\n return Math.min(1, Math.max(0, value));\n}\n\nfunction readShadowResolution(\n value: unknown,\n fallback: DynamicShadowParams['resolution'],\n): DynamicShadowParams['resolution'] {\n return value === 512 || value === 1024 || value === 2048 || value === 4096\n ? value\n : fallback;\n}\n\nfunction readCascadeCount(\n value: unknown,\n fallback: DynamicShadowParams['cascadeCount'],\n): DynamicShadowParams['cascadeCount'] {\n return value === 1 || value === 2 || value === 4 ? value : fallback;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planar-shadow-shaders.js","sourceRoot":"","sources":["../../src/shadows/planar-shadow-shaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AAE3D,MAAM,UAAU,2BAA2B;IACzC,MAAM,SAAS,GAAG,GAAG,yBAAyB,cAAc,CAAC;IAC7D,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;QAAE,OAAO;IAE3C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LlC,CAAC;IAEA,MAAM,CAAC,YAAY,CAAC,GAAG,yBAAyB,gBAAgB,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DrE,CAAC;AACF,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,UAAU;QACV,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,iBAAiB;QACjB,iBAAiB;QACjB,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,OAAO;QACP,gBAAgB;QAChB,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,qBAAqB;QACrB,oBAAoB;QACpB,0BAA0B;QAC1B,+BAA+B;QAC/B,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,2BAA2B;QAC3B,gCAAgC;QAChC,qBAAqB;QACrB,sBAAsB;QACtB,QAAQ;QACR,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CAAC,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAAgB,EAChB,UAAmB,EACnB,iBAA0B;IAE1B,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;QACvC,OAAO,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;IAC9C,IAAI,iBAAiB;QAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"planar-shadow-shaders.js","sourceRoot":"","sources":["../../src/shadows/planar-shadow-shaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AAE3D,MAAM,UAAU,2BAA2B;IACzC,MAAM,SAAS,GAAG,GAAG,yBAAyB,cAAc,CAAC;IAC7D,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;QAAE,OAAO;IAE3C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LlC,CAAC;IAEA,MAAM,CAAC,YAAY,CAAC,GAAG,yBAAyB,gBAAgB,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DrE,CAAC;AACF,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,UAAU;QACV,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,iBAAiB;QACjB,iBAAiB;QACjB,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,OAAO;QACP,gBAAgB;QAChB,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,qBAAqB;QACrB,oBAAoB;QACpB,0BAA0B;QAC1B,+BAA+B;QAC/B,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,2BAA2B;QAC3B,gCAAgC;QAChC,qBAAqB;QACrB,sBAAsB;QACtB,QAAQ;QACR,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CAAC,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAAgB,EAChB,UAAmB,EACnB,iBAA0B;IAE1B,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;QACvC,OAAO,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;IAC9C,IAAI,iBAAiB;QAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { Effect } from '@babylonjs/core/Materials/effect.js';\n\nexport const PLANAR_SHADOW_SHADER_NAME = 'fpsPlanarShadow';\n\nexport function registerPlanarShadowShaders(): void {\n const vertexKey = `${PLANAR_SHADOW_SHADER_NAME}VertexShader`;\n if (Effect.ShadersStore[vertexKey]) return;\n\n Effect.ShadersStore[vertexKey] = `\nprecision highp float;\n\nattribute vec3 position;\n\n#ifdef INSTANCES\nattribute vec4 world0;\nattribute vec4 world1;\nattribute vec4 world2;\nattribute vec4 world3;\nattribute float shadowVisibility;\nvarying float v_shadowVisibility;\n#endif\n\n#ifdef ALPHA_CUTOUT\nattribute vec2 uv;\nattribute vec2 uv2;\nattribute vec2 uv3;\nattribute vec2 uv4;\nattribute vec2 uv5;\nattribute vec2 uv6;\nvarying vec2 v_shadowAlphaUv;\n#ifdef ALPHA_CUTOUT_SECONDARY\nvarying vec2 v_shadowAlphaUv2;\n#endif\n#endif\n\n#ifdef BONE\nattribute vec4 matricesIndices;\nattribute vec4 matricesWeights;\n#ifdef BONETEXTURE\nuniform sampler2D boneSampler;\nuniform float boneTextureWidth;\n#else\nuniform mat4 mBones[BonesPerMesh];\n#endif\n#ifdef BONES_VELOCITY_ENABLED\nattribute vec4 matricesIndicesExtra;\nattribute vec4 matricesWeightsExtra;\n#endif\n#endif\n\nuniform mat4 world;\nuniform mat4 viewProjection;\nuniform vec3 u_lightDir;\nuniform vec3 u_planeNormal;\nuniform vec3 u_shadowCenter;\nuniform float u_planeHeight;\nuniform float u_planeBias;\nuniform float u_footprintScale;\nuniform float u_shadowAlphaUvSet;\nuniform mat4 u_shadowAlphaMatrix;\n#ifdef ALPHA_CUTOUT_SECONDARY\nuniform float u_shadowAlphaUvSet2;\nuniform mat4 u_shadowAlphaMatrix2;\n#endif\n\nvarying float v_t;\n\nmat4 resolvePlanarShadowWorld() {\n #ifdef INSTANCES\n mat4 instanceWorld = mat4(world0, world1, world2, world3);\n #ifdef THIN_INSTANCES\n return world * instanceWorld;\n #else\n return instanceWorld;\n #endif\n #else\n return world;\n #endif\n}\n\n#ifdef BONE\n#ifdef BONETEXTURE\nmat4 readMatrixFromRawSampler(sampler2D smp, float index) {\n float offset = index * 4.0;\n float dx = 1.0 / boneTextureWidth;\n vec4 m0 = texture2D(smp, vec2(dx * (offset + 0.5), 0.));\n vec4 m1 = texture2D(smp, vec2(dx * (offset + 1.5), 0.));\n vec4 m2 = texture2D(smp, vec2(dx * (offset + 2.5), 0.));\n vec4 m3 = texture2D(smp, vec2(dx * (offset + 3.5), 0.));\n return mat4(m0, m1, m2, m3);\n}\n#endif\n#endif\n\nvoid main() {\n #ifdef INSTANCES\n v_shadowVisibility = shadowVisibility;\n if (shadowVisibility < 0.5) {\n v_t = -1.0;\n gl_Position = vec4(2.0, 2.0, 2.0, 1.0);\n return;\n }\n #endif\n\n #ifdef ALPHA_CUTOUT\n vec2 sourceAlphaUv = uv;\n if (u_shadowAlphaUvSet > 4.5) sourceAlphaUv = uv6;\n else if (u_shadowAlphaUvSet > 3.5) sourceAlphaUv = uv5;\n else if (u_shadowAlphaUvSet > 2.5) sourceAlphaUv = uv4;\n else if (u_shadowAlphaUvSet > 1.5) sourceAlphaUv = uv3;\n else if (u_shadowAlphaUvSet > 0.5) sourceAlphaUv = uv2;\n v_shadowAlphaUv = (u_shadowAlphaMatrix * vec4(sourceAlphaUv, 1.0, 0.0)).xy;\n #ifdef ALPHA_CUTOUT_SECONDARY\n vec2 sourceAlphaUv2 = uv;\n if (u_shadowAlphaUvSet2 > 4.5) sourceAlphaUv2 = uv6;\n else if (u_shadowAlphaUvSet2 > 3.5) sourceAlphaUv2 = uv5;\n else if (u_shadowAlphaUvSet2 > 2.5) sourceAlphaUv2 = uv4;\n else if (u_shadowAlphaUvSet2 > 1.5) sourceAlphaUv2 = uv3;\n else if (u_shadowAlphaUvSet2 > 0.5) sourceAlphaUv2 = uv2;\n v_shadowAlphaUv2 = (u_shadowAlphaMatrix2 * vec4(sourceAlphaUv2, 1.0, 0.0)).xy;\n #endif\n #endif\n\n #ifdef FLAT_SHADOW\n vec3 projPos = (resolvePlanarShadowWorld() * vec4(position, 1.0)).xyz;\n v_t = 1.0;\n\n vec4 clipPos = viewProjection * vec4(projPos, 1.0);\n clipPos.z -= u_planeBias * 2e-4 * clipPos.w;\n\n gl_Position = clipPos;\n return;\n #endif\n\n #ifdef BONE\n #ifdef BONETEXTURE\n mat4 m0 = readMatrixFromRawSampler(boneSampler, matricesIndices.x);\n mat4 m1 = readMatrixFromRawSampler(boneSampler, matricesIndices.y);\n mat4 m2 = readMatrixFromRawSampler(boneSampler, matricesIndices.z);\n mat4 m3 = readMatrixFromRawSampler(boneSampler, matricesIndices.w);\n #else\n mat4 m0 = mBones[int(matricesIndices.x)];\n mat4 m1 = mBones[int(matricesIndices.y)];\n mat4 m2 = mBones[int(matricesIndices.z)];\n mat4 m3 = mBones[int(matricesIndices.w)];\n #endif\n\n mat4 influence = m0 * matricesWeights.x +\n m1 * matricesWeights.y +\n m2 * matricesWeights.z +\n m3 * matricesWeights.w;\n\n #ifdef BONES_VELOCITY_ENABLED\n #ifdef BONETEXTURE\n mat4 m4 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.x);\n mat4 m5 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.y);\n mat4 m6 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.z);\n mat4 m7 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.w);\n #else\n mat4 m4 = mBones[int(matricesIndicesExtra.x)];\n mat4 m5 = mBones[int(matricesIndicesExtra.y)];\n mat4 m6 = mBones[int(matricesIndicesExtra.z)];\n mat4 m7 = mBones[int(matricesIndicesExtra.w)];\n #endif\n\n influence += m4 * matricesWeightsExtra.x +\n m5 * matricesWeightsExtra.y +\n m6 * matricesWeightsExtra.z +\n m7 * matricesWeightsExtra.w;\n #endif\n\n mat4 finalWorld = resolvePlanarShadowWorld() * influence;\n vec3 worldPos = (finalWorld * vec4(position, 1.0)).xyz;\n #else\n vec3 worldPos = (resolvePlanarShadowWorld() * vec4(position, 1.0)).xyz;\n #endif\n\n float denom = dot(u_planeNormal, u_lightDir);\n if (abs(denom) < 1e-5) {\n v_t = -1.0;\n gl_Position = vec4(2.0, 2.0, 2.0, 1.0);\n return;\n }\n\n float t = (u_planeHeight - dot(u_planeNormal, worldPos)) / denom;\n v_t = t;\n\n vec3 projPos = worldPos + u_lightDir * t;\n projPos = u_shadowCenter + (projPos - u_shadowCenter) * u_footprintScale;\n projPos += u_planeNormal * (u_planeBias * 0.002);\n\n vec4 clipPos = viewProjection * vec4(projPos, 1.0);\n clipPos.z -= u_planeBias * 2e-4 * clipPos.w;\n\n gl_Position = clipPos;\n}\n`;\n\n Effect.ShadersStore[`${PLANAR_SHADOW_SHADER_NAME}FragmentShader`] = `\nprecision highp float;\n\nuniform vec4 u_shadowColor;\nuniform float u_shadowAlphaCutoff;\nuniform float u_shadowAlphaLevel;\nuniform float u_shadowAlphaChannelMode;\nuniform vec3 u_shadowAlphaLuminanceWeights;\nuniform sampler2D shadowAlphaSampler;\n#ifdef INSTANCES\nvarying float v_shadowVisibility;\n#endif\n#ifdef ALPHA_CUTOUT_SECONDARY\nuniform float u_shadowAlphaLevel2;\nuniform float u_shadowAlphaChannelMode2;\nuniform vec3 u_shadowAlphaLuminanceWeights2;\nuniform sampler2D shadowAlphaSampler2;\n#endif\nvarying float v_t;\n\n#ifdef ALPHA_CUTOUT\nvarying vec2 v_shadowAlphaUv;\n#ifdef ALPHA_CUTOUT_SECONDARY\nvarying vec2 v_shadowAlphaUv2;\n#endif\n#endif\n\n#ifdef ALPHA_CUTOUT\nfloat readShadowAlpha(sampler2D alphaSampler, vec2 alphaUv, float channelMode, vec3 luminanceWeights, float alphaLevel) {\n vec4 alphaSample = texture2D(alphaSampler, alphaUv);\n float sourceAlpha = alphaSample.a;\n if (channelMode > 1.5) sourceAlpha = alphaSample.r;\n else if (channelMode > 0.5) sourceAlpha = dot(alphaSample.rgb, luminanceWeights);\n return sourceAlpha * alphaLevel;\n}\n#endif\n\nvoid main() {\n #ifdef INSTANCES\n if (v_shadowVisibility < 0.5) discard;\n #endif\n if (v_t < 0.0) discard;\n #ifdef ALPHA_CUTOUT\n float sourceAlpha = readShadowAlpha(\n shadowAlphaSampler,\n v_shadowAlphaUv,\n u_shadowAlphaChannelMode,\n u_shadowAlphaLuminanceWeights,\n u_shadowAlphaLevel\n );\n #ifdef ALPHA_CUTOUT_SECONDARY\n sourceAlpha *= readShadowAlpha(\n shadowAlphaSampler2,\n v_shadowAlphaUv2,\n u_shadowAlphaChannelMode2,\n u_shadowAlphaLuminanceWeights2,\n u_shadowAlphaLevel2\n );\n #endif\n if (sourceAlpha < u_shadowAlphaCutoff) discard;\n #endif\n gl_FragColor = u_shadowColor;\n}\n`;\n}\n\nexport function getPlanarShadowShaderAttributes(): string[] {\n return [\n 'position',\n 'uv',\n 'uv2',\n 'uv3',\n 'uv4',\n 'uv5',\n 'uv6',\n 'matricesIndices',\n 'matricesWeights',\n 'matricesIndicesExtra',\n 'matricesWeightsExtra',\n 'shadowVisibility',\n ];\n}\n\nexport function getPlanarShadowShaderUniforms(): string[] {\n return [\n 'world',\n 'viewProjection',\n 'u_lightDir',\n 'u_planeNormal',\n 'u_shadowCenter',\n 'u_planeHeight',\n 'u_planeBias',\n 'u_footprintScale',\n 'u_shadowColor',\n 'u_shadowAlphaCutoff',\n 'u_shadowAlphaLevel',\n 'u_shadowAlphaChannelMode',\n 'u_shadowAlphaLuminanceWeights',\n 'u_shadowAlphaUvSet',\n 'u_shadowAlphaMatrix',\n 'u_shadowAlphaLevel2',\n 'u_shadowAlphaChannelMode2',\n 'u_shadowAlphaLuminanceWeights2',\n 'u_shadowAlphaUvSet2',\n 'u_shadowAlphaMatrix2',\n 'mBones',\n 'boneTextureWidth',\n ];\n}\n\nexport function getPlanarShadowShaderSamplers(): string[] {\n return ['boneSampler', 'shadowAlphaSampler', 'shadowAlphaSampler2'];\n}\n\nexport function getPlanarShadowSkeletonDefines(\n numBones: number,\n useTexture: boolean,\n hasExtraInfluence: boolean,\n): string[] {\n const defines = ['BONE'];\n if (useTexture) defines.push('BONETEXTURE');\n else defines.push(`BonesPerMesh ${numBones}`);\n if (hasExtraInfluence) defines.push('BONES_VELOCITY_ENABLED');\n return defines;\n}\n"]}
|