@babylonjs/core 5.0.0-alpha.61 → 5.0.0-alpha.65
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/Animations/animation.js +42 -2
- package/Animations/animation.js.map +1 -1
- package/Animations/animationGroup.d.ts +5 -1
- package/Animations/animationGroup.js +19 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Audio/sound.js +15 -1
- package/Audio/sound.js.map +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.d.ts +5 -0
- package/Behaviors/Cameras/autoRotationBehavior.js +7 -0
- package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.js +1 -1
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/handConstraintBehavior.js +16 -12
- package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +1 -1
- package/Cameras/VR/vrExperienceHelper.js +1 -1
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/camera.js +2 -2
- package/Cameras/camera.js.map +1 -1
- package/DeviceInput/Implementations/{nativeDeviceInputWrapper.d.ts → nativeDeviceInputSystem.d.ts} +5 -21
- package/DeviceInput/Implementations/{nativeDeviceInputWrapper.js → nativeDeviceInputSystem.js} +19 -20
- package/DeviceInput/Implementations/nativeDeviceInputSystem.js.map +1 -0
- package/DeviceInput/Implementations/webDeviceInputSystem.d.ts +7 -20
- package/DeviceInput/Implementations/webDeviceInputSystem.js +79 -71
- package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSourceManager.d.ts +3 -2
- package/DeviceInput/InputDevices/deviceSourceManager.js +5 -1
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/Interfaces/inputInterfaces.d.ts +6 -13
- package/DeviceInput/Interfaces/inputInterfaces.js.map +1 -1
- package/DeviceInput/deviceInputSystem.d.ts +49 -5
- package/DeviceInput/deviceInputSystem.js +62 -10
- package/DeviceInput/deviceInputSystem.js.map +1 -1
- package/DeviceInput/index.d.ts +1 -1
- package/DeviceInput/index.js +1 -1
- package/DeviceInput/index.js.map +1 -1
- package/Engines/Extensions/engine.dynamicTexture.d.ts +2 -1
- package/Engines/Extensions/engine.dynamicTexture.js +2 -1
- package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/Extensions/engine.views.d.ts +1 -1
- package/Engines/Extensions/engine.views.js +1 -1
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Processors/iShaderProcessor.d.ts +1 -1
- package/Engines/Processors/iShaderProcessor.js.map +1 -1
- package/Engines/Processors/shaderProcessingOptions.d.ts +5 -0
- package/Engines/Processors/shaderProcessingOptions.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +8 -2
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +3 -11
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.js +19 -9
- package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.js +9 -6
- package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +3 -3
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +4 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +37 -83
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js +6 -4
- package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.d.ts +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js +29 -11
- package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js +2 -2
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +57 -13
- package/Engines/WebGPU/webgpuConstants.js +62 -13
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.d.ts +24 -4
- package/Engines/WebGPU/webgpuHardwareTexture.js +12 -2
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuRenderTargetWrapper.d.ts +6 -0
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js +12 -0
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js.map +1 -0
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -0
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.d.ts +2 -0
- package/Engines/WebGPU/webgpuShaderProcessor.js +23 -0
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +1 -0
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +17 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -2
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +11 -30
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +9 -2
- package/Engines/WebGPU/webgpuTextureHelper.js +291 -66
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/engine.d.ts +145 -45
- package/Engines/engine.js +5 -1
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.d.ts +11 -0
- package/Engines/nativeEngine.js +78 -18
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/renderTargetWrapper.d.ts +1 -1
- package/Engines/renderTargetWrapper.js +1 -1
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +5 -13
- package/Engines/webgpuEngine.js +37 -75
- package/Engines/webgpuEngine.js.map +1 -1
- package/Gizmos/positionGizmo.js +1 -1
- package/Gizmos/positionGizmo.js.map +1 -1
- package/Inputs/scene.inputManager.js +6 -1
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Layers/effectLayer.d.ts +4 -0
- package/Layers/effectLayer.js +10 -0
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +8 -0
- package/Layers/glowLayer.js +7 -3
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.js +2 -0
- package/Layers/highlightLayer.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +1 -1
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/light.js +4 -1
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.js +1 -1
- package/Lights/pointLight.js.map +1 -1
- package/Lights/spotLight.js +1 -1
- package/Lights/spotLight.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +10 -7
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/index.d.ts +1 -0
- package/Materials/Node/Blocks/Fragment/index.js +1 -0
- package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +1 -3
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/twirlBlock.d.ts +49 -0
- package/Materials/Node/Blocks/Fragment/twirlBlock.js +145 -0
- package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -0
- package/Materials/Node/Blocks/customBlock.d.ts +31 -0
- package/Materials/Node/Blocks/customBlock.js +144 -0
- package/Materials/Node/Blocks/customBlock.js.map +1 -0
- package/Materials/Node/Blocks/index.d.ts +1 -0
- package/Materials/Node/Blocks/index.js +1 -0
- package/Materials/Node/Blocks/index.js.map +1 -1
- package/Materials/Node/nodeMaterial.js +8 -0
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.js +1 -1
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/PBR/index.d.ts +4 -0
- package/Materials/PBR/index.js +4 -0
- package/Materials/PBR/index.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +28 -96
- package/Materials/PBR/pbrAnisotropicConfiguration.js +50 -111
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +11 -37
- package/Materials/PBR/pbrBRDFConfiguration.js +39 -52
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +15 -74
- package/Materials/PBR/pbrBaseMaterial.js +67 -182
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +23 -98
- package/Materials/PBR/pbrClearCoatConfiguration.js +91 -143
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +25 -93
- package/Materials/PBR/pbrSheenConfiguration.js +71 -126
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +28 -114
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +150 -211
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +3 -2
- package/Materials/Textures/dynamicTexture.js +5 -3
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.js +3 -0
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.js +1 -1
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinTexture.d.ts +1 -2
- package/Materials/Textures/thinTexture.js +2 -4
- package/Materials/Textures/thinTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.d.ts +1 -1
- package/Materials/Textures/videoTexture.js +1 -1
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/effect.d.ts +6 -1
- package/Materials/effect.js +4 -1
- package/Materials/effect.js.map +1 -1
- package/Materials/fresnelParameters.d.ts +1 -1
- package/Materials/fresnelParameters.js +1 -1
- package/Materials/fresnelParameters.js.map +1 -1
- package/Materials/index.d.ts +4 -0
- package/Materials/index.js +4 -0
- package/Materials/index.js.map +1 -1
- package/Materials/material.d.ts +43 -2
- package/Materials/material.detailMapConfiguration.d.ts +29 -87
- package/Materials/material.detailMapConfiguration.js +50 -106
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.js +99 -8
- package/Materials/material.js.map +1 -1
- package/Materials/materialDefines.d.ts +16 -0
- package/Materials/materialDefines.js +17 -5
- package/Materials/materialDefines.js.map +1 -1
- package/Materials/materialPluginBase.d.ts +182 -0
- package/Materials/materialPluginBase.js +209 -0
- package/Materials/materialPluginBase.js.map +1 -0
- package/Materials/materialPluginEvent.d.ts +98 -0
- package/Materials/materialPluginEvent.js +21 -0
- package/Materials/materialPluginEvent.js.map +1 -0
- package/Materials/materialPluginFactoryExport.d.ts +40 -0
- package/Materials/materialPluginFactoryExport.js +75 -0
- package/Materials/materialPluginFactoryExport.js.map +1 -0
- package/Materials/materialPluginManager.d.ts +90 -0
- package/Materials/materialPluginManager.js +323 -0
- package/Materials/materialPluginManager.js.map +1 -0
- package/Materials/shaderMaterial.d.ts +1 -1
- package/Materials/shaderMaterial.js +13 -1
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/standardMaterial.d.ts +13 -10
- package/Materials/standardMaterial.js +45 -51
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBuffer.d.ts +7 -0
- package/Materials/uniformBuffer.js +22 -0
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/math.vector.d.ts +12 -8
- package/Maths/math.vector.js +22 -14
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/capsuleBuilder.d.ts +1 -1
- package/Meshes/Builders/capsuleBuilder.js +1 -1
- package/Meshes/Builders/capsuleBuilder.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +1 -1
- package/Meshes/abstractMesh.js +24 -23
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.js +2 -2
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/linesMesh.d.ts +1 -1
- package/Meshes/linesMesh.js +3 -2
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +12 -0
- package/Meshes/mesh.js +184 -115
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.lts.d.ts +8 -8
- package/Meshes/mesh.lts.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +6 -1
- package/Meshes/mesh.vertexData.js +295 -114
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/transformNode.js +20 -13
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +2 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +38 -33
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.d.ts +29 -4
- package/Misc/PerformanceViewer/performanceViewerCollector.js +36 -12
- package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
- package/Misc/assetsManager.d.ts +4 -4
- package/Misc/assetsManager.js +2 -2
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.js +1 -0
- package/Misc/basis.js.map +1 -1
- package/Misc/coroutine.d.ts +41 -0
- package/Misc/coroutine.js +136 -0
- package/Misc/coroutine.js.map +1 -0
- package/Misc/index.d.ts +1 -0
- package/Misc/index.js +1 -0
- package/Misc/index.js.map +1 -1
- package/Misc/interfaces/iPerfViewer.d.ts +4 -0
- package/Misc/interfaces/iPerfViewer.js.map +1 -1
- package/Misc/observableCoroutine.d.ts +9 -10
- package/Misc/observableCoroutine.js +34 -39
- package/Misc/observableCoroutine.js.map +1 -1
- package/Misc/sceneSerializer.js +1 -0
- package/Misc/sceneSerializer.js.map +1 -1
- package/Particles/particleSystem.js +3 -0
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/subEmitter.js +1 -0
- package/Particles/subEmitter.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +1 -0
- package/PostProcesses/screenSpaceReflectionPostProcess.js +4 -0
- package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
- package/Rendering/depthPeelingRenderer.d.ts +4 -1
- package/Rendering/depthPeelingRenderer.js +34 -9
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/depthRenderer.js +1 -1
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.js +24 -1
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.js +7 -7
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/renderingGroup.js +5 -1
- package/Rendering/renderingGroup.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/anaglyph.fragment.js +1 -1
- package/Shaders/anaglyph.fragment.js.map +1 -1
- package/Shaders/background.fragment.js +1 -1
- package/Shaders/background.fragment.js.map +1 -1
- package/Shaders/background.vertex.js +1 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/blackAndWhite.fragment.js +1 -1
- package/Shaders/blackAndWhite.fragment.js.map +1 -1
- package/Shaders/bloomMerge.fragment.js +1 -1
- package/Shaders/bloomMerge.fragment.js.map +1 -1
- package/Shaders/blur.fragment.js +1 -1
- package/Shaders/blur.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
- package/Shaders/chromaticAberration.fragment.js +1 -1
- package/Shaders/chromaticAberration.fragment.js.map +1 -1
- package/Shaders/circleOfConfusion.fragment.js +1 -1
- package/Shaders/circleOfConfusion.fragment.js.map +1 -1
- package/Shaders/clearQuad.vertex.js +1 -1
- package/Shaders/clearQuad.vertex.js.map +1 -1
- package/Shaders/color.fragment.js +1 -1
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.js +1 -1
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/colorCorrection.fragment.js +1 -1
- package/Shaders/colorCorrection.fragment.js.map +1 -1
- package/Shaders/convolution.fragment.js +1 -1
- package/Shaders/convolution.fragment.js.map +1 -1
- package/Shaders/default.fragment.js +1 -1
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/depth.fragment.js +1 -1
- package/Shaders/depth.fragment.js.map +1 -1
- package/Shaders/depth.vertex.js +1 -1
- package/Shaders/depth.vertex.js.map +1 -1
- package/Shaders/depthBoxBlur.fragment.js +1 -1
- package/Shaders/depthBoxBlur.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.js +1 -1
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
- package/Shaders/displayPass.fragment.js +1 -1
- package/Shaders/displayPass.fragment.js.map +1 -1
- package/Shaders/extractHighlights.fragment.js +1 -1
- package/Shaders/extractHighlights.fragment.js.map +1 -1
- package/Shaders/filter.fragment.js +1 -1
- package/Shaders/filter.fragment.js.map +1 -1
- package/Shaders/fxaa.vertex.js +1 -1
- package/Shaders/fxaa.vertex.js.map +1 -1
- package/Shaders/geometry.vertex.js +1 -1
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.fragment.js +1 -1
- package/Shaders/glowMapGeneration.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.vertex.js +1 -1
- package/Shaders/glowMapGeneration.vertex.js.map +1 -1
- package/Shaders/glowMapMerge.fragment.js +1 -1
- package/Shaders/glowMapMerge.fragment.js.map +1 -1
- package/Shaders/glowMapMerge.vertex.js +1 -1
- package/Shaders/glowMapMerge.vertex.js.map +1 -1
- package/Shaders/grain.fragment.js +1 -1
- package/Shaders/grain.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.vertex.js +1 -1
- package/Shaders/hdrFiltering.vertex.js.map +1 -1
- package/Shaders/highlights.fragment.js +1 -1
- package/Shaders/highlights.fragment.js.map +1 -1
- package/Shaders/imageProcessing.fragment.js +1 -1
- package/Shaders/imageProcessing.fragment.js.map +1 -1
- package/Shaders/kernelBlur.fragment.js +1 -1
- package/Shaders/kernelBlur.fragment.js.map +1 -1
- package/Shaders/kernelBlur.vertex.js +1 -1
- package/Shaders/kernelBlur.vertex.js.map +1 -1
- package/Shaders/layer.fragment.js +1 -1
- package/Shaders/layer.fragment.js.map +1 -1
- package/Shaders/layer.vertex.js +1 -1
- package/Shaders/layer.vertex.js.map +1 -1
- package/Shaders/lensFlare.fragment.js +1 -1
- package/Shaders/lensFlare.fragment.js.map +1 -1
- package/Shaders/lensFlare.vertex.js +1 -1
- package/Shaders/lensFlare.vertex.js.map +1 -1
- package/Shaders/lensHighlights.fragment.js +1 -1
- package/Shaders/lensHighlights.fragment.js.map +1 -1
- package/Shaders/line.fragment.js +1 -1
- package/Shaders/line.fragment.js.map +1 -1
- package/Shaders/line.vertex.js +1 -1
- package/Shaders/line.vertex.js.map +1 -1
- package/Shaders/minmaxRedux.fragment.js +1 -1
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/motionBlur.fragment.js +1 -1
- package/Shaders/motionBlur.fragment.js.map +1 -1
- package/Shaders/noise.fragment.js +1 -1
- package/Shaders/noise.fragment.js.map +1 -1
- package/Shaders/outline.fragment.d.ts +2 -0
- package/Shaders/outline.fragment.js +3 -1
- package/Shaders/outline.fragment.js.map +1 -1
- package/Shaders/outline.vertex.d.ts +2 -0
- package/Shaders/outline.vertex.js +3 -1
- package/Shaders/outline.vertex.js.map +1 -1
- package/Shaders/particles.fragment.js +1 -1
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.js +1 -1
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/pass.fragment.js +1 -1
- package/Shaders/pass.fragment.js.map +1 -1
- package/Shaders/passCube.fragment.js +1 -1
- package/Shaders/passCube.fragment.js.map +1 -1
- package/Shaders/pbr.fragment.js +1 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/postprocess.vertex.js +1 -1
- package/Shaders/postprocess.vertex.js.map +1 -1
- package/Shaders/procedural.vertex.js +1 -1
- package/Shaders/procedural.vertex.js.map +1 -1
- package/Shaders/rgbdDecode.fragment.js +1 -1
- package/Shaders/rgbdDecode.fragment.js.map +1 -1
- package/Shaders/rgbdEncode.fragment.js +1 -1
- package/Shaders/rgbdEncode.fragment.js.map +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection.fragment.js +1 -1
- package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
- package/Shaders/shadowMap.fragment.js +1 -1
- package/Shaders/shadowMap.fragment.js.map +1 -1
- package/Shaders/shadowMap.vertex.js +1 -1
- package/Shaders/shadowMap.vertex.js.map +1 -1
- package/Shaders/sharpen.fragment.js +1 -1
- package/Shaders/sharpen.fragment.js.map +1 -1
- package/Shaders/sprites.fragment.js +1 -1
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.js +1 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/Shaders/ssaoCombine.fragment.js +1 -1
- package/Shaders/ssaoCombine.fragment.js.map +1 -1
- package/Shaders/standard.fragment.js +1 -1
- package/Shaders/standard.fragment.js.map +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
- package/Shaders/subSurfaceScattering.fragment.js +1 -1
- package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
- package/Shaders/tonemap.fragment.js +1 -1
- package/Shaders/tonemap.fragment.js.map +1 -1
- package/Shaders/volumetricLightScattering.fragment.js +1 -1
- package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/XR/features/WebXRControllerPointerSelection.d.ts +14 -0
- package/XR/features/WebXRControllerPointerSelection.js +55 -21
- package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
- package/XR/features/WebXRHandTracking.d.ts +2 -0
- package/XR/features/WebXRHandTracking.js +34 -14
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRLayers.d.ts +78 -0
- package/XR/features/WebXRLayers.js +243 -0
- package/XR/features/WebXRLayers.js.map +1 -0
- package/XR/features/WebXRPlaneDetector.js +8 -12
- package/XR/features/WebXRPlaneDetector.js.map +1 -1
- package/XR/features/index.d.ts +1 -0
- package/XR/features/index.js +1 -0
- package/XR/features/index.js.map +1 -1
- package/XR/index.d.ts +1 -0
- package/XR/index.js +1 -0
- package/XR/index.js.map +1 -1
- package/XR/native/index.d.ts +2 -0
- package/XR/native/index.js +3 -0
- package/XR/native/index.js.map +1 -0
- package/XR/native/nativeXRFrame.d.ts +27 -0
- package/XR/native/nativeXRFrame.js +81 -0
- package/XR/native/nativeXRFrame.js.map +1 -0
- package/XR/native/nativeXRRenderTarget.d.ts +44 -0
- package/XR/native/nativeXRRenderTarget.js +81 -0
- package/XR/native/nativeXRRenderTarget.js.map +1 -0
- package/XR/webXRCamera.js +2 -10
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRExperienceHelper.js +15 -13
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRFeaturesManager.d.ts +4 -0
- package/XR/webXRFeaturesManager.js +5 -1
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/XR/webXRLayerWrapper.d.ts +48 -0
- package/XR/webXRLayerWrapper.js +60 -0
- package/XR/webXRLayerWrapper.js.map +1 -0
- package/XR/webXRManagedOutputCanvas.d.ts +2 -1
- package/XR/webXRManagedOutputCanvas.js +36 -29
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +55 -0
- package/XR/webXRRenderTargetTextureProvider.js +63 -0
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -0
- package/XR/webXRSessionManager.d.ts +30 -7
- package/XR/webXRSessionManager.js +62 -64
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRTypes.d.ts +1 -1
- package/XR/webXRTypes.js.map +1 -1
- package/XR/webXRWebGLLayer.d.ts +36 -0
- package/XR/webXRWebGLLayer.js +69 -0
- package/XR/webXRWebGLLayer.js.map +1 -0
- package/abstractScene.d.ts +1 -1
- package/abstractScene.js +1 -1
- package/abstractScene.js.map +1 -1
- package/assetContainer.js +3 -0
- package/assetContainer.js.map +1 -1
- package/package.json +51 -6
- package/scene.d.ts +4 -0
- package/scene.js +4 -0
- package/scene.js.map +1 -1
- package/DeviceInput/Implementations/nativeDeviceInputWrapper.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material.detailMapConfiguration.js","sourceRoot":"","sources":["../../../sourceES6/core/Materials/material.detailMapConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"../types\";\r\nimport { Scene } from \"../scene\";\r\nimport { Material } from \"./material\";\r\nimport { serialize, expandToProperty, serializeAsTexture, SerializationHelper } from '../Misc/decorators';\r\nimport { MaterialFlags } from './materialFlags';\r\nimport { MaterialHelper } from './materialHelper';\r\nimport { BaseTexture } from './Textures/baseTexture';\r\nimport { UniformBuffer } from './uniformBuffer';\r\nimport { IAnimatable } from '../Animations/animatable.interface';\r\n\r\n/**\r\n * @hidden\r\n */\r\nexport interface IMaterialDetailMapDefines {\r\n DETAIL: boolean;\r\n DETAILDIRECTUV: number;\r\n DETAIL_NORMALBLENDMETHOD: number;\r\n\r\n /** @hidden */\r\n _areTexturesDirty: boolean;\r\n}\r\n\r\n/**\r\n * Define the code related to the detail map parameters of a material\r\n *\r\n * Inspired from:\r\n * Unity: https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@9.0/manual/Mask-Map-and-Detail-Map.html and https://docs.unity3d.com/Manual/StandardShaderMaterialParameterDetail.html\r\n * Unreal: https://docs.unrealengine.com/en-US/Engine/Rendering/Materials/HowTo/DetailTexturing/index.html\r\n * Cryengine: https://docs.cryengine.com/display/SDKDOC2/Detail+Maps\r\n */\r\nexport class DetailMapConfiguration {\r\n\r\n private _texture: Nullable<BaseTexture> = null;\r\n /**\r\n * The detail texture of the material.\r\n */\r\n @serializeAsTexture(\"detailTexture\")\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public texture: Nullable<BaseTexture>;\r\n\r\n /**\r\n * Defines how strongly the detail diffuse/albedo channel is blended with the regular diffuse/albedo texture\r\n * Bigger values mean stronger blending\r\n */\r\n @serialize()\r\n public diffuseBlendLevel = 1;\r\n\r\n /**\r\n * Defines how strongly the detail roughness channel is blended with the regular roughness value\r\n * Bigger values mean stronger blending. Only used with PBR materials\r\n */\r\n @serialize()\r\n public roughnessBlendLevel = 1;\r\n\r\n /**\r\n * Defines how strong the bump effect from the detail map is\r\n * Bigger values mean stronger effect\r\n */\r\n @serialize()\r\n public bumpLevel = 1;\r\n\r\n private _normalBlendMethod = Material.MATERIAL_NORMALBLENDMETHOD_WHITEOUT;\r\n /**\r\n * The method used to blend the bump and detail normals together\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public normalBlendMethod: number;\r\n\r\n private _isEnabled = false;\r\n /**\r\n * Enable or disable the detail map on this material\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n /** @hidden */\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @hidden */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /**\r\n * Instantiate a new detail map\r\n * @param markAllSubMeshesAsTexturesDirty Callback to flag the material to dirty\r\n */\r\n constructor(markAllSubMeshesAsTexturesDirty: () => void) {\r\n this._internalMarkAllSubMeshesAsTexturesDirty = markAllSubMeshesAsTexturesDirty;\r\n }\r\n\r\n /**\r\n * Gets whether the submesh is ready to be used or not.\r\n * @param defines the list of \"defines\" to update.\r\n * @param scene defines the scene the material belongs to.\r\n * @returns - boolean indicating that the submesh is ready or not.\r\n */\r\n public isReadyForSubMesh(defines: IMaterialDetailMapDefines, scene: Scene): boolean {\r\n if (!this._isEnabled) {\r\n return true;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n if (defines._areTexturesDirty && scene.texturesEnabled) {\r\n if (engine.getCaps().standardDerivatives && this._texture && MaterialFlags.DetailTextureEnabled) {\r\n // Detail texture cannot be not blocking.\r\n if (!this._texture.isReady()) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Update the defines for detail map usage\r\n * @param defines the list of \"defines\" to update.\r\n * @param scene defines the scene the material belongs to.\r\n */\r\n public prepareDefines(defines: IMaterialDetailMapDefines, scene: Scene): void {\r\n if (this._isEnabled) {\r\n defines.DETAIL_NORMALBLENDMETHOD = this._normalBlendMethod;\r\n\r\n const engine = scene.getEngine();\r\n\r\n if (defines._areTexturesDirty) {\r\n if (engine.getCaps().standardDerivatives && this._texture && MaterialFlags.DetailTextureEnabled && this._isEnabled) {\r\n MaterialHelper.PrepareDefinesForMergedUV(this._texture, defines, \"DETAIL\");\r\n defines.DETAIL_NORMALBLENDMETHOD = this._normalBlendMethod;\r\n } else {\r\n defines.DETAIL = false;\r\n }\r\n }\r\n } else {\r\n defines.DETAIL = false;\r\n }\r\n }\r\n\r\n /**\r\n * Binds the material data.\r\n * @param uniformBuffer defines the Uniform buffer to fill in.\r\n * @param scene defines the scene the material belongs to.\r\n * @param isFrozen defines whether the material is frozen or not.\r\n */\r\n public bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene, isFrozen: boolean): void {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\r\n if (this._texture && MaterialFlags.DetailTextureEnabled) {\r\n uniformBuffer.updateFloat4(\"vDetailInfos\", this._texture.coordinatesIndex, this.diffuseBlendLevel, this.bumpLevel, this.roughnessBlendLevel);\r\n MaterialHelper.BindTextureMatrix(this._texture, uniformBuffer, \"detail\");\r\n }\r\n }\r\n\r\n // Textures\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.DetailTextureEnabled) {\r\n uniformBuffer.setTexture(\"detailSampler\", this._texture);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Checks to see if a texture is used in the material.\r\n * @param texture - Base texture to use.\r\n * @returns - Boolean specifying if a texture is used in the material.\r\n */\r\n public hasTexture(texture: BaseTexture): boolean {\r\n if (this._texture === texture) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Returns an array of the actively used textures.\r\n * @param activeTextures Array of BaseTextures\r\n */\r\n public getActiveTextures(activeTextures: BaseTexture[]): void {\r\n if (this._texture) {\r\n activeTextures.push(this._texture);\r\n }\r\n }\r\n\r\n /**\r\n * Returns the animatable textures.\r\n * @param animatables Array of animatable textures.\r\n */\r\n public getAnimatables(animatables: IAnimatable[]): void {\r\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\r\n animatables.push(this._texture);\r\n }\r\n }\r\n\r\n /**\r\n * Disposes the resources of the material.\r\n * @param forceDisposeTextures - Forces the disposal of all textures.\r\n */\r\n public dispose(forceDisposeTextures?: boolean): void {\r\n if (forceDisposeTextures) {\r\n this._texture?.dispose();\r\n }\r\n }\r\n\r\n /**\r\n * Get the current class name useful for serialization or dynamic coding.\r\n * @returns \"DetailMapConfiguration\"\r\n */\r\n public getClassName(): string {\r\n return \"DetailMapConfiguration\";\r\n }\r\n\r\n /**\r\n * Add the required uniforms to the current list.\r\n * @param uniforms defines the current uniform list.\r\n */\r\n public static AddUniforms(uniforms: string[]): void {\r\n uniforms.push(\"vDetailInfos\");\r\n uniforms.push(\"detailMatrix\");\r\n }\r\n\r\n /**\r\n * Add the required samplers to the current list.\r\n * @param samplers defines the current sampler list.\r\n */\r\n public static AddSamplers(samplers: string[]): void {\r\n samplers.push(\"detailSampler\");\r\n }\r\n\r\n /**\r\n * Add the required uniforms to the current buffer.\r\n * @param uniformBuffer defines the current uniform buffer.\r\n */\r\n public static PrepareUniformBuffer(uniformBuffer: UniformBuffer): void {\r\n uniformBuffer.addUniform(\"vDetailInfos\", 4);\r\n uniformBuffer.addUniform(\"detailMatrix\", 16);\r\n }\r\n\r\n /**\r\n * Makes a duplicate of the current instance into another one.\r\n * @param detailMap define the instance where to copy the info\r\n */\r\n public copyTo(detailMap: DetailMapConfiguration): void {\r\n SerializationHelper.Clone(() => detailMap, this);\r\n }\r\n\r\n /**\r\n * Serializes this detail map instance\r\n * @returns - An object with the serialized instance.\r\n */\r\n public serialize(): any {\r\n return SerializationHelper.Serialize(this);\r\n }\r\n\r\n /**\r\n * Parses a detail map setting from a serialized object.\r\n * @param source - Serialized object.\r\n * @param scene Defines the scene we are parsing for\r\n * @param rootUrl Defines the rootUrl to load from\r\n */\r\n public parse(source: any, scene: Scene, rootUrl: string): void {\r\n SerializationHelper.Parse(() => this, source, scene, rootUrl);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"material.detailMapConfiguration.js","sourceRoot":"","sources":["../../../sourceES6/core/Materials/material.detailMapConfiguration.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAU1D;;GAEG;AACH;IAA8C,4CAAe;IAA7D;QAAA,qEAIC;QAHG,YAAM,GAAG,KAAK,CAAC;QACf,oBAAc,GAAG,CAAC,CAAC;QACnB,8BAAwB,GAAG,CAAC,CAAC;;IACjC,CAAC;IAAD,+BAAC;AAAD,CAAC,AAJD,CAA8C,eAAe,GAI5D;;AAED;;;;;;;GAOG;AACH;IAA4C,0CAAkB;IAuD1D,gCAAY,QAA4C,EAAE,eAAsB;QAAtB,gCAAA,EAAA,sBAAsB;QAAhF,YACI,kBAAM,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,wBAAwB,EAAE,EAAE,eAAe,CAAC,SAGrF;QA1DO,cAAQ,GAA0B,IAAI,CAAC;QAQ/C;;;WAGG;QAEI,uBAAiB,GAAG,CAAC,CAAC;QAE7B;;;WAGG;QAEI,yBAAmB,GAAG,CAAC,CAAC;QAE/B;;;WAGG;QAEI,eAAS,GAAG,CAAC,CAAC;QAEb,wBAAkB,GAAG,QAAQ,CAAC,mCAAmC,CAAC;QAQlE,gBAAU,GAAG,KAAK,CAAC;QAC3B;;WAEG;QAGI,eAAS,GAAG,KAAK,CAAC;QAcrB,KAAI,CAAC,wCAAwC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;;IAChF,CAAC;IAVD,cAAc;IACP,iEAAgC,GAAvC;QACI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,wCAAwC,EAAE,CAAC;IACpD,CAAC;IAQM,kDAAiB,GAAxB,UAAyB,OAAiC,EAAE,KAAY,EAAE,MAAc;QACpF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAC,eAAe,EAAE;YACpD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,oBAAoB,EAAE;gBAC7F,yCAAyC;gBACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;oBAC1B,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,+CAAc,GAArB,UAAsB,OAAiC,EAAE,KAAY,EAAE,IAAkB;QACrF,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAE3D,IAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAEjC,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC3B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,oBAAoB,IAAI,IAAI,CAAC,UAAU,EAAE;oBAChH,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC3E,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC;iBAC9D;qBAAM;oBACH,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;iBAC1B;aACJ;SACJ;aAAM;YACH,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;SAC1B;IACL,CAAC;IAEM,+CAAc,GAArB,UAAsB,aAA4B,EAAE,KAAY,EAAE,MAAc,EAAE,OAAgB;QAC9F,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO;SACV;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QAEzC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC7D,IAAI,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,oBAAoB,EAAE;gBACrD,aAAa,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC7I,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;aAC5E;SACJ;QAED,WAAW;QACX,IAAI,KAAK,CAAC,eAAe,EAAE;YACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,oBAAoB,EAAE;gBACrD,aAAa,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC5D;SACJ;IACL,CAAC;IAEM,2CAAU,GAAjB,UAAkB,OAAoB;QAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;YAC3B,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,kDAAiB,GAAxB,UAAyB,cAA6B;QAClD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtC;IACL,CAAC;IAEM,+CAAc,GAArB,UAAsB,WAA0B;QAC5C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAClF,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACnC;IACL,CAAC;IAEM,wCAAO,GAAd,UAAe,oBAA8B;;QACzC,IAAI,oBAAoB,EAAE;YACtB,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,EAAE,CAAC;SAC5B;IACL,CAAC;IAEM,6CAAY,GAAnB;QACI,OAAO,wBAAwB,CAAC;IACpC,CAAC;IAEM,4CAAW,GAAlB,UAAmB,QAAkB;QACjC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAEM,4CAAW,GAAlB;QACI,OAAO;YACH,GAAG,EAAE;gBACD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aACnD;SACJ,CAAC;IACN,CAAC;IAzJD;QAFC,kBAAkB,CAAC,eAAe,CAAC;QACnC,gBAAgB,CAAC,kCAAkC,CAAC;2DACf;IAOtC;QADC,SAAS,EAAE;qEACiB;IAO7B;QADC,SAAS,EAAE;uEACmB;IAO/B;QADC,SAAS,EAAE;6DACS;IAQrB;QAFC,SAAS,EAAE;QACX,gBAAgB,CAAC,kCAAkC,CAAC;qEACpB;IAQjC;QAFC,SAAS,EAAE;QACX,gBAAgB,CAAC,kCAAkC,CAAC;6DAC5B;IAqH7B,6BAAC;CAAA,AAjKD,CAA4C,kBAAkB,GAiK7D;SAjKY,sBAAsB","sourcesContent":["import { Nullable } from \"../types\";\r\nimport { Material } from \"./material\";\r\nimport { serialize, expandToProperty, serializeAsTexture } from \"../Misc/decorators\";\r\nimport { MaterialFlags } from \"./materialFlags\";\r\nimport { MaterialHelper } from \"./materialHelper\";\r\nimport { BaseTexture } from \"./Textures/baseTexture\";\r\nimport { UniformBuffer } from \"./uniformBuffer\";\r\nimport { IAnimatable } from \"../Animations/animatable.interface\";\r\nimport { MaterialDefines } from \"./materialDefines\";\r\nimport { MaterialPluginBase } from \"./materialPluginBase\";\r\n\r\nimport { SubMesh } from \"../Meshes/subMesh\";\r\n\r\ndeclare type Engine = import(\"../Engines/engine\").Engine;\r\ndeclare type Scene = import(\"../scene\").Scene;\r\ndeclare type AbstractMesh = import(\"../Meshes/abstractMesh\").AbstractMesh;\r\ndeclare type StandardMaterial = import(\"./standardMaterial\").StandardMaterial;\r\ndeclare type PBRBaseMaterial = import(\"./PBR/pbrBaseMaterial\").PBRBaseMaterial;\r\n\r\n/**\r\n * @hidden\r\n */\r\nexport class MaterialDetailMapDefines extends MaterialDefines {\r\n DETAIL = false;\r\n DETAILDIRECTUV = 0;\r\n DETAIL_NORMALBLENDMETHOD = 0;\r\n}\r\n\r\n/**\r\n * Plugin that implements the detail map component of a material\r\n *\r\n * Inspired from:\r\n * Unity: https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@9.0/manual/Mask-Map-and-Detail-Map.html and https://docs.unity3d.com/Manual/StandardShaderMaterialParameterDetail.html\r\n * Unreal: https://docs.unrealengine.com/en-US/Engine/Rendering/Materials/HowTo/DetailTexturing/index.html\r\n * Cryengine: https://docs.cryengine.com/display/SDKDOC2/Detail+Maps\r\n */\r\nexport class DetailMapConfiguration extends MaterialPluginBase {\r\n private _texture: Nullable<BaseTexture> = null;\r\n /**\r\n * The detail texture of the material.\r\n */\r\n @serializeAsTexture(\"detailTexture\")\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public texture: Nullable<BaseTexture>;\r\n\r\n /**\r\n * Defines how strongly the detail diffuse/albedo channel is blended with the regular diffuse/albedo texture\r\n * Bigger values mean stronger blending\r\n */\r\n @serialize()\r\n public diffuseBlendLevel = 1;\r\n\r\n /**\r\n * Defines how strongly the detail roughness channel is blended with the regular roughness value\r\n * Bigger values mean stronger blending. Only used with PBR materials\r\n */\r\n @serialize()\r\n public roughnessBlendLevel = 1;\r\n\r\n /**\r\n * Defines how strong the bump effect from the detail map is\r\n * Bigger values mean stronger effect\r\n */\r\n @serialize()\r\n public bumpLevel = 1;\r\n\r\n private _normalBlendMethod = Material.MATERIAL_NORMALBLENDMETHOD_WHITEOUT;\r\n /**\r\n * The method used to blend the bump and detail normals together\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public normalBlendMethod: number;\r\n\r\n private _isEnabled = false;\r\n /**\r\n * Enable or disable the detail map on this material\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n /** @hidden */\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @hidden */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n constructor(material: PBRBaseMaterial | StandardMaterial, addToPluginList = true) {\r\n super(material, \"DetailMap\", 140, new MaterialDetailMapDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];\r\n }\r\n\r\n public isReadyForSubMesh(defines: MaterialDetailMapDefines, scene: Scene, engine: Engine): boolean {\r\n if (!this._isEnabled) {\r\n return true;\r\n }\r\n\r\n if (defines._areTexturesDirty && scene.texturesEnabled) {\r\n if (engine.getCaps().standardDerivatives && this._texture && MaterialFlags.DetailTextureEnabled) {\r\n // Detail texture cannot be not blocking.\r\n if (!this._texture.isReady()) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public prepareDefines(defines: MaterialDetailMapDefines, scene: Scene, mesh: AbstractMesh): void {\r\n if (this._isEnabled) {\r\n defines.DETAIL_NORMALBLENDMETHOD = this._normalBlendMethod;\r\n\r\n const engine = scene.getEngine();\r\n\r\n if (defines._areTexturesDirty) {\r\n if (engine.getCaps().standardDerivatives && this._texture && MaterialFlags.DetailTextureEnabled && this._isEnabled) {\r\n MaterialHelper.PrepareDefinesForMergedUV(this._texture, defines, \"DETAIL\");\r\n defines.DETAIL_NORMALBLENDMETHOD = this._normalBlendMethod;\r\n } else {\r\n defines.DETAIL = false;\r\n }\r\n }\r\n } else {\r\n defines.DETAIL = false;\r\n }\r\n }\r\n\r\n public bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene, engine: Engine, subMesh: SubMesh): void {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n const isFrozen = this._material.isFrozen;\r\n\r\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\r\n if (this._texture && MaterialFlags.DetailTextureEnabled) {\r\n uniformBuffer.updateFloat4(\"vDetailInfos\", this._texture.coordinatesIndex, this.diffuseBlendLevel, this.bumpLevel, this.roughnessBlendLevel);\r\n MaterialHelper.BindTextureMatrix(this._texture, uniformBuffer, \"detail\");\r\n }\r\n }\r\n\r\n // Textures\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.DetailTextureEnabled) {\r\n uniformBuffer.setTexture(\"detailSampler\", this._texture);\r\n }\r\n }\r\n }\r\n\r\n public hasTexture(texture: BaseTexture): boolean {\r\n if (this._texture === texture) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public getActiveTextures(activeTextures: BaseTexture[]): void {\r\n if (this._texture) {\r\n activeTextures.push(this._texture);\r\n }\r\n }\r\n\r\n public getAnimatables(animatables: IAnimatable[]): void {\r\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\r\n animatables.push(this._texture);\r\n }\r\n }\r\n\r\n public dispose(forceDisposeTextures?: boolean): void {\r\n if (forceDisposeTextures) {\r\n this._texture?.dispose();\r\n }\r\n }\r\n\r\n public getClassName(): string {\r\n return \"DetailMapConfiguration\";\r\n }\r\n\r\n public getSamplers(samplers: string[]): void {\r\n samplers.push(\"detailSampler\");\r\n }\r\n\r\n public getUniforms(): { ubo?: Array<{ name: string; size: number; type: string }>; vertex?: string; fragment?: string } {\r\n return {\r\n ubo: [\r\n { name: \"vDetailInfos\", size: 4, type: \"vec4\" },\r\n { name: \"detailMatrix\", size: 16, type: \"mat4\" },\r\n ],\r\n };\r\n }\r\n}\r\n"]}
|
package/Materials/material.js
CHANGED
|
@@ -10,6 +10,7 @@ import { Plane } from '../Maths/math.plane.js';
|
|
|
10
10
|
import { MaterialHelper } from './materialHelper.js';
|
|
11
11
|
import { DrawWrapper } from "./drawWrapper.js";
|
|
12
12
|
import { MaterialStencilState } from "./materialStencilState.js";
|
|
13
|
+
import { MaterialPluginEvent } from "./materialPluginEvent.js";
|
|
13
14
|
/**
|
|
14
15
|
* Base class for the main features of a material in Babylon.js
|
|
15
16
|
*/
|
|
@@ -174,6 +175,23 @@ var Material = /** @class */ (function () {
|
|
|
174
175
|
this.meshMap = null;
|
|
175
176
|
/** @hidden */
|
|
176
177
|
this._parentContainer = null;
|
|
178
|
+
/** @hidden */
|
|
179
|
+
this._uniformBufferLayoutBuilt = false;
|
|
180
|
+
this._eventInfo = {}; // will be initialized before each event notification
|
|
181
|
+
/** @hidden */
|
|
182
|
+
this._callbackPluginEventGeneric = function () { return void (0); };
|
|
183
|
+
/** @hidden */
|
|
184
|
+
this._callbackPluginEventIsReadyForSubMesh = function () { return void (0); };
|
|
185
|
+
/** @hidden */
|
|
186
|
+
this._callbackPluginEventPrepareDefines = function () { return void (0); };
|
|
187
|
+
/** @hidden */
|
|
188
|
+
this._callbackPluginEventHardBindForSubMesh = function () { return void (0); };
|
|
189
|
+
/** @hidden */
|
|
190
|
+
this._callbackPluginEventBindForSubMesh = function () { return void (0); };
|
|
191
|
+
/** @hidden */
|
|
192
|
+
this._callbackPluginEventHasRenderTargetTextures = function () { return void (0); };
|
|
193
|
+
/** @hidden */
|
|
194
|
+
this._callbackPluginEventFillRenderTargetTextures = function () { return void (0); };
|
|
177
195
|
/**
|
|
178
196
|
* Enforces alpha test in opaque or blend mode in order to improve the performances of some situations.
|
|
179
197
|
*/
|
|
@@ -184,6 +202,14 @@ var Material = /** @class */ (function () {
|
|
|
184
202
|
this._transparencyMode = null;
|
|
185
203
|
this.name = name;
|
|
186
204
|
this._scene = scene || EngineStore.LastCreatedScene;
|
|
205
|
+
this._dirtyCallbacks = {};
|
|
206
|
+
this._dirtyCallbacks[1] = this._markAllSubMeshesAsTexturesDirty.bind(this);
|
|
207
|
+
this._dirtyCallbacks[2] = this._markAllSubMeshesAsLightsDirty.bind(this);
|
|
208
|
+
this._dirtyCallbacks[4] = this._markAllSubMeshesAsFresnelDirty.bind(this);
|
|
209
|
+
this._dirtyCallbacks[8] = this._markAllSubMeshesAsAttributesDirty.bind(this);
|
|
210
|
+
this._dirtyCallbacks[16] = this._markAllSubMeshesAsMiscDirty.bind(this);
|
|
211
|
+
this._dirtyCallbacks[32] = this._markAllSubMeshesAsPrePassDirty.bind(this);
|
|
212
|
+
this._dirtyCallbacks[63] = this._markAllSubMeshesAsAllDirty.bind(this);
|
|
187
213
|
this.id = name || Tools.RandomId();
|
|
188
214
|
this.uniqueId = this._scene.getUniqueId();
|
|
189
215
|
this._materialContext = this._scene.getEngine().createMaterialContext();
|
|
@@ -203,6 +229,7 @@ var Material = /** @class */ (function () {
|
|
|
203
229
|
if (this._scene.useMaterialMeshMap) {
|
|
204
230
|
this.meshMap = {};
|
|
205
231
|
}
|
|
232
|
+
Material.OnEventObservable.notifyObservers(this, MaterialPluginEvent.Created);
|
|
206
233
|
}
|
|
207
234
|
Object.defineProperty(Material.prototype, "canRenderToMRT", {
|
|
208
235
|
/**
|
|
@@ -281,7 +308,9 @@ var Material = /** @class */ (function () {
|
|
|
281
308
|
* Gets a boolean indicating that current material needs to register RTT
|
|
282
309
|
*/
|
|
283
310
|
get: function () {
|
|
284
|
-
|
|
311
|
+
this._eventInfo.hasRenderTargetTextures = false;
|
|
312
|
+
this._callbackPluginEventHasRenderTargetTextures(this._eventInfo);
|
|
313
|
+
return this._eventInfo.hasRenderTargetTextures;
|
|
285
314
|
},
|
|
286
315
|
enumerable: false,
|
|
287
316
|
configurable: true
|
|
@@ -566,7 +595,14 @@ var Material = /** @class */ (function () {
|
|
|
566
595
|
* @returns a boolean indicating that the submesh is ready or not
|
|
567
596
|
*/
|
|
568
597
|
Material.prototype.isReadyForSubMesh = function (mesh, subMesh, useInstances) {
|
|
569
|
-
|
|
598
|
+
var defines = subMesh.materialDefines;
|
|
599
|
+
if (!defines) {
|
|
600
|
+
return false;
|
|
601
|
+
}
|
|
602
|
+
this._eventInfo.isReadyForSubMesh = true;
|
|
603
|
+
this._eventInfo.defines = defines;
|
|
604
|
+
this._callbackPluginEventIsReadyForSubMesh(this._eventInfo);
|
|
605
|
+
return this._eventInfo.isReadyForSubMesh;
|
|
570
606
|
};
|
|
571
607
|
/**
|
|
572
608
|
* Returns the material effect
|
|
@@ -706,6 +742,16 @@ var Material = /** @class */ (function () {
|
|
|
706
742
|
*/
|
|
707
743
|
Material.prototype.bind = function (world, mesh) {
|
|
708
744
|
};
|
|
745
|
+
/**
|
|
746
|
+
* Initializes the uniform buffer layout for the shader.
|
|
747
|
+
*/
|
|
748
|
+
Material.prototype.buildUniformLayout = function () {
|
|
749
|
+
var ubo = this._uniformBuffer;
|
|
750
|
+
this._eventInfo.ubo = ubo;
|
|
751
|
+
this._callbackPluginEventGeneric(MaterialPluginEvent.PrepareUniformBuffer, this._eventInfo);
|
|
752
|
+
ubo.create();
|
|
753
|
+
this._uniformBufferLayoutBuilt = true;
|
|
754
|
+
};
|
|
709
755
|
/**
|
|
710
756
|
* Binds the submesh to the material
|
|
711
757
|
* @param world defines the world transformation matrix
|
|
@@ -713,6 +759,12 @@ var Material = /** @class */ (function () {
|
|
|
713
759
|
* @param subMesh defines the submesh to bind the material to
|
|
714
760
|
*/
|
|
715
761
|
Material.prototype.bindForSubMesh = function (world, mesh, subMesh) {
|
|
762
|
+
var effect = subMesh.effect;
|
|
763
|
+
if (!effect) {
|
|
764
|
+
return;
|
|
765
|
+
}
|
|
766
|
+
this._eventInfo.subMesh = subMesh;
|
|
767
|
+
this._callbackPluginEventBindForSubMesh(this._eventInfo);
|
|
716
768
|
};
|
|
717
769
|
/**
|
|
718
770
|
* Binds the world matrix to the material
|
|
@@ -817,12 +869,23 @@ var Material = /** @class */ (function () {
|
|
|
817
869
|
engine.setColorWrite(this._cachedColorWriteState);
|
|
818
870
|
}
|
|
819
871
|
};
|
|
872
|
+
/**
|
|
873
|
+
* Returns the animatable textures.
|
|
874
|
+
* @returns - Array of animatable textures.
|
|
875
|
+
*/
|
|
876
|
+
Material.prototype.getAnimatables = function () {
|
|
877
|
+
this._eventInfo.animatables = [];
|
|
878
|
+
this._callbackPluginEventGeneric(MaterialPluginEvent.GetAnimatables, this._eventInfo);
|
|
879
|
+
return this._eventInfo.animatables;
|
|
880
|
+
};
|
|
820
881
|
/**
|
|
821
882
|
* Gets the active textures from the material
|
|
822
883
|
* @returns an array of textures
|
|
823
884
|
*/
|
|
824
885
|
Material.prototype.getActiveTextures = function () {
|
|
825
|
-
|
|
886
|
+
this._eventInfo.activeTextures = [];
|
|
887
|
+
this._callbackPluginEventGeneric(MaterialPluginEvent.GetActiveTextures, this._eventInfo);
|
|
888
|
+
return this._eventInfo.activeTextures;
|
|
826
889
|
};
|
|
827
890
|
/**
|
|
828
891
|
* Specifies if the material uses a texture
|
|
@@ -830,7 +893,10 @@ var Material = /** @class */ (function () {
|
|
|
830
893
|
* @returns a boolean specifying if the material uses the texture
|
|
831
894
|
*/
|
|
832
895
|
Material.prototype.hasTexture = function (texture) {
|
|
833
|
-
|
|
896
|
+
this._eventInfo.hasTexture = false;
|
|
897
|
+
this._eventInfo.texture = texture;
|
|
898
|
+
this._callbackPluginEventGeneric(MaterialPluginEvent.HasTexture, this._eventInfo);
|
|
899
|
+
return this._eventInfo.hasTexture;
|
|
834
900
|
};
|
|
835
901
|
/**
|
|
836
902
|
* Makes a duplicate of the material, and gives it a new name
|
|
@@ -976,6 +1042,25 @@ var Material = /** @class */ (function () {
|
|
|
976
1042
|
}
|
|
977
1043
|
this.getScene().resetCachedMaterial();
|
|
978
1044
|
};
|
|
1045
|
+
/**
|
|
1046
|
+
* Resets the draw wrappers cache for all submeshes that are using this material
|
|
1047
|
+
*/
|
|
1048
|
+
Material.prototype.resetDrawCache = function () {
|
|
1049
|
+
var meshes = this.getScene().meshes;
|
|
1050
|
+
for (var _i = 0, meshes_2 = meshes; _i < meshes_2.length; _i++) {
|
|
1051
|
+
var mesh = meshes_2[_i];
|
|
1052
|
+
if (!mesh.subMeshes) {
|
|
1053
|
+
continue;
|
|
1054
|
+
}
|
|
1055
|
+
for (var _a = 0, _b = mesh.subMeshes; _a < _b.length; _a++) {
|
|
1056
|
+
var subMesh = _b[_a];
|
|
1057
|
+
if (subMesh.getMaterial() !== this) {
|
|
1058
|
+
continue;
|
|
1059
|
+
}
|
|
1060
|
+
subMesh.resetDrawCache();
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
};
|
|
979
1064
|
/**
|
|
980
1065
|
* Marks all submeshes of a material to indicate that their material defines need to be re-calculated
|
|
981
1066
|
* @param func defines a function which checks material defines against the submeshes
|
|
@@ -985,8 +1070,8 @@ var Material = /** @class */ (function () {
|
|
|
985
1070
|
return;
|
|
986
1071
|
}
|
|
987
1072
|
var meshes = this.getScene().meshes;
|
|
988
|
-
for (var _i = 0,
|
|
989
|
-
var mesh =
|
|
1073
|
+
for (var _i = 0, meshes_3 = meshes; _i < meshes_3.length; _i++) {
|
|
1074
|
+
var mesh = meshes_3[_i];
|
|
990
1075
|
if (!mesh.subMeshes) {
|
|
991
1076
|
continue;
|
|
992
1077
|
}
|
|
@@ -1101,6 +1186,8 @@ var Material = /** @class */ (function () {
|
|
|
1101
1186
|
scene.freeProcessedMaterials();
|
|
1102
1187
|
// Remove from scene
|
|
1103
1188
|
scene.removeMaterial(this);
|
|
1189
|
+
this._eventInfo.forceDisposeTextures = forceDisposeTextures;
|
|
1190
|
+
this._callbackPluginEventGeneric(MaterialPluginEvent.Disposed, this._eventInfo);
|
|
1104
1191
|
if (this._parentContainer) {
|
|
1105
1192
|
var index = this._parentContainer.materials.indexOf(this);
|
|
1106
1193
|
if (index > -1) {
|
|
@@ -1121,8 +1208,8 @@ var Material = /** @class */ (function () {
|
|
|
1121
1208
|
}
|
|
1122
1209
|
else {
|
|
1123
1210
|
var meshes = scene.meshes;
|
|
1124
|
-
for (var _i = 0,
|
|
1125
|
-
var mesh =
|
|
1211
|
+
for (var _i = 0, meshes_4 = meshes; _i < meshes_4.length; _i++) {
|
|
1212
|
+
var mesh = meshes_4[_i];
|
|
1126
1213
|
if (mesh.material === this && !mesh.sourceMesh) {
|
|
1127
1214
|
mesh.material = null;
|
|
1128
1215
|
this.releaseVertexArrayObject(mesh, forceDisposeEffect);
|
|
@@ -1299,6 +1386,10 @@ var Material = /** @class */ (function () {
|
|
|
1299
1386
|
* Details of the algorithm can be found here: https://blog.selfshadow.com/publications/blending-in-detail/
|
|
1300
1387
|
*/
|
|
1301
1388
|
Material.MATERIAL_NORMALBLENDMETHOD_RNM = 1;
|
|
1389
|
+
/**
|
|
1390
|
+
* Event observable which raises global events common to all materials (like MaterialPluginEvent.Created)
|
|
1391
|
+
*/
|
|
1392
|
+
Material.OnEventObservable = new Observable();
|
|
1302
1393
|
Material._AllDirtyCallBack = function (defines) { return defines.markAllAsDirty(); };
|
|
1303
1394
|
Material._ImageProcessingDirtyCallBack = function (defines) { return defines.markAsImageProcessingDirty(); };
|
|
1304
1395
|
Material._TextureDirtyCallBack = function (defines) { return defines.markAsTexturesDirty(); };
|