@aura3d/engine 1.4.4 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -30
- package/dist/animation/Retargeting.d.ts +12 -0
- package/dist/animation/Retargeting.d.ts.map +1 -0
- package/dist/animation/Retargeting.js +19 -0
- package/dist/animation/Retargeting.js.map +1 -0
- package/dist/assets/GLTFLoader.d.ts +4 -0
- package/dist/assets/GLTFLoader.d.ts.map +1 -1
- package/dist/assets/GLTFLoader.js +39 -4
- package/dist/assets/GLTFLoader.js.map +1 -1
- package/dist/assets/GLTFRenderResources.d.ts +16 -0
- package/dist/assets/GLTFRenderResources.d.ts.map +1 -1
- package/dist/assets/GLTFRenderResources.js +42 -2
- package/dist/assets/GLTFRenderResources.js.map +1 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts +6 -0
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts.map +1 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js +2 -1
- package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js.map +1 -1
- package/dist/assets/index.d.ts +0 -1
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +0 -1
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/loaders/index.d.ts +0 -1
- package/dist/assets/loaders/index.d.ts.map +1 -1
- package/dist/assets/loaders/index.js +0 -1
- package/dist/assets/loaders/index.js.map +1 -1
- package/dist/aura3d-cli/asset-intent.d.ts +148 -0
- package/dist/aura3d-cli/asset-intent.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-intent.js +145 -0
- package/dist/aura3d-cli/asset-intent.js.map +1 -0
- package/dist/aura3d-cli/asset-role-admission.d.ts +174 -0
- package/dist/aura3d-cli/asset-role-admission.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-role-admission.js +381 -0
- package/dist/aura3d-cli/asset-role-admission.js.map +1 -0
- package/dist/aura3d-cli/asset-screening-effects.d.ts +95 -0
- package/dist/aura3d-cli/asset-screening-effects.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-screening-effects.js +321 -0
- package/dist/aura3d-cli/asset-screening-effects.js.map +1 -0
- package/dist/aura3d-cli/asset-screening-pipeline.d.ts +132 -0
- package/dist/aura3d-cli/asset-screening-pipeline.d.ts.map +1 -0
- package/dist/aura3d-cli/asset-screening-pipeline.js +277 -0
- package/dist/aura3d-cli/asset-screening-pipeline.js.map +1 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.d.ts +15 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.d.ts.map +1 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.js +46 -0
- package/dist/aura3d-cli/cartoon-asset-profiles.js.map +1 -0
- package/dist/aura3d-cli/cli-help.js +1 -1
- package/dist/aura3d-cli/cli.js +16 -2
- package/dist/aura3d-cli/cli.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts +8 -0
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +390 -17
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.d.ts +4 -0
- package/dist/aura3d-cli/pull-bridge/search.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.js +22 -0
- package/dist/aura3d-cli/pull-bridge/search.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge.d.ts +20 -5
- package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge.js +38 -1
- package/dist/aura3d-cli/pull-bridge.js.map +1 -1
- package/dist/controls/ControlState.d.ts +1 -1
- package/dist/controls/ControlState.d.ts.map +1 -1
- package/dist/controls/DragControls.d.ts +21 -1
- package/dist/controls/DragControls.d.ts.map +1 -1
- package/dist/controls/DragControls.js +24 -2
- package/dist/controls/DragControls.js.map +1 -1
- package/dist/controls/FirstPersonControls.d.ts +10 -1
- package/dist/controls/FirstPersonControls.d.ts.map +1 -1
- package/dist/controls/FirstPersonControls.js +18 -2
- package/dist/controls/FirstPersonControls.js.map +1 -1
- package/dist/controls/FlyControls.d.ts +42 -0
- package/dist/controls/FlyControls.d.ts.map +1 -1
- package/dist/controls/FlyControls.js +106 -3
- package/dist/controls/FlyControls.js.map +1 -1
- package/dist/controls/MapControls.d.ts +13 -0
- package/dist/controls/MapControls.d.ts.map +1 -1
- package/dist/controls/MapControls.js +40 -2
- package/dist/controls/MapControls.js.map +1 -1
- package/dist/controls/OrbitControls.d.ts +54 -0
- package/dist/controls/OrbitControls.d.ts.map +1 -1
- package/dist/controls/OrbitControls.js +133 -0
- package/dist/controls/OrbitControls.js.map +1 -1
- package/dist/controls/PointerLockControls.d.ts +12 -5
- package/dist/controls/PointerLockControls.d.ts.map +1 -1
- package/dist/controls/PointerLockControls.js +30 -11
- package/dist/controls/PointerLockControls.js.map +1 -1
- package/dist/controls/SelectionManager.d.ts +22 -1
- package/dist/controls/SelectionManager.d.ts.map +1 -1
- package/dist/controls/SelectionManager.js +64 -6
- package/dist/controls/SelectionManager.js.map +1 -1
- package/dist/controls/TransformControls.d.ts +135 -1
- package/dist/controls/TransformControls.d.ts.map +1 -1
- package/dist/controls/TransformControls.js +534 -10
- package/dist/controls/TransformControls.js.map +1 -1
- package/dist/controls/index.d.ts +7 -2
- package/dist/controls/index.d.ts.map +1 -1
- package/dist/controls/index.js +1 -1
- package/dist/controls/index.js.map +1 -1
- package/dist/create-aura3d/index.js +1 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts +2 -0
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js +781 -46
- package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-template-evidence.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-game-template-evidence.js +24 -4
- package/dist/create-aura3d/showcase-spec-game-template-evidence.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-platformer-artifacts.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-platformer-artifacts.js +28 -17
- package/dist/create-aura3d/showcase-spec-platformer-artifacts.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-racing-artifacts.d.ts.map +1 -1
- package/dist/create-aura3d/showcase-spec-racing-artifacts.js +10 -5
- package/dist/create-aura3d/showcase-spec-racing-artifacts.js.map +1 -1
- package/dist/create-aura3d/showcase-spec-replacement-candidates.js +26 -0
- package/dist/create-aura3d/showcase-spec-replacement-candidates.js.map +1 -1
- package/dist/ecs/components/MeshComponent.d.ts +5 -2
- package/dist/ecs/components/MeshComponent.d.ts.map +1 -1
- package/dist/ecs/components/MeshComponent.js.map +1 -1
- package/dist/editor-runtime/CartoonSceneEditor.d.ts +111 -0
- package/dist/editor-runtime/CartoonSceneEditor.d.ts.map +1 -0
- package/dist/editor-runtime/CartoonSceneEditor.js +285 -0
- package/dist/editor-runtime/CartoonSceneEditor.js.map +1 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.d.ts +142 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.d.ts.map +1 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.js +468 -0
- package/dist/editor-runtime/InteractiveTransformGizmo.js.map +1 -0
- package/dist/editor-runtime/index.d.ts +2 -0
- package/dist/editor-runtime/index.d.ts.map +1 -1
- package/dist/editor-runtime/index.js +1 -0
- package/dist/editor-runtime/index.js.map +1 -1
- package/dist/engine/agent-api/CartoonAssetManifest.d.ts +50 -0
- package/dist/engine/agent-api/CartoonAssetManifest.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonAssetManifest.js +65 -0
- package/dist/engine/agent-api/CartoonAssetManifest.js.map +1 -0
- package/dist/engine/agent-api/CartoonDirector.d.ts +120 -0
- package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonDirector.js +432 -0
- package/dist/engine/agent-api/CartoonDirector.js.map +1 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.d.ts +51 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.js +79 -0
- package/dist/engine/agent-api/CartoonEpisodePackage.js.map +1 -0
- package/dist/engine/agent-api/CartoonMotionQuality.d.ts +83 -0
- package/dist/engine/agent-api/CartoonMotionQuality.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonMotionQuality.js +128 -0
- package/dist/engine/agent-api/CartoonMotionQuality.js.map +1 -0
- package/dist/engine/agent-api/CartoonPerformance.d.ts +150 -0
- package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonPerformance.js +345 -0
- package/dist/engine/agent-api/CartoonPerformance.js.map +1 -0
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts +143 -0
- package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonRenderQueue.js +410 -0
- package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -0
- package/dist/engine/agent-api/CartoonRouteProof.d.ts +112 -0
- package/dist/engine/agent-api/CartoonRouteProof.d.ts.map +1 -0
- package/dist/engine/agent-api/CartoonRouteProof.js +127 -0
- package/dist/engine/agent-api/CartoonRouteProof.js.map +1 -0
- package/dist/engine/agent-api/GameEvidence.d.ts +1 -0
- package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -1
- package/dist/engine/agent-api/GameEvidence.js +1 -0
- package/dist/engine/agent-api/GameEvidence.js.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.d.ts +13 -0
- package/dist/engine/agent-api/GameGenreKits.d.ts.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.js +57 -11
- package/dist/engine/agent-api/GameGenreKits.js.map +1 -1
- package/dist/engine/agent-api/GameRuntime.d.ts +1 -0
- package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/GameRuntime.js +1 -0
- package/dist/engine/agent-api/GameRuntime.js.map +1 -1
- package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts +12 -0
- package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts.map +1 -1
- package/dist/engine/agent-api/GameSceneGeometryBindings.js +2 -0
- package/dist/engine/agent-api/GameSceneGeometryBindings.js.map +1 -1
- package/dist/engine/agent-api/LayeredSceneComposition.d.ts +295 -0
- package/dist/engine/agent-api/LayeredSceneComposition.d.ts.map +1 -0
- package/dist/engine/agent-api/LayeredSceneComposition.js +387 -0
- package/dist/engine/agent-api/LayeredSceneComposition.js.map +1 -0
- package/dist/engine/agent-api/SceneGroundingUtils.d.ts +62 -0
- package/dist/engine/agent-api/SceneGroundingUtils.d.ts.map +1 -1
- package/dist/engine/agent-api/SceneGroundingUtils.js +37 -0
- package/dist/engine/agent-api/SceneGroundingUtils.js.map +1 -1
- package/dist/engine/agent-api/SubjectFramingUtils.d.ts +127 -0
- package/dist/engine/agent-api/SubjectFramingUtils.d.ts.map +1 -0
- package/dist/engine/agent-api/SubjectFramingUtils.js +126 -0
- package/dist/engine/agent-api/SubjectFramingUtils.js.map +1 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts +81 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts.map +1 -0
- package/dist/engine/agent-api/TouchControlBinding.js +116 -0
- package/dist/engine/agent-api/TouchControlBinding.js.map +1 -0
- package/dist/engine/agent-api/index.d.ts +39 -0
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +546 -74
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.d.ts +32 -0
- package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.js +37 -2
- package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +8 -0
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.js +2 -1
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
- package/dist/input/controls/PointerLockControls.d.ts +1 -1
- package/dist/input/controls/PointerLockControls.d.ts.map +1 -1
- package/dist/input/controls/PointerLockControls.js +12 -0
- package/dist/input/controls/PointerLockControls.js.map +1 -1
- package/dist/physics/Collider.d.ts +1 -1
- package/dist/physics/Collider.d.ts.map +1 -1
- package/dist/physics/Collider.js +2 -2
- package/dist/physics/Collider.js.map +1 -1
- package/dist/physics/CollisionEvents.d.ts +1 -0
- package/dist/physics/CollisionEvents.d.ts.map +1 -1
- package/dist/physics/CollisionEvents.js.map +1 -1
- package/dist/physics/NarrowPhase.d.ts +11 -0
- package/dist/physics/NarrowPhase.d.ts.map +1 -0
- package/dist/physics/NarrowPhase.js +565 -0
- package/dist/physics/NarrowPhase.js.map +1 -0
- package/dist/physics/PhysicsDebugDraw.js +19 -1
- package/dist/physics/PhysicsDebugDraw.js.map +1 -1
- package/dist/physics/PhysicsWorld.d.ts +43 -0
- package/dist/physics/PhysicsWorld.d.ts.map +1 -1
- package/dist/physics/PhysicsWorld.js +305 -30
- package/dist/physics/PhysicsWorld.js.map +1 -1
- package/dist/physics/RigidBody.d.ts +8 -1
- package/dist/physics/RigidBody.d.ts.map +1 -1
- package/dist/physics/RigidBody.js +32 -5
- package/dist/physics/RigidBody.js.map +1 -1
- package/dist/physics/Shape.d.ts +16 -2
- package/dist/physics/Shape.d.ts.map +1 -1
- package/dist/physics/Shape.js +93 -31
- package/dist/physics/Shape.js.map +1 -1
- package/dist/physics/TimeOfImpact.d.ts +15 -0
- package/dist/physics/TimeOfImpact.d.ts.map +1 -0
- package/dist/physics/TimeOfImpact.js +81 -0
- package/dist/physics/TimeOfImpact.js.map +1 -0
- package/dist/physics/index.d.ts +2 -0
- package/dist/physics/index.d.ts.map +1 -1
- package/dist/physics/index.js +2 -0
- package/dist/physics/index.js.map +1 -1
- package/dist/rendering/CascadedShadowMaps.d.ts +9 -1
- package/dist/rendering/CascadedShadowMaps.d.ts.map +1 -1
- package/dist/rendering/CascadedShadowMaps.js +68 -0
- package/dist/rendering/CascadedShadowMaps.js.map +1 -1
- package/dist/rendering/ClusteredForwardLighting.d.ts +28 -0
- package/dist/rendering/ClusteredForwardLighting.d.ts.map +1 -0
- package/dist/rendering/ClusteredForwardLighting.js +156 -0
- package/dist/rendering/ClusteredForwardLighting.js.map +1 -0
- package/dist/rendering/DepthPass.d.ts +14 -1
- package/dist/rendering/DepthPass.d.ts.map +1 -1
- package/dist/rendering/DepthPass.js +19 -4
- package/dist/rendering/DepthPass.js.map +1 -1
- package/dist/rendering/EnvironmentMapResources.d.ts +59 -1
- package/dist/rendering/EnvironmentMapResources.d.ts.map +1 -1
- package/dist/rendering/EnvironmentMapResources.js +140 -100
- package/dist/rendering/EnvironmentMapResources.js.map +1 -1
- package/dist/rendering/EnvironmentPlatform.d.ts +3 -2
- package/dist/rendering/EnvironmentPlatform.d.ts.map +1 -1
- package/dist/rendering/EnvironmentPlatform.js +99 -44
- package/dist/rendering/EnvironmentPlatform.js.map +1 -1
- package/dist/rendering/ForwardPass.d.ts +37 -0
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +234 -7
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/Geometry.d.ts +19 -0
- package/dist/rendering/Geometry.d.ts.map +1 -1
- package/dist/rendering/Geometry.js +64 -0
- package/dist/rendering/Geometry.js.map +1 -1
- package/dist/rendering/IBL.d.ts.map +1 -1
- package/dist/rendering/IBL.js +0 -1
- package/dist/rendering/IBL.js.map +1 -1
- package/dist/rendering/LightCollector.d.ts +5 -1
- package/dist/rendering/LightCollector.d.ts.map +1 -1
- package/dist/rendering/LightCollector.js +16 -3
- package/dist/rendering/LightCollector.js.map +1 -1
- package/dist/rendering/LightUniforms.d.ts +26 -1
- package/dist/rendering/LightUniforms.d.ts.map +1 -1
- package/dist/rendering/LightUniforms.js +140 -8
- package/dist/rendering/LightUniforms.js.map +1 -1
- package/dist/rendering/LightingRig.d.ts +77 -0
- package/dist/rendering/LightingRig.d.ts.map +1 -1
- package/dist/rendering/LightingRig.js +100 -11
- package/dist/rendering/LightingRig.js.map +1 -1
- package/dist/rendering/MeshConsolidation.d.ts +63 -0
- package/dist/rendering/MeshConsolidation.d.ts.map +1 -0
- package/dist/rendering/MeshConsolidation.js +251 -0
- package/dist/rendering/MeshConsolidation.js.map +1 -0
- package/dist/rendering/PMREM.d.ts +13 -1
- package/dist/rendering/PMREM.d.ts.map +1 -1
- package/dist/rendering/PMREM.js +18 -4
- package/dist/rendering/PMREM.js.map +1 -1
- package/dist/rendering/PostProcessPass.d.ts +24 -2
- package/dist/rendering/PostProcessPass.d.ts.map +1 -1
- package/dist/rendering/PostProcessPass.js +136 -18
- package/dist/rendering/PostProcessPass.js.map +1 -1
- package/dist/rendering/PrimitiveSubmissionAudit.d.ts +195 -0
- package/dist/rendering/PrimitiveSubmissionAudit.d.ts.map +1 -0
- package/dist/rendering/PrimitiveSubmissionAudit.js +280 -0
- package/dist/rendering/PrimitiveSubmissionAudit.js.map +1 -0
- package/dist/rendering/ProductTurntableFixtures.d.ts.map +1 -1
- package/dist/rendering/ProductTurntableFixtures.js +93 -13
- package/dist/rendering/ProductTurntableFixtures.js.map +1 -1
- package/dist/rendering/ReflectionProbe.d.ts +59 -0
- package/dist/rendering/ReflectionProbe.d.ts.map +1 -1
- package/dist/rendering/ReflectionProbe.js +224 -0
- package/dist/rendering/ReflectionProbe.js.map +1 -1
- package/dist/rendering/ReflectionSurfaces.d.ts +4 -2
- package/dist/rendering/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/rendering/ReflectionSurfaces.js +13 -8
- package/dist/rendering/ReflectionSurfaces.js.map +1 -1
- package/dist/rendering/RenderBackend.d.ts +1 -1
- package/dist/rendering/RenderBackend.d.ts.map +1 -1
- package/dist/rendering/RenderBackend.js +5 -1
- package/dist/rendering/RenderBackend.js.map +1 -1
- package/dist/rendering/RenderDevice.d.ts +13 -2
- package/dist/rendering/RenderDevice.d.ts.map +1 -1
- package/dist/rendering/RenderDevice.js +5 -2
- package/dist/rendering/RenderDevice.js.map +1 -1
- package/dist/rendering/Renderer.d.ts +41 -1
- package/dist/rendering/Renderer.d.ts.map +1 -1
- package/dist/rendering/Renderer.js +406 -61
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.d.ts +10 -3
- package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.js +25 -5
- package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.d.ts +3 -2
- package/dist/rendering/RendererVisualPipelineReport.d.ts.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.js +2 -0
- package/dist/rendering/RendererVisualPipelineReport.js.map +1 -1
- package/dist/rendering/ScreenSpaceLineMaterial.d.ts +34 -0
- package/dist/rendering/ScreenSpaceLineMaterial.d.ts.map +1 -0
- package/dist/rendering/ScreenSpaceLineMaterial.js +93 -0
- package/dist/rendering/ScreenSpaceLineMaterial.js.map +1 -0
- package/dist/rendering/ShaderChunks.d.ts +7 -0
- package/dist/rendering/ShaderChunks.d.ts.map +1 -1
- package/dist/rendering/ShaderChunks.js +137 -0
- package/dist/rendering/ShaderChunks.js.map +1 -1
- package/dist/rendering/ShaderLibrary.d.ts +17 -0
- package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
- package/dist/rendering/ShaderLibrary.js +940 -98
- package/dist/rendering/ShaderLibrary.js.map +1 -1
- package/dist/rendering/ShadowPass.d.ts +10 -0
- package/dist/rendering/ShadowPass.d.ts.map +1 -1
- package/dist/rendering/ShadowPass.js +8 -1
- package/dist/rendering/ShadowPass.js.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.d.ts +6 -0
- package/dist/rendering/SkinnedLitMaterial.d.ts.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.js +22 -8
- package/dist/rendering/SkinnedLitMaterial.js.map +1 -1
- package/dist/rendering/SkinnedUnlitMaterial.d.ts +8 -0
- package/dist/rendering/SkinnedUnlitMaterial.d.ts.map +1 -1
- package/dist/rendering/SkinnedUnlitMaterial.js +26 -9
- package/dist/rendering/SkinnedUnlitMaterial.js.map +1 -1
- package/dist/rendering/SpecularPrefilter.d.ts +42 -0
- package/dist/rendering/SpecularPrefilter.d.ts.map +1 -0
- package/dist/rendering/SpecularPrefilter.js +480 -0
- package/dist/rendering/SpecularPrefilter.js.map +1 -0
- package/dist/rendering/TerrainFixtures.d.ts +24 -0
- package/dist/rendering/TerrainFixtures.d.ts.map +1 -1
- package/dist/rendering/TerrainFixtures.js +96 -0
- package/dist/rendering/TerrainFixtures.js.map +1 -1
- package/dist/rendering/Texture.d.ts +7 -0
- package/dist/rendering/Texture.d.ts.map +1 -1
- package/dist/rendering/Texture.js +9 -0
- package/dist/rendering/Texture.js.map +1 -1
- package/dist/rendering/VertexFormat.d.ts +34 -1
- package/dist/rendering/VertexFormat.d.ts.map +1 -1
- package/dist/rendering/VertexFormat.js +61 -0
- package/dist/rendering/VertexFormat.js.map +1 -1
- package/dist/rendering/WebGL2Device.d.ts +48 -0
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +1298 -44
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/WebGPUDevice.d.ts +7 -2
- package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
- package/dist/rendering/WebGPUDevice.js +111 -17
- package/dist/rendering/WebGPUDevice.js.map +1 -1
- package/dist/rendering/WebGPUSkinningLimits.d.ts +14 -0
- package/dist/rendering/WebGPUSkinningLimits.d.ts.map +1 -0
- package/dist/rendering/WebGPUSkinningLimits.js +14 -0
- package/dist/rendering/WebGPUSkinningLimits.js.map +1 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts +19 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.js +13 -0
- package/dist/rendering/cartoon/CartoonMaterialStyle.js.map +1 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.d.ts +36 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.js +23 -0
- package/dist/rendering/cartoon/CartoonRenderPreset.js.map +1 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.d.ts +130 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.js +303 -0
- package/dist/rendering/cartoon/CartoonToonMaterial.js.map +1 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.d.ts +28 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.d.ts.map +1 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.js +39 -0
- package/dist/rendering/cartoon/CartoonVisualQuality.js.map +1 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.d.ts +79 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.d.ts.map +1 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.js +88 -0
- package/dist/rendering/cartoon/applyCartoonRenderPreset.js.map +1 -0
- package/dist/rendering/cartoon/index.d.ts +6 -0
- package/dist/rendering/cartoon/index.d.ts.map +1 -0
- package/dist/rendering/cartoon/index.js +6 -0
- package/dist/rendering/cartoon/index.js.map +1 -0
- package/dist/rendering/index.d.ts +26 -15
- package/dist/rendering/index.d.ts.map +1 -1
- package/dist/rendering/index.js +15 -9
- package/dist/rendering/index.js.map +1 -1
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts +93 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts.map +1 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js +202 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js.map +1 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.js +3 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts +1 -0
- package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionRendererTypes.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js +5 -3
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +9 -5
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.d.ts +5 -0
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.d.ts.map +1 -1
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.js +40 -0
- package/dist/rendering/production-runtime/TransmissionBackdropCapture.js.map +1 -1
- package/dist/rendering/production-runtime/environment/HDRLoader.d.ts +6 -0
- package/dist/rendering/production-runtime/environment/HDRLoader.d.ts.map +1 -1
- package/dist/rendering/production-runtime/environment/HDRLoader.js +19 -0
- package/dist/rendering/production-runtime/environment/HDRLoader.js.map +1 -1
- package/dist/rendering/production-runtime/index.d.ts +3 -1
- package/dist/rendering/production-runtime/index.d.ts.map +1 -1
- package/dist/rendering/production-runtime/index.js +1 -0
- package/dist/rendering/production-runtime/index.js.map +1 -1
- package/dist/scene/Light.d.ts +1 -1
- package/dist/scene/Light.d.ts.map +1 -1
- package/dist/scene/RectAreaLight.d.ts +22 -0
- package/dist/scene/RectAreaLight.d.ts.map +1 -0
- package/dist/scene/RectAreaLight.js +46 -0
- package/dist/scene/RectAreaLight.js.map +1 -0
- package/dist/scene/Scene.d.ts +6 -1
- package/dist/scene/Scene.d.ts.map +1 -1
- package/dist/scene/Scene.js +8 -1
- package/dist/scene/Scene.js.map +1 -1
- package/dist/scene/SceneSerializer.d.ts +3 -1
- package/dist/scene/SceneSerializer.d.ts.map +1 -1
- package/dist/scene/SceneSerializer.js +14 -7
- package/dist/scene/SceneSerializer.js.map +1 -1
- package/dist/scene/index.d.ts +1 -0
- package/dist/scene/index.d.ts.map +1 -1
- package/dist/scene/index.js +1 -0
- package/dist/scene/index.js.map +1 -1
- package/dist/scripting/CartoonNodeCategories.d.ts +3 -0
- package/dist/scripting/CartoonNodeCategories.d.ts.map +1 -0
- package/dist/scripting/CartoonNodeCategories.js +9 -0
- package/dist/scripting/CartoonNodeCategories.js.map +1 -0
- package/dist/scripting/CartoonVisualNodes.d.ts +3 -0
- package/dist/scripting/CartoonVisualNodes.d.ts.map +1 -0
- package/dist/scripting/CartoonVisualNodes.js +41 -0
- package/dist/scripting/CartoonVisualNodes.js.map +1 -0
- package/package.json +124 -113
- package/templates/cinematic-scene/package.json +1 -1
- package/templates/mini-game/package.json +1 -1
- package/templates/product-viewer/package.json +1 -1
- package/templates/production-asset-inspector/README.md +5 -0
- package/templates/production-asset-inspector/asset-manifest.json +9 -0
- package/templates/production-asset-inspector/index.html +2 -0
- package/templates/production-asset-inspector/package.json +17 -0
- package/templates/production-asset-inspector/src/main.ts +16 -0
- package/templates/production-material-studio/README.md +5 -0
- package/templates/production-material-studio/asset-manifest.json +9 -0
- package/templates/production-material-studio/index.html +2 -0
- package/templates/production-material-studio/package.json +17 -0
- package/templates/production-material-studio/src/main.ts +16 -0
- package/templates/production-product-configurator/README.md +5 -0
- package/templates/production-product-configurator/asset-manifest.json +9 -0
- package/templates/production-product-configurator/index.html +2 -0
- package/templates/production-product-configurator/package.json +17 -0
- package/templates/production-product-configurator/src/main.ts +16 -0
- package/templates/production-product-viewer/README.md +7 -0
- package/templates/production-product-viewer/asset-manifest.json +8 -0
- package/templates/production-product-viewer/index.html +26 -0
- package/templates/production-product-viewer/package.json +17 -0
- package/templates/production-product-viewer/src/main.ts +70 -0
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { Light, Scene } from "@aura3d/scene";
|
|
2
|
-
export type CollectedLightKind = "directional" | "point" | "spot";
|
|
2
|
+
export type CollectedLightKind = "directional" | "point" | "spot" | "rect-area";
|
|
3
3
|
export interface CollectedLight {
|
|
4
4
|
readonly kind: CollectedLightKind;
|
|
5
5
|
readonly color: readonly [number, number, number];
|
|
6
6
|
readonly intensity: number;
|
|
7
7
|
readonly position: readonly [number, number, number];
|
|
8
8
|
readonly direction: readonly [number, number, number];
|
|
9
|
+
readonly right?: readonly [number, number, number];
|
|
10
|
+
readonly up?: readonly [number, number, number];
|
|
9
11
|
readonly range: number;
|
|
12
|
+
readonly width?: number;
|
|
13
|
+
readonly height?: number;
|
|
10
14
|
readonly spotAngle: number;
|
|
11
15
|
readonly penumbra: number;
|
|
12
16
|
readonly castsShadow: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightCollector.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/LightCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,
|
|
1
|
+
{"version":3,"file":"LightCollector.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/LightCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,EAA6B,KAAK,EAAa,MAAM,eAAe,CAAC;AAErG,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAEhF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,qBAA0B,GAAG,SAAS,cAAc,EAAE;CActF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DirectionalLight, Light, PointLight, Scene, SpotLight } from "../scene/index.js";
|
|
1
|
+
import { DirectionalLight, Light, PointLight, RectAreaLight, Scene, SpotLight } from "../scene/index.js";
|
|
2
2
|
export class LightCollector {
|
|
3
3
|
collect(scene, options = {}) {
|
|
4
4
|
const maxLights = options.maxLights ?? Number.POSITIVE_INFINITY;
|
|
@@ -21,7 +21,11 @@ function collectLight(light) {
|
|
|
21
21
|
const direction = light instanceof DirectionalLight
|
|
22
22
|
? vectorToTuple(light.getDirection())
|
|
23
23
|
: normalize([-matrix[8], -matrix[9], -matrix[10]]);
|
|
24
|
-
const
|
|
24
|
+
const right = normalize([matrix[0], matrix[1], matrix[2]]);
|
|
25
|
+
const up = normalize([matrix[4], matrix[5], matrix[6]]);
|
|
26
|
+
const range = light instanceof PointLight || light instanceof SpotLight || light instanceof RectAreaLight ? light.range : 0;
|
|
27
|
+
const width = light instanceof RectAreaLight ? light.width : 0;
|
|
28
|
+
const height = light instanceof RectAreaLight ? light.height : 0;
|
|
25
29
|
const spotAngle = light instanceof SpotLight ? light.angle : 0;
|
|
26
30
|
const penumbra = light instanceof SpotLight ? light.penumbra : 0;
|
|
27
31
|
return {
|
|
@@ -30,7 +34,11 @@ function collectLight(light) {
|
|
|
30
34
|
intensity: light.intensity,
|
|
31
35
|
position,
|
|
32
36
|
direction,
|
|
37
|
+
right,
|
|
38
|
+
up,
|
|
33
39
|
range,
|
|
40
|
+
width,
|
|
41
|
+
height,
|
|
34
42
|
spotAngle,
|
|
35
43
|
penumbra,
|
|
36
44
|
castsShadow: light.castsShadow,
|
|
@@ -51,6 +59,11 @@ function matrixElements(value) {
|
|
|
51
59
|
}
|
|
52
60
|
function normalize(value) {
|
|
53
61
|
const length = Math.hypot(value[0], value[1], value[2]);
|
|
54
|
-
return length === 0
|
|
62
|
+
return length === 0
|
|
63
|
+
? [0, 0, -1]
|
|
64
|
+
: [canonicalZero(value[0] / length), canonicalZero(value[1] / length), canonicalZero(value[2] / length)];
|
|
65
|
+
}
|
|
66
|
+
function canonicalZero(value) {
|
|
67
|
+
return value === 0 ? 0 : value;
|
|
55
68
|
}
|
|
56
69
|
//# sourceMappingURL=LightCollector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightCollector.js","sourceRoot":"","sources":["../../../../packages/rendering/src/LightCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"LightCollector.js","sourceRoot":"","sources":["../../../../packages/rendering/src/LightCollector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,38 @@
|
|
|
1
1
|
import { type CollectedLight } from "./LightCollector";
|
|
2
2
|
import { UniformLayout } from "./UniformLayout";
|
|
3
3
|
export declare const MAX_DIRECT_LIGHTS = 16;
|
|
4
|
+
export type DirectLightSelectionStrategy = "intensity-times-relative-luminance";
|
|
5
|
+
export type DirectLightSelectionOrder = "input" | "contribution-descending";
|
|
6
|
+
export interface DirectLightSelectionEntry {
|
|
7
|
+
readonly sourceId: string;
|
|
8
|
+
readonly sourceName: string;
|
|
9
|
+
readonly kind: CollectedLight["kind"];
|
|
10
|
+
readonly contribution: number;
|
|
11
|
+
}
|
|
12
|
+
export interface DirectLightSelectionDiagnostics {
|
|
13
|
+
readonly source: "LightUniforms.pack";
|
|
14
|
+
readonly strategy: DirectLightSelectionStrategy;
|
|
15
|
+
readonly order: DirectLightSelectionOrder;
|
|
16
|
+
readonly requestedMaxLights: number;
|
|
17
|
+
readonly maxLights: number;
|
|
18
|
+
readonly capacityClamped: boolean;
|
|
19
|
+
readonly requestedCount: number;
|
|
20
|
+
readonly selectedCount: number;
|
|
21
|
+
readonly droppedCount: number;
|
|
22
|
+
readonly degraded: boolean;
|
|
23
|
+
readonly selected: readonly DirectLightSelectionEntry[];
|
|
24
|
+
readonly dropped: readonly DirectLightSelectionEntry[];
|
|
25
|
+
readonly message: string;
|
|
26
|
+
}
|
|
4
27
|
export interface PackedLightUniforms {
|
|
5
28
|
readonly lightCount: number;
|
|
6
29
|
readonly data: Float32Array;
|
|
7
30
|
readonly layout: UniformLayout;
|
|
31
|
+
readonly diagnostics: DirectLightSelectionDiagnostics;
|
|
8
32
|
}
|
|
9
33
|
export declare class LightUniforms {
|
|
10
|
-
static readonly floatsPerLight =
|
|
34
|
+
static readonly floatsPerLight = 24;
|
|
35
|
+
static readonly vec4sPerLight: number;
|
|
11
36
|
static readonly layout: UniformLayout;
|
|
12
37
|
static pack(lights: readonly CollectedLight[], maxLights?: number): PackedLightUniforms;
|
|
13
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightUniforms.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/LightUniforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"LightUniforms.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/LightUniforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,MAAM,MAAM,4BAA4B,GAAG,oCAAoC,CAAC;AAChF,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,yBAAyB,CAAC;AAE5E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,+BAA+B,CAAC;CACvD;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,cAAc,MAAM;IACpC,MAAM,CAAC,QAAQ,CAAC,aAAa,SAAoC;IAEjE,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAGnB;IAEH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,EAAE,SAAS,SAAoB,GAAG,mBAAmB;CAiEnG"}
|
|
@@ -2,28 +2,158 @@ import {} from "./LightCollector.js";
|
|
|
2
2
|
import { UniformLayout } from "./UniformLayout.js";
|
|
3
3
|
export const MAX_DIRECT_LIGHTS = 16;
|
|
4
4
|
export class LightUniforms {
|
|
5
|
-
static floatsPerLight =
|
|
5
|
+
static floatsPerLight = 24;
|
|
6
|
+
static vec4sPerLight = LightUniforms.floatsPerLight / 4;
|
|
6
7
|
static layout = new UniformLayout([
|
|
7
8
|
{ name: "u_lightCount", type: "float" },
|
|
8
|
-
{ name: "u_lightData", type: "vec4", arrayLength: MAX_DIRECT_LIGHTS *
|
|
9
|
+
{ name: "u_lightData", type: "vec4", arrayLength: MAX_DIRECT_LIGHTS * LightUniforms.vec4sPerLight }
|
|
9
10
|
]);
|
|
10
11
|
static pack(lights, maxLights = MAX_DIRECT_LIGHTS) {
|
|
11
|
-
if (!Number.isInteger(maxLights) || maxLights <= 0
|
|
12
|
-
throw new RangeError(
|
|
12
|
+
if (!Number.isInteger(maxLights) || maxLights <= 0) {
|
|
13
|
+
throw new RangeError("maxLights must be a positive integer");
|
|
13
14
|
}
|
|
14
|
-
const
|
|
15
|
+
const effectiveMaxLights = Math.min(maxLights, MAX_DIRECT_LIGHTS);
|
|
16
|
+
const evaluated = evaluateLights(lights);
|
|
17
|
+
const order = lights.length > effectiveMaxLights
|
|
18
|
+
? "contribution-descending"
|
|
19
|
+
: "input";
|
|
20
|
+
const ordered = order === "contribution-descending"
|
|
21
|
+
? rankLightsByContribution(evaluated)
|
|
22
|
+
: evaluated;
|
|
23
|
+
const selected = ordered.slice(0, effectiveMaxLights);
|
|
24
|
+
const dropped = ordered.slice(effectiveMaxLights);
|
|
15
25
|
const data = new Float32Array(MAX_DIRECT_LIGHTS * LightUniforms.floatsPerLight);
|
|
16
|
-
selected.forEach((light, index) => {
|
|
26
|
+
selected.forEach(({ light }, index) => {
|
|
17
27
|
const offset = index * LightUniforms.floatsPerLight;
|
|
18
28
|
const forwardShadowSupported = light.castsShadow;
|
|
19
29
|
data.set([light.color[0], light.color[1], light.color[2], light.intensity], offset);
|
|
20
30
|
data.set([light.position[0], light.position[1], light.position[2], light.range], offset + 4);
|
|
21
31
|
data.set([light.direction[0], light.direction[1], light.direction[2], kindToFloat(light.kind)], offset + 8);
|
|
22
|
-
data.set([
|
|
32
|
+
data.set([
|
|
33
|
+
light.kind === "rect-area" ? light.width ?? 1 : light.spotAngle,
|
|
34
|
+
light.kind === "rect-area" ? light.height ?? 1 : light.penumbra,
|
|
35
|
+
forwardShadowSupported && light.kind !== "rect-area" ? 1 : 0,
|
|
36
|
+
light.layerMask
|
|
37
|
+
], offset + 12);
|
|
38
|
+
data.set([...(light.right ?? [1, 0, 0]), 0], offset + 16);
|
|
39
|
+
data.set([...(light.up ?? [0, 1, 0]), 0], offset + 20);
|
|
23
40
|
});
|
|
24
|
-
|
|
41
|
+
const selectedEntries = selected.map(selectionEntry);
|
|
42
|
+
const droppedEntries = dropped.map(selectionEntry);
|
|
43
|
+
const droppedCount = droppedEntries.length;
|
|
44
|
+
const degraded = droppedCount > 0;
|
|
45
|
+
const capacityClamped = maxLights > effectiveMaxLights;
|
|
46
|
+
const selectedNames = selectedEntries.map((entry) => entry.sourceName).join(", ");
|
|
47
|
+
const capacityMessage = capacityClamped
|
|
48
|
+
? ` Requested capacity ${maxLights} was clamped to the interim limit ${effectiveMaxLights}.`
|
|
49
|
+
: "";
|
|
50
|
+
const message = (degraded
|
|
51
|
+
? `Direct-light limit applied: selected ${selectedEntries.length} of ${lights.length} by ${DIRECT_LIGHT_SELECTION_STRATEGY}, dropped ${droppedCount}. Selected: ${selectedNames}.`
|
|
52
|
+
: `Direct-light selection kept all ${selectedEntries.length} requested lights in input order; dropped 0. Contribution scores use ${DIRECT_LIGHT_SELECTION_STRATEGY}. Selected: ${selectedNames || "none"}.`) + capacityMessage;
|
|
53
|
+
return {
|
|
54
|
+
lightCount: selected.length,
|
|
55
|
+
data,
|
|
56
|
+
layout: LightUniforms.layout,
|
|
57
|
+
diagnostics: {
|
|
58
|
+
source: "LightUniforms.pack",
|
|
59
|
+
strategy: DIRECT_LIGHT_SELECTION_STRATEGY,
|
|
60
|
+
order,
|
|
61
|
+
requestedMaxLights: maxLights,
|
|
62
|
+
maxLights: effectiveMaxLights,
|
|
63
|
+
capacityClamped,
|
|
64
|
+
requestedCount: lights.length,
|
|
65
|
+
selectedCount: selectedEntries.length,
|
|
66
|
+
droppedCount,
|
|
67
|
+
degraded,
|
|
68
|
+
selected: selectedEntries,
|
|
69
|
+
dropped: droppedEntries,
|
|
70
|
+
message
|
|
71
|
+
}
|
|
72
|
+
};
|
|
25
73
|
}
|
|
26
74
|
}
|
|
75
|
+
const DIRECT_LIGHT_SELECTION_STRATEGY = "intensity-times-relative-luminance";
|
|
76
|
+
const RELATIVE_LUMINANCE_RED = 0.2126;
|
|
77
|
+
const RELATIVE_LUMINANCE_GREEN = 0.7152;
|
|
78
|
+
const RELATIVE_LUMINANCE_BLUE = 0.0722;
|
|
79
|
+
function evaluateLights(lights) {
|
|
80
|
+
return lights
|
|
81
|
+
.map((light, inputIndex) => ({
|
|
82
|
+
light,
|
|
83
|
+
inputIndex,
|
|
84
|
+
sourceId: lightSourceId(light),
|
|
85
|
+
sourceName: lightSourceName(light),
|
|
86
|
+
stableKey: stableLightKey(light),
|
|
87
|
+
contribution: estimateLightContribution(light)
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
function rankLightsByContribution(lights) {
|
|
91
|
+
return [...lights].sort((left, right) => {
|
|
92
|
+
const contributionOrder = right.contribution - left.contribution;
|
|
93
|
+
if (contributionOrder !== 0)
|
|
94
|
+
return contributionOrder;
|
|
95
|
+
const sourceNameOrder = compareText(left.sourceName, right.sourceName);
|
|
96
|
+
if (sourceNameOrder !== 0)
|
|
97
|
+
return sourceNameOrder;
|
|
98
|
+
const sourceIdOrder = compareText(left.sourceId, right.sourceId);
|
|
99
|
+
if (sourceIdOrder !== 0)
|
|
100
|
+
return sourceIdOrder;
|
|
101
|
+
const stableKeyOrder = compareText(left.stableKey, right.stableKey);
|
|
102
|
+
if (stableKeyOrder !== 0)
|
|
103
|
+
return stableKeyOrder;
|
|
104
|
+
return left.inputIndex - right.inputIndex;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
// Packing has no receiver, camera, or scene-bounds context, so emitted linear-RGB
|
|
108
|
+
// luminance is the strongest deterministic contribution estimate available here.
|
|
109
|
+
// Per-fragment range, cone, and distance attenuation remains shader-owned.
|
|
110
|
+
function estimateLightContribution(light) {
|
|
111
|
+
const luminance = (finiteNonNegative(light.color[0]) * RELATIVE_LUMINANCE_RED
|
|
112
|
+
+ finiteNonNegative(light.color[1]) * RELATIVE_LUMINANCE_GREEN
|
|
113
|
+
+ finiteNonNegative(light.color[2]) * RELATIVE_LUMINANCE_BLUE);
|
|
114
|
+
const contribution = finiteNonNegative(light.intensity) * luminance;
|
|
115
|
+
return Number.isFinite(contribution) ? contribution : Number.MAX_VALUE;
|
|
116
|
+
}
|
|
117
|
+
function selectionEntry(light) {
|
|
118
|
+
return {
|
|
119
|
+
sourceId: light.sourceId,
|
|
120
|
+
sourceName: light.sourceName,
|
|
121
|
+
kind: light.light.kind,
|
|
122
|
+
contribution: light.contribution
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function lightSourceId(light) {
|
|
126
|
+
const id = light.source.id.trim();
|
|
127
|
+
return id || `anonymous-${light.kind}`;
|
|
128
|
+
}
|
|
129
|
+
function lightSourceName(light) {
|
|
130
|
+
const name = light.source.name.trim();
|
|
131
|
+
return name || lightSourceId(light);
|
|
132
|
+
}
|
|
133
|
+
function stableLightKey(light) {
|
|
134
|
+
return [
|
|
135
|
+
light.kind,
|
|
136
|
+
light.color,
|
|
137
|
+
light.intensity,
|
|
138
|
+
light.position,
|
|
139
|
+
light.direction,
|
|
140
|
+
light.right,
|
|
141
|
+
light.up,
|
|
142
|
+
light.range,
|
|
143
|
+
light.width,
|
|
144
|
+
light.height,
|
|
145
|
+
light.spotAngle,
|
|
146
|
+
light.penumbra,
|
|
147
|
+
light.castsShadow ? 1 : 0,
|
|
148
|
+
light.layerMask
|
|
149
|
+
].join("|");
|
|
150
|
+
}
|
|
151
|
+
function finiteNonNegative(value) {
|
|
152
|
+
return Number.isFinite(value) ? Math.max(0, value) : 0;
|
|
153
|
+
}
|
|
154
|
+
function compareText(left, right) {
|
|
155
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
156
|
+
}
|
|
27
157
|
function kindToFloat(kind) {
|
|
28
158
|
switch (kind) {
|
|
29
159
|
case "directional":
|
|
@@ -32,6 +162,8 @@ function kindToFloat(kind) {
|
|
|
32
162
|
return 1;
|
|
33
163
|
case "spot":
|
|
34
164
|
return 2;
|
|
165
|
+
case "rect-area":
|
|
166
|
+
return 3;
|
|
35
167
|
}
|
|
36
168
|
}
|
|
37
169
|
//# sourceMappingURL=LightUniforms.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightUniforms.js","sourceRoot":"","sources":["../../../../packages/rendering/src/LightUniforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"LightUniforms.js","sourceRoot":"","sources":["../../../../packages/rendering/src/LightUniforms.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ export interface LightingRigLightDescriptor {
|
|
|
12
12
|
readonly range: number;
|
|
13
13
|
readonly spotAngle: number;
|
|
14
14
|
readonly penumbra: number;
|
|
15
|
+
readonly width: number;
|
|
16
|
+
readonly height: number;
|
|
15
17
|
readonly castsShadow: boolean;
|
|
16
18
|
readonly claimBoundary: string;
|
|
17
19
|
}
|
|
@@ -47,7 +49,82 @@ export interface LightingRigOptions {
|
|
|
47
49
|
readonly intensityScale?: number;
|
|
48
50
|
readonly shadows?: boolean;
|
|
49
51
|
readonly includeUnsupportedDiagnostics?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Scale light *placements* to the rendered subject, keeping the rig's geometry across asset swaps.
|
|
54
|
+
*
|
|
55
|
+
* ## Why this exists
|
|
56
|
+
*
|
|
57
|
+
* Preset positions are authored for a subject about 1 unit tall. Every showcase route therefore ignored
|
|
58
|
+
* them and hand-authored its own coordinates: Turbo as `SCENE_SIZE` multiples, Blockfall and Aura Clash as
|
|
59
|
+
* bare numbers. The *structure* those routes built was identical -- ambient, key, opposing rims -- and only
|
|
60
|
+
* the coordinates differed, because each route re-derived where a rim belongs for its own subject size.
|
|
61
|
+
*
|
|
62
|
+
* That is the same defect class as the framing constants: a coordinate correct for one subject reads as a
|
|
63
|
+
* design decision, survives an asset swap, and is then silently wrong. Turbo's `CAR_SCENE_HEIGHT` and its
|
|
64
|
+
* hand-tuned chase height both outlived their assets exactly this way.
|
|
65
|
+
*
|
|
66
|
+
* Supplying `subject` multiplies each preset position by `subjectHeight` (and lateral placement by the
|
|
67
|
+
* subject's widest horizontal extent, since a rim must reach the silhouette edge to do anything), then
|
|
68
|
+
* lifts the rig onto `floorY`. Intensities are untouched: a rig that dimmed with subject size would make
|
|
69
|
+
* large subjects dark for no photographic reason.
|
|
70
|
+
*/
|
|
71
|
+
readonly subject?: LightingRigSubject;
|
|
72
|
+
}
|
|
73
|
+
/** Rendered subject measurements a rig scales its placements to. */
|
|
74
|
+
export interface LightingRigSubject {
|
|
75
|
+
/** Rendered subject height in world units. Pair with `resolveSubjectRenderedSize` so it is derived. */
|
|
76
|
+
readonly height: number;
|
|
77
|
+
/** Widest horizontal extent, used for lateral rim placement. Defaults to `height`. */
|
|
78
|
+
readonly width?: number;
|
|
79
|
+
/** World Y of the surface the subject stands on. Defaults to 0. */
|
|
80
|
+
readonly floorY?: number;
|
|
50
81
|
}
|
|
51
82
|
export declare function createLightingRig(options?: LightingRigOptions): LightingRig;
|
|
83
|
+
/** Placement for a rim light that follows a moving subject. */
|
|
84
|
+
export interface SubjectRimPlacement {
|
|
85
|
+
/** World position for the rim light. */
|
|
86
|
+
readonly position: readonly [number, number, number];
|
|
87
|
+
/** Point-light range, sized so falloff keeps the rim on the subject rather than the backdrop. */
|
|
88
|
+
readonly range: number;
|
|
89
|
+
}
|
|
90
|
+
export interface SubjectRimPlacementOptions {
|
|
91
|
+
/** Subject's current world position (its ground contact point). */
|
|
92
|
+
readonly subjectPosition: readonly [number, number, number];
|
|
93
|
+
/** Rendered subject height in world units. Everything below is a fraction of it. */
|
|
94
|
+
readonly subjectHeight: number;
|
|
95
|
+
/** Which side of the subject the rim sits on. */
|
|
96
|
+
readonly side: "left" | "right";
|
|
97
|
+
/**
|
|
98
|
+
* Depth offset behind the subject, as a fraction of subject height.
|
|
99
|
+
*
|
|
100
|
+
* Negative values sit behind a subject viewed down -z, which is what makes the light graze the silhouette
|
|
101
|
+
* edge instead of front-lighting the body.
|
|
102
|
+
*/
|
|
103
|
+
readonly depthFraction?: number | undefined;
|
|
104
|
+
/** Height above the subject's contact point, as a fraction of subject height. */
|
|
105
|
+
readonly heightFraction?: number | undefined;
|
|
106
|
+
/** Lateral offset, as a fraction of subject height. */
|
|
107
|
+
readonly lateralFraction?: number | undefined;
|
|
108
|
+
/** Range as a fraction of subject height. */
|
|
109
|
+
readonly rangeFraction?: number | undefined;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Place a rim light relative to a moving subject.
|
|
113
|
+
*
|
|
114
|
+
* ## Why this is reusable rather than route-local
|
|
115
|
+
*
|
|
116
|
+
* Aura Clash computes per-fighter rim placement inline as
|
|
117
|
+
* `(fighter.x ± 0.34, fighter.y + 1.22, -0.72)` with `range = 1.5`. Against its 1.829-unit fighter rig those
|
|
118
|
+
* are 0.186x, 0.667x, -0.394x and 0.820x of subject height respectively — clean photographic ratios written as
|
|
119
|
+
* absolute literals. Any fighter rig of a different height silently breaks them: the rim drifts off the
|
|
120
|
+
* silhouette and stops separating the subject from the backdrop, which is the one thing a rim exists to do.
|
|
121
|
+
*
|
|
122
|
+
* That is the same defect class as the framing constants removed earlier in this work: a coordinate correct
|
|
123
|
+
* for one asset reads as a design decision, survives a swap, and is then wrong. Expressing the ratios keeps
|
|
124
|
+
* the intent ("upper-torso height, slightly outboard, behind the subject") and lets the numbers follow the rig.
|
|
125
|
+
*
|
|
126
|
+
* The defaults are Aura Clash's measured values, so adopting this helper is a no-op for its current rig.
|
|
127
|
+
*/
|
|
128
|
+
export declare function resolveSubjectRimPlacement(options: SubjectRimPlacementOptions): SubjectRimPlacement;
|
|
52
129
|
export declare function listLightingRigPresets(): readonly LightingRigPreset[];
|
|
53
130
|
//# sourceMappingURL=LightingRig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightingRig.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/LightingRig.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LightingRig.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/LightingRig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,gBAAgB,GAChB,KAAK,GACL,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,MAAM,6BAA6B,GACrC,wBAAwB,GACxB,yBAAyB,GACzB,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,eAAe,CAAC;IACzF,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACvE,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC5D,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACjD;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CACvC;AAED,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,uGAAuG;IACvG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sFAAsF;IACtF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,WAAW,CA8B/E;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,iGAAiG;IACjG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,mEAAmE;IACnE,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5D,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,iFAAiF;IACjF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,uDAAuD;IACvD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,6CAA6C;IAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,0BAA0B,GAAG,mBAAmB,CAYnG;AAwBD,wBAAgB,sBAAsB,IAAI,SAAS,iBAAiB,EAAE,CAErE"}
|