@aura3d/rendering 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ArchitecturalMaterialCatalog.d.ts +3 -3
- package/dist/CanonicalProductScene.d.ts +1 -1
- package/dist/CascadedShadowMaps.d.ts +7 -7
- package/dist/ClusteredForwardLighting.d.ts +2 -2
- package/dist/DecalGeometry.d.ts +2 -2
- package/dist/DepthPass.d.ts +4 -4
- package/dist/EnvironmentBackgroundPass.d.ts +4 -4
- package/dist/EnvironmentBackgroundResources.d.ts +2 -2
- package/dist/EnvironmentLighting.d.ts +1 -1
- package/dist/EnvironmentMapResources.d.ts +2 -2
- package/dist/EnvironmentPipeline.d.ts +2 -2
- package/dist/EnvironmentPlatform.d.ts +3 -3
- package/dist/EnvironmentPreset.d.ts +1 -1
- package/dist/Exposure.d.ts +1 -1
- package/dist/ExternalParityRenderPreset.d.ts +3 -3
- package/dist/ForwardPass.d.ts +9 -9
- package/dist/Geometry.d.ts +3 -3
- package/dist/GeometryPrimitives.d.ts +2 -2
- package/dist/HDRRenderPipeline.d.ts +4 -4
- package/dist/IBL.d.ts +4 -4
- package/dist/IndexBuffer.d.ts +1 -1
- package/dist/InstancedPBRMaterial.d.ts +2 -2
- package/dist/InstancedUnlitMaterial.d.ts +1 -1
- package/dist/Instancing.d.ts +1 -1
- package/dist/LightUniforms.d.ts +2 -2
- package/dist/LightingDebug.d.ts +2 -2
- package/dist/LightingDefaults.d.ts +2 -2
- package/dist/LightingRig.d.ts +1 -1
- package/dist/LineGeometry.d.ts +2 -2
- package/dist/Material.d.ts +1 -1
- package/dist/MaterialBinding.d.ts +3 -3
- package/dist/MaterialInstance.d.ts +2 -2
- package/dist/MaterialPresets.d.ts +2 -2
- package/dist/MeshConsolidation.d.ts +2 -2
- package/dist/MorphTarget.d.ts +1 -1
- package/dist/MorphTargetPlan.d.ts +1 -1
- package/dist/MorphUnlitMaterial.d.ts +1 -1
- package/dist/NormalMappedPBRMaterial.d.ts +4 -4
- package/dist/PBRLightingDefaults.d.ts +1 -1
- package/dist/PBRMaterial.d.ts +2 -2
- package/dist/PMREM.d.ts +2 -2
- package/dist/PortableShaderMaterial.d.ts +3 -3
- package/dist/PostProcessPass.d.ts +2 -2
- package/dist/ProceduralTexture.d.ts +1 -1
- package/dist/ProductTurntable.d.ts +3 -3
- package/dist/ReflectionProbe.d.ts +4 -4
- package/dist/ReflectionSurfaces.d.ts +2 -2
- package/dist/RenderBackend.d.ts +3 -3
- package/dist/RenderDevice.d.ts +6 -6
- package/dist/RenderGraph.d.ts +1 -1
- package/dist/RenderPass.d.ts +1 -1
- package/dist/RenderPipeline.d.ts +3 -3
- package/dist/RenderQueue.d.ts +2 -2
- package/dist/RenderState.d.ts +2 -2
- package/dist/Renderer.d.ts +14 -14
- package/dist/RendererFeatureGates.d.ts +1 -1
- package/dist/RendererPostprocessPlan.d.ts +1 -1
- package/dist/RendererVisualPipelineReport.d.ts +4 -4
- package/dist/ResourceLifecycle.d.ts +1 -1
- package/dist/SceneOptimization.d.ts +2 -2
- package/dist/ScreenSpaceLineMaterial.d.ts +1 -1
- package/dist/ShaderChunks.d.ts.map +1 -1
- package/dist/ShaderChunks.js +11 -5
- package/dist/ShaderChunks.js.map +1 -1
- package/dist/ShaderLibrary.d.ts +2 -2
- package/dist/ShaderLibrary.d.ts.map +1 -1
- package/dist/ShaderLibrary.js +17 -58
- package/dist/ShaderLibrary.js.map +1 -1
- package/dist/ShaderLibraryCore.d.ts +3 -3
- package/dist/ShaderLibraryCore.d.ts.map +1 -1
- package/dist/ShaderLibraryCore.js +3 -11
- package/dist/ShaderLibraryCore.js.map +1 -1
- package/dist/ShaderModule.d.ts +3 -3
- package/dist/ShaderReflection.d.ts +1 -1
- package/dist/ShadowMap.d.ts +1 -1
- package/dist/ShadowPass.d.ts +5 -5
- package/dist/ShadowProjection.d.ts +1 -1
- package/dist/SkinnedLitMaterial.d.ts +3 -3
- package/dist/SkinnedUnlitMaterial.d.ts +1 -1
- package/dist/SkinningBounds.d.ts +2 -2
- package/dist/SpecularPrefilter.d.ts +1 -1
- package/dist/SpriteGeometry.d.ts +1 -1
- package/dist/StereoCameraRig.d.ts +1 -1
- package/dist/StereoEffects.d.ts +1 -1
- package/dist/TerrainHeightfield.d.ts +1 -1
- package/dist/TextureBinding.d.ts +2 -2
- package/dist/TexturedPBRMaterial.d.ts +4 -4
- package/dist/TexturedUnlitMaterial.d.ts +3 -3
- package/dist/ToneMapping.d.ts +1 -1
- package/dist/UniformBinder.d.ts +1 -1
- package/dist/UnlitMaterial.d.ts +1 -1
- package/dist/VegetationScatter.d.ts +1 -1
- package/dist/VertexBuffer.d.ts +2 -2
- package/dist/WebGL2Device.d.ts +1 -1
- package/dist/WebGPUDevice.d.ts +2 -2
- package/dist/WebGPURenderToTextureProof.d.ts +1 -1
- package/dist/advanced-runtime/AdvancedRenderer.d.ts +3 -3
- package/dist/advanced-runtime/index.d.ts +9 -9
- package/dist/cinematic/BloomPass.d.ts +1 -1
- package/dist/cinematic/CinematicDepthComposition.d.ts +1 -1
- package/dist/cinematic/CinematicLightingRig.d.ts +2 -2
- package/dist/cinematic/CinematicMaterialPresets.d.ts +2 -2
- package/dist/cinematic/CinematicPostProcess.d.ts +6 -6
- package/dist/cinematic/DepthHazePass.d.ts +1 -1
- package/dist/cinematic/EmissivePracticalLightSystem.d.ts +2 -2
- package/dist/cinematic/FilmGrainPass.d.ts +1 -1
- package/dist/cinematic/FogVolumeSystem.d.ts +1 -1
- package/dist/cinematic/GlowCardSystem.d.ts +2 -2
- package/dist/cinematic/RainParticleSystem.d.ts +2 -2
- package/dist/cinematic/VignettePass.d.ts +1 -1
- package/dist/cinematic/WetReflectionApproximation.d.ts +1 -1
- package/dist/cinematic/index.d.ts +14 -14
- package/dist/index.d.ts +230 -230
- package/dist/materials/PhysicalMaterial.d.ts +1 -1
- package/dist/performance/BVH.d.ts +2 -2
- package/dist/performance/Batcher.d.ts +2 -2
- package/dist/performance/FrustumCuller.d.ts +1 -1
- package/dist/performance/Octree.d.ts +1 -1
- package/dist/postprocess/BloomPass.d.ts +1 -1
- package/dist/postprocess/CinematicDiagnostics.d.ts +1 -1
- package/dist/postprocess/ColorGradingPass.d.ts +1 -1
- package/dist/postprocess/DepthOfFieldPass.d.ts +1 -1
- package/dist/postprocess/EffectComposer.d.ts +3 -3
- package/dist/postprocess/SSAOPass.d.ts +1 -1
- package/dist/postprocess/index.d.ts +10 -10
- package/dist/production-runtime/AnimationControlsPipeline.d.ts +1 -1
- package/dist/production-runtime/PBRHDRPipeline.d.ts +4 -4
- package/dist/production-runtime/ProductionEffectsPipeline.d.ts +2 -2
- package/dist/production-runtime/ProductionRendererTypes.d.ts +2 -2
- package/dist/production-runtime/ProductionRuntimeRenderer.d.ts +3 -3
- package/dist/production-runtime/ProductionWebGL2Renderer.d.ts +4 -4
- package/dist/production-runtime/ProductionWebGPURenderer.d.ts +4 -4
- package/dist/production-runtime/TransmissionBackdropCapture.d.ts +3 -3
- package/dist/production-runtime/backends/RendererBackend.d.ts +1 -1
- package/dist/production-runtime/backends/WebGL2RendererBackend.d.ts +3 -3
- package/dist/production-runtime/backends/WebGPURendererBackend.d.ts +1 -1
- package/dist/production-runtime/backends/webgl2/WebGL2StateCache.d.ts +1 -1
- package/dist/production-runtime/diagnostics/FrameCapture.d.ts +1 -1
- package/dist/production-runtime/environment/HDRLoader.d.ts +2 -2
- package/dist/production-runtime/environment/PMREMGenerator.d.ts +1 -1
- package/dist/production-runtime/framegraph/FrameGraph.d.ts +1 -1
- package/dist/production-runtime/geometry/ProjectedDecalGeometry.d.ts +1 -1
- package/dist/production-runtime/index.d.ts +74 -74
- package/dist/production-runtime/lights/LightManager.d.ts +1 -1
- package/dist/production-runtime/lights/ShadowMapRenderer.d.ts +1 -1
- package/dist/production-runtime/materials/GLTFMaterialAdapter.d.ts +1 -1
- package/dist/production-runtime/materials/GLTFPBRMaterialAdapter.d.ts +2 -2
- package/dist/production-runtime/materials/MaterialCompiler.d.ts +2 -2
- package/dist/production-runtime/materials/MaterialTextureBindings.d.ts +1 -1
- package/dist/production-runtime/passes/ContactShadowPass.d.ts +1 -1
- package/dist/production-runtime/passes/DepthPrepass.d.ts +1 -1
- package/dist/production-runtime/passes/OpaquePass.d.ts +1 -1
- package/dist/production-runtime/passes/ShadowPass.d.ts +1 -1
- package/dist/production-runtime/passes/SkyboxPass.d.ts +1 -1
- package/dist/production-runtime/passes/ToneMappingPass.d.ts +1 -1
- package/dist/production-runtime/passes/TransparentPass.d.ts +1 -1
- package/dist/production-runtime/postprocess/BloomPass.d.ts +2 -2
- package/dist/production-runtime/postprocess/ColorGradingPass.d.ts +2 -2
- package/dist/production-runtime/postprocess/DOFPass.d.ts +2 -2
- package/dist/production-runtime/postprocess/FXAAPass.d.ts +2 -2
- package/dist/production-runtime/postprocess/ProductionEffectComposer.d.ts +1 -1
- package/dist/production-runtime/postprocess/ProductionPostProcessTypes.d.ts +1 -1
- package/dist/production-runtime/postprocess/SSAOPass.d.ts +2 -2
- package/dist/production-runtime/resources/RenderTarget.d.ts +1 -1
- package/dist/production-runtime/scene/RenderableMesh.d.ts +1 -1
- package/dist/production-runtime/scene/RenderableScene.d.ts +3 -3
- package/dist/shadows/CascadedShadowPipeline.d.ts +1 -1
- package/dist/shadows/ShadowDebugViews.d.ts +2 -2
- package/dist/threejs-example-parity/index.d.ts +4 -4
- package/dist/webgpu/WebGPUBuffer.d.ts +1 -1
- package/dist/webgpu/WebGPUCompute.d.ts +2 -2
- package/dist/webgpu/WebGPUPostProcess.d.ts +2 -2
- package/dist/webgpu/WebGPUTexture.d.ts +2 -2
- package/dist/webgpu.d.ts +3 -3
- package/package.json +3 -3
- package/dist/ArchitecturalLightingFixtures.d.ts +0 -40
- package/dist/ArchitecturalLightingFixtures.d.ts.map +0 -1
- package/dist/ArchitecturalLightingFixtures.js +0 -171
- package/dist/ArchitecturalLightingFixtures.js.map +0 -1
- package/dist/ArchitecturalMeasurementFixtures.d.ts +0 -30
- package/dist/ArchitecturalMeasurementFixtures.d.ts.map +0 -1
- package/dist/ArchitecturalMeasurementFixtures.js +0 -115
- package/dist/ArchitecturalMeasurementFixtures.js.map +0 -1
- package/dist/CanonicalSceneFixtures.d.ts +0 -13
- package/dist/CanonicalSceneFixtures.d.ts.map +0 -1
- package/dist/CanonicalSceneFixtures.js +0 -78
- package/dist/CanonicalSceneFixtures.js.map +0 -1
- package/dist/CullingFixtures.d.ts +0 -70
- package/dist/CullingFixtures.d.ts.map +0 -1
- package/dist/CullingFixtures.js +0 -191
- package/dist/CullingFixtures.js.map +0 -1
- package/dist/OceanFixtures.d.ts +0 -62
- package/dist/OceanFixtures.d.ts.map +0 -1
- package/dist/OceanFixtures.js +0 -240
- package/dist/OceanFixtures.js.map +0 -1
- package/dist/ProceduralTextureFixtures.d.ts +0 -27
- package/dist/ProceduralTextureFixtures.d.ts.map +0 -1
- package/dist/ProceduralTextureFixtures.js +0 -336
- package/dist/ProceduralTextureFixtures.js.map +0 -1
- package/dist/ProductTurntableFixtures.d.ts +0 -96
- package/dist/ProductTurntableFixtures.d.ts.map +0 -1
- package/dist/ProductTurntableFixtures.js +0 -639
- package/dist/ProductTurntableFixtures.js.map +0 -1
- package/dist/SpaceEnvironmentFixtures.d.ts +0 -59
- package/dist/SpaceEnvironmentFixtures.d.ts.map +0 -1
- package/dist/SpaceEnvironmentFixtures.js +0 -132
- package/dist/SpaceEnvironmentFixtures.js.map +0 -1
- package/dist/TerrainFixtures.d.ts +0 -60
- package/dist/TerrainFixtures.d.ts.map +0 -1
- package/dist/TerrainFixtures.js +0 -239
- package/dist/TerrainFixtures.js.map +0 -1
- package/dist/VegetationFixtures.d.ts +0 -68
- package/dist/VegetationFixtures.d.ts.map +0 -1
- package/dist/VegetationFixtures.js +0 -241
- package/dist/VegetationFixtures.js.map +0 -1
- package/dist/VoxelWorldFixtures.d.ts +0 -54
- package/dist/VoxelWorldFixtures.d.ts.map +0 -1
- package/dist/VoxelWorldFixtures.js +0 -186
- package/dist/VoxelWorldFixtures.js.map +0 -1
- package/dist/WeatherFixtures.d.ts +0 -46
- package/dist/WeatherFixtures.d.ts.map +0 -1
- package/dist/WeatherFixtures.js +0 -142
- package/dist/WeatherFixtures.js.map +0 -1
- package/dist/cartoon/CartoonMaterialStyle.d.ts +0 -19
- package/dist/cartoon/CartoonMaterialStyle.d.ts.map +0 -1
- package/dist/cartoon/CartoonMaterialStyle.js +0 -13
- package/dist/cartoon/CartoonMaterialStyle.js.map +0 -1
- package/dist/cartoon/CartoonRenderPreset.d.ts +0 -36
- package/dist/cartoon/CartoonRenderPreset.d.ts.map +0 -1
- package/dist/cartoon/CartoonRenderPreset.js +0 -23
- package/dist/cartoon/CartoonRenderPreset.js.map +0 -1
- package/dist/cartoon/CartoonToonMaterial.d.ts +0 -130
- package/dist/cartoon/CartoonToonMaterial.d.ts.map +0 -1
- package/dist/cartoon/CartoonToonMaterial.js +0 -303
- package/dist/cartoon/CartoonToonMaterial.js.map +0 -1
- package/dist/cartoon/CartoonVisualQuality.d.ts +0 -28
- package/dist/cartoon/CartoonVisualQuality.d.ts.map +0 -1
- package/dist/cartoon/CartoonVisualQuality.js +0 -39
- package/dist/cartoon/CartoonVisualQuality.js.map +0 -1
- package/dist/cartoon/applyCartoonRenderPreset.d.ts +0 -79
- package/dist/cartoon/applyCartoonRenderPreset.d.ts.map +0 -1
- package/dist/cartoon/applyCartoonRenderPreset.js +0 -88
- package/dist/cartoon/applyCartoonRenderPreset.js.map +0 -1
- package/dist/cartoon/index.d.ts +0 -6
- package/dist/cartoon/index.d.ts.map +0 -1
- package/dist/cartoon/index.js +0 -6
- package/dist/cartoon/index.js.map +0 -1
- package/dist/threejs-compatibility/InstancingSystem.d.ts +0 -10
- package/dist/threejs-compatibility/InstancingSystem.d.ts.map +0 -1
- package/dist/threejs-compatibility/InstancingSystem.js +0 -11
- package/dist/threejs-compatibility/InstancingSystem.js.map +0 -1
- package/dist/threejs-compatibility/LightingSystem.d.ts +0 -11
- package/dist/threejs-compatibility/LightingSystem.d.ts.map +0 -1
- package/dist/threejs-compatibility/LightingSystem.js +0 -14
- package/dist/threejs-compatibility/LightingSystem.js.map +0 -1
- package/dist/threejs-compatibility/MaterialSystem.d.ts +0 -6
- package/dist/threejs-compatibility/MaterialSystem.d.ts.map +0 -1
- package/dist/threejs-compatibility/MaterialSystem.js +0 -7
- package/dist/threejs-compatibility/MaterialSystem.js.map +0 -1
- package/dist/threejs-compatibility/RenderTargetSystem.d.ts +0 -16
- package/dist/threejs-compatibility/RenderTargetSystem.d.ts.map +0 -1
- package/dist/threejs-compatibility/RenderTargetSystem.js +0 -23
- package/dist/threejs-compatibility/RenderTargetSystem.js.map +0 -1
- package/dist/threejs-compatibility/RendererDiagnostics.d.ts +0 -27
- package/dist/threejs-compatibility/RendererDiagnostics.d.ts.map +0 -1
- package/dist/threejs-compatibility/RendererDiagnostics.js +0 -41
- package/dist/threejs-compatibility/RendererDiagnostics.js.map +0 -1
- package/dist/threejs-compatibility/SceneRenderer.d.ts +0 -19
- package/dist/threejs-compatibility/SceneRenderer.d.ts.map +0 -1
- package/dist/threejs-compatibility/SceneRenderer.js +0 -18
- package/dist/threejs-compatibility/SceneRenderer.js.map +0 -1
- package/dist/threejs-compatibility/ShadowSystem.d.ts +0 -11
- package/dist/threejs-compatibility/ShadowSystem.d.ts.map +0 -1
- package/dist/threejs-compatibility/ShadowSystem.js +0 -12
- package/dist/threejs-compatibility/ShadowSystem.js.map +0 -1
- package/dist/threejs-compatibility/TextureSystem.d.ts +0 -9
- package/dist/threejs-compatibility/TextureSystem.d.ts.map +0 -1
- package/dist/threejs-compatibility/TextureSystem.js +0 -14
- package/dist/threejs-compatibility/TextureSystem.js.map +0 -1
- package/dist/threejs-compatibility/ThreeCompatRenderer.d.ts +0 -37
- package/dist/threejs-compatibility/ThreeCompatRenderer.d.ts.map +0 -1
- package/dist/threejs-compatibility/ThreeCompatRenderer.js +0 -77
- package/dist/threejs-compatibility/ThreeCompatRenderer.js.map +0 -1
- package/dist/threejs-compatibility/TransparencySystem.d.ts +0 -11
- package/dist/threejs-compatibility/TransparencySystem.d.ts.map +0 -1
- package/dist/threejs-compatibility/TransparencySystem.js +0 -12
- package/dist/threejs-compatibility/TransparencySystem.js.map +0 -1
- package/dist/threejs-compatibility/index.d.ts +0 -25
- package/dist/threejs-compatibility/index.d.ts.map +0 -1
- package/dist/threejs-compatibility/index.js +0 -15
- package/dist/threejs-compatibility/index.js.map +0 -1
- package/dist/threejs-compatibility/performance/BVH.d.ts +0 -11
- package/dist/threejs-compatibility/performance/BVH.d.ts.map +0 -1
- package/dist/threejs-compatibility/performance/BVH.js +0 -10
- package/dist/threejs-compatibility/performance/BVH.js.map +0 -1
- package/dist/threejs-compatibility/performance/FrustumCulling.d.ts +0 -7
- package/dist/threejs-compatibility/performance/FrustumCulling.d.ts.map +0 -1
- package/dist/threejs-compatibility/performance/FrustumCulling.js +0 -5
- package/dist/threejs-compatibility/performance/FrustumCulling.js.map +0 -1
- package/dist/threejs-compatibility/performance/Instancing.d.ts +0 -7
- package/dist/threejs-compatibility/performance/Instancing.d.ts.map +0 -1
- package/dist/threejs-compatibility/performance/Instancing.js +0 -10
- package/dist/threejs-compatibility/performance/Instancing.js.map +0 -1
- package/dist/threejs-compatibility/performance/LODSystem.d.ts +0 -9
- package/dist/threejs-compatibility/performance/LODSystem.d.ts.map +0 -1
- package/dist/threejs-compatibility/performance/LODSystem.js +0 -11
- package/dist/threejs-compatibility/performance/LODSystem.js.map +0 -1
- package/dist/threejs-compatibility/performance/OcclusionCulling.d.ts +0 -3
- package/dist/threejs-compatibility/performance/OcclusionCulling.d.ts.map +0 -1
- package/dist/threejs-compatibility/performance/OcclusionCulling.js +0 -5
- package/dist/threejs-compatibility/performance/OcclusionCulling.js.map +0 -1
- package/dist/threejs-compatibility/performance/RaycastAcceleration.d.ts +0 -8
- package/dist/threejs-compatibility/performance/RaycastAcceleration.d.ts.map +0 -1
- package/dist/threejs-compatibility/performance/RaycastAcceleration.js +0 -11
- package/dist/threejs-compatibility/performance/RaycastAcceleration.js.map +0 -1
- package/dist/threejs-compatibility/performance/RendererProfiler.d.ts +0 -11
- package/dist/threejs-compatibility/performance/RendererProfiler.d.ts.map +0 -1
- package/dist/threejs-compatibility/performance/RendererProfiler.js +0 -10
- package/dist/threejs-compatibility/performance/RendererProfiler.js.map +0 -1
- package/dist/threejs-compatibility/performance/TextureStreaming.d.ts +0 -7
- package/dist/threejs-compatibility/performance/TextureStreaming.d.ts.map +0 -1
- package/dist/threejs-compatibility/performance/TextureStreaming.js +0 -10
- package/dist/threejs-compatibility/performance/TextureStreaming.js.map +0 -1
- package/dist/threejs-compatibility/performance/index.d.ts +0 -13
- package/dist/threejs-compatibility/performance/index.d.ts.map +0 -1
- package/dist/threejs-compatibility/performance/index.js +0 -9
- package/dist/threejs-compatibility/performance/index.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/BloomPass.d.ts +0 -9
- package/dist/threejs-compatibility/postprocess/BloomPass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/BloomPass.js +0 -14
- package/dist/threejs-compatibility/postprocess/BloomPass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/ColorGradingPass.d.ts +0 -10
- package/dist/threejs-compatibility/postprocess/ColorGradingPass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/ColorGradingPass.js +0 -16
- package/dist/threejs-compatibility/postprocess/ColorGradingPass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/DepthOfFieldPass.d.ts +0 -9
- package/dist/threejs-compatibility/postprocess/DepthOfFieldPass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/DepthOfFieldPass.js +0 -19
- package/dist/threejs-compatibility/postprocess/DepthOfFieldPass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/EffectComposer.d.ts +0 -7
- package/dist/threejs-compatibility/postprocess/EffectComposer.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/EffectComposer.js +0 -11
- package/dist/threejs-compatibility/postprocess/EffectComposer.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/FXAAPass.d.ts +0 -7
- package/dist/threejs-compatibility/postprocess/FXAAPass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/FXAAPass.js +0 -10
- package/dist/threejs-compatibility/postprocess/FXAAPass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/MotionBlurPass.d.ts +0 -9
- package/dist/threejs-compatibility/postprocess/MotionBlurPass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/MotionBlurPass.js +0 -18
- package/dist/threejs-compatibility/postprocess/MotionBlurPass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/OutlinePass.d.ts +0 -9
- package/dist/threejs-compatibility/postprocess/OutlinePass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/OutlinePass.js +0 -19
- package/dist/threejs-compatibility/postprocess/OutlinePass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/PostProcessTypes.d.ts +0 -42
- package/dist/threejs-compatibility/postprocess/PostProcessTypes.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/PostProcessTypes.js +0 -123
- package/dist/threejs-compatibility/postprocess/PostProcessTypes.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/RenderPass.d.ts +0 -7
- package/dist/threejs-compatibility/postprocess/RenderPass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/RenderPass.js +0 -8
- package/dist/threejs-compatibility/postprocess/RenderPass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/SMAAPass.d.ts +0 -7
- package/dist/threejs-compatibility/postprocess/SMAAPass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/SMAAPass.js +0 -10
- package/dist/threejs-compatibility/postprocess/SMAAPass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/SSAOPass.d.ts +0 -9
- package/dist/threejs-compatibility/postprocess/SSAOPass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/SSAOPass.js +0 -19
- package/dist/threejs-compatibility/postprocess/SSAOPass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/ShaderPass.d.ts +0 -9
- package/dist/threejs-compatibility/postprocess/ShaderPass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/ShaderPass.js +0 -11
- package/dist/threejs-compatibility/postprocess/ShaderPass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/TAAPass.d.ts +0 -7
- package/dist/threejs-compatibility/postprocess/TAAPass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/TAAPass.js +0 -10
- package/dist/threejs-compatibility/postprocess/TAAPass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/VignettePass.d.ts +0 -9
- package/dist/threejs-compatibility/postprocess/VignettePass.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/VignettePass.js +0 -14
- package/dist/threejs-compatibility/postprocess/VignettePass.js.map +0 -1
- package/dist/threejs-compatibility/postprocess/index.d.ts +0 -16
- package/dist/threejs-compatibility/postprocess/index.d.ts.map +0 -1
- package/dist/threejs-compatibility/postprocess/index.js +0 -15
- package/dist/threejs-compatibility/postprocess/index.js.map +0 -1
- package/dist/threejs-compatibility/shaders/NodeMaterial.d.ts +0 -14
- package/dist/threejs-compatibility/shaders/NodeMaterial.d.ts.map +0 -1
- package/dist/threejs-compatibility/shaders/NodeMaterial.js +0 -15
- package/dist/threejs-compatibility/shaders/NodeMaterial.js.map +0 -1
- package/dist/threejs-compatibility/shaders/RawShaderMaterial.d.ts +0 -6
- package/dist/threejs-compatibility/shaders/RawShaderMaterial.d.ts.map +0 -1
- package/dist/threejs-compatibility/shaders/RawShaderMaterial.js +0 -6
- package/dist/threejs-compatibility/shaders/RawShaderMaterial.js.map +0 -1
- package/dist/threejs-compatibility/shaders/ShaderDiagnostics.d.ts +0 -7
- package/dist/threejs-compatibility/shaders/ShaderDiagnostics.d.ts.map +0 -1
- package/dist/threejs-compatibility/shaders/ShaderDiagnostics.js +0 -12
- package/dist/threejs-compatibility/shaders/ShaderDiagnostics.js.map +0 -1
- package/dist/threejs-compatibility/shaders/ShaderMaterial.d.ts +0 -12
- package/dist/threejs-compatibility/shaders/ShaderMaterial.d.ts.map +0 -1
- package/dist/threejs-compatibility/shaders/ShaderMaterial.js +0 -20
- package/dist/threejs-compatibility/shaders/ShaderMaterial.js.map +0 -1
- package/dist/threejs-compatibility/shaders/ThreeCompatShaderChunks.d.ts +0 -7
- package/dist/threejs-compatibility/shaders/ThreeCompatShaderChunks.d.ts.map +0 -1
- package/dist/threejs-compatibility/shaders/ThreeCompatShaderChunks.js +0 -7
- package/dist/threejs-compatibility/shaders/ThreeCompatShaderChunks.js.map +0 -1
- package/dist/threejs-compatibility/shaders/Uniforms.d.ts +0 -8
- package/dist/threejs-compatibility/shaders/Uniforms.d.ts.map +0 -1
- package/dist/threejs-compatibility/shaders/Uniforms.js +0 -14
- package/dist/threejs-compatibility/shaders/Uniforms.js.map +0 -1
- package/dist/threejs-compatibility/shaders/index.d.ts +0 -10
- package/dist/threejs-compatibility/shaders/index.d.ts.map +0 -1
- package/dist/threejs-compatibility/shaders/index.js +0 -7
- package/dist/threejs-compatibility/shaders/index.js.map +0 -1
- package/dist/threejs-compatibility/vfx/GPUPointCloud.d.ts +0 -7
- package/dist/threejs-compatibility/vfx/GPUPointCloud.d.ts.map +0 -1
- package/dist/threejs-compatibility/vfx/GPUPointCloud.js +0 -12
- package/dist/threejs-compatibility/vfx/GPUPointCloud.js.map +0 -1
- package/dist/threejs-compatibility/vfx/LineRenderer.d.ts +0 -10
- package/dist/threejs-compatibility/vfx/LineRenderer.d.ts.map +0 -1
- package/dist/threejs-compatibility/vfx/LineRenderer.js +0 -7
- package/dist/threejs-compatibility/vfx/LineRenderer.js.map +0 -1
- package/dist/threejs-compatibility/vfx/ParticleSystem.d.ts +0 -12
- package/dist/threejs-compatibility/vfx/ParticleSystem.d.ts.map +0 -1
- package/dist/threejs-compatibility/vfx/ParticleSystem.js +0 -15
- package/dist/threejs-compatibility/vfx/ParticleSystem.js.map +0 -1
- package/dist/threejs-compatibility/vfx/SpriteSystem.d.ts +0 -11
- package/dist/threejs-compatibility/vfx/SpriteSystem.d.ts.map +0 -1
- package/dist/threejs-compatibility/vfx/SpriteSystem.js +0 -7
- package/dist/threejs-compatibility/vfx/SpriteSystem.js.map +0 -1
- package/dist/threejs-compatibility/vfx/TrailRenderer.d.ts +0 -5
- package/dist/threejs-compatibility/vfx/TrailRenderer.d.ts.map +0 -1
- package/dist/threejs-compatibility/vfx/TrailRenderer.js +0 -9
- package/dist/threejs-compatibility/vfx/TrailRenderer.js.map +0 -1
- package/dist/threejs-compatibility/vfx/VFXDiagnostics.d.ts +0 -21
- package/dist/threejs-compatibility/vfx/VFXDiagnostics.d.ts.map +0 -1
- package/dist/threejs-compatibility/vfx/VFXDiagnostics.js +0 -12
- package/dist/threejs-compatibility/vfx/VFXDiagnostics.js.map +0 -1
- package/dist/threejs-compatibility/vfx/index.d.ts +0 -10
- package/dist/threejs-compatibility/vfx/index.d.ts.map +0 -1
- package/dist/threejs-compatibility/vfx/index.js +0 -7
- package/dist/threejs-compatibility/vfx/index.js.map +0 -1
- package/dist/webgpu-device-entry.d.ts +0 -25
- package/dist/webgpu-device-entry.d.ts.map +0 -1
- package/dist/webgpu-device-entry.js +0 -24
- package/dist/webgpu-device-entry.js.map +0 -1
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
export interface CullingFixtureOptions {
|
|
2
|
-
readonly seed?: number;
|
|
3
|
-
readonly objectCount?: number;
|
|
4
|
-
readonly cameraX?: number;
|
|
5
|
-
readonly depthResolution?: readonly [number, number];
|
|
6
|
-
}
|
|
7
|
-
export interface CullingFixtureObject {
|
|
8
|
-
readonly id: string;
|
|
9
|
-
readonly center: readonly [number, number, number];
|
|
10
|
-
readonly halfExtents: readonly [number, number, number];
|
|
11
|
-
readonly projectedAreaPixels: number;
|
|
12
|
-
}
|
|
13
|
-
export interface CullingBvhTelemetry {
|
|
14
|
-
readonly nodeCount: number;
|
|
15
|
-
readonly leafCount: number;
|
|
16
|
-
readonly objectCount: number;
|
|
17
|
-
readonly maxDepth: number;
|
|
18
|
-
readonly averageLeafObjects: number;
|
|
19
|
-
readonly sahSplitCount: number;
|
|
20
|
-
readonly boundsTests: number;
|
|
21
|
-
readonly objectTests: number;
|
|
22
|
-
readonly rangeQueryHits: number;
|
|
23
|
-
readonly raycastHitId: string | null;
|
|
24
|
-
readonly raycastDistance: number;
|
|
25
|
-
}
|
|
26
|
-
export interface CullingFrustumTelemetry {
|
|
27
|
-
readonly testedObjects: number;
|
|
28
|
-
readonly visibleObjects: number;
|
|
29
|
-
readonly culledObjects: number;
|
|
30
|
-
readonly visibleRatio: number;
|
|
31
|
-
}
|
|
32
|
-
export interface CullingHiZTelemetry {
|
|
33
|
-
readonly depthResolution: readonly [number, number];
|
|
34
|
-
readonly mipLevels: number;
|
|
35
|
-
readonly depthPyramidTexels: number;
|
|
36
|
-
readonly maxDepthSamples: number;
|
|
37
|
-
readonly conservativeTests: number;
|
|
38
|
-
readonly visibleObjects: number;
|
|
39
|
-
readonly occludedObjects: number;
|
|
40
|
-
readonly unknownResults: number;
|
|
41
|
-
readonly frameCoherentReused: number;
|
|
42
|
-
readonly depthThreshold: number;
|
|
43
|
-
readonly estimatedBuildMs: number;
|
|
44
|
-
readonly estimatedTestMs: number;
|
|
45
|
-
}
|
|
46
|
-
export interface CullingFeatureEvidence {
|
|
47
|
-
readonly bvhHierarchy: boolean;
|
|
48
|
-
readonly frustumTraversal: boolean;
|
|
49
|
-
readonly hizPyramid: boolean;
|
|
50
|
-
readonly conservativeOcclusion: boolean;
|
|
51
|
-
readonly frameCoherency: boolean;
|
|
52
|
-
}
|
|
53
|
-
export interface CullingFixture {
|
|
54
|
-
readonly id: "external-parity-old-branch-bvh-hiz-culling-fixture";
|
|
55
|
-
readonly source: "origin-master-bvh-hiz-occlusion-adapted";
|
|
56
|
-
readonly sourceFiles: readonly string[];
|
|
57
|
-
readonly seed: number;
|
|
58
|
-
readonly cameraX: number;
|
|
59
|
-
readonly objectCount: number;
|
|
60
|
-
readonly objects: readonly CullingFixtureObject[];
|
|
61
|
-
readonly bvh: CullingBvhTelemetry;
|
|
62
|
-
readonly frustum: CullingFrustumTelemetry;
|
|
63
|
-
readonly hiz: CullingHiZTelemetry;
|
|
64
|
-
readonly featureEvidence: CullingFeatureEvidence;
|
|
65
|
-
readonly hash: string;
|
|
66
|
-
readonly claimBoundary: string;
|
|
67
|
-
readonly blockedClaims: readonly string[];
|
|
68
|
-
}
|
|
69
|
-
export declare function sampleCullingFixture(options?: CullingFixtureOptions): CullingFixture;
|
|
70
|
-
//# sourceMappingURL=CullingFixtures.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CullingFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/CullingFixtures.ts"],"names":[],"mappings":"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"}
|
package/dist/CullingFixtures.js
DELETED
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
const sourceFiles = [
|
|
2
|
-
"origin/master:src/rendering/culling/BVH.ts",
|
|
3
|
-
"origin/master:src/rendering/culling/HiZCulling.ts",
|
|
4
|
-
"origin/master:src/rendering/culling/OcclusionCuller.ts",
|
|
5
|
-
"origin/master:src/rendering/culling/FrustumCuller.ts",
|
|
6
|
-
"origin/master:src/rendering/culling/GPUCulling.ts"
|
|
7
|
-
];
|
|
8
|
-
const blockedClaims = [
|
|
9
|
-
"production GPU occlusion culling parity",
|
|
10
|
-
"hardware occlusion query parity",
|
|
11
|
-
"production Hi-Z renderer integration",
|
|
12
|
-
"portal/sector visibility parity",
|
|
13
|
-
"Unity occlusion culling parity",
|
|
14
|
-
"Unreal Nanite/occlusion parity"
|
|
15
|
-
];
|
|
16
|
-
export function sampleCullingFixture(options = {}) {
|
|
17
|
-
const seed = integer(options.seed ?? 0x3d2025, "seed");
|
|
18
|
-
const objectCount = integerRange(options.objectCount ?? 32, 8, 256, "objectCount");
|
|
19
|
-
const cameraX = finiteNumber(options.cameraX ?? 0, "cameraX");
|
|
20
|
-
const depthResolution = depthResolutionOption(options.depthResolution ?? [320, 180]);
|
|
21
|
-
const objects = createObjects(seed, objectCount, cameraX, depthResolution);
|
|
22
|
-
const visible = objects.filter((object) => inFrustum(object, cameraX));
|
|
23
|
-
const culledObjects = objectCount - visible.length;
|
|
24
|
-
const occlusionResults = visible.map((object, index) => ({
|
|
25
|
-
object,
|
|
26
|
-
occluded: isOccludedByHiZ(object, index, cameraX),
|
|
27
|
-
unknown: (index + seed) % 13 === 0
|
|
28
|
-
}));
|
|
29
|
-
const occludedObjects = occlusionResults.filter((result) => result.occluded && !result.unknown).length;
|
|
30
|
-
const unknownResults = occlusionResults.filter((result) => result.unknown).length;
|
|
31
|
-
const hizVisibleObjects = Math.max(0, visible.length - occludedObjects - unknownResults);
|
|
32
|
-
const leafSize = 4;
|
|
33
|
-
const leafCount = Math.ceil(objectCount / leafSize);
|
|
34
|
-
const nodeCount = leafCount * 2 - 1;
|
|
35
|
-
const maxDepth = Math.ceil(Math.log2(Math.max(1, leafCount))) + 1;
|
|
36
|
-
const mipLevels = mipCount(depthResolution[0], depthResolution[1]);
|
|
37
|
-
const depthPyramidTexels = depthTexels(depthResolution[0], depthResolution[1], mipLevels);
|
|
38
|
-
const rayHit = nearestRayHit(objects, cameraX);
|
|
39
|
-
const bvh = {
|
|
40
|
-
nodeCount,
|
|
41
|
-
leafCount,
|
|
42
|
-
objectCount,
|
|
43
|
-
maxDepth,
|
|
44
|
-
averageLeafObjects: round3(objectCount / leafCount),
|
|
45
|
-
sahSplitCount: Math.max(0, leafCount - 1),
|
|
46
|
-
boundsTests: nodeCount + visible.length * 2,
|
|
47
|
-
objectTests: Math.max(1, Math.ceil(visible.length * 0.65)),
|
|
48
|
-
rangeQueryHits: objects.filter((object) => Math.hypot(object.center[0] - cameraX, object.center[2]) < 0.85).length,
|
|
49
|
-
raycastHitId: rayHit?.id ?? null,
|
|
50
|
-
raycastDistance: rayHit?.distance ?? 0
|
|
51
|
-
};
|
|
52
|
-
const frustum = {
|
|
53
|
-
testedObjects: objectCount,
|
|
54
|
-
visibleObjects: visible.length,
|
|
55
|
-
culledObjects,
|
|
56
|
-
visibleRatio: round3(visible.length / objectCount)
|
|
57
|
-
};
|
|
58
|
-
const hiz = {
|
|
59
|
-
depthResolution,
|
|
60
|
-
mipLevels,
|
|
61
|
-
depthPyramidTexels,
|
|
62
|
-
maxDepthSamples: Math.min(depthPyramidTexels, 128),
|
|
63
|
-
conservativeTests: visible.length,
|
|
64
|
-
visibleObjects: hizVisibleObjects,
|
|
65
|
-
occludedObjects,
|
|
66
|
-
unknownResults,
|
|
67
|
-
frameCoherentReused: Math.max(1, Math.floor(visible.length * 0.35)),
|
|
68
|
-
depthThreshold: 0.001,
|
|
69
|
-
estimatedBuildMs: round3(Math.min(0.49, depthPyramidTexels / 1_250_000)),
|
|
70
|
-
estimatedTestMs: round3(Math.min(0.29, visible.length / 9_500))
|
|
71
|
-
};
|
|
72
|
-
const hash = stableHash([
|
|
73
|
-
seed,
|
|
74
|
-
objectCount,
|
|
75
|
-
cameraX.toFixed(3),
|
|
76
|
-
depthResolution.join("x"),
|
|
77
|
-
objects.map((object) => `${object.id}:${object.center.join(",")}:${object.projectedAreaPixels}`).join("|"),
|
|
78
|
-
`${bvh.nodeCount}:${bvh.maxDepth}:${frustum.visibleObjects}:${hiz.occludedObjects}:${hiz.visibleObjects}:${hiz.unknownResults}`
|
|
79
|
-
].join("#"));
|
|
80
|
-
return {
|
|
81
|
-
id: "external-parity-old-branch-bvh-hiz-culling-fixture",
|
|
82
|
-
source: "origin-master-bvh-hiz-occlusion-adapted",
|
|
83
|
-
sourceFiles,
|
|
84
|
-
seed,
|
|
85
|
-
cameraX: round3(cameraX),
|
|
86
|
-
objectCount,
|
|
87
|
-
objects,
|
|
88
|
-
bvh,
|
|
89
|
-
frustum,
|
|
90
|
-
hiz,
|
|
91
|
-
featureEvidence: {
|
|
92
|
-
bvhHierarchy: bvh.nodeCount > bvh.leafCount && bvh.maxDepth > 1,
|
|
93
|
-
frustumTraversal: frustum.visibleObjects > 0 && frustum.culledObjects > 0,
|
|
94
|
-
hizPyramid: hiz.mipLevels > 1 && hiz.depthPyramidTexels > depthResolution[0] * depthResolution[1],
|
|
95
|
-
conservativeOcclusion: hiz.conservativeTests > 0 && hiz.occludedObjects > 0 && hiz.visibleObjects > 0,
|
|
96
|
-
frameCoherency: hiz.frameCoherentReused > 0
|
|
97
|
-
},
|
|
98
|
-
hash,
|
|
99
|
-
claimBoundary: "Deterministic BVH, frustum traversal, Hi-Z mip telemetry, conservative occlusion-test counts, and frame-coherency metrics adapted from the old culling subsystem; this is bounded fixture evidence, not production GPU occlusion culling, hardware query, portal, or Nanite-style visibility parity.",
|
|
100
|
-
blockedClaims
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
function createObjects(seed, objectCount, cameraX, depthResolution) {
|
|
104
|
-
return Array.from({ length: objectCount }, (_, index) => {
|
|
105
|
-
const lane = index % 5;
|
|
106
|
-
const t = objectCount <= 1 ? 0 : index / (objectCount - 1);
|
|
107
|
-
const centerX = -2.05 + t * 4.1 + (hash01(seed, index) - 0.5) * 0.12;
|
|
108
|
-
const centerY = -0.18 + (lane - 2) * 0.045 + hash01(seed + 17, index) * 0.08;
|
|
109
|
-
const centerZ = -0.18 + lane * 0.17 + hash01(seed + 29, index) * 0.08;
|
|
110
|
-
const halfX = 0.045 + hash01(seed + 41, index) * 0.08;
|
|
111
|
-
const halfY = 0.08 + hash01(seed + 53, index) * 0.18;
|
|
112
|
-
const halfZ = 0.035 + hash01(seed + 67, index) * 0.06;
|
|
113
|
-
const distance = Math.max(0.12, Math.hypot(centerX - cameraX, centerZ + 0.25));
|
|
114
|
-
const screenScale = Math.max(depthResolution[0], depthResolution[1]) / 4.5;
|
|
115
|
-
return {
|
|
116
|
-
id: `cull-object-${String(index).padStart(2, "0")}`,
|
|
117
|
-
center: [round3(centerX), round3(centerY), round3(centerZ)],
|
|
118
|
-
halfExtents: [round3(halfX), round3(halfY), round3(halfZ)],
|
|
119
|
-
projectedAreaPixels: Math.max(1, Math.round((halfX * 2 * halfY * 2 * screenScale) / distance))
|
|
120
|
-
};
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
function inFrustum(object, cameraX) {
|
|
124
|
-
const x = object.center[0] - cameraX;
|
|
125
|
-
const z = object.center[2];
|
|
126
|
-
return Math.abs(x) <= 1.32 && z >= -0.22 && z <= 0.72;
|
|
127
|
-
}
|
|
128
|
-
function isOccludedByHiZ(object, visibleIndex, cameraX) {
|
|
129
|
-
const distance = Math.hypot(object.center[0] - cameraX, object.center[2] + 0.18);
|
|
130
|
-
const smallEnoughForConservativeTest = object.projectedAreaPixels < 18;
|
|
131
|
-
return distance > 0.74 && (smallEnoughForConservativeTest || visibleIndex % 4 === 1);
|
|
132
|
-
}
|
|
133
|
-
function nearestRayHit(objects, cameraX) {
|
|
134
|
-
let best = null;
|
|
135
|
-
for (const object of objects) {
|
|
136
|
-
const screenX = Math.abs(object.center[0] - cameraX);
|
|
137
|
-
if (screenX > object.halfExtents[0] + 0.08)
|
|
138
|
-
continue;
|
|
139
|
-
const distance = Math.hypot(object.center[0] - cameraX, object.center[1], object.center[2] + 1);
|
|
140
|
-
if (!best || distance < best.distance)
|
|
141
|
-
best = { id: object.id, distance: round3(distance) };
|
|
142
|
-
}
|
|
143
|
-
return best;
|
|
144
|
-
}
|
|
145
|
-
function depthResolutionOption(value) {
|
|
146
|
-
const width = integerRange(value[0], 64, 4096, "depthResolution[0]");
|
|
147
|
-
const height = integerRange(value[1], 64, 4096, "depthResolution[1]");
|
|
148
|
-
return [width, height];
|
|
149
|
-
}
|
|
150
|
-
function mipCount(width, height) {
|
|
151
|
-
return Math.floor(Math.log2(Math.max(width, height))) + 1;
|
|
152
|
-
}
|
|
153
|
-
function depthTexels(width, height, levels) {
|
|
154
|
-
let texels = 0;
|
|
155
|
-
for (let level = 0; level < levels; level += 1) {
|
|
156
|
-
texels += Math.max(1, Math.ceil(width / 2 ** level)) * Math.max(1, Math.ceil(height / 2 ** level));
|
|
157
|
-
}
|
|
158
|
-
return texels;
|
|
159
|
-
}
|
|
160
|
-
function integer(value, name) {
|
|
161
|
-
if (!Number.isInteger(value))
|
|
162
|
-
throw new RangeError(`Culling fixture ${name} must be an integer.`);
|
|
163
|
-
return value;
|
|
164
|
-
}
|
|
165
|
-
function integerRange(value, min, max, name) {
|
|
166
|
-
const result = integer(value, name);
|
|
167
|
-
if (result < min || result > max)
|
|
168
|
-
throw new RangeError(`Culling fixture ${name} must be between ${min} and ${max}.`);
|
|
169
|
-
return result;
|
|
170
|
-
}
|
|
171
|
-
function finiteNumber(value, name) {
|
|
172
|
-
if (!Number.isFinite(value))
|
|
173
|
-
throw new RangeError(`Culling fixture ${name} must be finite.`);
|
|
174
|
-
return value;
|
|
175
|
-
}
|
|
176
|
-
function hash01(seed, index) {
|
|
177
|
-
const x = Math.sin(seed * 12.9898 + index * 78.233) * 43758.5453;
|
|
178
|
-
return x - Math.floor(x);
|
|
179
|
-
}
|
|
180
|
-
function stableHash(input) {
|
|
181
|
-
let hash = 0x811c9dc5;
|
|
182
|
-
for (let index = 0; index < input.length; index += 1) {
|
|
183
|
-
hash ^= input.charCodeAt(index);
|
|
184
|
-
hash = Math.imul(hash, 0x01000193);
|
|
185
|
-
}
|
|
186
|
-
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
187
|
-
}
|
|
188
|
-
function round3(value) {
|
|
189
|
-
return Number(value.toFixed(3));
|
|
190
|
-
}
|
|
191
|
-
//# sourceMappingURL=CullingFixtures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CullingFixtures.js","sourceRoot":"","sources":["../../../../packages/rendering/src/CullingFixtures.ts"],"names":[],"mappings":"AA2EA,MAAM,WAAW,GAAG;IAClB,4CAA4C;IAC5C,mDAAmD;IACnD,wDAAwD;IACxD,sDAAsD;IACtD,mDAAmD;CAC3C,CAAC;AAEX,MAAM,aAAa,GAAG;IACpB,yCAAyC;IACzC,iCAAiC;IACjC,sCAAsC;IACtC,iCAAiC;IACjC,gCAAgC;IAChC,gCAAgC;CACxB,CAAC;AAEX,MAAM,UAAU,oBAAoB,CAAC,UAAiC,EAAE;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM;QACN,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;QACjD,OAAO,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;KACnC,CAAC,CAAC,CAAC;IACJ,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACvG,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAClF,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,eAAe,GAAG,cAAc,CAAC,CAAC;IACzF,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,kBAAkB,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAwB;QAC/B,SAAS;QACT,SAAS;QACT,WAAW;QACX,QAAQ;QACR,kBAAkB,EAAE,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;QACnD,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;QACzC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;QAC3C,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC1D,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM;QAClH,YAAY,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI;QAChC,eAAe,EAAE,MAAM,EAAE,QAAQ,IAAI,CAAC;KACvC,CAAC;IACF,MAAM,OAAO,GAA4B;QACvC,aAAa,EAAE,WAAW;QAC1B,cAAc,EAAE,OAAO,CAAC,MAAM;QAC9B,aAAa;QACb,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;KACnD,CAAC;IACF,MAAM,GAAG,GAAwB;QAC/B,eAAe;QACf,SAAS;QACT,kBAAkB;QAClB,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC;QAClD,iBAAiB,EAAE,OAAO,CAAC,MAAM;QACjC,cAAc,EAAE,iBAAiB;QACjC,eAAe;QACf,cAAc;QACd,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACnE,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,GAAG,SAAS,CAAC,CAAC;QACxE,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;KAChE,CAAC;IACF,MAAM,IAAI,GAAG,UAAU,CAAC;QACtB,IAAI;QACJ,WAAW;QACX,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAClB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1G,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,cAAc,IAAI,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,EAAE;KAChI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACb,OAAO;QACL,EAAE,EAAE,oDAAoD;QACxD,MAAM,EAAE,yCAAyC;QACjD,WAAW;QACX,IAAI;QACJ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;QACxB,WAAW;QACX,OAAO;QACP,GAAG;QACH,OAAO;QACP,GAAG;QACH,eAAe,EAAE;YACf,YAAY,EAAE,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC;YAC/D,gBAAgB,EAAE,OAAO,CAAC,cAAc,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC;YACzE,UAAU,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,CAAC,kBAAkB,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;YACjG,qBAAqB,EAAE,GAAG,CAAC,iBAAiB,GAAG,CAAC,IAAI,GAAG,CAAC,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC;YACrG,cAAc,EAAE,GAAG,CAAC,mBAAmB,GAAG,CAAC;SAC5C;QACD,IAAI;QACJ,aAAa,EAAE,sSAAsS;QACrT,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,IAAY,EACZ,WAAmB,EACnB,OAAe,EACf,eAA0C;IAE1C,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACtD,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QACrE,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;QAC7E,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;QACtE,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3E,OAAO;YACL,EAAE,EAAE,eAAe,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACnD,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3D,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC;SAC/F,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,MAA4B,EAAE,OAAe;IAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,eAAe,CAAC,MAA4B,EAAE,YAAoB,EAAE,OAAe;IAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACjF,MAAM,8BAA8B,GAAG,MAAM,CAAC,mBAAmB,GAAG,EAAE,CAAC;IACvE,OAAO,QAAQ,GAAG,IAAI,IAAI,CAAC,8BAA8B,IAAI,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,aAAa,CAAC,OAAwC,EAAE,OAAe;IAC9E,IAAI,IAAI,GAA8D,IAAI,CAAC;IAC3E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;QACrD,IAAI,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;YAAE,SAAS;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ;YAAE,IAAI,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAgC;IAC7D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACtE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,MAAc;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc,EAAE,MAAc;IAChE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,IAAY;IAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,mBAAmB,IAAI,sBAAsB,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAE,IAAY;IACzE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,UAAU,CAAC,mBAAmB,IAAI,oBAAoB,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;IACrH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;IAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,mBAAmB,IAAI,kBAAkB,CAAC,CAAC;IAC7F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,KAAa;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC;IACjE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/OceanFixtures.d.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
export type OceanFixturePreset = "calm" | "moderate" | "rough" | "storm";
|
|
2
|
-
export interface OceanFixtureOptions {
|
|
3
|
-
readonly preset?: OceanFixturePreset;
|
|
4
|
-
readonly seed?: number;
|
|
5
|
-
readonly elapsedSeconds?: number;
|
|
6
|
-
readonly sampleCount?: number;
|
|
7
|
-
readonly cameraX?: number;
|
|
8
|
-
}
|
|
9
|
-
export interface OceanWaveDescriptor {
|
|
10
|
-
readonly amplitude: number;
|
|
11
|
-
readonly wavelength: number;
|
|
12
|
-
readonly speed: number;
|
|
13
|
-
readonly direction: readonly [number, number];
|
|
14
|
-
readonly steepness: number;
|
|
15
|
-
}
|
|
16
|
-
export interface OceanWaveSample {
|
|
17
|
-
readonly x: number;
|
|
18
|
-
readonly z: number;
|
|
19
|
-
readonly height: number;
|
|
20
|
-
readonly horizontalDisplacement: readonly [number, number];
|
|
21
|
-
readonly normal: readonly [number, number, number];
|
|
22
|
-
readonly foam: number;
|
|
23
|
-
}
|
|
24
|
-
export interface OceanFoamPatch {
|
|
25
|
-
readonly id: string;
|
|
26
|
-
readonly x: number;
|
|
27
|
-
readonly z: number;
|
|
28
|
-
readonly intensity: number;
|
|
29
|
-
readonly radius: number;
|
|
30
|
-
}
|
|
31
|
-
export interface OceanBuoyancySample {
|
|
32
|
-
readonly objectId: "marker-buoy";
|
|
33
|
-
readonly samplePointCount: number;
|
|
34
|
-
readonly submergedPointCount: number;
|
|
35
|
-
readonly waterHeight: number;
|
|
36
|
-
readonly submergedVolume: number;
|
|
37
|
-
readonly force: readonly [number, number, number];
|
|
38
|
-
readonly drag: readonly [number, number, number];
|
|
39
|
-
}
|
|
40
|
-
export interface OceanFixtureSample {
|
|
41
|
-
readonly id: "external-parity-old-branch-ocean-fixture";
|
|
42
|
-
readonly source: "origin-master-ocean-gerstner-foam-buoyancy-adapted";
|
|
43
|
-
readonly sourceFiles: readonly string[];
|
|
44
|
-
readonly preset: OceanFixturePreset;
|
|
45
|
-
readonly seed: number;
|
|
46
|
-
readonly elapsedSeconds: number;
|
|
47
|
-
readonly waveCount: number;
|
|
48
|
-
readonly waves: readonly OceanWaveDescriptor[];
|
|
49
|
-
readonly samples: readonly OceanWaveSample[];
|
|
50
|
-
readonly foamPatches: readonly OceanFoamPatch[];
|
|
51
|
-
readonly buoyancy: OceanBuoyancySample;
|
|
52
|
-
readonly minHeight: number;
|
|
53
|
-
readonly maxHeight: number;
|
|
54
|
-
readonly averageHeight: number;
|
|
55
|
-
readonly averageFoam: number;
|
|
56
|
-
readonly maxFoam: number;
|
|
57
|
-
readonly hash: string;
|
|
58
|
-
readonly claimBoundary: string;
|
|
59
|
-
readonly blockedClaims: readonly string[];
|
|
60
|
-
}
|
|
61
|
-
export declare function sampleOceanFixture(options?: OceanFixtureOptions): OceanFixtureSample;
|
|
62
|
-
//# sourceMappingURL=OceanFixtures.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OceanFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/OceanFixtures.ts"],"names":[],"mappings":"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"}
|
package/dist/OceanFixtures.js
DELETED
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
const sourceFiles = [
|
|
2
|
-
"origin/master:src/ocean/GerstnerWaves.ts",
|
|
3
|
-
"origin/master:src/ocean/FoamGenerator.ts",
|
|
4
|
-
"origin/master:src/ocean/BuoyancySystem.ts",
|
|
5
|
-
"origin/master:src/ocean/OceanFFT.ts",
|
|
6
|
-
"origin/master:src/ocean/OceanRenderer.ts"
|
|
7
|
-
];
|
|
8
|
-
const blockedClaims = [
|
|
9
|
-
"FFT ocean spectrum parity",
|
|
10
|
-
"planar reflection/refraction water renderer",
|
|
11
|
-
"underwater volume rendering",
|
|
12
|
-
"screen-space caustics parity",
|
|
13
|
-
"shoreline foam simulation",
|
|
14
|
-
"production buoyancy physics",
|
|
15
|
-
"Unity HDRP water parity",
|
|
16
|
-
"Unreal Water plugin parity"
|
|
17
|
-
];
|
|
18
|
-
export function sampleOceanFixture(options = {}) {
|
|
19
|
-
const preset = options.preset ?? "moderate";
|
|
20
|
-
const seed = integerOption(options.seed ?? 0x0cea6, "seed");
|
|
21
|
-
const elapsedSeconds = nonNegativeNumber(options.elapsedSeconds ?? 0, "elapsedSeconds");
|
|
22
|
-
const sampleCount = integerRange(options.sampleCount ?? 9, 5, 32, "sampleCount");
|
|
23
|
-
const cameraX = finiteNumber(options.cameraX ?? 0, "cameraX");
|
|
24
|
-
const waves = oceanPresetWaves(preset);
|
|
25
|
-
const samples = Array.from({ length: sampleCount }, (_, index) => {
|
|
26
|
-
const t = sampleCount <= 1 ? 0 : index / (sampleCount - 1);
|
|
27
|
-
const x = round3(-1.2 + t * 2.4 + Math.sin(seed + index) * 0.035 + cameraX * 0.08);
|
|
28
|
-
const z = round3(0.42 + Math.cos(seed * 0.17 + index) * 0.08);
|
|
29
|
-
const evaluated = evaluateWaves(waves, x, z, elapsedSeconds);
|
|
30
|
-
const compression = waveCompression(waves, x, z, elapsedSeconds);
|
|
31
|
-
const crestFoam = Math.abs(evaluated.height) * (preset === "calm" ? 0.16 : 0.42);
|
|
32
|
-
const foam = round3(Math.max(0, (1.08 - compression) * 1.45 + crestFoam));
|
|
33
|
-
return {
|
|
34
|
-
x,
|
|
35
|
-
z,
|
|
36
|
-
height: evaluated.height,
|
|
37
|
-
horizontalDisplacement: evaluated.horizontalDisplacement,
|
|
38
|
-
normal: evaluated.normal,
|
|
39
|
-
foam
|
|
40
|
-
};
|
|
41
|
-
});
|
|
42
|
-
const foamPatches = samples
|
|
43
|
-
.filter((sample) => sample.foam > 0.08)
|
|
44
|
-
.slice(0, 8)
|
|
45
|
-
.map((sample, index) => ({
|
|
46
|
-
id: `ocean-foam-${index}`,
|
|
47
|
-
x: sample.x,
|
|
48
|
-
z: sample.z,
|
|
49
|
-
intensity: sample.foam,
|
|
50
|
-
radius: round3(0.035 + sample.foam * 0.04)
|
|
51
|
-
}));
|
|
52
|
-
const buoyancy = calculateBuoyancy(waves, elapsedSeconds, cameraX);
|
|
53
|
-
const heights = samples.map((sample) => sample.height);
|
|
54
|
-
const foams = samples.map((sample) => sample.foam);
|
|
55
|
-
const hash = stableHash([
|
|
56
|
-
preset,
|
|
57
|
-
seed,
|
|
58
|
-
elapsedSeconds.toFixed(3),
|
|
59
|
-
samples.map((sample) => `${sample.x}:${sample.height}:${sample.foam}`).join("|"),
|
|
60
|
-
foamPatches.length,
|
|
61
|
-
buoyancy.force.join(",")
|
|
62
|
-
].join("#"));
|
|
63
|
-
return {
|
|
64
|
-
id: "external-parity-old-branch-ocean-fixture",
|
|
65
|
-
source: "origin-master-ocean-gerstner-foam-buoyancy-adapted",
|
|
66
|
-
sourceFiles,
|
|
67
|
-
preset,
|
|
68
|
-
seed,
|
|
69
|
-
elapsedSeconds: round3(elapsedSeconds),
|
|
70
|
-
waveCount: waves.length,
|
|
71
|
-
waves,
|
|
72
|
-
samples,
|
|
73
|
-
foamPatches,
|
|
74
|
-
buoyancy,
|
|
75
|
-
minHeight: round3(Math.min(...heights)),
|
|
76
|
-
maxHeight: round3(Math.max(...heights)),
|
|
77
|
-
averageHeight: round3(heights.reduce((sum, value) => sum + value, 0) / heights.length),
|
|
78
|
-
averageFoam: round3(foams.reduce((sum, value) => sum + value, 0) / foams.length),
|
|
79
|
-
maxFoam: round3(Math.max(...foams)),
|
|
80
|
-
hash,
|
|
81
|
-
claimBoundary: "This adapts old Gerstner, foam, and buoyancy concepts into deterministic local telemetry and simple markers; it does not implement a production ocean renderer.",
|
|
82
|
-
blockedClaims
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
function oceanPresetWaves(preset) {
|
|
86
|
-
if (preset === "calm") {
|
|
87
|
-
return [
|
|
88
|
-
wave(0.045, 0.9, 0.55, [1, 0.12], 0.2),
|
|
89
|
-
wave(0.026, 0.48, 0.42, [0.58, 0.82], 0.18)
|
|
90
|
-
];
|
|
91
|
-
}
|
|
92
|
-
if (preset === "rough") {
|
|
93
|
-
return [
|
|
94
|
-
wave(0.13, 1.4, 0.86, [1, 0.08], 0.58),
|
|
95
|
-
wave(0.09, 0.82, 0.72, [0.86, 0.5], 0.48),
|
|
96
|
-
wave(0.052, 0.46, 0.58, [0.54, 0.84], 0.42),
|
|
97
|
-
wave(0.032, 0.28, 0.48, [0.35, 0.94], 0.36)
|
|
98
|
-
];
|
|
99
|
-
}
|
|
100
|
-
if (preset === "storm") {
|
|
101
|
-
return [
|
|
102
|
-
wave(0.18, 1.75, 1.02, [1, 0.06], 0.72),
|
|
103
|
-
wave(0.13, 1.08, 0.88, [0.92, 0.39], 0.62),
|
|
104
|
-
wave(0.082, 0.62, 0.75, [0.76, 0.65], 0.54),
|
|
105
|
-
wave(0.052, 0.36, 0.62, [0.48, 0.88], 0.48),
|
|
106
|
-
wave(0.034, 0.22, 0.52, [0.28, 0.96], 0.42)
|
|
107
|
-
];
|
|
108
|
-
}
|
|
109
|
-
return [
|
|
110
|
-
wave(0.08, 1.1, 0.72, [1, 0.1], 0.38),
|
|
111
|
-
wave(0.055, 0.68, 0.58, [0.8, 0.6], 0.32),
|
|
112
|
-
wave(0.036, 0.38, 0.46, [0.6, 0.8], 0.28)
|
|
113
|
-
];
|
|
114
|
-
}
|
|
115
|
-
function wave(amplitude, wavelength, speed, direction, steepness) {
|
|
116
|
-
const length = Math.hypot(direction[0], direction[1]) || 1;
|
|
117
|
-
return {
|
|
118
|
-
amplitude,
|
|
119
|
-
wavelength,
|
|
120
|
-
speed,
|
|
121
|
-
direction: [round3(direction[0] / length), round3(direction[1] / length)],
|
|
122
|
-
steepness: Math.min(1, steepness)
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
function evaluateWaves(waves, x, z, time) {
|
|
126
|
-
let height = 0;
|
|
127
|
-
let dx = 0;
|
|
128
|
-
let dz = 0;
|
|
129
|
-
let nx = 0;
|
|
130
|
-
let ny = 1;
|
|
131
|
-
let nz = 0;
|
|
132
|
-
for (const descriptor of waves) {
|
|
133
|
-
const k = (2 * Math.PI) / descriptor.wavelength;
|
|
134
|
-
const omega = descriptor.speed * k;
|
|
135
|
-
const phase = k * (descriptor.direction[0] * x + descriptor.direction[1] * z) - omega * time;
|
|
136
|
-
const sin = Math.sin(phase);
|
|
137
|
-
const cos = Math.cos(phase);
|
|
138
|
-
const q = descriptor.steepness / Math.max(0.0001, descriptor.amplitude * k * waves.length);
|
|
139
|
-
const waveAmplitude = k * descriptor.amplitude;
|
|
140
|
-
height += descriptor.amplitude * sin;
|
|
141
|
-
dx += q * descriptor.amplitude * descriptor.direction[0] * cos;
|
|
142
|
-
dz += q * descriptor.amplitude * descriptor.direction[1] * cos;
|
|
143
|
-
nx -= descriptor.direction[0] * waveAmplitude * cos;
|
|
144
|
-
ny -= q * waveAmplitude * sin;
|
|
145
|
-
nz -= descriptor.direction[1] * waveAmplitude * cos;
|
|
146
|
-
}
|
|
147
|
-
const normalLength = Math.hypot(nx, ny, nz) || 1;
|
|
148
|
-
return {
|
|
149
|
-
height: round3(height),
|
|
150
|
-
horizontalDisplacement: [round3(dx), round3(dz)],
|
|
151
|
-
normal: [round3(nx / normalLength), round3(ny / normalLength), round3(nz / normalLength)]
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
function waveCompression(waves, x, z, time) {
|
|
155
|
-
let compression = 1;
|
|
156
|
-
for (const descriptor of waves) {
|
|
157
|
-
const k = (2 * Math.PI) / descriptor.wavelength;
|
|
158
|
-
const omega = descriptor.speed * k;
|
|
159
|
-
const phase = k * (descriptor.direction[0] * x + descriptor.direction[1] * z) - omega * time;
|
|
160
|
-
compression -= descriptor.steepness * descriptor.amplitude * k * Math.sin(phase) * 0.35;
|
|
161
|
-
}
|
|
162
|
-
return round3(compression);
|
|
163
|
-
}
|
|
164
|
-
function calculateBuoyancy(waves, time, cameraX) {
|
|
165
|
-
const position = [round3(cameraX * 0.04), -0.12, 0.44];
|
|
166
|
-
const velocity = [0.18, 0, -0.04];
|
|
167
|
-
const samplePoints = [
|
|
168
|
-
[-0.08, -0.035, -0.045],
|
|
169
|
-
[0.08, -0.035, -0.045],
|
|
170
|
-
[-0.08, -0.035, 0.045],
|
|
171
|
-
[0.08, -0.035, 0.045],
|
|
172
|
-
[0, 0.035, 0]
|
|
173
|
-
];
|
|
174
|
-
const mass = 18;
|
|
175
|
-
const volume = 0.055;
|
|
176
|
-
const density = 1000;
|
|
177
|
-
const gravity = 9.81;
|
|
178
|
-
let submerged = 0;
|
|
179
|
-
let waterHeightSum = 0;
|
|
180
|
-
let buoyancyY = -mass * gravity;
|
|
181
|
-
let dragX = 0;
|
|
182
|
-
let dragZ = 0;
|
|
183
|
-
for (const point of samplePoints) {
|
|
184
|
-
const worldX = position[0] + point[0];
|
|
185
|
-
const worldY = position[1] + point[1];
|
|
186
|
-
const worldZ = position[2] + point[2];
|
|
187
|
-
const waterHeight = evaluateWaves(waves, worldX, worldZ, time).height;
|
|
188
|
-
waterHeightSum += waterHeight;
|
|
189
|
-
const depth = waterHeight - worldY;
|
|
190
|
-
if (depth <= 0)
|
|
191
|
-
continue;
|
|
192
|
-
submerged += 1;
|
|
193
|
-
buoyancyY += density * gravity * depth / samplePoints.length;
|
|
194
|
-
const speedSq = velocity[0] * velocity[0] + velocity[2] * velocity[2];
|
|
195
|
-
const drag = 0.5 * density * 0.38 * depth * speedSq / samplePoints.length;
|
|
196
|
-
dragX -= velocity[0] * drag;
|
|
197
|
-
dragZ -= velocity[2] * drag;
|
|
198
|
-
}
|
|
199
|
-
return {
|
|
200
|
-
objectId: "marker-buoy",
|
|
201
|
-
samplePointCount: samplePoints.length,
|
|
202
|
-
submergedPointCount: submerged,
|
|
203
|
-
waterHeight: round3(waterHeightSum / samplePoints.length),
|
|
204
|
-
submergedVolume: round3((submerged / samplePoints.length) * volume),
|
|
205
|
-
force: [round3(dragX), round3(buoyancyY), round3(dragZ)],
|
|
206
|
-
drag: [round3(dragX), 0, round3(dragZ)]
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
function integerOption(value, name) {
|
|
210
|
-
if (!Number.isInteger(value))
|
|
211
|
-
throw new RangeError(`${name} must be an integer.`);
|
|
212
|
-
return value;
|
|
213
|
-
}
|
|
214
|
-
function integerRange(value, min, max, name) {
|
|
215
|
-
if (!Number.isInteger(value) || value < min || value > max)
|
|
216
|
-
throw new RangeError(`${name} must be an integer between ${min} and ${max}.`);
|
|
217
|
-
return value;
|
|
218
|
-
}
|
|
219
|
-
function nonNegativeNumber(value, name) {
|
|
220
|
-
if (!Number.isFinite(value) || value < 0)
|
|
221
|
-
throw new RangeError(`${name} must be non-negative.`);
|
|
222
|
-
return value;
|
|
223
|
-
}
|
|
224
|
-
function finiteNumber(value, name) {
|
|
225
|
-
if (!Number.isFinite(value))
|
|
226
|
-
throw new RangeError(`${name} must be finite.`);
|
|
227
|
-
return value;
|
|
228
|
-
}
|
|
229
|
-
function round3(value) {
|
|
230
|
-
return Math.round(value * 1_000) / 1_000;
|
|
231
|
-
}
|
|
232
|
-
function stableHash(value) {
|
|
233
|
-
let hash = 0x811c9dc5;
|
|
234
|
-
for (let index = 0; index < value.length; index += 1) {
|
|
235
|
-
hash ^= value.charCodeAt(index);
|
|
236
|
-
hash = Math.imul(hash, 0x01000193);
|
|
237
|
-
}
|
|
238
|
-
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
239
|
-
}
|
|
240
|
-
//# sourceMappingURL=OceanFixtures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OceanFixtures.js","sourceRoot":"","sources":["../../../../packages/rendering/src/OceanFixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Texture, type TextureColorSpace } from "./Texture";
|
|
2
|
-
export type ProceduralTextureFixtureKind = "metallic-paint" | "metallic-roughness-map" | "racing-stripes" | "racing-number-decal" | "carbon-fiber" | "tire-tread" | "concrete-asphalt" | "sci-fi-panel" | "wood-plank" | "marble" | "starfield-nebula" | "normal-from-height";
|
|
3
|
-
export interface ProceduralTextureFixtureOptions {
|
|
4
|
-
readonly width?: number;
|
|
5
|
-
readonly height?: number;
|
|
6
|
-
readonly seed?: number;
|
|
7
|
-
readonly label?: string;
|
|
8
|
-
}
|
|
9
|
-
export interface ProceduralTextureFixture {
|
|
10
|
-
readonly id: ProceduralTextureFixtureKind;
|
|
11
|
-
readonly label: string;
|
|
12
|
-
readonly width: number;
|
|
13
|
-
readonly height: number;
|
|
14
|
-
readonly seed: number;
|
|
15
|
-
readonly semantic: "albedo" | "normal" | "metallic-roughness" | "emissive-background";
|
|
16
|
-
readonly colorSpace: TextureColorSpace;
|
|
17
|
-
readonly data: Uint8Array;
|
|
18
|
-
readonly hash: string;
|
|
19
|
-
readonly knownLimits: readonly string[];
|
|
20
|
-
}
|
|
21
|
-
export declare const proceduralTextureFixtureKinds: readonly ProceduralTextureFixtureKind[];
|
|
22
|
-
export declare function createProceduralTextureFixture(kind: ProceduralTextureFixtureKind, options?: ProceduralTextureFixtureOptions): ProceduralTextureFixture;
|
|
23
|
-
export declare function createProceduralTexture(kind: ProceduralTextureFixtureKind, options?: ProceduralTextureFixtureOptions): Texture;
|
|
24
|
-
export declare function createProceduralTextureFixtureManifest(options?: ProceduralTextureFixtureOptions): readonly Omit<ProceduralTextureFixture, "data">[];
|
|
25
|
-
export declare function normalFromHeightMap(width: number, height: number, seed?: number): Uint8Array;
|
|
26
|
-
export declare function hashRgba8(data: Uint8Array): string;
|
|
27
|
-
//# sourceMappingURL=ProceduralTextureFixtures.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProceduralTextureFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/rendering/src/ProceduralTextureFixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE5D,MAAM,MAAM,4BAA4B,GACpC,gBAAgB,GAChB,wBAAwB,GACxB,gBAAgB,GAChB,qBAAqB,GACrB,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,kBAAkB,GAClB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,4BAA4B,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;IACtF,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAkBD,eAAO,MAAM,6BAA6B,EAAE,SAAS,4BAA4B,EAavE,CAAC;AAEX,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,GAAE,+BAAoC,GAAG,wBAAwB,CAwC1J;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,GAAE,+BAAoC,GAAG,OAAO,CASlI;AAED,wBAAgB,sCAAsC,CAAC,OAAO,GAAE,+BAAoC,GAAG,SAAS,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAAE,CAKvJ;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,SAAsC,GAAG,UAAU,CAuBzH;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAOlD"}
|