@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
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reusable depth-layered environment composition.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this exists
|
|
5
|
+
*
|
|
6
|
+
* Skyline Runner reads as a clean prototype rather than a game, and the measured reason is
|
|
7
|
+
* composition, not asset quality: in the retained route-primary frame a single flat sky bucket covers
|
|
8
|
+
* **44.3%** of the scene viewport, and flat sky plus flat ground together cover **24.9%** even after
|
|
9
|
+
* quantisation, with the playable content compressed into one horizontal band. There is no
|
|
10
|
+
* foreground, no middle distance, and no atmospheric separation -- so every element reads at the same
|
|
11
|
+
* apparent depth and the frame has no hierarchy.
|
|
12
|
+
*
|
|
13
|
+
* The instinct is to hand-place more props in the route. That is exactly what produced 30,141 lines of
|
|
14
|
+
* route-local visual code across four showcase games against 3,072 reusable lines. Skyline needs the
|
|
15
|
+
* *capability*, not the placements: a route should declare depth layers, density targets and spacing
|
|
16
|
+
* constraints, and reusable code should produce a deterministic composition from them.
|
|
17
|
+
*
|
|
18
|
+
* ## What this module does and does not do
|
|
19
|
+
*
|
|
20
|
+
* It is a pure **placement planner**. It consumes a declarative spec and returns typed placements with
|
|
21
|
+
* layer identity, depth, scale and a variation seed. It deliberately does not construct scene nodes,
|
|
22
|
+
* reference any renderer type, or know about Skyline, platformers, or any specific asset -- so the same
|
|
23
|
+
* planner serves racing set dressing, city blocks, or arena surrounds.
|
|
24
|
+
*
|
|
25
|
+
* Determinism is a hard requirement, not a convenience: retained screenshot evidence is only
|
|
26
|
+
* comparable if the same spec yields byte-identical placements. Placement therefore uses an explicit
|
|
27
|
+
* seeded PRNG, never `Math.random`.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Plan a deterministic layered composition.
|
|
31
|
+
*
|
|
32
|
+
* Placement is rejection-sampled against `minSpacing` and `protectedZones` rather than nudged, because
|
|
33
|
+
* nudging a rejected placement biases props toward zone edges and produces visible clumping at exactly
|
|
34
|
+
* the boundaries gameplay cares about.
|
|
35
|
+
*/
|
|
36
|
+
export function planLayeredSceneComposition(spec) {
|
|
37
|
+
const densityScale = positiveOr(spec.densityScale, 1);
|
|
38
|
+
const placements = [];
|
|
39
|
+
const layerReports = [];
|
|
40
|
+
// One stream per layer, seeded from the spec seed and the layer index, so adding or removing a
|
|
41
|
+
// layer cannot reshuffle the layers before it.
|
|
42
|
+
for (const [layerIndex, layer] of spec.layers.entries()) {
|
|
43
|
+
const random = createSeededRandom(spec.seed + layerIndex * 0x9e37);
|
|
44
|
+
const span = normalizedRange(layer.span);
|
|
45
|
+
const spanWidth = Math.max(0, span[1] - span[0]);
|
|
46
|
+
const requested = Math.max(0, Math.round(spanWidth * Math.max(0, layer.densityPerUnit) * densityScale));
|
|
47
|
+
const candidates = weightedPropKinds(layer.props);
|
|
48
|
+
const heightRange = normalizedRange(layer.heightRange ?? [0, 0]);
|
|
49
|
+
const scaleRange = normalizedRange(layer.scaleRange);
|
|
50
|
+
const minSpacing = Math.max(0, layer.minSpacing ?? 0);
|
|
51
|
+
const atmosphere = clamp01(layer.atmosphere ?? 0);
|
|
52
|
+
const zones = (spec.protectedZones ?? []).filter((zone) => !zone.roles || zone.roles.includes(layer.role));
|
|
53
|
+
const placedXs = [];
|
|
54
|
+
let rejectedForSpacing = 0;
|
|
55
|
+
let rejectedForProtectedZone = 0;
|
|
56
|
+
const usedProps = new Set();
|
|
57
|
+
if (candidates.length > 0 && requested > 0 && spanWidth > 0) {
|
|
58
|
+
// Bounded attempts: a dense layer inside a tight span can be genuinely unsatisfiable, and a
|
|
59
|
+
// planner must degrade to fewer props rather than loop forever.
|
|
60
|
+
const maxAttempts = requested * 12 + 24;
|
|
61
|
+
for (let attempt = 0; attempt < maxAttempts && placedXs.length < requested; attempt += 1) {
|
|
62
|
+
const x = round4(span[0] + random() * spanWidth);
|
|
63
|
+
if (zones.some((zone) => withinRange(x, normalizedRange(zone.span)))) {
|
|
64
|
+
rejectedForProtectedZone += 1;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (minSpacing > 0 && placedXs.some((existing) => Math.abs(existing - x) < minSpacing)) {
|
|
68
|
+
rejectedForSpacing += 1;
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const kind = pickWeighted(candidates, random());
|
|
72
|
+
const baseScale = scaleRange[0] + random() * (scaleRange[1] - scaleRange[0]);
|
|
73
|
+
placedXs.push(x);
|
|
74
|
+
usedProps.add(kind.id);
|
|
75
|
+
placements.push({
|
|
76
|
+
layer: layer.role,
|
|
77
|
+
prop: kind.id,
|
|
78
|
+
x,
|
|
79
|
+
y: round4(heightRange[0] + random() * (heightRange[1] - heightRange[0])),
|
|
80
|
+
z: round4(layer.depth),
|
|
81
|
+
scale: round4(baseScale * positiveOr(kind.scaleBias, 1)),
|
|
82
|
+
// Full-circle yaw variation: repeated props are the main source of visible cloning.
|
|
83
|
+
rotationY: round4(random() * Math.PI * 2),
|
|
84
|
+
variation: round4(random()),
|
|
85
|
+
atmosphere
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
layerReports.push({
|
|
90
|
+
role: layer.role,
|
|
91
|
+
depth: round4(layer.depth),
|
|
92
|
+
requested,
|
|
93
|
+
placed: placedXs.length,
|
|
94
|
+
rejectedForSpacing,
|
|
95
|
+
rejectedForProtectedZone,
|
|
96
|
+
distinctProps: usedProps.size,
|
|
97
|
+
atmosphere
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
kind: "aura-layered-scene-composition",
|
|
102
|
+
seed: spec.seed,
|
|
103
|
+
placements,
|
|
104
|
+
layers: layerReports,
|
|
105
|
+
populatedRoles: layerReports.filter((report) => report.placed > 0).map((report) => report.role)
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export function platformerCompositionSpec(options) {
|
|
109
|
+
const span = normalizedRange(options.span);
|
|
110
|
+
const width = Math.max(0.001, span[1] - span[0]);
|
|
111
|
+
return {
|
|
112
|
+
seed: options.seed,
|
|
113
|
+
...(options.densityScale !== undefined ? { densityScale: options.densityScale } : {}),
|
|
114
|
+
...(options.protectedZones ? { protectedZones: options.protectedZones } : {}),
|
|
115
|
+
layers: [
|
|
116
|
+
{
|
|
117
|
+
// Nearest band, in front of the play plane. Sparse and large: it frames the shot and creates
|
|
118
|
+
// parallax without ever occluding gameplay, which is why its density is the lowest.
|
|
119
|
+
//
|
|
120
|
+
// Density is per *unit*, so a level whose visible window is only a fraction of its full span
|
|
121
|
+
// gets very few near props in frame. `0.5` keeps a near band present at typical side-scroller
|
|
122
|
+
// camera distances; the earlier `0.12` produced two props across the whole level, both of which
|
|
123
|
+
// fell outside the camera's view of the start area.
|
|
124
|
+
role: "foreground",
|
|
125
|
+
depth: options.gameplayDepth + width * 0.06,
|
|
126
|
+
span,
|
|
127
|
+
props: options.foregroundProps,
|
|
128
|
+
densityPerUnit: 0.28,
|
|
129
|
+
scaleRange: [0.9, 1.4],
|
|
130
|
+
minSpacing: width * 0.07,
|
|
131
|
+
heightRange: [-0.05, 0.05],
|
|
132
|
+
atmosphere: 0
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
// The layer Skyline is missing entirely. Densest of the set: middle distance is what makes a
|
|
136
|
+
// frame read as a populated world rather than props on an empty plane.
|
|
137
|
+
role: "midground",
|
|
138
|
+
depth: options.gameplayDepth - width * 0.1,
|
|
139
|
+
span: [span[0] - width * 0.08, span[1] + width * 0.08],
|
|
140
|
+
props: options.midgroundProps,
|
|
141
|
+
densityPerUnit: 1.0,
|
|
142
|
+
scaleRange: [0.55, 0.95],
|
|
143
|
+
minSpacing: width * 0.012,
|
|
144
|
+
heightRange: [-0.1, 0.25],
|
|
145
|
+
atmosphere: 0.35
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
// Far silhouettes. Heavily attenuated so they separate from the midground by value rather
|
|
149
|
+
// than by detail, which is what stops a low-poly asset set reading as flat.
|
|
150
|
+
role: "far-background",
|
|
151
|
+
depth: options.gameplayDepth - width * 0.34,
|
|
152
|
+
span: [span[0] - width * 0.2, span[1] + width * 0.2],
|
|
153
|
+
props: options.backgroundProps,
|
|
154
|
+
densityPerUnit: 0.5,
|
|
155
|
+
scaleRange: [1.1, 2.2],
|
|
156
|
+
minSpacing: width * 0.03,
|
|
157
|
+
heightRange: [-0.2, 0.5],
|
|
158
|
+
atmosphere: 0.72
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Measure how much of a frame is flat, unbroken sky or ground.
|
|
165
|
+
*
|
|
166
|
+
* Skyline's core defect is measurable and therefore gateable. This computes the dominant-flat-region
|
|
167
|
+
* fraction so a composition change can be held to a documented threshold instead of an opinion.
|
|
168
|
+
*/
|
|
169
|
+
export function measureFlatRegionFraction(pixels, width, height, options = {}) {
|
|
170
|
+
const channels = options.channels ?? 4;
|
|
171
|
+
const shift = Math.max(0, Math.min(7, options.quantiseBits ?? 4));
|
|
172
|
+
const total = Math.max(1, width * height);
|
|
173
|
+
const counts = new Map();
|
|
174
|
+
for (let index = 0; index + channels - 1 < pixels.length; index += channels) {
|
|
175
|
+
const r = (pixels[index] ?? 0) >> shift;
|
|
176
|
+
const g = (pixels[index + 1] ?? 0) >> shift;
|
|
177
|
+
const b = (pixels[index + 2] ?? 0) >> shift;
|
|
178
|
+
const key = (r << 16) | (g << 8) | b;
|
|
179
|
+
counts.set(key, (counts.get(key) ?? 0) + 1);
|
|
180
|
+
}
|
|
181
|
+
const sorted = [...counts.values()].sort((a, b) => b - a);
|
|
182
|
+
const dominant = sorted[0] ?? 0;
|
|
183
|
+
// Flat region = the two largest buckets, which for an outdoor frame are sky and ground.
|
|
184
|
+
const flat = dominant + (sorted[1] ?? 0);
|
|
185
|
+
return {
|
|
186
|
+
flatFraction: round4(flat / total),
|
|
187
|
+
dominantBucketFraction: round4(dominant / total),
|
|
188
|
+
distinctBuckets: counts.size
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Small deterministic PRNG (mulberry32).
|
|
193
|
+
*
|
|
194
|
+
* Chosen over any ambient randomness because retained screenshot evidence must be reproducible: the
|
|
195
|
+
* same spec has to yield identical placements on every machine and every run.
|
|
196
|
+
*/
|
|
197
|
+
function createSeededRandom(seed) {
|
|
198
|
+
let state = (seed | 0) + 0x6d2b79f5;
|
|
199
|
+
return () => {
|
|
200
|
+
state = (state + 0x6d2b79f5) | 0;
|
|
201
|
+
let t = Math.imul(state ^ (state >>> 15), 1 | state);
|
|
202
|
+
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
|
|
203
|
+
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
function weightedPropKinds(props) {
|
|
207
|
+
const out = [];
|
|
208
|
+
let cumulative = 0;
|
|
209
|
+
for (const prop of props) {
|
|
210
|
+
const weight = positiveOr(prop.weight, 1);
|
|
211
|
+
cumulative += weight;
|
|
212
|
+
out.push({ ...prop, cumulative });
|
|
213
|
+
}
|
|
214
|
+
return out;
|
|
215
|
+
}
|
|
216
|
+
function pickWeighted(candidates, sample) {
|
|
217
|
+
const last = candidates[candidates.length - 1];
|
|
218
|
+
if (!last)
|
|
219
|
+
throw new Error("planLayeredSceneComposition requires at least one prop kind per populated layer.");
|
|
220
|
+
const target = sample * last.cumulative;
|
|
221
|
+
for (const candidate of candidates) {
|
|
222
|
+
if (target < candidate.cumulative)
|
|
223
|
+
return candidate;
|
|
224
|
+
}
|
|
225
|
+
return last;
|
|
226
|
+
}
|
|
227
|
+
function normalizedRange(range) {
|
|
228
|
+
return range[0] <= range[1] ? [range[0], range[1]] : [range[1], range[0]];
|
|
229
|
+
}
|
|
230
|
+
function withinRange(value, range) {
|
|
231
|
+
return value >= range[0] && value <= range[1];
|
|
232
|
+
}
|
|
233
|
+
function positiveOr(value, fallback) {
|
|
234
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : fallback;
|
|
235
|
+
}
|
|
236
|
+
function clamp01(value) {
|
|
237
|
+
return Math.min(1, Math.max(0, value));
|
|
238
|
+
}
|
|
239
|
+
function round4(value) {
|
|
240
|
+
const rounded = Math.round(value * 10_000) / 10_000;
|
|
241
|
+
return rounded === 0 ? 0 : rounded;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Plan a banded sky backdrop from declarative intent.
|
|
245
|
+
*
|
|
246
|
+
* Bands above the horizon band are distributed with increasing height, because a linear split puts
|
|
247
|
+
* equal value change into the zenith (where a viewer reads none) and the horizon (where all of it is).
|
|
248
|
+
*/
|
|
249
|
+
export function planSkyBackdrop(spec) {
|
|
250
|
+
const span = normalizedRange(spec.span);
|
|
251
|
+
// Widen well past the span: a backdrop whose edge enters frame is worse than no backdrop, and the
|
|
252
|
+
// camera's horizontal view at side-scroller distances exceeds the level span.
|
|
253
|
+
const width = round4(Math.max(0.001, (span[1] - span[0]) * 1.6 + 12));
|
|
254
|
+
const height = Math.max(0.001, spec.height);
|
|
255
|
+
const bandCount = resolveBandCount(spec.bands, 4);
|
|
256
|
+
const horizonFraction = Math.min(0.8, Math.max(0.05, positiveOr(spec.horizonBandFraction, 0.22)));
|
|
257
|
+
const z = round4(spec.depth);
|
|
258
|
+
const bands = [];
|
|
259
|
+
// Sky side, upward from the horizon.
|
|
260
|
+
for (const band of gradedBands(height, bandCount, horizonFraction)) {
|
|
261
|
+
bands.push({
|
|
262
|
+
index: band.index,
|
|
263
|
+
side: "sky",
|
|
264
|
+
centerY: round4(spec.horizonY + band.offset + band.height / 2),
|
|
265
|
+
height: round4(band.height),
|
|
266
|
+
width,
|
|
267
|
+
z,
|
|
268
|
+
blend: round4(band.blend),
|
|
269
|
+
// Horizon glow: strongest at blend 0, never fully dark at the zenith.
|
|
270
|
+
emissiveIntensity: round4(0.52 - band.blend * 0.34)
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
// Ground side, downward from the horizon. Requested explicitly, because many scenes show nothing there.
|
|
274
|
+
const belowHeight = Math.max(0, spec.belowHorizonHeight ?? 0);
|
|
275
|
+
if (belowHeight > 0) {
|
|
276
|
+
const belowCount = resolveBandCount(spec.belowHorizonBands, Math.max(2, Math.round(bandCount / 2)));
|
|
277
|
+
for (const band of gradedBands(belowHeight, belowCount, horizonFraction)) {
|
|
278
|
+
bands.push({
|
|
279
|
+
index: band.index,
|
|
280
|
+
side: "ground",
|
|
281
|
+
centerY: round4(spec.horizonY - band.offset - band.height / 2),
|
|
282
|
+
height: round4(band.height),
|
|
283
|
+
width,
|
|
284
|
+
z,
|
|
285
|
+
blend: round4(band.blend),
|
|
286
|
+
// Ground darkens away from the horizon, mirroring the sky's falloff rather than repeating it.
|
|
287
|
+
emissiveIntensity: round4(0.34 - band.blend * 0.26)
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return {
|
|
292
|
+
kind: "aura-sky-backdrop-plan",
|
|
293
|
+
bands,
|
|
294
|
+
horizonY: round4(spec.horizonY),
|
|
295
|
+
zenithY: round4(spec.horizonY + height),
|
|
296
|
+
nadirY: round4(spec.horizonY - belowHeight)
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Clamp an explicitly provided band count rather than falling back to the default.
|
|
301
|
+
*
|
|
302
|
+
* `positiveOr(count, fallback)` would turn an explicit `0` into the default, which is unpredictable: a
|
|
303
|
+
* caller who computed a count and got zero would silently receive the default instead of the documented
|
|
304
|
+
* floor. `undefined` means "use the default"; any provided number is clamped into the supported range.
|
|
305
|
+
*/
|
|
306
|
+
function resolveBandCount(requested, fallback) {
|
|
307
|
+
if (requested === undefined || !Number.isFinite(requested))
|
|
308
|
+
return fallback;
|
|
309
|
+
// Upper bound raised from 12 to 32: at 5 bands over Skyline's own ramp the measured step was 21 per
|
|
310
|
+
// channel, which reads as visible banding rather than a gradient (see `skyBandCountForRamp`). Keeping a
|
|
311
|
+
// bound at all still prevents a caller from requesting thousands of quads by accident.
|
|
312
|
+
return Math.max(2, Math.min(32, Math.round(requested)));
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Distribute one side of the backdrop into contiguous bands, finest at the horizon.
|
|
316
|
+
*
|
|
317
|
+
* Band heights grow away from the horizon because a linear split puts equal value change into the zenith
|
|
318
|
+
* (where a viewer reads none) and the horizon (where all of it is).
|
|
319
|
+
*/
|
|
320
|
+
function gradedBands(height, count, horizonFraction) {
|
|
321
|
+
const horizonHeight = height * horizonFraction;
|
|
322
|
+
const remaining = height - horizonHeight;
|
|
323
|
+
const weights = [];
|
|
324
|
+
for (let index = 1; index < count; index += 1)
|
|
325
|
+
weights.push(index);
|
|
326
|
+
const weightTotal = weights.reduce((sum, weight) => sum + weight, 0) || 1;
|
|
327
|
+
const out = [];
|
|
328
|
+
let offset = 0;
|
|
329
|
+
for (let index = 0; index < count; index += 1) {
|
|
330
|
+
const bandHeight = index === 0 ? horizonHeight : (remaining * (weights[index - 1] ?? 1)) / weightTotal;
|
|
331
|
+
out.push({ index, offset, height: bandHeight, blend: count === 1 ? 0 : index / (count - 1) });
|
|
332
|
+
offset += bandHeight;
|
|
333
|
+
}
|
|
334
|
+
return out;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Interpolate a hex colour ramp for a band's `blend`.
|
|
338
|
+
*
|
|
339
|
+
* Provided here rather than left to each route because "gradient sky" is only reusable if producing the
|
|
340
|
+
* per-band colour is reusable too; a route that has to write its own hex mixing has not been relieved
|
|
341
|
+
* of the art-direction code this layer exists to absorb.
|
|
342
|
+
*/
|
|
343
|
+
export function blendSkyBandColor(horizonColor, zenithColor, blend) {
|
|
344
|
+
const from = parseHexColor(horizonColor);
|
|
345
|
+
const to = parseHexColor(zenithColor);
|
|
346
|
+
const t = clamp01(blend);
|
|
347
|
+
const mix = (a, b) => Math.round(a + (b - a) * t);
|
|
348
|
+
return `#${[mix(from[0], to[0]), mix(from[1], to[1]), mix(from[2], to[2])]
|
|
349
|
+
.map((channel) => Math.min(255, Math.max(0, channel)).toString(16).padStart(2, "0"))
|
|
350
|
+
.join("")}`;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Minimum band count that keeps a colour ramp from reading as visible banding.
|
|
354
|
+
*
|
|
355
|
+
* ## Why this is a reusable function and not a constant
|
|
356
|
+
*
|
|
357
|
+
* A banded backdrop trades one defect for another if the band count is chosen by eye. Skyline's first
|
|
358
|
+
* banded sky used 5 bands over `#4e93b4 -> #173a5c`; sampling the rendered frame down a backdrop-only
|
|
359
|
+
* column measured hard steps of **21 per channel** at the horizon and 18 in the ground ramp -- a visible
|
|
360
|
+
* stair, replacing "flat sky" with "banded sky".
|
|
361
|
+
*
|
|
362
|
+
* The step size is a property of the *ramp*, not of taste: it is the largest per-channel endpoint
|
|
363
|
+
* distance divided by the number of gaps between bands. So the correct band count is derivable, and any
|
|
364
|
+
* route with any pair of colours can derive it instead of guessing. `maxChannelStep` defaults to 8, which
|
|
365
|
+
* is below the threshold where adjacent flat quads read as an edge at typical viewing sizes.
|
|
366
|
+
*/
|
|
367
|
+
export function skyBandCountForRamp(fromColor, toColor, maxChannelStep = 8) {
|
|
368
|
+
const from = parseHexColor(fromColor);
|
|
369
|
+
const to = parseHexColor(toColor);
|
|
370
|
+
const widestChannelRange = Math.max(Math.abs(from[0] - to[0]), Math.abs(from[1] - to[1]), Math.abs(from[2] - to[2]));
|
|
371
|
+
const step = Math.max(1, maxChannelStep);
|
|
372
|
+
// `+ 1` converts gaps to bands; a 2-band backdrop has one gap.
|
|
373
|
+
return Math.max(2, Math.ceil(widestChannelRange / step) + 1);
|
|
374
|
+
}
|
|
375
|
+
function parseHexColor(value) {
|
|
376
|
+
const hex = value.trim().replace(/^#/, "");
|
|
377
|
+
const expanded = hex.length === 3 ? hex.split("").map((char) => char + char).join("") : hex;
|
|
378
|
+
if (!/^[0-9a-fA-F]{6}$/.test(expanded)) {
|
|
379
|
+
throw new Error(`blendSkyBandColor requires a 3- or 6-digit hex colour, received "${value}".`);
|
|
380
|
+
}
|
|
381
|
+
return [
|
|
382
|
+
Number.parseInt(expanded.slice(0, 2), 16),
|
|
383
|
+
Number.parseInt(expanded.slice(2, 4), 16),
|
|
384
|
+
Number.parseInt(expanded.slice(4, 6), 16)
|
|
385
|
+
];
|
|
386
|
+
}
|
|
387
|
+
//# sourceMappingURL=LayeredSceneComposition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayeredSceneComposition.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/LayeredSceneComposition.ts"],"names":[],"mappings":"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"}
|
|
@@ -156,4 +156,66 @@ export declare function groundedRenderedAssetPlacement(asset: SceneAssetLike, op
|
|
|
156
156
|
* center is given the asset is treated as origin-centered.
|
|
157
157
|
*/
|
|
158
158
|
export declare function boundsFromSize(size: Vec3, center?: Vec3): SceneBounds;
|
|
159
|
+
/**
|
|
160
|
+
* Derived subject facts the brief's WS4 list names that had no reusable derivation.
|
|
161
|
+
*
|
|
162
|
+
* ## Why these are here rather than in each route
|
|
163
|
+
*
|
|
164
|
+
* WS4 lists 15 values a reusable typed helper should derive so "route code does not know raw asset dimensions".
|
|
165
|
+
* Ten existed. Five did not, and each is a value a route would otherwise compute inline from bounds -- which is
|
|
166
|
+
* exactly how `CAR_SCENE_HEIGHT` came to be hardcoded to one asset's ratio and survive two hero swaps.
|
|
167
|
+
*
|
|
168
|
+
* All five are derived from a scaled `SceneBounds`, so a route states intent and reads back facts.
|
|
169
|
+
*/
|
|
170
|
+
export interface SubjectPlacementFacts {
|
|
171
|
+
/** World-space point where the subject's lowest geometry meets the floor. */
|
|
172
|
+
readonly groundContact: Vec3;
|
|
173
|
+
/** Centre of the subject's bounds after placement, i.e. what a camera should look at. */
|
|
174
|
+
readonly visualCenter: Vec3;
|
|
175
|
+
/**
|
|
176
|
+
* Volume-weighted centroid approximation.
|
|
177
|
+
*
|
|
178
|
+
* Deliberately an approximation from the bounding box, not a mesh integral: a route framing a vehicle wants
|
|
179
|
+
* "roughly where the mass sits" for camera pitch and lean, and computing a true centre of mass would need
|
|
180
|
+
* per-triangle volume the typed manifest does not carry. Named `approximation` so no caller mistakes it for one.
|
|
181
|
+
*/
|
|
182
|
+
readonly centerOfMassApproximation: Vec3;
|
|
183
|
+
/** Placed world bounds, for framing tests that must not clip the subject. */
|
|
184
|
+
readonly framingBounds: SceneBounds;
|
|
185
|
+
/**
|
|
186
|
+
* Forward axis, or `undefined` when the asset declares none.
|
|
187
|
+
*
|
|
188
|
+
* Never inferred. A symmetric body has no intrinsic front, and guessing produces a vehicle facing backwards --
|
|
189
|
+
* the same reason admission reports orientation as evidence rather than derivation.
|
|
190
|
+
*/
|
|
191
|
+
readonly forwardAxis: Vec3 | undefined;
|
|
192
|
+
/** Contact patch the subject's lower silhouette occupies, for wheel/foot readability checks. */
|
|
193
|
+
readonly contactRegion: {
|
|
194
|
+
readonly min: Vec3;
|
|
195
|
+
readonly max: Vec3;
|
|
196
|
+
readonly depth: number;
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
export interface SubjectPlacementRequest {
|
|
200
|
+
/** Rendered scale applied to the asset's raw bounds. */
|
|
201
|
+
readonly scale: number;
|
|
202
|
+
/** Floor position, defaulting to the origin. */
|
|
203
|
+
readonly x?: number | undefined;
|
|
204
|
+
readonly z?: number | undefined;
|
|
205
|
+
readonly floorY?: number | undefined;
|
|
206
|
+
/** Declared forward axis from manifest evidence. Omit when the asset declares none. */
|
|
207
|
+
readonly forwardAxis?: Vec3 | undefined;
|
|
208
|
+
/**
|
|
209
|
+
* Fraction of subject height treated as the contact region, for wheel or foot readability.
|
|
210
|
+
* Defaults to 0.3, matching the wheel-band fraction the vehicle visibility probe measures.
|
|
211
|
+
*/
|
|
212
|
+
readonly contactRegionFraction?: number | undefined;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Derive placement facts for a subject from its raw bounds and an intended scale.
|
|
216
|
+
*
|
|
217
|
+
* Pure: no renderer, no asset loading. A route passes bounds it already has typed access to and reads back the
|
|
218
|
+
* five WS4 values instead of computing them from dimensions it should not need to know.
|
|
219
|
+
*/
|
|
220
|
+
export declare function resolveSubjectPlacementFacts(bounds: SceneBounds, request: SubjectPlacementRequest): SubjectPlacementFacts;
|
|
159
221
|
//# sourceMappingURL=SceneGroundingUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneGroundingUtils.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/SceneGroundingUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SceneGroundingUtils.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/SceneGroundingUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -187,4 +187,41 @@ function toVec3(value) {
|
|
|
187
187
|
const vec = [Number(value[0]), Number(value[1]), Number(value[2])];
|
|
188
188
|
return vec.every((component) => Number.isFinite(component)) ? vec : undefined;
|
|
189
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Derive placement facts for a subject from its raw bounds and an intended scale.
|
|
192
|
+
*
|
|
193
|
+
* Pure: no renderer, no asset loading. A route passes bounds it already has typed access to and reads back the
|
|
194
|
+
* five WS4 values instead of computing them from dimensions it should not need to know.
|
|
195
|
+
*/
|
|
196
|
+
export function resolveSubjectPlacementFacts(bounds, request) {
|
|
197
|
+
const scale = Number.isFinite(request.scale) && request.scale > 0 ? request.scale : 1;
|
|
198
|
+
const x = request.x ?? 0;
|
|
199
|
+
const z = request.z ?? 0;
|
|
200
|
+
const floorY = request.floorY ?? 0;
|
|
201
|
+
const size = boundsSize(bounds).map((value) => value * scale);
|
|
202
|
+
// Scaled bounds, translated so the lowest point rests on the floor at (x, z).
|
|
203
|
+
const min = [x - size[0] / 2, floorY, z - size[2] / 2];
|
|
204
|
+
const max = [x + size[0] / 2, floorY + size[1], z + size[2] / 2];
|
|
205
|
+
const fraction = Math.min(1, Math.max(0.01, request.contactRegionFraction ?? 0.3));
|
|
206
|
+
const contactDepth = size[1] * fraction;
|
|
207
|
+
return {
|
|
208
|
+
groundContact: [x, floorY, z],
|
|
209
|
+
visualCenter: [x, floorY + size[1] / 2, z],
|
|
210
|
+
/*
|
|
211
|
+
* Biased below the geometric centre.
|
|
212
|
+
*
|
|
213
|
+
* A vehicle or character carries most of its mass low -- drivetrain and floorpan, legs and torso -- so the
|
|
214
|
+
* bounding-box centre sits above the real centroid. 0.42 of height is a standard approximation for wheeled
|
|
215
|
+
* subjects and keeps camera pitch from looking down on a subject that should read as planted.
|
|
216
|
+
*/
|
|
217
|
+
centerOfMassApproximation: [x, floorY + size[1] * 0.42, z],
|
|
218
|
+
framingBounds: { min, max },
|
|
219
|
+
forwardAxis: request.forwardAxis,
|
|
220
|
+
contactRegion: {
|
|
221
|
+
min,
|
|
222
|
+
max: [max[0], floorY + contactDepth, max[2]],
|
|
223
|
+
depth: contactDepth
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
}
|
|
190
227
|
//# sourceMappingURL=SceneGroundingUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneGroundingUtils.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/SceneGroundingUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SceneGroundingUtils.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/SceneGroundingUtils.ts"],"names":[],"mappings":"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"}
|