@babylonjs/core 5.45.2 → 5.47.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/Actions/actionManager.js +6 -1
- package/Actions/actionManager.js.map +1 -1
- package/Actions/condition.js +23 -23
- package/Actions/condition.js.map +1 -1
- package/Animations/animatable.js +48 -48
- package/Animations/animatable.js.map +1 -1
- package/Animations/animation.js +53 -53
- package/Animations/animation.js.map +1 -1
- package/Animations/animationGroup.js +53 -53
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/runtimeAnimation.js +36 -36
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioEngine.js +14 -14
- package/Audio/audioEngine.js.map +1 -1
- package/Audio/audioSceneComponent.js +14 -14
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Audio/sound.js +47 -47
- package/Audio/sound.js.map +1 -1
- package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +1 -1
- package/Behaviors/Meshes/fadeInOutBehavior.js +11 -11
- package/Behaviors/Meshes/fadeInOutBehavior.js.map +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.js +34 -34
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Bones/bone.js +15 -15
- package/Bones/bone.js.map +1 -1
- package/Bones/boneIKController.js +9 -9
- package/Bones/boneIKController.js.map +1 -1
- package/Bones/boneLookController.js +50 -50
- package/Bones/boneLookController.js.map +1 -1
- package/Bones/skeleton.js +35 -35
- package/Bones/skeleton.js.map +1 -1
- package/Buffers/buffer.js +14 -14
- package/Buffers/buffer.js.map +1 -1
- package/Buffers/dataBuffer.js +6 -6
- package/Buffers/dataBuffer.js.map +1 -1
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +42 -42
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +18 -18
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.js +178 -178
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/arcRotateCamera.js +176 -176
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.js +90 -90
- package/Cameras/camera.js.map +1 -1
- package/Cameras/flyCamera.js +82 -82
- package/Cameras/flyCamera.js.map +1 -1
- package/Cameras/freeCamera.js +54 -54
- package/Cameras/freeCamera.js.map +1 -1
- package/Compute/computeShader.js +12 -12
- package/Compute/computeShader.js.map +1 -1
- package/Culling/ray.d.ts +1 -1
- package/Debug/axesViewer.js +12 -12
- package/Debug/axesViewer.js.map +1 -1
- package/Debug/debugLayer.js +21 -21
- package/Debug/debugLayer.js.map +1 -1
- package/Debug/directionalLightFrustumViewer.js +20 -20
- package/Debug/directionalLightFrustumViewer.js.map +1 -1
- package/Debug/physicsViewer.js +3 -3
- package/Debug/physicsViewer.js.map +1 -1
- package/Debug/rayHelper.js +10 -10
- package/Debug/rayHelper.js.map +1 -1
- package/Debug/skeletonViewer.js +81 -81
- package/Debug/skeletonViewer.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSource.d.ts +1 -1
- package/DeviceInput/InputDevices/deviceSourceManager.js +31 -31
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/InputDevices/deviceTypes.d.ts +1 -1
- package/DeviceInput/eventFactory.d.ts +1 -1
- package/DeviceInput/eventFactory.js +4 -4
- package/DeviceInput/eventFactory.js.map +1 -1
- package/DeviceInput/internalDeviceSourceManager.d.ts +2 -2
- package/DeviceInput/webDeviceInputSystem.js +2 -2
- package/DeviceInput/webDeviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.computeShader.d.ts +3 -3
- package/Engines/Extensions/engine.multiRender.js +1 -1
- package/Engines/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/Extensions/engine.query.d.ts +1 -1
- package/Engines/Extensions/engine.renderTarget.d.ts +1 -1
- package/Engines/Extensions/engine.renderTarget.js +1 -1
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/Native/nativeDataStream.d.ts +1 -1
- package/Engines/Native/nativeHardwareTexture.js +3 -3
- package/Engines/Native/nativeHardwareTexture.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +5 -5
- package/Engines/Native/nativePipelineContext.js +7 -7
- package/Engines/Native/nativePipelineContext.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.js +6 -6
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/Processors/shaderCodeInliner.js +4 -4
- package/Engines/Processors/shaderCodeInliner.js.map +1 -1
- package/Engines/Processors/shaderProcessingOptions.d.ts +1 -1
- package/Engines/WebGL/webGLHardwareTexture.js +3 -3
- package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js +3 -3
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +6 -6
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +5 -5
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js +11 -11
- package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js +7 -7
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuComputePipelineContext.js +4 -4
- package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js +7 -7
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js +9 -9
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuMaterialContext.js +5 -5
- package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +10 -10
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuPipelineContext.js +6 -6
- package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js +3 -3
- package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +3 -3
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +3 -3
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTimestampQuery.js +3 -3
- package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
- package/Engines/engine.js +134 -134
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.js +6 -6
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.js +25 -25
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/renderTargetWrapper.js +25 -25
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.js +243 -243
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.js +132 -132
- package/Engines/webgpuEngine.js.map +1 -1
- package/Events/keyboardEvents.js +10 -10
- package/Events/keyboardEvents.js.map +1 -1
- package/Events/pointerEvents.js +10 -10
- package/Events/pointerEvents.js.map +1 -1
- package/Gamepads/Controllers/poseEnabledController.js +9 -9
- package/Gamepads/Controllers/poseEnabledController.js.map +1 -1
- package/Gamepads/Controllers/webVRController.js +13 -13
- package/Gamepads/Controllers/webVRController.js.map +1 -1
- package/Gamepads/gamepad.js +20 -20
- package/Gamepads/gamepad.js.map +1 -1
- package/Gizmos/axisDragGizmo.js +45 -45
- package/Gizmos/axisDragGizmo.js.map +1 -1
- package/Gizmos/axisScaleGizmo.js +12 -12
- package/Gizmos/axisScaleGizmo.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.js +74 -74
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/gizmo.js +34 -34
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/gizmoManager.js +40 -40
- package/Gizmos/gizmoManager.js.map +1 -1
- package/Gizmos/planeDragGizmo.js +23 -23
- package/Gizmos/planeDragGizmo.js.map +1 -1
- package/Gizmos/planeRotationGizmo.js +12 -12
- package/Gizmos/planeRotationGizmo.js.map +1 -1
- package/Gizmos/positionGizmo.js +40 -40
- package/Gizmos/positionGizmo.js.map +1 -1
- package/Gizmos/rotationGizmo.js +47 -47
- package/Gizmos/rotationGizmo.js.map +1 -1
- package/Gizmos/scaleGizmo.js +41 -41
- package/Gizmos/scaleGizmo.js.map +1 -1
- package/Helpers/environmentHelper.js +18 -18
- package/Helpers/environmentHelper.js.map +1 -1
- package/Helpers/textureDome.js +96 -96
- package/Helpers/textureDome.js.map +1 -1
- package/IAccessibilityTag.d.ts +2 -2
- package/Inputs/scene.inputManager.d.ts +4 -3
- package/Inputs/scene.inputManager.js +12 -11
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Instrumentation/engineInstrumentation.js +21 -21
- package/Instrumentation/engineInstrumentation.js.map +1 -1
- package/Instrumentation/sceneInstrumentation.js +90 -90
- package/Instrumentation/sceneInstrumentation.js.map +1 -1
- package/Layers/effectLayer.js +48 -48
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.js +32 -32
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.js +26 -26
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/layer.js +40 -40
- package/Layers/layer.js.map +1 -1
- package/LensFlares/lensFlare.js +15 -15
- package/LensFlares/lensFlare.js.map +1 -1
- package/LensFlares/lensFlareSystem.js +4 -4
- package/LensFlares/lensFlareSystem.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.js +18 -18
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +115 -115
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/directionalLight.js +31 -31
- package/Lights/directionalLight.js.map +1 -1
- package/Lights/light.js +72 -72
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.js +18 -18
- package/Lights/pointLight.js.map +1 -1
- package/Lights/spotLight.js +30 -30
- package/Lights/spotLight.js.map +1 -1
- package/Loading/sceneLoader.d.ts +1 -1
- package/Materials/Background/backgroundMaterial.js +124 -124
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js +8 -8
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.js +14 -14
- package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +9 -9
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.js +26 -26
- package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.js +34 -34
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +14 -14
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +16 -16
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/customBlock.js +7 -7
- package/Materials/Node/Blocks/customBlock.js.map +1 -1
- package/Materials/Node/Blocks/gradientBlock.js +13 -13
- package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.js +30 -30
- package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +1 -1
- package/Materials/Node/nodeMaterial.js +60 -60
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.js +35 -35
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js +50 -50
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.js +5 -5
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.js +4 -4
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.js +53 -55
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.js +17 -17
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.js +5 -5
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.js +5 -5
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrMaterial.js +209 -209
- package/Materials/PBR/pbrMaterial.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.js +5 -5
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.js +6 -6
- package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +51 -51
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/baseTexture.js +99 -99
- package/Materials/Textures/baseTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.js +61 -61
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/externalTexture.js +16 -16
- package/Materials/Textures/externalTexture.js.map +1 -1
- package/Materials/Textures/hdrCubeTexture.js +44 -44
- package/Materials/Textures/hdrCubeTexture.js.map +1 -1
- package/Materials/Textures/internalTexture.js +31 -31
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.js +73 -73
- package/Materials/Textures/mirrorTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.js +47 -47
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/rawTexture2DArray.js +6 -6
- package/Materials/Textures/rawTexture2DArray.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.js +142 -142
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/texture.d.ts +1 -1
- package/Materials/Textures/texture.js +26 -26
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/textureCreationOptions.d.ts +1 -1
- package/Materials/Textures/textureSampler.js +20 -20
- package/Materials/Textures/textureSampler.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js +6 -6
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinTexture.js +39 -39
- package/Materials/Textures/thinTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.js +41 -41
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/drawWrapper.js +6 -6
- package/Materials/drawWrapper.js.map +1 -1
- package/Materials/effect.js +18 -18
- package/Materials/effect.js.map +1 -1
- package/Materials/effectRenderer.js +9 -9
- package/Materials/effectRenderer.js.map +1 -1
- package/Materials/fresnelParameters.d.ts +2 -2
- package/Materials/fresnelParameters.js +13 -13
- package/Materials/fresnelParameters.js.map +1 -1
- package/Materials/material.detailMapConfiguration.js +5 -5
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.js +223 -223
- package/Materials/material.js.map +1 -1
- package/Materials/materialPluginBase.js +5 -5
- package/Materials/materialPluginBase.js.map +1 -1
- package/Materials/materialPluginEvent.d.ts +14 -14
- package/Materials/materialPluginManager.d.ts +1 -1
- package/Materials/multiMaterial.js +16 -16
- package/Materials/multiMaterial.js.map +1 -1
- package/Materials/shadowDepthWrapper.js +14 -14
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Materials/standardMaterial.js +100 -100
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBufferEffectCommonAccessor.js +3 -3
- package/Materials/uniformBufferEffectCommonAccessor.js.map +1 -1
- package/Maths/math.functions.js +2 -0
- package/Maths/math.functions.js.map +1 -1
- package/Maths/math.path.js +11 -11
- package/Maths/math.path.js.map +1 -1
- package/Maths/math.vector.d.ts +27 -7
- package/Maths/math.vector.js +75 -48
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/goldbergBuilder.d.ts +2 -2
- package/Meshes/Compression/dracoCompression.js +23 -23
- package/Meshes/Compression/dracoCompression.js.map +1 -1
- package/Meshes/Compression/meshoptCompression.js +9 -9
- package/Meshes/Compression/meshoptCompression.js.map +1 -1
- package/Meshes/abstractMesh.js +179 -179
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.js +32 -32
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/goldbergMesh.d.ts +1 -1
- package/Meshes/linesMesh.js +3 -3
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.js +166 -166
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/polygonMesh.js +5 -5
- package/Meshes/polygonMesh.js.map +1 -1
- package/Meshes/subMesh.js +59 -59
- package/Meshes/subMesh.js.map +1 -1
- package/Meshes/transformNode.js +52 -52
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.js +12 -12
- package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
- package/Misc/arrayTools.d.ts +1 -1
- package/Misc/copyTextureToTexture.js +3 -3
- package/Misc/copyTextureToTexture.js.map +1 -1
- package/Misc/coroutine.d.ts +5 -5
- package/Misc/deferred.js +9 -9
- package/Misc/deferred.js.map +1 -1
- package/Misc/depthReducer.js +7 -7
- package/Misc/depthReducer.js.map +1 -1
- package/Misc/environmentTextureTools.d.ts +1 -1
- package/Misc/error.d.ts +1 -1
- package/Misc/fileTools.d.ts +5 -5
- package/Misc/filesInput.js +6 -6
- package/Misc/filesInput.js.map +1 -1
- package/Misc/khronosTextureContainer2.js +9 -9
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Misc/observable.js +12 -12
- package/Misc/observable.js.map +1 -1
- package/Misc/perfCounter.js +16 -16
- package/Misc/perfCounter.js.map +1 -1
- package/Misc/sceneOptimizer.js +76 -76
- package/Misc/sceneOptimizer.js.map +1 -1
- package/Misc/stringDictionary.d.ts +1 -1
- package/Misc/trajectoryClassifier.js +67 -67
- package/Misc/trajectoryClassifier.js.map +1 -1
- package/Misc/videoRecorder.js +15 -15
- package/Misc/videoRecorder.js.map +1 -1
- package/Misc/virtualJoystick.js +12 -12
- package/Misc/virtualJoystick.js.map +1 -1
- package/Morph/morphTarget.js +28 -28
- package/Morph/morphTarget.js.map +1 -1
- package/Morph/morphTargetManager.js +18 -18
- package/Morph/morphTargetManager.js.map +1 -1
- package/Offline/database.js +12 -12
- package/Offline/database.js.map +1 -1
- package/Particles/EmitterTypes/coneParticleEmitter.js +25 -25
- package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/meshParticleEmitter.js +20 -20
- package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
- package/Particles/baseParticleSystem.js +232 -232
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/cloudPoint.js +9 -9
- package/Particles/cloudPoint.js.map +1 -1
- package/Particles/gpuParticleSystem.js +123 -123
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/particleSystem.js +102 -102
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/particleSystemComponent.js +5 -0
- package/Particles/particleSystemComponent.js.map +1 -1
- package/Particles/pointsCloudSystem.js +18 -18
- package/Particles/pointsCloudSystem.js.map +1 -1
- package/Particles/solidParticle.js +23 -23
- package/Particles/solidParticle.js.map +1 -1
- package/Physics/index.d.ts +1 -0
- package/Physics/index.js +1 -0
- package/Physics/index.js.map +1 -1
- package/Physics/v1/physicsEngine.js +14 -14
- package/Physics/v1/physicsEngine.js.map +1 -1
- package/Physics/v1/physicsImpostor.js +149 -149
- package/Physics/v1/physicsImpostor.js.map +1 -1
- package/Physics/v2/IPhysicsEnginePlugin.d.ts +6 -8
- package/Physics/v2/IPhysicsEnginePlugin.js +1 -0
- package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
- package/Physics/v2/physicsBody.d.ts +10 -1
- package/Physics/v2/physicsBody.js +13 -1
- package/Physics/v2/physicsBody.js.map +1 -1
- package/Physics/v2/physicsConstraint.d.ts +139 -66
- package/Physics/v2/physicsConstraint.js +145 -78
- package/Physics/v2/physicsConstraint.js.map +1 -1
- package/Physics/v2/physicsEngine.js +14 -14
- package/Physics/v2/physicsEngine.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +137 -129
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +68 -68
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +6 -6
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +226 -225
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +10 -10
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/anaglyphPostProcess.js +7 -7
- package/PostProcesses/anaglyphPostProcess.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.js +7 -7
- package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
- package/PostProcesses/bloomEffect.js +28 -28
- package/PostProcesses/bloomEffect.js.map +1 -1
- package/PostProcesses/bloomMergePostProcess.js +7 -7
- package/PostProcesses/bloomMergePostProcess.js.map +1 -1
- package/PostProcesses/blurPostProcess.js +32 -32
- package/PostProcesses/blurPostProcess.js.map +1 -1
- package/PostProcesses/chromaticAberrationPostProcess.js +7 -7
- package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
- package/PostProcesses/circleOfConfusionPostProcess.js +7 -7
- package/PostProcesses/circleOfConfusionPostProcess.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.js +7 -7
- package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
- package/PostProcesses/convolutionPostProcess.js +7 -7
- package/PostProcesses/convolutionPostProcess.js.map +1 -1
- package/PostProcesses/depthOfFieldBlurPostProcess.js +7 -7
- package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
- package/PostProcesses/depthOfFieldEffect.js +36 -36
- package/PostProcesses/depthOfFieldEffect.js.map +1 -1
- package/PostProcesses/depthOfFieldMergePostProcess.js +7 -7
- package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
- package/PostProcesses/extractHighlightsPostProcess.js +7 -7
- package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
- package/PostProcesses/filterPostProcess.js +7 -7
- package/PostProcesses/filterPostProcess.js.map +1 -1
- package/PostProcesses/grainPostProcess.js +7 -7
- package/PostProcesses/grainPostProcess.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +42 -42
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/motionBlurPostProcess.js +41 -41
- package/PostProcesses/motionBlurPostProcess.js.map +1 -1
- package/PostProcesses/passPostProcess.js +15 -15
- package/PostProcesses/passPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.d.ts +2 -2
- package/PostProcesses/postProcess.js +123 -123
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/refractionPostProcess.js +21 -21
- package/PostProcesses/refractionPostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.js +7 -7
- package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.js +19 -19
- package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
- package/PostProcesses/sharpenPostProcess.js +7 -7
- package/PostProcesses/sharpenPostProcess.js.map +1 -1
- package/PostProcesses/stereoscopicInterlacePostProcess.js +14 -14
- package/PostProcesses/stereoscopicInterlacePostProcess.js.map +1 -1
- package/PostProcesses/tonemapPostProcess.js +7 -7
- package/PostProcesses/tonemapPostProcess.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js +11 -11
- package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
- package/PostProcesses/vrDistortionCorrectionPostProcess.js +7 -7
- package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
- package/Rendering/depthPeelingRenderer.js +36 -36
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/depthRenderer.js +8 -8
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/edgesRenderer.js +34 -34
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderer.js +8 -8
- package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js +3 -3
- package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.js +22 -19
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +12 -12
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +18 -18
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +71 -68
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTextures.js +29 -29
- package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
- package/Rendering/geometryBufferRenderer.js +173 -168
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.js +51 -51
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/renderingGroup.js +25 -25
- package/Rendering/renderingGroup.js.map +1 -1
- package/Rendering/renderingManager.js +21 -21
- package/Rendering/renderingManager.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.js +18 -18
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Rendering/utilityLayerRenderer.js +76 -76
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/Shaders/fluidRenderingParticleDepth.fragment.js +5 -1
- package/Shaders/fluidRenderingParticleDepth.fragment.js.map +1 -1
- package/Shaders/fluidRenderingRender.fragment.js +7 -2
- package/Shaders/fluidRenderingRender.fragment.js.map +1 -1
- package/Shaders/geometry.fragment.d.ts +2 -0
- package/Shaders/geometry.fragment.js +5 -1
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/geometry.vertex.d.ts +2 -0
- package/Shaders/geometry.vertex.js +8 -4
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Sprites/sprite.js +16 -16
- package/Sprites/sprite.js.map +1 -1
- package/Sprites/spriteManager.js +81 -81
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteMap.js +32 -32
- package/Sprites/spriteMap.js.map +1 -1
- package/Sprites/spriteRenderer.js +6 -6
- package/Sprites/spriteRenderer.js.map +1 -1
- package/Sprites/thinSprite.js +22 -22
- package/Sprites/thinSprite.js.map +1 -1
- package/States/stencilStateComposer.js +10 -10
- package/States/stencilStateComposer.js.map +1 -1
- package/XR/features/WebXRAnchorSystem.js +7 -7
- package/XR/features/WebXRAnchorSystem.js.map +1 -1
- package/XR/features/WebXRControllerMovement.d.ts +3 -3
- package/XR/features/WebXRControllerMovement.js +97 -97
- package/XR/features/WebXRControllerMovement.js.map +1 -1
- package/XR/features/WebXRControllerPhysics.js +24 -24
- package/XR/features/WebXRControllerPhysics.js.map +1 -1
- package/XR/features/WebXRControllerTeleportation.js +26 -26
- package/XR/features/WebXRControllerTeleportation.js.map +1 -1
- package/XR/features/WebXRDOMOverlay.d.ts +1 -1
- package/XR/features/WebXRFeaturePointSystem.js +6 -6
- package/XR/features/WebXRFeaturePointSystem.js.map +1 -1
- package/XR/features/WebXRHandTracking.d.ts +1 -1
- package/XR/features/WebXRHandTracking.js +95 -95
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRWalkingLocomotion.js +21 -21
- package/XR/features/WebXRWalkingLocomotion.js.map +1 -1
- package/XR/motionController/webXRAbstractMotionController.d.ts +3 -3
- package/XR/motionController/webXRMotionControllerManager.d.ts +1 -1
- package/XR/native/nativeXRFrame.js +3 -3
- package/XR/native/nativeXRFrame.js.map +1 -1
- package/XR/webXRFeaturesManager.d.ts +1 -1
- package/XR/webXRLayerWrapper.d.ts +2 -2
- package/XR/webXRLayerWrapper.js +17 -17
- package/XR/webXRLayerWrapper.js.map +1 -1
- package/abstractScene.d.ts +2 -2
- package/node.d.ts +1 -1
- package/node.js +71 -71
- package/node.js.map +1 -1
- package/package.json +1 -1
- package/scene.js +777 -777
- package/scene.js.map +1 -1
- package/sceneComponent.d.ts +12 -12
- package/types.d.ts +11 -11
|
@@ -3,9 +3,13 @@ import { ShaderStore } from "../Engines/shaderStore.js";
|
|
|
3
3
|
const name = "fluidRenderingParticleDepthPixelShader";
|
|
4
4
|
const shader = `uniform mat4 projection;
|
|
5
5
|
varying float velocityNorm;
|
|
6
|
-
void main(void) {
|
|
6
|
+
void main(void) {
|
|
7
|
+
normal.z=-normal.z;
|
|
8
|
+
vec4 realViewPos=vec4(viewPos+normal*sphereRadius,1.0);
|
|
7
9
|
gl_FragDepth=clipSpacePos.z/clipSpacePos.w;
|
|
8
10
|
gl_FragDepth=(clipSpacePos.z/clipSpacePos.w)*0.5+0.5;
|
|
11
|
+
#ifdef FLUIDRENDERING_RHS
|
|
12
|
+
realViewPos.z=-realViewPos.z;
|
|
9
13
|
#ifdef FLUIDRENDERING_VELOCITY
|
|
10
14
|
glFragColor=vec4(realViewPos.z,velocityNorm,0.,1.);
|
|
11
15
|
glFragColor=vec4(realViewPos.z,0.,0.,1.);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluidRenderingParticleDepth.fragment.js","sourceRoot":"","sources":["../../../../lts/core/generated/Shaders/fluidRenderingParticleDepth.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,IAAI,GAAG,wCAAwC,CAAC;AACtD,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"fluidRenderingParticleDepth.fragment.js","sourceRoot":"","sources":["../../../../lts/core/generated/Shaders/fluidRenderingParticleDepth.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,IAAI,GAAG,wCAAwC,CAAC;AACtD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\n\nconst name = \"fluidRenderingParticleDepthPixelShader\";\nconst shader = `uniform mat4 projection;\rvarying vec2 uv;\rvarying vec3 viewPos;\rvarying float sphereRadius;\r#ifdef FLUIDRENDERING_VELOCITY\nvarying float velocityNorm;\r#endif\nvoid main(void) {\rvec3 normal;\rnormal.xy=uv*2.0-1.0;\rfloat r2=dot(normal.xy,normal.xy);\rif (r2>1.0) discard;\rnormal.z=sqrt(1.0-r2);\r#ifndef FLUIDRENDERING_RHS\nnormal.z=-normal.z;\r#endif\nvec4 realViewPos=vec4(viewPos+normal*sphereRadius,1.0);\rvec4 clipSpacePos=projection*realViewPos;\r#ifdef WEBGPU\ngl_FragDepth=clipSpacePos.z/clipSpacePos.w;\r#else\ngl_FragDepth=(clipSpacePos.z/clipSpacePos.w)*0.5+0.5;\r#endif\n#ifdef FLUIDRENDERING_RHS\nrealViewPos.z=-realViewPos.z;\r#endif\n#ifdef FLUIDRENDERING_VELOCITY\nglFragColor=vec4(realViewPos.z,velocityNorm,0.,1.);\r#else\nglFragColor=vec4(realViewPos.z,0.,0.,1.);\r#endif\n}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const fluidRenderingParticleDepthPixelShader = { name, shader };\n"]}
|
|
@@ -14,7 +14,10 @@ uniform float minimumThickness;
|
|
|
14
14
|
uniform samplerCube reflectionSampler;
|
|
15
15
|
#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_TEXTURE)
|
|
16
16
|
uniform sampler2D debugSampler;
|
|
17
|
-
uniform mat4 viewMatrix;
|
|
17
|
+
uniform mat4 viewMatrix;
|
|
18
|
+
ndc.z=-projectionMatrix[2].z+projectionMatrix[3].z/depth;
|
|
19
|
+
ndc.z=projectionMatrix[2].z+projectionMatrix[3].z/depth;
|
|
20
|
+
ndc.w=1.0;
|
|
18
21
|
vec4 color=texture2D(debugSampler,texCoord);
|
|
19
22
|
glFragColor=vec4(color.rgb/vec3(2.0),1.);
|
|
20
23
|
glFragColor=vec4(color.rgb,1.);
|
|
@@ -25,7 +28,9 @@ float bgDepth=texture2D(bgDepthSampler,texCoord).x;
|
|
|
25
28
|
vec3 backColor=texture2D(textureSampler,texCoord).rgb;
|
|
26
29
|
if (depth>=cameraFar || depth<=0. || thickness<=minimumThickness) {
|
|
27
30
|
if (depth>=cameraFar || depth<=0. || bgDepth<=depthNonLinear) {
|
|
28
|
-
glFragColor=vec4(backColor,1.);
|
|
31
|
+
glFragColor=vec4(backColor,1.);
|
|
32
|
+
normal=-normal;
|
|
33
|
+
#ifndef WEBGPU
|
|
29
34
|
if(isnan(normal.x) || isnan(normal.y) || isnan(normal.z) || isinf(normal.x) || isinf(normal.y) || isinf(normal.z)) {
|
|
30
35
|
#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_SHOWNORMAL)
|
|
31
36
|
glFragColor=vec4(normal*0.5+0.5,1.0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluidRenderingRender.fragment.js","sourceRoot":"","sources":["../../../../lts/core/generated/Shaders/fluidRenderingRender.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,IAAI,GAAG,iCAAiC,CAAC;AAC/C,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"fluidRenderingRender.fragment.js","sourceRoot":"","sources":["../../../../lts/core/generated/Shaders/fluidRenderingRender.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,IAAI,GAAG,iCAAiC,CAAC;AAC/C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Id,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\n\nconst name = \"fluidRenderingRenderPixelShader\";\nconst shader = `#define IOR 1.333\n#define ETA 1.0/IOR\n#define F0 0.02\nuniform sampler2D textureSampler;\runiform sampler2D depthSampler;\r#ifdef FLUIDRENDERING_DIFFUSETEXTURE\nuniform sampler2D diffuseSampler;\r#else\nuniform vec3 diffuseColor;\r#endif\n#ifdef FLUIDRENDERING_FIXED_THICKNESS\nuniform float thickness;\runiform sampler2D bgDepthSampler;\r#else\nuniform float minimumThickness;\runiform sampler2D thicknessSampler;\r#endif\n#ifdef FLUIDRENDERING_ENVIRONMENT\nuniform samplerCube reflectionSampler;\r#endif\n#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_TEXTURE)\nuniform sampler2D debugSampler;\r#endif\nuniform mat4 viewMatrix;\runiform mat4 projectionMatrix;\runiform mat4 invProjectionMatrix;\runiform vec2 texelSize;\runiform vec3 dirLight;\runiform float cameraFar;\runiform float density;\runiform float refractionStrength;\runiform float fresnelClamp;\runiform float specularPower;\rvarying vec2 vUV;\rvec3 computeViewPosFromUVDepth(vec2 texCoord,float depth) {\rvec4 ndc;\rndc.xy=texCoord*2.0-1.0;\r#ifdef FLUIDRENDERING_RHS\nndc.z=-projectionMatrix[2].z+projectionMatrix[3].z/depth;\r#else\nndc.z=projectionMatrix[2].z+projectionMatrix[3].z/depth;\r#endif\nndc.w=1.0;\rvec4 eyePos=invProjectionMatrix*ndc;\reyePos.xyz/=eyePos.w;\rreturn eyePos.xyz;\r}\rvec3 getViewPosFromTexCoord(vec2 texCoord) {\rfloat depth=textureLod(depthSampler,texCoord,0.).x;\rreturn computeViewPosFromUVDepth(texCoord,depth);\r}\rvoid main(void) {\rvec2 texCoord=vUV;\r#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_TEXTURE)\nvec4 color=texture2D(debugSampler,texCoord);\r#ifdef FLUIDRENDERING_DEBUG_DEPTH\nglFragColor=vec4(color.rgb/vec3(2.0),1.);\rif (color.r>0.999 && color.g>0.999) {\rglFragColor=texture2D(textureSampler,texCoord);\r}\r#else\nglFragColor=vec4(color.rgb,1.);\rif (color.r<0.001 && color.g<0.001 && color.b<0.001) {\rglFragColor=texture2D(textureSampler,texCoord);\r}\r#endif\nreturn;\r#endif\nvec2 depthVel=textureLod(depthSampler,texCoord,0.).rg;\rfloat depth=depthVel.r;\r#ifndef FLUIDRENDERING_FIXED_THICKNESS\nfloat thickness=texture2D(thicknessSampler,texCoord).x;\r#else\nfloat bgDepth=texture2D(bgDepthSampler,texCoord).x;\rfloat depthNonLinear=projectionMatrix[2].z+projectionMatrix[3].z/depth;\rdepthNonLinear=depthNonLinear*0.5+0.5;\r#endif\nvec3 backColor=texture2D(textureSampler,texCoord).rgb;\r#ifndef FLUIDRENDERING_FIXED_THICKNESS\nif (depth>=cameraFar || depth<=0. || thickness<=minimumThickness) {\r#else\nif (depth>=cameraFar || depth<=0. || bgDepth<=depthNonLinear) {\r#endif\nglFragColor=vec4(backColor,1.);\rreturn;\r}\rvec3 viewPos=computeViewPosFromUVDepth(texCoord,depth);\rvec3 ddx=getViewPosFromTexCoord(texCoord+vec2(texelSize.x,0.))-viewPos;\rvec3 ddy=getViewPosFromTexCoord(texCoord+vec2(0.,texelSize.y))-viewPos;\rvec3 ddx2=viewPos-getViewPosFromTexCoord(texCoord+vec2(-texelSize.x,0.));\rif (abs(ddx.z)>abs(ddx2.z)) {\rddx=ddx2;\r}\rvec3 ddy2=viewPos-getViewPosFromTexCoord(texCoord+vec2(0.,-texelSize.y));\rif (abs(ddy.z)>abs(ddy2.z)) {\rddy=ddy2;\r}\rvec3 normal=normalize(cross(ddy,ddx));\r#ifdef FLUIDRENDERING_RHS\nnormal=-normal;\r#endif\n#ifndef WEBGPU\nif(isnan(normal.x) || isnan(normal.y) || isnan(normal.z) || isinf(normal.x) || isinf(normal.y) || isinf(normal.z)) {\rnormal=vec3(0.,0.,-1.);\r}\r#endif\n#if defined(FLUIDRENDERING_DEBUG) && defined(FLUIDRENDERING_DEBUG_SHOWNORMAL)\nglFragColor=vec4(normal*0.5+0.5,1.0);\rreturn;\r#endif\nvec3 rayDir=normalize(viewPos); \r#ifdef FLUIDRENDERING_DIFFUSETEXTURE\nvec3 diffuseColor=texture2D(diffuseSampler,texCoord).rgb;\r#endif\nvec3 lightDir=normalize(vec3(viewMatrix*vec4(-dirLight,0.)));\rvec3 H =normalize(lightDir-rayDir);\rfloat specular=pow(max(0.0,dot(H,normal)),specularPower);\r#ifdef FLUIDRENDERING_DEBUG_DIFFUSERENDERING\nfloat diffuse =max(0.0,dot(lightDir,normal))*1.0;\rglFragColor=vec4(vec3(0.1) /*ambient*/+vec3(0.42,0.50,1.00)*diffuse+vec3(0,0,0.2)+specular,1.);\rreturn;\r#endif\nvec3 refractionDir=refract(rayDir,normal,ETA);\rvec3 transmitted=(texture2D(textureSampler,vec2(texCoord+refractionDir.xy*thickness*refractionStrength)).rgb);\rvec3 transmittance=exp(-density*thickness*(1.0-diffuseColor)); \rvec3 refractionColor=transmitted*transmittance;\r#ifdef FLUIDRENDERING_ENVIRONMENT\nvec3 reflectionDir=reflect(rayDir,normal);\rvec3 reflectionColor=(textureCube(reflectionSampler,reflectionDir).rgb);\rfloat fresnel=clamp(F0+(1.0-F0)*pow(1.0-dot(normal,-rayDir),5.0),0.,fresnelClamp);\rvec3 finalColor=mix(refractionColor,reflectionColor,fresnel)+specular;\r#else\nvec3 finalColor=refractionColor+specular;\r#endif\n#ifdef FLUIDRENDERING_VELOCITY\nfloat velocity=depthVel.g;\rfinalColor=mix(finalColor,vec3(1.0),smoothstep(0.3,1.0,velocity/6.0));\r#endif\nglFragColor=vec4(finalColor,1.);\r}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const fluidRenderingRenderPixelShader = { name, shader };\n"]}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import "./ShadersInclude/clipPlaneFragmentDeclaration";
|
|
1
2
|
import "./ShadersInclude/mrtFragmentDeclaration";
|
|
2
3
|
import "./ShadersInclude/bumpFragmentMainFunctions";
|
|
3
4
|
import "./ShadersInclude/bumpFragmentFunctions";
|
|
4
5
|
import "./ShadersInclude/helperFunctions";
|
|
6
|
+
import "./ShadersInclude/clipPlaneFragment";
|
|
5
7
|
import "./ShadersInclude/bumpFragment";
|
|
6
8
|
/** @internal */
|
|
7
9
|
export declare const geometryPixelShader: {
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// Do not edit.
|
|
2
2
|
import { ShaderStore } from "../Engines/shaderStore.js";
|
|
3
|
+
import "./ShadersInclude/clipPlaneFragmentDeclaration.js";
|
|
3
4
|
import "./ShadersInclude/mrtFragmentDeclaration.js";
|
|
4
5
|
import "./ShadersInclude/bumpFragmentMainFunctions.js";
|
|
5
6
|
import "./ShadersInclude/bumpFragmentFunctions.js";
|
|
6
7
|
import "./ShadersInclude/helperFunctions.js";
|
|
8
|
+
import "./ShadersInclude/clipPlaneFragment.js";
|
|
7
9
|
import "./ShadersInclude/bumpFragment.js";
|
|
8
10
|
const name = "geometryPixelShader";
|
|
9
11
|
const shader = `#extension GL_EXT_draw_buffers : require
|
|
@@ -37,11 +39,13 @@ uniform float glossiness;
|
|
|
37
39
|
#endif
|
|
38
40
|
#ifdef ALPHATEST
|
|
39
41
|
uniform sampler2D diffuseSampler;
|
|
42
|
+
#include<clipPlaneFragmentDeclaration>
|
|
40
43
|
#include<mrtFragmentDeclaration>[RENDER_TARGET_COUNT]
|
|
41
44
|
#include<bumpFragmentMainFunctions>
|
|
42
45
|
#include<bumpFragmentFunctions>
|
|
43
46
|
#include<helperFunctions>
|
|
44
|
-
void main() {
|
|
47
|
+
void main() {
|
|
48
|
+
#ifdef ALPHATEST
|
|
45
49
|
if (texture2D(diffuseSampler,vUV).a<0.4)
|
|
46
50
|
vec3 normalOutput;
|
|
47
51
|
vec3 normalW=normalize(vNormalW);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.fragment.js","sourceRoot":"","sources":["../../../../lts/core/generated/Shaders/geometry.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,yCAAyC,CAAC;AACjD,OAAO,4CAA4C,CAAC;AACpD,OAAO,wCAAwC,CAAC;AAChD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,+BAA+B,CAAC;AAEvC,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"geometry.fragment.js","sourceRoot":"","sources":["../../../../lts/core/generated/Shaders/geometry.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,+CAA+C,CAAC;AACvD,OAAO,yCAAyC,CAAC;AACjD,OAAO,4CAA4C,CAAC;AACpD,OAAO,wCAAwC,CAAC;AAChD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,+BAA+B,CAAC;AAEvC,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/clipPlaneFragmentDeclaration\";\nimport \"./ShadersInclude/mrtFragmentDeclaration\";\nimport \"./ShadersInclude/bumpFragmentMainFunctions\";\nimport \"./ShadersInclude/bumpFragmentFunctions\";\nimport \"./ShadersInclude/helperFunctions\";\nimport \"./ShadersInclude/clipPlaneFragment\";\nimport \"./ShadersInclude/bumpFragment\";\n\nconst name = \"geometryPixelShader\";\nconst shader = `#extension GL_EXT_draw_buffers : require\n#if defined(BUMP) || !defined(NORMAL)\n#extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\r#ifdef BUMP\nvarying mat4 vWorldView;\rvarying vec3 vNormalW;\r#else\nvarying vec3 vNormalV;\r#endif\nvarying vec4 vViewPos;\r#if defined(POSITION) || defined(BUMP)\nvarying vec3 vPositionW;\r#endif\n#ifdef VELOCITY\nvarying vec4 vCurrentPosition;\rvarying vec4 vPreviousPosition;\r#endif\n#ifdef NEED_UV\nvarying vec2 vUV;\r#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;\runiform vec2 vTangentSpaceParams;\r#endif\n#if defined(REFLECTIVITY)\n#if defined(ORMTEXTURE) || defined(SPECULARGLOSSINESSTEXTURE) || defined(REFLECTIVITYTEXTURE)\nuniform sampler2D reflectivitySampler;\rvarying vec2 vReflectivityUV;\r#endif\n#ifdef ALBEDOTEXTURE\nvarying vec2 vAlbedoUV;\runiform sampler2D albedoSampler;\r#endif\n#ifdef REFLECTIVITYCOLOR\nuniform vec3 reflectivityColor;\r#endif\n#ifdef ALBEDOCOLOR\nuniform vec3 albedoColor;\r#endif\n#ifdef METALLIC\nuniform float metallic;\r#endif\n#ifdef ROUGHNESS\nuniform float glossiness;\r#endif\n#endif\n#ifdef ALPHATEST\nuniform sampler2D diffuseSampler;\r#endif\n#include<clipPlaneFragmentDeclaration>\n#include<mrtFragmentDeclaration>[RENDER_TARGET_COUNT]\n#include<bumpFragmentMainFunctions>\n#include<bumpFragmentFunctions>\n#include<helperFunctions>\nvoid main() {\r#include<clipPlaneFragment>\n#ifdef ALPHATEST\nif (texture2D(diffuseSampler,vUV).a<0.4)\rdiscard;\r#endif\nvec3 normalOutput;\r#ifdef BUMP\nvec3 normalW=normalize(vNormalW);\r#include<bumpFragment>\nnormalOutput=normalize(vec3(vWorldView*vec4(normalW,0.0)));\r#else\nnormalOutput=normalize(vNormalV);\r#endif\n#ifdef PREPASS\n#ifdef PREPASS_DEPTH\ngl_FragData[DEPTH_INDEX]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\r#endif\n#ifdef PREPASS_NORMAL\ngl_FragData[NORMAL_INDEX]=vec4(normalOutput,1.0);\r#endif\n#else\ngl_FragData[0]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\rgl_FragData[1]=vec4(normalOutput,1.0);\r#endif\n#ifdef POSITION\ngl_FragData[POSITION_INDEX]=vec4(vPositionW,1.0);\r#endif\n#ifdef VELOCITY\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\rvec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\rvec2 velocity=abs(a-b);\rvelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\rgl_FragData[VELOCITY_INDEX]=vec4(velocity,0.0,1.0);\r#endif\n#ifdef REFLECTIVITY\nvec4 reflectivity=vec4(1.0,1.0,1.0,1.0);\r#ifdef METALLICWORKFLOW\nfloat metal=1.0;\rfloat roughness=1.0;\r#ifdef ORMTEXTURE\nmetal*=texture2D(reflectivitySampler,vReflectivityUV).b;\rroughness*=texture2D(reflectivitySampler,vReflectivityUV).g;\r#endif\n#ifdef METALLIC\nmetal*=metallic;\r#endif\n#ifdef ROUGHNESS\nroughness*=(1.0-glossiness); \r#endif\nreflectivity.a-=roughness;\rvec3 color=vec3(1.0);\r#ifdef ALBEDOTEXTURE\ncolor=texture2D(albedoSampler,vAlbedoUV).rgb;\r#ifdef GAMMAALBEDO\ncolor=toLinearSpace(color);\r#endif\n#endif\n#ifdef ALBEDOCOLOR\ncolor*=albedoColor.xyz;\r#endif\nreflectivity.rgb=mix(vec3(0.04),color,metal);\r#else\n#ifdef SPECULARGLOSSINESSTEXTURE\nreflectivity=texture2D(reflectivitySampler,vReflectivityUV);\r#ifdef GAMMAREFLECTIVITYTEXTURE\nreflectivity.rgb=toLinearSpace(reflectivity.rgb);\r#endif\n#ifdef GLOSSINESSS\nreflectivity.a*=glossiness;\r#endif\n#else \n#ifdef REFLECTIVITYTEXTURE\nreflectivity.rbg=texture2D(reflectivitySampler,vReflectivityUV).rbg;\r#ifdef GAMMAREFLECTIVITYTEXTURE\nreflectivity.rgb=toLinearSpace(reflectivity.rgb);\r#endif\n#else\n#ifdef REFLECTIVITYCOLOR\nreflectivity.rgb=reflectivityColor.xyz;\rreflectivity.a=1.0;\r#endif\n#endif \n#ifdef GLOSSINESSS\nreflectivity.a=glossiness; \r#else\nreflectivity.a=1.0; \r#endif\n#endif\n#endif\nreflectivity.rgb=toGammaSpace(reflectivity.rgb); \rgl_FragData[REFLECTIVITY_INDEX]=reflectivity;\r#endif\n}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const geometryPixelShader = { name, shader };\n"]}
|
|
@@ -5,11 +5,13 @@ import "./ShadersInclude/morphTargetsVertexDeclaration";
|
|
|
5
5
|
import "./ShadersInclude/instancesDeclaration";
|
|
6
6
|
import "./ShadersInclude/geometryVertexDeclaration";
|
|
7
7
|
import "./ShadersInclude/geometryUboDeclaration";
|
|
8
|
+
import "./ShadersInclude/clipPlaneVertexDeclaration";
|
|
8
9
|
import "./ShadersInclude/morphTargetsVertexGlobal";
|
|
9
10
|
import "./ShadersInclude/morphTargetsVertex";
|
|
10
11
|
import "./ShadersInclude/instancesVertex";
|
|
11
12
|
import "./ShadersInclude/bonesVertex";
|
|
12
13
|
import "./ShadersInclude/bakedVertexAnimation";
|
|
14
|
+
import "./ShadersInclude/clipPlaneVertex";
|
|
13
15
|
import "./ShadersInclude/bumpVertex";
|
|
14
16
|
/** @internal */
|
|
15
17
|
export declare const geometryVertexShader: {
|
|
@@ -7,11 +7,13 @@ import "./ShadersInclude/morphTargetsVertexDeclaration.js";
|
|
|
7
7
|
import "./ShadersInclude/instancesDeclaration.js";
|
|
8
8
|
import "./ShadersInclude/geometryVertexDeclaration.js";
|
|
9
9
|
import "./ShadersInclude/geometryUboDeclaration.js";
|
|
10
|
+
import "./ShadersInclude/clipPlaneVertexDeclaration.js";
|
|
10
11
|
import "./ShadersInclude/morphTargetsVertexGlobal.js";
|
|
11
12
|
import "./ShadersInclude/morphTargetsVertex.js";
|
|
12
13
|
import "./ShadersInclude/instancesVertex.js";
|
|
13
14
|
import "./ShadersInclude/bonesVertex.js";
|
|
14
15
|
import "./ShadersInclude/bakedVertexAnimation.js";
|
|
16
|
+
import "./ShadersInclude/clipPlaneVertex.js";
|
|
15
17
|
import "./ShadersInclude/bumpVertex.js";
|
|
16
18
|
const name = "geometryVertexShader";
|
|
17
19
|
const shader = `precision highp float;
|
|
@@ -20,6 +22,7 @@ const shader = `precision highp float;
|
|
|
20
22
|
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
|
|
21
23
|
#include<instancesDeclaration>
|
|
22
24
|
#include<__decl__geometryVertex>
|
|
25
|
+
#include<clipPlaneVertexDeclaration>
|
|
23
26
|
attribute vec3 position;
|
|
24
27
|
varying vec2 vUV;
|
|
25
28
|
uniform mat4 diffuseMatrix;
|
|
@@ -51,10 +54,10 @@ vec2 uvUpdated=uv;
|
|
|
51
54
|
vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);
|
|
52
55
|
#include<bonesVertex>
|
|
53
56
|
#include<bakedVertexAnimation>
|
|
54
|
-
vec4
|
|
57
|
+
vec4 worldPos=vec4(finalWorld*vec4(positionUpdated,1.0));
|
|
55
58
|
vWorldView=view*finalWorld;
|
|
56
59
|
vNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));
|
|
57
|
-
vViewPos=view*
|
|
60
|
+
vViewPos=view*worldPos;
|
|
58
61
|
vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);
|
|
59
62
|
mat4 previousInfluence;
|
|
60
63
|
previousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];
|
|
@@ -74,8 +77,9 @@ vPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*ve
|
|
|
74
77
|
vPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);
|
|
75
78
|
#endif
|
|
76
79
|
#if defined(POSITION) || defined(BUMP)
|
|
77
|
-
vPositionW=
|
|
78
|
-
gl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);
|
|
80
|
+
vPositionW=worldPos.xyz/worldPos.w;
|
|
81
|
+
gl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);
|
|
82
|
+
#ifdef NEED_UV
|
|
79
83
|
#ifdef UV1
|
|
80
84
|
#if defined(ALPHATEST) && defined(ALPHATEST_UV1)
|
|
81
85
|
vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.vertex.js","sourceRoot":"","sources":["../../../../lts/core/generated/Shaders/geometry.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kDAAkD,CAAC;AAC1D,OAAO,sDAAsD,CAAC;AAC9D,OAAO,gDAAgD,CAAC;AACxD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,4CAA4C,CAAC;AACpD,OAAO,yCAAyC,CAAC;AACjD,OAAO,2CAA2C,CAAC;AACnD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,6BAA6B,CAAC;AAErC,MAAM,IAAI,GAAG,sBAAsB,CAAC;AACpC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"geometry.vertex.js","sourceRoot":"","sources":["../../../../lts/core/generated/Shaders/geometry.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kDAAkD,CAAC;AAC1D,OAAO,sDAAsD,CAAC;AAC9D,OAAO,gDAAgD,CAAC;AACxD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,4CAA4C,CAAC;AACpD,OAAO,yCAAyC,CAAC;AACjD,OAAO,6CAA6C,CAAC;AACrD,OAAO,2CAA2C,CAAC;AACnD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,6BAA6B,CAAC;AAErC,MAAM,IAAI,GAAG,sBAAsB,CAAC;AACpC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,gBAAgB;AAChB,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/bonesDeclaration\";\nimport \"./ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexGlobalDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexDeclaration\";\nimport \"./ShadersInclude/instancesDeclaration\";\nimport \"./ShadersInclude/geometryVertexDeclaration\";\nimport \"./ShadersInclude/geometryUboDeclaration\";\nimport \"./ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexGlobal\";\nimport \"./ShadersInclude/morphTargetsVertex\";\nimport \"./ShadersInclude/instancesVertex\";\nimport \"./ShadersInclude/bonesVertex\";\nimport \"./ShadersInclude/bakedVertexAnimation\";\nimport \"./ShadersInclude/clipPlaneVertex\";\nimport \"./ShadersInclude/bumpVertex\";\n\nconst name = \"geometryVertexShader\";\nconst shader = `precision highp float;\r#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<morphTargetsVertexGlobalDeclaration>\n#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\n#include<instancesDeclaration>\n#include<__decl__geometryVertex>\n#include<clipPlaneVertexDeclaration>\nattribute vec3 position;\rattribute vec3 normal;\r#ifdef NEED_UV\nvarying vec2 vUV;\r#ifdef ALPHATEST\nuniform mat4 diffuseMatrix;\r#endif\n#ifdef BUMP\nuniform mat4 bumpMatrix;\rvarying vec2 vBumpUV;\r#endif\n#ifdef REFLECTIVITY\nuniform mat4 reflectivityMatrix;\runiform mat4 albedoMatrix;\rvarying vec2 vReflectivityUV;\rvarying vec2 vAlbedoUV;\r#endif\n#ifdef UV1\nattribute vec2 uv;\r#endif\n#ifdef UV2\nattribute vec2 uv2;\r#endif\n#endif\n#ifdef BUMP\nvarying mat4 vWorldView;\r#endif\n#ifdef BUMP\nvarying vec3 vNormalW;\r#else\nvarying vec3 vNormalV;\r#endif\nvarying vec4 vViewPos;\r#if defined(POSITION) || defined(BUMP)\nvarying vec3 vPositionW;\r#endif\n#ifdef VELOCITY\nuniform mat4 previousViewProjection;\rvarying vec4 vCurrentPosition;\rvarying vec4 vPreviousPosition;\r#endif\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void)\r{\rvec3 positionUpdated=position;\rvec3 normalUpdated=normal;\r#ifdef UV1\nvec2 uvUpdated=uv;\r#endif\n#include<morphTargetsVertexGlobal>\n#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\n#include<instancesVertex>\n#if defined(VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\rvPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\r#endif\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=vec4(finalWorld*vec4(positionUpdated,1.0));\r#ifdef BUMP\nvWorldView=view*finalWorld;\rvNormalW=normalUpdated;\r#else\nvNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));\r#endif\nvViewPos=view*worldPos;\r#if defined(VELOCITY) && defined(BONES_VELOCITY_ENABLED)\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\r#if NUM_BONE_INFLUENCERS>0\nmat4 previousInfluence;\rpreviousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\r#if NUM_BONE_INFLUENCERS>1\npreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\r#endif\n#if NUM_BONE_INFLUENCERS>2\npreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\r#endif\n#if NUM_BONE_INFLUENCERS>3\npreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\r#endif\n#if NUM_BONE_INFLUENCERS>4\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\r#endif\n#if NUM_BONE_INFLUENCERS>5\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\r#endif\n#if NUM_BONE_INFLUENCERS>6\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\r#endif\n#if NUM_BONE_INFLUENCERS>7\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\r#endif\nvPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);\r#else\nvPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\r#endif\n#endif\n#if defined(POSITION) || defined(BUMP)\nvPositionW=worldPos.xyz/worldPos.w;\r#endif\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\r#include<clipPlaneVertex>\n#ifdef NEED_UV\n#ifdef UV1\n#if defined(ALPHATEST) && defined(ALPHATEST_UV1)\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\r#else\nvUV=uv;\r#endif\n#ifdef BUMP_UV1\nvBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\r#endif\n#ifdef REFLECTIVITY_UV1\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));\r#endif\n#ifdef ALBEDO_UV1\nvAlbedoUV=vec2(albedoMatrix*vec4(uvUpdated,1.0,0.0));\r#endif\n#endif\n#ifdef UV2\n#if defined(ALPHATEST) && defined(ALPHATEST_UV2)\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\r#else\nvUV=uv2;\r#endif\n#ifdef BUMP_UV2\nvBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\r#endif\n#ifdef REFLECTIVITY_UV2\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0));\r#endif\n#ifdef ALBEDO_UV2\nvAlbedoUV=vec2(albedoMatrix*vec4(uv2,1.0,0.0));\r#endif\n#endif\n#endif\n#include<bumpVertex>\n}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const geometryVertexShader = { name, shader };\n"]}
|
package/Sprites/sprite.js
CHANGED
|
@@ -7,6 +7,22 @@ import { ThinSprite } from "./thinSprite.js";
|
|
|
7
7
|
* @see https://doc.babylonjs.com/features/featuresDeepDive/sprites
|
|
8
8
|
*/
|
|
9
9
|
export class Sprite extends ThinSprite {
|
|
10
|
+
/**
|
|
11
|
+
* Gets or sets the sprite size
|
|
12
|
+
*/
|
|
13
|
+
get size() {
|
|
14
|
+
return this.width;
|
|
15
|
+
}
|
|
16
|
+
set size(value) {
|
|
17
|
+
this.width = value;
|
|
18
|
+
this.height = value;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Gets the manager of this sprite
|
|
22
|
+
*/
|
|
23
|
+
get manager() {
|
|
24
|
+
return this._manager;
|
|
25
|
+
}
|
|
10
26
|
/**
|
|
11
27
|
* Creates a new Sprite
|
|
12
28
|
* @param name defines the name
|
|
@@ -42,22 +58,6 @@ export class Sprite extends ThinSprite {
|
|
|
42
58
|
this._manager.sprites.push(this);
|
|
43
59
|
this.uniqueId = this._manager.scene.getUniqueId();
|
|
44
60
|
}
|
|
45
|
-
/**
|
|
46
|
-
* Gets or sets the sprite size
|
|
47
|
-
*/
|
|
48
|
-
get size() {
|
|
49
|
-
return this.width;
|
|
50
|
-
}
|
|
51
|
-
set size(value) {
|
|
52
|
-
this.width = value;
|
|
53
|
-
this.height = value;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Gets the manager of this sprite
|
|
57
|
-
*/
|
|
58
|
-
get manager() {
|
|
59
|
-
return this._manager;
|
|
60
|
-
}
|
|
61
61
|
/**
|
|
62
62
|
* Returns the string "Sprite"
|
|
63
63
|
* @returns "Sprite"
|
package/Sprites/sprite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprite.js","sourceRoot":"","sources":["../../../../lts/core/generated/Sprites/sprite.ts"],"names":[],"mappings":"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","sourcesContent":["import { Vector3 } from \"../Maths/math.vector\";\r\nimport type { Nullable } from \"../types\";\r\nimport type { ActionManager } from \"../Actions/actionManager\";\r\nimport type { ISpriteManager, SpriteManager } from \"./spriteManager\";\r\nimport { Color4 } from \"../Maths/math.color\";\r\nimport { Observable } from \"../Misc/observable\";\r\nimport type { IAnimatable } from \"../Animations/animatable.interface\";\r\nimport { ThinSprite } from \"./thinSprite\";\r\n\r\ndeclare type Animation = import(\"../Animations/animation\").Animation;\r\n\r\n/**\r\n * Class used to represent a sprite\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/sprites\r\n */\r\nexport class Sprite extends ThinSprite implements IAnimatable {\r\n /** Gets or sets the current world position */\r\n public position: Vector3;\r\n /** Gets or sets the main color */\r\n public color: Color4;\r\n /** Gets or sets a boolean indicating that this sprite should be disposed after animation ends */\r\n public disposeWhenFinishedAnimating: boolean;\r\n /** Gets the list of attached animations */\r\n public animations: Nullable<Array<Animation>> = new Array<Animation>();\r\n /** Gets or sets a boolean indicating if the sprite can be picked */\r\n public isPickable = false;\r\n /** Gets or sets a boolean indicating that sprite texture alpha will be used for precise picking (false by default) */\r\n public useAlphaForPicking = false;\r\n\r\n /**\r\n * Gets or sets the associated action manager\r\n */\r\n public actionManager: Nullable<ActionManager>;\r\n\r\n /**\r\n * An event triggered when the control has been disposed\r\n */\r\n public onDisposeObservable = new Observable<Sprite>();\r\n\r\n private _manager: ISpriteManager;\r\n private _onAnimationEnd: Nullable<() => void> = null;\r\n\r\n /**\r\n * Gets or sets the sprite size\r\n */\r\n public get size(): number {\r\n return this.width;\r\n }\r\n\r\n public set size(value: number) {\r\n this.width = value;\r\n this.height = value;\r\n }\r\n\r\n /**\r\n * Gets or sets the unique id of the sprite\r\n */\r\n public uniqueId: number;\r\n\r\n /**\r\n * Gets the manager of this sprite\r\n */\r\n public get manager() {\r\n return this._manager;\r\n }\r\n\r\n /**\r\n * Creates a new Sprite\r\n * @param name defines the name\r\n * @param manager defines the manager\r\n */\r\n constructor(\r\n /** defines the name */\r\n public name: string,\r\n manager: ISpriteManager\r\n ) {\r\n super();\r\n this.color = new Color4(1.0, 1.0, 1.0, 1.0);\r\n this.position = Vector3.Zero();\r\n\r\n this._manager = manager;\r\n this._manager.sprites.push(this);\r\n this.uniqueId = this._manager.scene.getUniqueId();\r\n }\r\n\r\n /**\r\n * Returns the string \"Sprite\"\r\n * @returns \"Sprite\"\r\n */\r\n public getClassName(): string {\r\n return \"Sprite\";\r\n }\r\n\r\n /** Gets or sets the initial key for the animation (setting it will restart the animation) */\r\n public get fromIndex() {\r\n return this._fromIndex;\r\n }\r\n public set fromIndex(value: number) {\r\n this.playAnimation(value, this._toIndex, this._loopAnimation, this._delay, this._onAnimationEnd);\r\n }\r\n\r\n /** Gets or sets the end key for the animation (setting it will restart the animation) */\r\n public get toIndex() {\r\n return this._toIndex;\r\n }\r\n public set toIndex(value: number) {\r\n this.playAnimation(this._fromIndex, value, this._loopAnimation, this._delay, this._onAnimationEnd);\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the animation is looping (setting it will restart the animation) */\r\n public get loopAnimation() {\r\n return this._loopAnimation;\r\n }\r\n public set loopAnimation(value: boolean) {\r\n this.playAnimation(this._fromIndex, this._toIndex, value, this._delay, this._onAnimationEnd);\r\n }\r\n\r\n /** Gets or sets the delay between cell changes (setting it will restart the animation) */\r\n public get delay() {\r\n return Math.max(this._delay, 1);\r\n }\r\n public set delay(value: number) {\r\n this.playAnimation(this._fromIndex, this._toIndex, this._loopAnimation, value, this._onAnimationEnd);\r\n }\r\n\r\n /**\r\n * Starts an animation\r\n * @param from defines the initial key\r\n * @param to defines the end key\r\n * @param loop defines if the animation must loop\r\n * @param delay defines the start delay (in ms)\r\n * @param onAnimationEnd defines a callback to call when animation ends\r\n */\r\n public playAnimation(from: number, to: number, loop: boolean, delay: number, onAnimationEnd: Nullable<() => void> = null): void {\r\n this._onAnimationEnd = onAnimationEnd;\r\n\r\n super.playAnimation(from, to, loop, delay, this._endAnimation);\r\n }\r\n\r\n private _endAnimation = () => {\r\n if (this._onAnimationEnd) {\r\n this._onAnimationEnd();\r\n }\r\n if (this.disposeWhenFinishedAnimating) {\r\n this.dispose();\r\n }\r\n };\r\n\r\n /** Release associated resources */\r\n public dispose(): void {\r\n for (let i = 0; i < this._manager.sprites.length; i++) {\r\n if (this._manager.sprites[i] == this) {\r\n this._manager.sprites.splice(i, 1);\r\n }\r\n }\r\n\r\n // Callback\r\n this.onDisposeObservable.notifyObservers(this);\r\n this.onDisposeObservable.clear();\r\n }\r\n\r\n /**\r\n * Serializes the sprite to a JSON object\r\n * @returns the JSON object\r\n */\r\n public serialize(): any {\r\n const serializationObject: any = {};\r\n\r\n serializationObject.name = this.name;\r\n serializationObject.position = this.position.asArray();\r\n serializationObject.color = this.color.asArray();\r\n serializationObject.width = this.width;\r\n serializationObject.height = this.height;\r\n serializationObject.angle = this.angle;\r\n serializationObject.cellIndex = this.cellIndex;\r\n serializationObject.cellRef = this.cellRef;\r\n serializationObject.invertU = this.invertU;\r\n serializationObject.invertV = this.invertV;\r\n serializationObject.disposeWhenFinishedAnimating = this.disposeWhenFinishedAnimating;\r\n serializationObject.isPickable = this.isPickable;\r\n serializationObject.isVisible = this.isVisible;\r\n serializationObject.useAlphaForPicking = this.useAlphaForPicking;\r\n\r\n serializationObject.animationStarted = this.animationStarted;\r\n serializationObject.fromIndex = this.fromIndex;\r\n serializationObject.toIndex = this.toIndex;\r\n serializationObject.loopAnimation = this.loopAnimation;\r\n serializationObject.delay = this.delay;\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Parses a JSON object to create a new sprite\r\n * @param parsedSprite The JSON object to parse\r\n * @param manager defines the hosting manager\r\n * @returns the new sprite\r\n */\r\n public static Parse(parsedSprite: any, manager: SpriteManager): Sprite {\r\n const sprite = new Sprite(parsedSprite.name, manager);\r\n\r\n sprite.position = Vector3.FromArray(parsedSprite.position);\r\n sprite.color = Color4.FromArray(parsedSprite.color);\r\n sprite.width = parsedSprite.width;\r\n sprite.height = parsedSprite.height;\r\n sprite.angle = parsedSprite.angle;\r\n sprite.cellIndex = parsedSprite.cellIndex;\r\n sprite.cellRef = parsedSprite.cellRef;\r\n sprite.invertU = parsedSprite.invertU;\r\n sprite.invertV = parsedSprite.invertV;\r\n sprite.disposeWhenFinishedAnimating = parsedSprite.disposeWhenFinishedAnimating;\r\n sprite.isPickable = parsedSprite.isPickable;\r\n sprite.isVisible = parsedSprite.isVisible;\r\n sprite.useAlphaForPicking = parsedSprite.useAlphaForPicking;\r\n\r\n sprite.fromIndex = parsedSprite.fromIndex;\r\n sprite.toIndex = parsedSprite.toIndex;\r\n sprite.loopAnimation = parsedSprite.loopAnimation;\r\n sprite.delay = parsedSprite.delay;\r\n\r\n if (parsedSprite.animationStarted) {\r\n sprite.playAnimation(sprite.fromIndex, sprite.toIndex, sprite.loopAnimation, sprite.delay);\r\n }\r\n\r\n return sprite;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"sprite.js","sourceRoot":"","sources":["../../../../lts/core/generated/Sprites/sprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAI/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C;;;GAGG;AACH,MAAM,OAAO,MAAO,SAAQ,UAAU;IA2BlC;;OAEG;IACH,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,IAAI,CAAC,KAAa;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAOD;;OAEG;IACH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH;IACI,uBAAuB;IAChB,IAAY,EACnB,OAAuB;QAEvB,KAAK,EAAE,CAAC;QAHD,SAAI,GAAJ,IAAI,CAAQ;QAnDvB,2CAA2C;QACpC,eAAU,GAA+B,IAAI,KAAK,EAAa,CAAC;QACvE,oEAAoE;QAC7D,eAAU,GAAG,KAAK,CAAC;QAC1B,sHAAsH;QAC/G,uBAAkB,GAAG,KAAK,CAAC;QAOlC;;WAEG;QACI,wBAAmB,GAAG,IAAI,UAAU,EAAU,CAAC;QAG9C,oBAAe,GAAyB,IAAI,CAAC;QAmG7C,kBAAa,GAAG,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,EAAE,CAAC;aAC1B;YACD,IAAI,IAAI,CAAC,4BAA4B,EAAE;gBACnC,IAAI,CAAC,OAAO,EAAE,CAAC;aAClB;QACL,CAAC,CAAC;QArEE,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,8FAA8F;IAC9F,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAW,SAAS,CAAC,KAAa;QAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACrG,CAAC;IAED,0FAA0F;IAC1F,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAW,OAAO,CAAC,KAAa;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACvG,CAAC;IAED,6GAA6G;IAC7G,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAW,aAAa,CAAC,KAAc;QACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACjG,CAAC;IAED,2FAA2F;IAC3F,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,IAAW,KAAK,CAAC,KAAa;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACzG,CAAC;IAED;;;;;;;OAOG;IACI,aAAa,CAAC,IAAY,EAAE,EAAU,EAAE,IAAa,EAAE,KAAa,EAAE,iBAAuC,IAAI;QACpH,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QAEtC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACnE,CAAC;IAWD,mCAAmC;IAC5B,OAAO;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBAClC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACtC;SACJ;QAED,WAAW;QACX,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAED;;;OAGG;IACI,SAAS;QACZ,MAAM,mBAAmB,GAAQ,EAAE,CAAC;QAEpC,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvD,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjD,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzC,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvC,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/C,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,mBAAmB,CAAC,4BAA4B,GAAG,IAAI,CAAC,4BAA4B,CAAC;QACrF,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACjD,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/C,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAEjE,mBAAmB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7D,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/C,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACvD,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvC,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,YAAiB,EAAE,OAAsB;QACzD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QACpC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;QAC1C,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACtC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACtC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACtC,MAAM,CAAC,4BAA4B,GAAG,YAAY,CAAC,4BAA4B,CAAC;QAChF,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QAC5C,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;QAC1C,MAAM,CAAC,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC;QAE5D,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;QAC1C,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACtC,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;QAClD,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAElC,IAAI,YAAY,CAAC,gBAAgB,EAAE;YAC/B,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;SAC9F;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ","sourcesContent":["import { Vector3 } from \"../Maths/math.vector\";\r\nimport type { Nullable } from \"../types\";\r\nimport type { ActionManager } from \"../Actions/actionManager\";\r\nimport type { ISpriteManager, SpriteManager } from \"./spriteManager\";\r\nimport { Color4 } from \"../Maths/math.color\";\r\nimport { Observable } from \"../Misc/observable\";\r\nimport type { IAnimatable } from \"../Animations/animatable.interface\";\r\nimport { ThinSprite } from \"./thinSprite\";\r\n\r\ndeclare type Animation = import(\"../Animations/animation\").Animation;\r\n\r\n/**\r\n * Class used to represent a sprite\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/sprites\r\n */\r\nexport class Sprite extends ThinSprite implements IAnimatable {\r\n /** Gets or sets the current world position */\r\n public position: Vector3;\r\n /** Gets or sets the main color */\r\n public color: Color4;\r\n /** Gets or sets a boolean indicating that this sprite should be disposed after animation ends */\r\n public disposeWhenFinishedAnimating: boolean;\r\n /** Gets the list of attached animations */\r\n public animations: Nullable<Array<Animation>> = new Array<Animation>();\r\n /** Gets or sets a boolean indicating if the sprite can be picked */\r\n public isPickable = false;\r\n /** Gets or sets a boolean indicating that sprite texture alpha will be used for precise picking (false by default) */\r\n public useAlphaForPicking = false;\r\n\r\n /**\r\n * Gets or sets the associated action manager\r\n */\r\n public actionManager: Nullable<ActionManager>;\r\n\r\n /**\r\n * An event triggered when the control has been disposed\r\n */\r\n public onDisposeObservable = new Observable<Sprite>();\r\n\r\n private _manager: ISpriteManager;\r\n private _onAnimationEnd: Nullable<() => void> = null;\r\n\r\n /**\r\n * Gets or sets the sprite size\r\n */\r\n public get size(): number {\r\n return this.width;\r\n }\r\n\r\n public set size(value: number) {\r\n this.width = value;\r\n this.height = value;\r\n }\r\n\r\n /**\r\n * Gets or sets the unique id of the sprite\r\n */\r\n public uniqueId: number;\r\n\r\n /**\r\n * Gets the manager of this sprite\r\n */\r\n public get manager() {\r\n return this._manager;\r\n }\r\n\r\n /**\r\n * Creates a new Sprite\r\n * @param name defines the name\r\n * @param manager defines the manager\r\n */\r\n constructor(\r\n /** defines the name */\r\n public name: string,\r\n manager: ISpriteManager\r\n ) {\r\n super();\r\n this.color = new Color4(1.0, 1.0, 1.0, 1.0);\r\n this.position = Vector3.Zero();\r\n\r\n this._manager = manager;\r\n this._manager.sprites.push(this);\r\n this.uniqueId = this._manager.scene.getUniqueId();\r\n }\r\n\r\n /**\r\n * Returns the string \"Sprite\"\r\n * @returns \"Sprite\"\r\n */\r\n public getClassName(): string {\r\n return \"Sprite\";\r\n }\r\n\r\n /** Gets or sets the initial key for the animation (setting it will restart the animation) */\r\n public get fromIndex() {\r\n return this._fromIndex;\r\n }\r\n public set fromIndex(value: number) {\r\n this.playAnimation(value, this._toIndex, this._loopAnimation, this._delay, this._onAnimationEnd);\r\n }\r\n\r\n /** Gets or sets the end key for the animation (setting it will restart the animation) */\r\n public get toIndex() {\r\n return this._toIndex;\r\n }\r\n public set toIndex(value: number) {\r\n this.playAnimation(this._fromIndex, value, this._loopAnimation, this._delay, this._onAnimationEnd);\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the animation is looping (setting it will restart the animation) */\r\n public get loopAnimation() {\r\n return this._loopAnimation;\r\n }\r\n public set loopAnimation(value: boolean) {\r\n this.playAnimation(this._fromIndex, this._toIndex, value, this._delay, this._onAnimationEnd);\r\n }\r\n\r\n /** Gets or sets the delay between cell changes (setting it will restart the animation) */\r\n public get delay() {\r\n return Math.max(this._delay, 1);\r\n }\r\n public set delay(value: number) {\r\n this.playAnimation(this._fromIndex, this._toIndex, this._loopAnimation, value, this._onAnimationEnd);\r\n }\r\n\r\n /**\r\n * Starts an animation\r\n * @param from defines the initial key\r\n * @param to defines the end key\r\n * @param loop defines if the animation must loop\r\n * @param delay defines the start delay (in ms)\r\n * @param onAnimationEnd defines a callback to call when animation ends\r\n */\r\n public playAnimation(from: number, to: number, loop: boolean, delay: number, onAnimationEnd: Nullable<() => void> = null): void {\r\n this._onAnimationEnd = onAnimationEnd;\r\n\r\n super.playAnimation(from, to, loop, delay, this._endAnimation);\r\n }\r\n\r\n private _endAnimation = () => {\r\n if (this._onAnimationEnd) {\r\n this._onAnimationEnd();\r\n }\r\n if (this.disposeWhenFinishedAnimating) {\r\n this.dispose();\r\n }\r\n };\r\n\r\n /** Release associated resources */\r\n public dispose(): void {\r\n for (let i = 0; i < this._manager.sprites.length; i++) {\r\n if (this._manager.sprites[i] == this) {\r\n this._manager.sprites.splice(i, 1);\r\n }\r\n }\r\n\r\n // Callback\r\n this.onDisposeObservable.notifyObservers(this);\r\n this.onDisposeObservable.clear();\r\n }\r\n\r\n /**\r\n * Serializes the sprite to a JSON object\r\n * @returns the JSON object\r\n */\r\n public serialize(): any {\r\n const serializationObject: any = {};\r\n\r\n serializationObject.name = this.name;\r\n serializationObject.position = this.position.asArray();\r\n serializationObject.color = this.color.asArray();\r\n serializationObject.width = this.width;\r\n serializationObject.height = this.height;\r\n serializationObject.angle = this.angle;\r\n serializationObject.cellIndex = this.cellIndex;\r\n serializationObject.cellRef = this.cellRef;\r\n serializationObject.invertU = this.invertU;\r\n serializationObject.invertV = this.invertV;\r\n serializationObject.disposeWhenFinishedAnimating = this.disposeWhenFinishedAnimating;\r\n serializationObject.isPickable = this.isPickable;\r\n serializationObject.isVisible = this.isVisible;\r\n serializationObject.useAlphaForPicking = this.useAlphaForPicking;\r\n\r\n serializationObject.animationStarted = this.animationStarted;\r\n serializationObject.fromIndex = this.fromIndex;\r\n serializationObject.toIndex = this.toIndex;\r\n serializationObject.loopAnimation = this.loopAnimation;\r\n serializationObject.delay = this.delay;\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Parses a JSON object to create a new sprite\r\n * @param parsedSprite The JSON object to parse\r\n * @param manager defines the hosting manager\r\n * @returns the new sprite\r\n */\r\n public static Parse(parsedSprite: any, manager: SpriteManager): Sprite {\r\n const sprite = new Sprite(parsedSprite.name, manager);\r\n\r\n sprite.position = Vector3.FromArray(parsedSprite.position);\r\n sprite.color = Color4.FromArray(parsedSprite.color);\r\n sprite.width = parsedSprite.width;\r\n sprite.height = parsedSprite.height;\r\n sprite.angle = parsedSprite.angle;\r\n sprite.cellIndex = parsedSprite.cellIndex;\r\n sprite.cellRef = parsedSprite.cellRef;\r\n sprite.invertU = parsedSprite.invertU;\r\n sprite.invertV = parsedSprite.invertV;\r\n sprite.disposeWhenFinishedAnimating = parsedSprite.disposeWhenFinishedAnimating;\r\n sprite.isPickable = parsedSprite.isPickable;\r\n sprite.isVisible = parsedSprite.isVisible;\r\n sprite.useAlphaForPicking = parsedSprite.useAlphaForPicking;\r\n\r\n sprite.fromIndex = parsedSprite.fromIndex;\r\n sprite.toIndex = parsedSprite.toIndex;\r\n sprite.loopAnimation = parsedSprite.loopAnimation;\r\n sprite.delay = parsedSprite.delay;\r\n\r\n if (parsedSprite.animationStarted) {\r\n sprite.playAnimation(sprite.fromIndex, sprite.toIndex, sprite.loopAnimation, sprite.delay);\r\n }\r\n\r\n return sprite;\r\n }\r\n}\r\n"]}
|
package/Sprites/spriteManager.js
CHANGED
|
@@ -16,87 +16,6 @@ import { EngineStore } from "../Engines/engineStore.js";
|
|
|
16
16
|
* @see https://doc.babylonjs.com/features/featuresDeepDive/sprites
|
|
17
17
|
*/
|
|
18
18
|
export class SpriteManager {
|
|
19
|
-
/**
|
|
20
|
-
* Creates a new sprite manager
|
|
21
|
-
* @param name defines the manager's name
|
|
22
|
-
* @param imgUrl defines the sprite sheet url
|
|
23
|
-
* @param capacity defines the maximum allowed number of sprites
|
|
24
|
-
* @param cellSize defines the size of a sprite cell
|
|
25
|
-
* @param scene defines the hosting scene
|
|
26
|
-
* @param epsilon defines the epsilon value to align texture (0.01 by default)
|
|
27
|
-
* @param samplingMode defines the sampling mode to use with spritesheet
|
|
28
|
-
* @param fromPacked set to false; do not alter
|
|
29
|
-
* @param spriteJSON null otherwise a JSON object defining sprite sheet data; do not alter
|
|
30
|
-
*/
|
|
31
|
-
constructor(
|
|
32
|
-
/** defines the manager's name */
|
|
33
|
-
name, imgUrl, capacity, cellSize, scene, epsilon = 0.01, samplingMode = Texture.TRILINEAR_SAMPLINGMODE, fromPacked = false, spriteJSON = null) {
|
|
34
|
-
this.name = name;
|
|
35
|
-
/** Gets the list of sprites */
|
|
36
|
-
this.sprites = new Array();
|
|
37
|
-
/** Gets or sets the rendering group id (0 by default) */
|
|
38
|
-
this.renderingGroupId = 0;
|
|
39
|
-
/** Gets or sets camera layer mask */
|
|
40
|
-
this.layerMask = 0x0fffffff;
|
|
41
|
-
/** Gets or sets a boolean indicating if the sprites are pickable */
|
|
42
|
-
this.isPickable = false;
|
|
43
|
-
/**
|
|
44
|
-
* Gets or sets an object used to store user defined information for the sprite manager
|
|
45
|
-
*/
|
|
46
|
-
this.metadata = null;
|
|
47
|
-
/** @internal */
|
|
48
|
-
this._wasDispatched = false;
|
|
49
|
-
/**
|
|
50
|
-
* An event triggered when the manager is disposed.
|
|
51
|
-
*/
|
|
52
|
-
this.onDisposeObservable = new Observable();
|
|
53
|
-
this._disableDepthWrite = false;
|
|
54
|
-
/** True when packed cell data from JSON file is ready*/
|
|
55
|
-
this._packedAndReady = false;
|
|
56
|
-
this._customUpdate = (sprite, baseSize) => {
|
|
57
|
-
if (!sprite.cellRef) {
|
|
58
|
-
sprite.cellIndex = 0;
|
|
59
|
-
}
|
|
60
|
-
const num = sprite.cellIndex;
|
|
61
|
-
if (typeof num === "number" && isFinite(num) && Math.floor(num) === num) {
|
|
62
|
-
sprite.cellRef = this._spriteMap[sprite.cellIndex];
|
|
63
|
-
}
|
|
64
|
-
sprite._xOffset = this._cellData[sprite.cellRef].frame.x / baseSize.width;
|
|
65
|
-
sprite._yOffset = this._cellData[sprite.cellRef].frame.y / baseSize.height;
|
|
66
|
-
sprite._xSize = this._cellData[sprite.cellRef].frame.w;
|
|
67
|
-
sprite._ySize = this._cellData[sprite.cellRef].frame.h;
|
|
68
|
-
};
|
|
69
|
-
if (!scene) {
|
|
70
|
-
scene = EngineStore.LastCreatedScene;
|
|
71
|
-
}
|
|
72
|
-
if (!scene._getComponent(SceneComponentConstants.NAME_SPRITE)) {
|
|
73
|
-
scene._addComponent(new SpriteSceneComponent(scene));
|
|
74
|
-
}
|
|
75
|
-
this._fromPacked = fromPacked;
|
|
76
|
-
this._scene = scene;
|
|
77
|
-
const engine = this._scene.getEngine();
|
|
78
|
-
this._spriteRenderer = new SpriteRenderer(engine, capacity, epsilon, scene);
|
|
79
|
-
if (cellSize.width && cellSize.height) {
|
|
80
|
-
this.cellWidth = cellSize.width;
|
|
81
|
-
this.cellHeight = cellSize.height;
|
|
82
|
-
}
|
|
83
|
-
else if (cellSize !== undefined) {
|
|
84
|
-
this.cellWidth = cellSize;
|
|
85
|
-
this.cellHeight = cellSize;
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
this._spriteRenderer = null;
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
this._scene.spriteManagers.push(this);
|
|
92
|
-
this.uniqueId = this.scene.getUniqueId();
|
|
93
|
-
if (imgUrl) {
|
|
94
|
-
this.texture = new Texture(imgUrl, scene, true, false, samplingMode);
|
|
95
|
-
}
|
|
96
|
-
if (this._fromPacked) {
|
|
97
|
-
this._makePacked(imgUrl, spriteJSON);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
19
|
/**
|
|
101
20
|
* Callback called when the manager is disposed
|
|
102
21
|
*/
|
|
@@ -179,6 +98,87 @@ export class SpriteManager {
|
|
|
179
98
|
this._disableDepthWrite = value;
|
|
180
99
|
this._spriteRenderer.disableDepthWrite = value;
|
|
181
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Creates a new sprite manager
|
|
103
|
+
* @param name defines the manager's name
|
|
104
|
+
* @param imgUrl defines the sprite sheet url
|
|
105
|
+
* @param capacity defines the maximum allowed number of sprites
|
|
106
|
+
* @param cellSize defines the size of a sprite cell
|
|
107
|
+
* @param scene defines the hosting scene
|
|
108
|
+
* @param epsilon defines the epsilon value to align texture (0.01 by default)
|
|
109
|
+
* @param samplingMode defines the sampling mode to use with spritesheet
|
|
110
|
+
* @param fromPacked set to false; do not alter
|
|
111
|
+
* @param spriteJSON null otherwise a JSON object defining sprite sheet data; do not alter
|
|
112
|
+
*/
|
|
113
|
+
constructor(
|
|
114
|
+
/** defines the manager's name */
|
|
115
|
+
name, imgUrl, capacity, cellSize, scene, epsilon = 0.01, samplingMode = Texture.TRILINEAR_SAMPLINGMODE, fromPacked = false, spriteJSON = null) {
|
|
116
|
+
this.name = name;
|
|
117
|
+
/** Gets the list of sprites */
|
|
118
|
+
this.sprites = new Array();
|
|
119
|
+
/** Gets or sets the rendering group id (0 by default) */
|
|
120
|
+
this.renderingGroupId = 0;
|
|
121
|
+
/** Gets or sets camera layer mask */
|
|
122
|
+
this.layerMask = 0x0fffffff;
|
|
123
|
+
/** Gets or sets a boolean indicating if the sprites are pickable */
|
|
124
|
+
this.isPickable = false;
|
|
125
|
+
/**
|
|
126
|
+
* Gets or sets an object used to store user defined information for the sprite manager
|
|
127
|
+
*/
|
|
128
|
+
this.metadata = null;
|
|
129
|
+
/** @internal */
|
|
130
|
+
this._wasDispatched = false;
|
|
131
|
+
/**
|
|
132
|
+
* An event triggered when the manager is disposed.
|
|
133
|
+
*/
|
|
134
|
+
this.onDisposeObservable = new Observable();
|
|
135
|
+
this._disableDepthWrite = false;
|
|
136
|
+
/** True when packed cell data from JSON file is ready*/
|
|
137
|
+
this._packedAndReady = false;
|
|
138
|
+
this._customUpdate = (sprite, baseSize) => {
|
|
139
|
+
if (!sprite.cellRef) {
|
|
140
|
+
sprite.cellIndex = 0;
|
|
141
|
+
}
|
|
142
|
+
const num = sprite.cellIndex;
|
|
143
|
+
if (typeof num === "number" && isFinite(num) && Math.floor(num) === num) {
|
|
144
|
+
sprite.cellRef = this._spriteMap[sprite.cellIndex];
|
|
145
|
+
}
|
|
146
|
+
sprite._xOffset = this._cellData[sprite.cellRef].frame.x / baseSize.width;
|
|
147
|
+
sprite._yOffset = this._cellData[sprite.cellRef].frame.y / baseSize.height;
|
|
148
|
+
sprite._xSize = this._cellData[sprite.cellRef].frame.w;
|
|
149
|
+
sprite._ySize = this._cellData[sprite.cellRef].frame.h;
|
|
150
|
+
};
|
|
151
|
+
if (!scene) {
|
|
152
|
+
scene = EngineStore.LastCreatedScene;
|
|
153
|
+
}
|
|
154
|
+
if (!scene._getComponent(SceneComponentConstants.NAME_SPRITE)) {
|
|
155
|
+
scene._addComponent(new SpriteSceneComponent(scene));
|
|
156
|
+
}
|
|
157
|
+
this._fromPacked = fromPacked;
|
|
158
|
+
this._scene = scene;
|
|
159
|
+
const engine = this._scene.getEngine();
|
|
160
|
+
this._spriteRenderer = new SpriteRenderer(engine, capacity, epsilon, scene);
|
|
161
|
+
if (cellSize.width && cellSize.height) {
|
|
162
|
+
this.cellWidth = cellSize.width;
|
|
163
|
+
this.cellHeight = cellSize.height;
|
|
164
|
+
}
|
|
165
|
+
else if (cellSize !== undefined) {
|
|
166
|
+
this.cellWidth = cellSize;
|
|
167
|
+
this.cellHeight = cellSize;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
this._spriteRenderer = null;
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
this._scene.spriteManagers.push(this);
|
|
174
|
+
this.uniqueId = this.scene.getUniqueId();
|
|
175
|
+
if (imgUrl) {
|
|
176
|
+
this.texture = new Texture(imgUrl, scene, true, false, samplingMode);
|
|
177
|
+
}
|
|
178
|
+
if (this._fromPacked) {
|
|
179
|
+
this._makePacked(imgUrl, spriteJSON);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
182
|
/**
|
|
183
183
|
* Returns the string "SpriteManager"
|
|
184
184
|
* @returns "SpriteManager"
|