@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,4 +1,4 @@
|
|
|
1
|
-
import { DirectionalLight, Light, PointLight, SpotLight } from "../scene/index.js";
|
|
1
|
+
import { DirectionalLight, Light, PointLight, RectAreaLight, SpotLight } from "../scene/index.js";
|
|
2
2
|
export function createLightingRig(options = {}) {
|
|
3
3
|
const preset = options.preset ?? "key-fill-rim";
|
|
4
4
|
const intensityScale = positive(options.intensityScale ?? 1, "lighting rig intensityScale");
|
|
@@ -6,6 +6,7 @@ export function createLightingRig(options = {}) {
|
|
|
6
6
|
const lights = lightingRigDescriptors(preset).map((light) => ({
|
|
7
7
|
...light,
|
|
8
8
|
intensity: round3(light.intensity * intensityScale),
|
|
9
|
+
position: scaleRigPosition(light.position, options.subject),
|
|
9
10
|
castsShadow: shadows && light.castsShadow
|
|
10
11
|
}));
|
|
11
12
|
const softboxes = lightingRigSoftboxes(preset).map((softbox) => ({
|
|
@@ -25,10 +26,59 @@ export function createLightingRig(options = {}) {
|
|
|
25
26
|
softboxProxyCount: softboxes.length,
|
|
26
27
|
unsupportedFeatures,
|
|
27
28
|
disclosures: unsupportedFeatures.map(lightingDisclosure),
|
|
28
|
-
claimBoundary: "Lighting rigs are reusable direct-light descriptors for A3D ForwardPass
|
|
29
|
+
claimBoundary: "Lighting rigs are reusable direct-light descriptors for A3D ForwardPass, including finite rectangular emitters in studio presets; IES profiles, GI, contact shadows, cascaded shadows, and rectangular-light shadow maps require separate renderer evidence."
|
|
29
30
|
}
|
|
30
31
|
};
|
|
31
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Place a rim light relative to a moving subject.
|
|
35
|
+
*
|
|
36
|
+
* ## Why this is reusable rather than route-local
|
|
37
|
+
*
|
|
38
|
+
* Aura Clash computes per-fighter rim placement inline as
|
|
39
|
+
* `(fighter.x ± 0.34, fighter.y + 1.22, -0.72)` with `range = 1.5`. Against its 1.829-unit fighter rig those
|
|
40
|
+
* are 0.186x, 0.667x, -0.394x and 0.820x of subject height respectively — clean photographic ratios written as
|
|
41
|
+
* absolute literals. Any fighter rig of a different height silently breaks them: the rim drifts off the
|
|
42
|
+
* silhouette and stops separating the subject from the backdrop, which is the one thing a rim exists to do.
|
|
43
|
+
*
|
|
44
|
+
* That is the same defect class as the framing constants removed earlier in this work: a coordinate correct
|
|
45
|
+
* for one asset reads as a design decision, survives a swap, and is then wrong. Expressing the ratios keeps
|
|
46
|
+
* the intent ("upper-torso height, slightly outboard, behind the subject") and lets the numbers follow the rig.
|
|
47
|
+
*
|
|
48
|
+
* The defaults are Aura Clash's measured values, so adopting this helper is a no-op for its current rig.
|
|
49
|
+
*/
|
|
50
|
+
export function resolveSubjectRimPlacement(options) {
|
|
51
|
+
const height = Math.max(1e-6, options.subjectHeight);
|
|
52
|
+
const lateral = height * (options.lateralFraction ?? 0.1859);
|
|
53
|
+
const sign = options.side === "left" ? -1 : 1;
|
|
54
|
+
return {
|
|
55
|
+
position: [
|
|
56
|
+
round3((options.subjectPosition[0] ?? 0) + sign * lateral),
|
|
57
|
+
round3((options.subjectPosition[1] ?? 0) + height * (options.heightFraction ?? 0.667)),
|
|
58
|
+
round3((options.subjectPosition[2] ?? 0) + height * (options.depthFraction ?? -0.3937))
|
|
59
|
+
],
|
|
60
|
+
range: round3(height * (options.rangeFraction ?? 0.8201))
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Scale a preset placement onto a subject.
|
|
65
|
+
*
|
|
66
|
+
* Lateral (X) placement follows the subject's widest horizontal extent so a rim actually reaches the
|
|
67
|
+
* silhouette edge; height and depth follow subject height so the rig's vertical geometry is preserved.
|
|
68
|
+
* Returns the authored position unchanged when no subject is supplied, so existing callers are unaffected.
|
|
69
|
+
*/
|
|
70
|
+
function scaleRigPosition(position, subject) {
|
|
71
|
+
if (!subject)
|
|
72
|
+
return position;
|
|
73
|
+
const height = Math.max(1e-6, subject.height);
|
|
74
|
+
const lateral = Math.max(height, subject.width ?? height);
|
|
75
|
+
const floorY = subject.floorY ?? 0;
|
|
76
|
+
return [
|
|
77
|
+
round3(position[0] * lateral),
|
|
78
|
+
round3(floorY + position[1] * height),
|
|
79
|
+
round3(position[2] * height)
|
|
80
|
+
];
|
|
81
|
+
}
|
|
32
82
|
export function listLightingRigPresets() {
|
|
33
83
|
return ["key-fill-rim", "studio-softbox", "sun", "industrial", "urban-neon", "product-detail", "product-shot"];
|
|
34
84
|
}
|
|
@@ -36,7 +86,7 @@ function lightingRigDescriptors(preset) {
|
|
|
36
86
|
switch (preset) {
|
|
37
87
|
case "studio-softbox":
|
|
38
88
|
return [
|
|
39
|
-
|
|
89
|
+
areaLight("studio-key", "key", [1, 0.95, 0.88], 12, [-3, 5, 4], [0.45, -0.72, -0.53], 12, [2.2, 1.2], "Finite rectangular studio key integrated by the forward PBR shader; rectangular-light shadow maps remain unsupported."),
|
|
40
90
|
light("studio-fill", "directional", "fill", [0.68, 0.78, 1], 0.38, [4, 3, 2], [-0.76, -0.42, -0.5], 0, 0, 0, false, "Fill is a direct-light approximation."),
|
|
41
91
|
light("studio-rim", "spot", "rim", [0.78, 0.9, 1], 0.72, [0, 3.2, -4], [0, -0.42, 0.91], 9, Math.PI / 5, 0.45, false, "Rim light is a bounded spot helper.")
|
|
42
92
|
];
|
|
@@ -59,14 +109,14 @@ function lightingRigDescriptors(preset) {
|
|
|
59
109
|
];
|
|
60
110
|
case "product-detail":
|
|
61
111
|
return [
|
|
62
|
-
|
|
112
|
+
areaLight("product-detail-key", "key", [1, 0.9, 0.78], 14, [-4.8, 3.3, 3.2], [0.7, -0.48, -0.52], 12, [1.9, 0.58], "Finite rectangular glancing key for normal/AO inspection; its dimensions affect PBR lighting."),
|
|
63
113
|
light("product-detail-cool-edge", "spot", "rim", [0.64, 0.78, 1], 1.15, [2.9, 2.6, -3.6], [-0.42, -0.34, 0.84], 8, Math.PI / 5.5, 0.38, false, "Cool edge strip is a bounded spot helper for product silhouette separation."),
|
|
64
114
|
light("product-detail-warm-edge", "point", "accent", [1, 0.55, 0.28], 0.54, [-2.4, 1.1, -1.2], [0.3, -0.18, 0.72], 4.8, 0, 0, false, "Warm practical accent adds bounded hue separation; it is not emissive bounce or GI."),
|
|
65
115
|
light("product-detail-fill", "directional", "fill", [0.48, 0.56, 0.68], 0.16, [4.2, 2.4, 3.6], [-0.68, -0.34, -0.64], 0, 0, 0, false, "Low fill preserves product material contrast.")
|
|
66
116
|
];
|
|
67
117
|
case "product-shot":
|
|
68
118
|
return [
|
|
69
|
-
|
|
119
|
+
areaLight("product-key", "key", [1, 0.95, 0.88], 16, [-4, 5, 4], [0.52, -0.64, -0.56], 14, [2.4, 1.35], "Finite rectangular product key integrated across its emitting surface."),
|
|
70
120
|
light("product-fill", "directional", "fill", [0.7, 0.78, 0.9], 0.3, [4, 3, 3], [-0.68, -0.46, -0.57], 0, 0, 0, false, "Product fill is direct lighting."),
|
|
71
121
|
light("product-rim", "spot", "rim", [0.85, 0.92, 1], 0.78, [0.5, 3.2, -4.5], [-0.08, -0.36, 0.93], 8, Math.PI / 6, 0.42, false, "Rim light is a bounded spot helper.")
|
|
72
122
|
];
|
|
@@ -116,17 +166,40 @@ function softbox(id, role, color, intensity, position, direction, size, linkedLi
|
|
|
116
166
|
};
|
|
117
167
|
}
|
|
118
168
|
function light(id, kind, role, color, intensity, position, direction, range, spotAngle, penumbra, castsShadow, claimBoundary) {
|
|
119
|
-
return { id, kind, role, color, intensity, position, direction: normalize(direction), range, spotAngle, penumbra, castsShadow, claimBoundary };
|
|
169
|
+
return { id, kind, role, color, intensity, position, direction: normalize(direction), range, spotAngle, penumbra, width: 0, height: 0, castsShadow, claimBoundary };
|
|
170
|
+
}
|
|
171
|
+
function areaLight(id, role, color, intensity, position, direction, range, size, claimBoundary) {
|
|
172
|
+
return {
|
|
173
|
+
id,
|
|
174
|
+
kind: "rect-area",
|
|
175
|
+
role,
|
|
176
|
+
color,
|
|
177
|
+
intensity,
|
|
178
|
+
position,
|
|
179
|
+
direction: normalize(direction),
|
|
180
|
+
range,
|
|
181
|
+
spotAngle: 0,
|
|
182
|
+
penumbra: 0,
|
|
183
|
+
width: size[0],
|
|
184
|
+
height: size[1],
|
|
185
|
+
castsShadow: false,
|
|
186
|
+
claimBoundary
|
|
187
|
+
};
|
|
120
188
|
}
|
|
121
189
|
function toCollectedLight(light) {
|
|
122
190
|
const source = createSourceLight(light);
|
|
191
|
+
const [right, up] = areaBasis(light.direction);
|
|
123
192
|
return {
|
|
124
193
|
kind: light.kind,
|
|
125
194
|
color: light.color,
|
|
126
195
|
intensity: light.intensity,
|
|
127
196
|
position: light.position,
|
|
128
197
|
direction: light.direction,
|
|
198
|
+
right,
|
|
199
|
+
up,
|
|
129
200
|
range: light.range,
|
|
201
|
+
width: light.width,
|
|
202
|
+
height: light.height,
|
|
130
203
|
spotAngle: light.spotAngle,
|
|
131
204
|
penumbra: light.penumbra,
|
|
132
205
|
castsShadow: light.castsShadow,
|
|
@@ -139,25 +212,29 @@ function createSourceLight(light) {
|
|
|
139
212
|
? new DirectionalLight(light.id)
|
|
140
213
|
: light.kind === "point"
|
|
141
214
|
? new PointLight(light.id)
|
|
142
|
-
:
|
|
215
|
+
: light.kind === "spot"
|
|
216
|
+
? new SpotLight(light.id)
|
|
217
|
+
: new RectAreaLight(light.id);
|
|
143
218
|
source.color = [...light.color];
|
|
144
219
|
source.intensity = light.intensity;
|
|
145
220
|
source.castsShadow = light.castsShadow;
|
|
146
221
|
source.transform.setPosition(light.position[0], light.position[1], light.position[2]);
|
|
147
|
-
if (source instanceof PointLight || source instanceof SpotLight)
|
|
222
|
+
if (source instanceof PointLight || source instanceof SpotLight || source instanceof RectAreaLight)
|
|
148
223
|
source.range = Math.max(0.001, light.range);
|
|
149
224
|
if (source instanceof SpotLight) {
|
|
150
225
|
source.angle = clamp(light.spotAngle || Math.PI / 5, 0.001, Math.PI / 2 - 0.001);
|
|
151
226
|
source.penumbra = clamp(light.penumbra, 0, 1);
|
|
152
227
|
}
|
|
228
|
+
if (source instanceof RectAreaLight) {
|
|
229
|
+
source.width = light.width;
|
|
230
|
+
source.height = light.height;
|
|
231
|
+
}
|
|
153
232
|
return source;
|
|
154
233
|
}
|
|
155
234
|
function unsupportedFeaturesForRig(preset, includeUnsupportedDiagnostics) {
|
|
156
235
|
if (!includeUnsupportedDiagnostics)
|
|
157
236
|
return [];
|
|
158
237
|
const base = ["ies-photometric-profile", "contact-shadow-map", "global-illumination"];
|
|
159
|
-
if (preset === "studio-softbox" || preset === "product-shot" || preset === "product-detail")
|
|
160
|
-
base.unshift("rectangular-area-light");
|
|
161
238
|
if (preset === "sun")
|
|
162
239
|
base.push("cascaded-shadow-map");
|
|
163
240
|
return base;
|
|
@@ -165,7 +242,7 @@ function unsupportedFeaturesForRig(preset, includeUnsupportedDiagnostics) {
|
|
|
165
242
|
function lightingDisclosure(feature) {
|
|
166
243
|
switch (feature) {
|
|
167
244
|
case "rectangular-area-light":
|
|
168
|
-
return "Rectangular
|
|
245
|
+
return "Rectangular area-light shading is implemented for finite emitters; this diagnostic is reserved for callers that explicitly require rectangular-light shadow maps or three.js LTC lookup-table identity.";
|
|
169
246
|
case "ies-photometric-profile":
|
|
170
247
|
return "IES photometric profiles are unsupported; point and spot practicals use bounded cone/range descriptors only.";
|
|
171
248
|
case "contact-shadow-map":
|
|
@@ -180,6 +257,18 @@ function normalize(value) {
|
|
|
180
257
|
const length = Math.hypot(value[0], value[1], value[2]);
|
|
181
258
|
return length === 0 ? [0, -1, 0] : [round5(value[0] / length), round5(value[1] / length), round5(value[2] / length)];
|
|
182
259
|
}
|
|
260
|
+
function areaBasis(direction) {
|
|
261
|
+
const reference = Math.abs(direction[1]) < 0.99 ? [0, 1, 0] : [1, 0, 0];
|
|
262
|
+
const right = normalize(cross(reference, direction));
|
|
263
|
+
return [right, normalize(cross(direction, right))];
|
|
264
|
+
}
|
|
265
|
+
function cross(left, right) {
|
|
266
|
+
return [
|
|
267
|
+
left[1] * right[2] - left[2] * right[1],
|
|
268
|
+
left[2] * right[0] - left[0] * right[2],
|
|
269
|
+
left[0] * right[1] - left[1] * right[0]
|
|
270
|
+
];
|
|
271
|
+
}
|
|
183
272
|
function positive(value, label) {
|
|
184
273
|
if (!Number.isFinite(value) || value <= 0)
|
|
185
274
|
throw new RangeError(`${label} must be finite and positive.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightingRig.js","sourceRoot":"","sources":["../../../../packages/rendering/src/LightingRig.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LightingRig.js","sourceRoot":"","sources":["../../../../packages/rendering/src/LightingRig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Geometry } from "./Geometry";
|
|
2
|
+
import type { RenderItem, RenderMaterial } from "./ForwardPass";
|
|
3
|
+
import { type Mat4 } from "@aura3d/scene";
|
|
4
|
+
/**
|
|
5
|
+
* Merges distinct static geometries that share a material into single vertex/index buffers.
|
|
6
|
+
*
|
|
7
|
+
* This is the complement to `batchStaticRenderItems`, and the distinction matters. Static *batching*
|
|
8
|
+
* instances one geometry many times, so it only helps when the same buffer is reused. Architectural
|
|
9
|
+
* GLBs exported from level editors are usually the opposite case: every mesh primitive owns unique
|
|
10
|
+
* geometry, so batching cannot merge anything even when the primitives share a material.
|
|
11
|
+
*
|
|
12
|
+
* Measured on `auraClashDuelStage`: 85 mesh primitives with 85 distinct attribute sets but only 13
|
|
13
|
+
* distinct material definitions. Batching left it at 207 draw calls; consolidation collapses the
|
|
14
|
+
* primitives that share a material into one draw each.
|
|
15
|
+
*
|
|
16
|
+
* The merge is only valid for geometry that is genuinely static, because each source geometry's model
|
|
17
|
+
* matrix is **baked into its vertex positions**. Anything that must move, deform, or be culled
|
|
18
|
+
* independently is excluded rather than merged.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Caches a consolidation result so the merge runs once for a stable input set.
|
|
22
|
+
*
|
|
23
|
+
* Merging walks every vertex and allocates new buffers, which is far too expensive to repeat per
|
|
24
|
+
* frame: measured on the Aura Clash arena, re-merging each frame cut draw calls 230 -> 53 but pushed
|
|
25
|
+
* frame time to **247 ms**. The inputs it is used for are static by definition, so the result can be
|
|
26
|
+
* reused as long as the identity and transform of every input is unchanged.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createStaticMeshConsolidationCache(): {
|
|
29
|
+
consolidate(items: readonly MeshConsolidationInput[], options?: MeshConsolidationOptions): MeshConsolidationResult;
|
|
30
|
+
};
|
|
31
|
+
export interface MeshConsolidationInput {
|
|
32
|
+
readonly geometry: Geometry;
|
|
33
|
+
readonly material: RenderMaterial;
|
|
34
|
+
readonly modelMatrix: Mat4 | Float32Array | readonly number[];
|
|
35
|
+
readonly label?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface MeshConsolidationOptions {
|
|
38
|
+
/**
|
|
39
|
+
* Upper bound on vertices in a merged buffer. Keeps a single merge from producing a buffer so large
|
|
40
|
+
* that it defeats frustum culling or exceeds practical upload sizes.
|
|
41
|
+
*/
|
|
42
|
+
readonly maxVerticesPerMesh?: number;
|
|
43
|
+
readonly labelPrefix?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface MeshConsolidationResult {
|
|
46
|
+
readonly renderItems: readonly RenderItem[];
|
|
47
|
+
readonly inputItems: number;
|
|
48
|
+
readonly submittedItems: number;
|
|
49
|
+
/** Merged buffers produced. */
|
|
50
|
+
readonly mergedMeshes: number;
|
|
51
|
+
/** Items passed through unmerged, either alone in their group or over the vertex cap. */
|
|
52
|
+
readonly passthroughItems: number;
|
|
53
|
+
readonly drawCallReduction: number;
|
|
54
|
+
readonly maxVerticesPerMesh: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Groups inputs by (vertex format, topology, material) and merges each group into one geometry.
|
|
58
|
+
*
|
|
59
|
+
* Format and topology must match because merged vertices share one buffer layout and one draw
|
|
60
|
+
* topology. Material identity must match because a single draw binds one material.
|
|
61
|
+
*/
|
|
62
|
+
export declare function consolidateStaticMeshes(items: readonly MeshConsolidationInput[], options?: MeshConsolidationOptions): MeshConsolidationResult;
|
|
63
|
+
//# sourceMappingURL=MeshConsolidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeshConsolidation.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/MeshConsolidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,IAAI;IACpD,WAAW,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,uBAAuB,CAAC;CACpH,CAoCA;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAID;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,sBAAsB,EAAE,EACxC,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CA4GzB"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { Geometry } from "./Geometry.js";
|
|
2
|
+
import { IndexBuffer } from "./IndexBuffer.js";
|
|
3
|
+
import { VertexBuffer } from "./VertexBuffer.js";
|
|
4
|
+
import {} from "../scene/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* Merges distinct static geometries that share a material into single vertex/index buffers.
|
|
7
|
+
*
|
|
8
|
+
* This is the complement to `batchStaticRenderItems`, and the distinction matters. Static *batching*
|
|
9
|
+
* instances one geometry many times, so it only helps when the same buffer is reused. Architectural
|
|
10
|
+
* GLBs exported from level editors are usually the opposite case: every mesh primitive owns unique
|
|
11
|
+
* geometry, so batching cannot merge anything even when the primitives share a material.
|
|
12
|
+
*
|
|
13
|
+
* Measured on `auraClashDuelStage`: 85 mesh primitives with 85 distinct attribute sets but only 13
|
|
14
|
+
* distinct material definitions. Batching left it at 207 draw calls; consolidation collapses the
|
|
15
|
+
* primitives that share a material into one draw each.
|
|
16
|
+
*
|
|
17
|
+
* The merge is only valid for geometry that is genuinely static, because each source geometry's model
|
|
18
|
+
* matrix is **baked into its vertex positions**. Anything that must move, deform, or be culled
|
|
19
|
+
* independently is excluded rather than merged.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Caches a consolidation result so the merge runs once for a stable input set.
|
|
23
|
+
*
|
|
24
|
+
* Merging walks every vertex and allocates new buffers, which is far too expensive to repeat per
|
|
25
|
+
* frame: measured on the Aura Clash arena, re-merging each frame cut draw calls 230 -> 53 but pushed
|
|
26
|
+
* frame time to **247 ms**. The inputs it is used for are static by definition, so the result can be
|
|
27
|
+
* reused as long as the identity and transform of every input is unchanged.
|
|
28
|
+
*/
|
|
29
|
+
export function createStaticMeshConsolidationCache() {
|
|
30
|
+
let cachedKey = null;
|
|
31
|
+
let cachedResult = null;
|
|
32
|
+
const geometryIds = new WeakMap();
|
|
33
|
+
const materialIds = new WeakMap();
|
|
34
|
+
let nextId = 1;
|
|
35
|
+
const idOf = (ids, resource) => {
|
|
36
|
+
const existing = ids.get(resource);
|
|
37
|
+
if (existing !== undefined)
|
|
38
|
+
return existing;
|
|
39
|
+
const next = nextId++;
|
|
40
|
+
ids.set(resource, next);
|
|
41
|
+
return next;
|
|
42
|
+
};
|
|
43
|
+
return {
|
|
44
|
+
consolidate(items, options) {
|
|
45
|
+
// Key on resource identity plus the exact transforms, so any real change re-merges while a
|
|
46
|
+
// steady-state frame reuses the cached buffers.
|
|
47
|
+
//
|
|
48
|
+
// Note the granularity: this caches the whole submitted set. A caller that mixes genuinely
|
|
49
|
+
// static architecture with per-frame animated items in one `staticMeshConsolidation` pass will
|
|
50
|
+
// miss on every frame, because the animated transforms change the key. Such callers should
|
|
51
|
+
// consolidate the static subset themselves and pass the merged result through, rather than
|
|
52
|
+
// re-submitting animated geometry for merging.
|
|
53
|
+
const key = items
|
|
54
|
+
.map((item) => `${idOf(geometryIds, item.geometry)}:${idOf(materialIds, item.material)}:${Array.from(item.modelMatrix).join(",")}`)
|
|
55
|
+
.join("|");
|
|
56
|
+
if (cachedKey === key && cachedResult)
|
|
57
|
+
return cachedResult;
|
|
58
|
+
const result = consolidateStaticMeshes(items, options);
|
|
59
|
+
cachedKey = key;
|
|
60
|
+
cachedResult = result;
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const DEFAULT_MAX_VERTICES_PER_MESH = 65_536;
|
|
66
|
+
/**
|
|
67
|
+
* Groups inputs by (vertex format, topology, material) and merges each group into one geometry.
|
|
68
|
+
*
|
|
69
|
+
* Format and topology must match because merged vertices share one buffer layout and one draw
|
|
70
|
+
* topology. Material identity must match because a single draw binds one material.
|
|
71
|
+
*/
|
|
72
|
+
export function consolidateStaticMeshes(items, options = {}) {
|
|
73
|
+
const maxVerticesPerMesh = options.maxVerticesPerMesh ?? DEFAULT_MAX_VERTICES_PER_MESH;
|
|
74
|
+
if (!Number.isInteger(maxVerticesPerMesh) || maxVerticesPerMesh < 3) {
|
|
75
|
+
throw new Error("Mesh consolidation maxVerticesPerMesh must be an integer >= 3.");
|
|
76
|
+
}
|
|
77
|
+
const labelPrefix = options.labelPrefix ?? "consolidated-mesh";
|
|
78
|
+
const groups = new Map();
|
|
79
|
+
const materialIds = new WeakMap();
|
|
80
|
+
let nextMaterialId = 1;
|
|
81
|
+
const materialId = (material) => {
|
|
82
|
+
const existing = materialIds.get(material);
|
|
83
|
+
if (existing !== undefined)
|
|
84
|
+
return existing;
|
|
85
|
+
const next = nextMaterialId++;
|
|
86
|
+
materialIds.set(material, next);
|
|
87
|
+
return next;
|
|
88
|
+
};
|
|
89
|
+
for (const item of items) {
|
|
90
|
+
// Only indexed triangle geometry is merged: merging non-indexed or non-triangle topology would
|
|
91
|
+
// change primitive assembly rather than just concatenating buffers.
|
|
92
|
+
if (item.geometry.topology !== "triangles" || !item.geometry.indexBuffer) {
|
|
93
|
+
const group = groups.get(`passthrough:${groups.size}`) ?? [];
|
|
94
|
+
group.push(item);
|
|
95
|
+
groups.set(`passthrough:${groups.size}`, group);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const key = `${formatKey(item.geometry.vertexBuffer.format)}|${item.geometry.topology}|${materialId(item.material)}`;
|
|
99
|
+
const group = groups.get(key);
|
|
100
|
+
if (group)
|
|
101
|
+
group.push(item);
|
|
102
|
+
else
|
|
103
|
+
groups.set(key, [item]);
|
|
104
|
+
}
|
|
105
|
+
const renderItems = [];
|
|
106
|
+
let mergedMeshes = 0;
|
|
107
|
+
let passthroughItems = 0;
|
|
108
|
+
for (const [key, group] of groups) {
|
|
109
|
+
if (key.startsWith("passthrough:") || group.length === 1) {
|
|
110
|
+
for (const item of group) {
|
|
111
|
+
renderItems.push({
|
|
112
|
+
geometry: item.geometry,
|
|
113
|
+
material: item.material,
|
|
114
|
+
modelMatrix: item.modelMatrix,
|
|
115
|
+
label: item.label ?? `${labelPrefix}-passthrough`
|
|
116
|
+
});
|
|
117
|
+
passthroughItems += 1;
|
|
118
|
+
}
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
// Split the group into runs that fit the vertex cap, so one oversized group still merges partially
|
|
122
|
+
// instead of degrading to fully unmerged.
|
|
123
|
+
let run = [];
|
|
124
|
+
let runVertices = 0;
|
|
125
|
+
const flush = () => {
|
|
126
|
+
if (run.length === 0)
|
|
127
|
+
return;
|
|
128
|
+
if (run.length === 1) {
|
|
129
|
+
const only = run[0];
|
|
130
|
+
renderItems.push({
|
|
131
|
+
geometry: only.geometry,
|
|
132
|
+
material: only.material,
|
|
133
|
+
modelMatrix: only.modelMatrix,
|
|
134
|
+
label: only.label ?? `${labelPrefix}-passthrough`
|
|
135
|
+
});
|
|
136
|
+
passthroughItems += 1;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
renderItems.push({
|
|
140
|
+
geometry: mergeGeometries(run),
|
|
141
|
+
material: run[0].material,
|
|
142
|
+
label: `${labelPrefix}-${mergedMeshes}`
|
|
143
|
+
});
|
|
144
|
+
mergedMeshes += 1;
|
|
145
|
+
}
|
|
146
|
+
run = [];
|
|
147
|
+
runVertices = 0;
|
|
148
|
+
};
|
|
149
|
+
for (const item of group) {
|
|
150
|
+
const vertexCount = item.geometry.vertexBuffer.vertexCount;
|
|
151
|
+
if (vertexCount > maxVerticesPerMesh) {
|
|
152
|
+
// A single geometry larger than the cap can never be merged; emit it as-is.
|
|
153
|
+
flush();
|
|
154
|
+
renderItems.push({
|
|
155
|
+
geometry: item.geometry,
|
|
156
|
+
material: item.material,
|
|
157
|
+
modelMatrix: item.modelMatrix,
|
|
158
|
+
label: item.label ?? `${labelPrefix}-oversized`
|
|
159
|
+
});
|
|
160
|
+
passthroughItems += 1;
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (runVertices + vertexCount > maxVerticesPerMesh)
|
|
164
|
+
flush();
|
|
165
|
+
run.push(item);
|
|
166
|
+
runVertices += vertexCount;
|
|
167
|
+
}
|
|
168
|
+
flush();
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
renderItems,
|
|
172
|
+
inputItems: items.length,
|
|
173
|
+
submittedItems: renderItems.length,
|
|
174
|
+
mergedMeshes,
|
|
175
|
+
passthroughItems,
|
|
176
|
+
drawCallReduction: items.length - renderItems.length,
|
|
177
|
+
maxVerticesPerMesh
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Concatenates a run of geometries into one buffer, baking each source model matrix into its vertices.
|
|
182
|
+
*
|
|
183
|
+
* Positions are transformed by the full matrix. Normals and tangents are transformed by the matrix's
|
|
184
|
+
* rotation/scale part only, with translation excluded, because they are directions rather than points.
|
|
185
|
+
*/
|
|
186
|
+
function mergeGeometries(run) {
|
|
187
|
+
const format = run[0].geometry.vertexBuffer.format;
|
|
188
|
+
const totalVertices = run.reduce((sum, item) => sum + item.geometry.vertexBuffer.vertexCount, 0);
|
|
189
|
+
const merged = new VertexBuffer(format, totalVertices);
|
|
190
|
+
const indices = [];
|
|
191
|
+
let vertexCursor = 0;
|
|
192
|
+
for (const item of run) {
|
|
193
|
+
const source = item.geometry.vertexBuffer;
|
|
194
|
+
const matrix = toMatrixValues(item.modelMatrix);
|
|
195
|
+
for (let vertex = 0; vertex < source.vertexCount; vertex += 1) {
|
|
196
|
+
const target = vertexCursor + vertex;
|
|
197
|
+
// Copy every attribute through the public API so the buffer's dirty tracking stays correct.
|
|
198
|
+
for (const attribute of format.attributes) {
|
|
199
|
+
const values = [...source.getAttribute(vertex, attribute.semantic)];
|
|
200
|
+
if (attribute.semantic === "position") {
|
|
201
|
+
transformPoint(values, matrix);
|
|
202
|
+
}
|
|
203
|
+
else if (attribute.semantic === "normal" || attribute.semantic === "tangent") {
|
|
204
|
+
// Directions take rotation/scale only; a 4-component tangent keeps its handedness in `w`.
|
|
205
|
+
transformDirection(values, matrix);
|
|
206
|
+
}
|
|
207
|
+
merged.setAttribute(target, attribute.semantic, values);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
const sourceIndices = item.geometry.indexBuffer.data;
|
|
211
|
+
for (let index = 0; index < sourceIndices.length; index += 1) {
|
|
212
|
+
indices.push(sourceIndices[index] + vertexCursor);
|
|
213
|
+
}
|
|
214
|
+
vertexCursor += source.vertexCount;
|
|
215
|
+
}
|
|
216
|
+
return new Geometry(merged, new IndexBuffer(indices, totalVertices), "triangles");
|
|
217
|
+
}
|
|
218
|
+
/** Transforms a point in place by the full matrix, including translation. */
|
|
219
|
+
function transformPoint(values, m) {
|
|
220
|
+
const x = values[0];
|
|
221
|
+
const y = values[1];
|
|
222
|
+
const z = values[2];
|
|
223
|
+
values[0] = m[0] * x + m[4] * y + m[8] * z + m[12];
|
|
224
|
+
values[1] = m[1] * x + m[5] * y + m[9] * z + m[13];
|
|
225
|
+
values[2] = m[2] * x + m[6] * y + m[10] * z + m[14];
|
|
226
|
+
}
|
|
227
|
+
/** Transforms a direction in place: rotation/scale only, translation excluded, then renormalised. */
|
|
228
|
+
function transformDirection(values, m) {
|
|
229
|
+
const x = values[0];
|
|
230
|
+
const y = values[1];
|
|
231
|
+
const z = values[2];
|
|
232
|
+
const nx = m[0] * x + m[4] * y + m[8] * z;
|
|
233
|
+
const ny = m[1] * x + m[5] * y + m[9] * z;
|
|
234
|
+
const nz = m[2] * x + m[6] * y + m[10] * z;
|
|
235
|
+
const length = Math.hypot(nx, ny, nz) || 1;
|
|
236
|
+
values[0] = nx / length;
|
|
237
|
+
values[1] = ny / length;
|
|
238
|
+
values[2] = nz / length;
|
|
239
|
+
}
|
|
240
|
+
function toMatrixValues(matrix) {
|
|
241
|
+
const values = Array.from(matrix);
|
|
242
|
+
if (values.length !== 16 || !values.every(Number.isFinite)) {
|
|
243
|
+
throw new Error("Mesh consolidation requires a finite mat4 modelMatrix.");
|
|
244
|
+
}
|
|
245
|
+
return values;
|
|
246
|
+
}
|
|
247
|
+
/** Format identity, so only layout-compatible geometry is merged. */
|
|
248
|
+
function formatKey(format) {
|
|
249
|
+
return `${format.stride}:${format.attributes.map((a) => `${a.semantic}@${a.offset}x${a.components}`).join(",")}`;
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=MeshConsolidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MeshConsolidation.js","sourceRoot":"","sources":["../../../../packages/rendering/src/MeshConsolidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,11 +16,23 @@ export interface ExternalParityPmrem {
|
|
|
16
16
|
readonly maxRoughness: number;
|
|
17
17
|
readonly totalByteLength: number;
|
|
18
18
|
readonly directionalReflectionReady: boolean;
|
|
19
|
+
readonly filterModel: "ggx-importance-sampled-equirect-prefilter";
|
|
20
|
+
readonly sampleCount: number;
|
|
19
21
|
};
|
|
20
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Builds a PMREM-style specular chain using real GGX importance-sampled
|
|
25
|
+
* prefiltering. Each level's reported roughness is the roughness that level's
|
|
26
|
+
* texels were actually convolved for, taken from the same schedule the filter
|
|
27
|
+
* used — not derived post-hoc from a mip index.
|
|
28
|
+
*
|
|
29
|
+
* The previous implementation requested `blurRadius: 3` box-blurred mips and
|
|
30
|
+
* then labelled level `i` with roughness `i / (levels - 1)`, so the reported
|
|
31
|
+
* roughness had no relationship to the filter width actually applied.
|
|
32
|
+
*/
|
|
21
33
|
export declare function createExternalParityPmrem(source: Rgba8EnvironmentMapSource, options?: {
|
|
22
34
|
readonly levels?: number;
|
|
23
|
-
readonly
|
|
35
|
+
readonly sampleCount?: number;
|
|
24
36
|
readonly textureLabel?: string;
|
|
25
37
|
}): ExternalParityPmrem;
|
|
26
38
|
//# sourceMappingURL=PMREM.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PMREM.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/PMREM.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"PMREM.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/PMREM.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC;QAC7C,QAAQ,CAAC,WAAW,EAAE,2CAA2C,CAAC;QAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,yBAAyB,EACjC,OAAO,GAAE;IACP,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAC3B,GACL,mBAAmB,CA2BrB"}
|