@babylonjs/core 9.11.0 → 9.12.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.d.ts +1 -1
- package/Actions/actionManager.js +8 -5
- package/Actions/actionManager.js.map +1 -1
- package/Animations/animatable.core.d.ts +1 -1
- package/Animations/animatable.core.js +2 -2
- package/Animations/animatable.core.js.map +1 -1
- package/Animations/animationPropertiesOverride.js +1 -1
- package/Animations/animationPropertiesOverride.js.map +1 -1
- package/Animations/animatorAvatar.d.ts +2 -2
- package/Animations/animatorAvatar.js +3 -3
- package/Animations/animatorAvatar.js.map +1 -1
- package/Animations/pathCursor.d.ts +1 -1
- package/Animations/pathCursor.js +1 -1
- package/Animations/pathCursor.js.map +1 -1
- package/Animations/runtimeAnimation.d.ts +1 -1
- package/Animations/runtimeAnimation.js +2 -2
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/analyser.js +1 -1
- package/Audio/analyser.js.map +1 -1
- package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js +1 -1
- package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.d.ts +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.d.ts +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js.map +1 -1
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +1 -1
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +1 -1
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
- package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +1 -1
- package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -1
- package/AudioV2/webAudio/webAudioStreamingSound.js +1 -1
- package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/BakedVertexAnimation/vertexAnimationBaker.js +1 -1
- package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -1
- package/Behaviors/Cameras/bouncingBehavior.js +1 -1
- package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
- package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
- package/Behaviors/Cameras/framingBehavior.js +2 -2
- package/Behaviors/Cameras/framingBehavior.js.map +1 -1
- package/Behaviors/Cameras/interpolatingBehavior.d.ts +13 -1
- package/Behaviors/Cameras/interpolatingBehavior.js +13 -1
- package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
- package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
- package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
- package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +3 -3
- package/Behaviors/Meshes/baseSixDofDragBehavior.js +4 -4
- package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.js +1 -1
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/handConstraintBehavior.js +2 -2
- package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
- package/Behaviors/Meshes/multiPointerScaleBehavior.js +1 -1
- package/Behaviors/Meshes/multiPointerScaleBehavior.js.map +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.d.ts +3 -3
- package/Behaviors/Meshes/pointerDragBehavior.js +5 -5
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/sixDofDragBehavior.d.ts +1 -1
- package/Behaviors/Meshes/sixDofDragBehavior.js +2 -2
- package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/surfaceMagnetismBehavior.js +1 -1
- package/Behaviors/Meshes/surfaceMagnetismBehavior.js.map +1 -1
- package/Bones/boneIKController.d.ts +1 -1
- package/Bones/boneIKController.js +1 -1
- package/Bones/boneIKController.js.map +1 -1
- package/Bones/boneLookController.d.ts +1 -1
- package/Bones/boneLookController.js +1 -1
- package/Bones/boneLookController.js.map +1 -1
- package/Bones/skeleton.d.ts +2 -2
- package/Bones/skeleton.functions.d.ts +1 -1
- package/Bones/skeleton.functions.js +3 -3
- package/Bones/skeleton.functions.js.map +1 -1
- package/Bones/skeleton.js +3 -4
- package/Bones/skeleton.js.map +1 -1
- package/Buffers/buffer.align.pure.js +6 -0
- package/Buffers/buffer.align.pure.js.map +1 -1
- package/Buffers/buffer.nonFloatVertexBuffers.js +2 -1
- package/Buffers/buffer.nonFloatVertexBuffers.js.map +1 -1
- package/Buffers/buffer.pure.d.ts +8 -0
- package/Buffers/buffer.pure.js +31 -2
- package/Buffers/buffer.pure.js.map +1 -1
- package/Buffers/bufferUtils.js +17 -5
- package/Buffers/bufferUtils.js.map +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +2 -2
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js +2 -2
- package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +2 -2
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.js +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +2 -2
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraTouchInput.js +2 -2
- package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js +1 -1
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
- package/Cameras/Limits/geospatialLimits.d.ts +1 -1
- package/Cameras/Limits/geospatialLimits.js +1 -1
- package/Cameras/Limits/geospatialLimits.js.map +1 -1
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +2 -2
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
- package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -1
- package/Cameras/RigModes/stereoscopicRigMode.js +3 -3
- package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
- package/Cameras/RigModes/vrRigMode.js +2 -2
- package/Cameras/RigModes/vrRigMode.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +3 -3
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +5 -5
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrCameraMetrics.d.ts +1 -1
- package/Cameras/VR/vrCameraMetrics.js +1 -1
- package/Cameras/VR/vrCameraMetrics.js.map +1 -1
- package/Cameras/cameraInputsManager.d.ts +1 -1
- package/Cameras/cameraInputsManager.js +1 -1
- package/Cameras/cameraInputsManager.js.map +1 -1
- package/Collisions/collider.d.ts +1 -1
- package/Collisions/collider.js +1 -1
- package/Collisions/collider.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +1 -1
- package/Collisions/gpuPicker.js +5 -5
- package/Collisions/gpuPicker.js.map +1 -1
- package/Collisions/meshCollisionData.d.ts +1 -1
- package/Collisions/meshCollisionData.js +1 -1
- package/Collisions/meshCollisionData.js.map +1 -1
- package/Collisions/pickingInfo.d.ts +1 -1
- package/Collisions/pickingInfo.js +2 -2
- package/Collisions/pickingInfo.js.map +1 -1
- package/Culling/Octrees/octreeBlock.d.ts +1 -1
- package/Culling/Octrees/octreeBlock.js +1 -1
- package/Culling/Octrees/octreeBlock.js.map +1 -1
- package/Culling/boundingBox.d.ts +1 -1
- package/Culling/boundingBox.js +1 -1
- package/Culling/boundingBox.js.map +1 -1
- package/Culling/boundingInfo.d.ts +1 -1
- package/Culling/boundingInfo.js +1 -1
- package/Culling/boundingInfo.js.map +1 -1
- package/Culling/boundingSphere.d.ts +1 -1
- package/Culling/boundingSphere.js +1 -1
- package/Culling/boundingSphere.js.map +1 -1
- package/Culling/ray.core.d.ts +1 -1
- package/Culling/ray.core.js +1 -1
- package/Culling/ray.core.js.map +1 -1
- package/Debug/axesViewer.d.ts +1 -1
- package/Debug/axesViewer.js +3 -3
- package/Debug/axesViewer.js.map +1 -1
- package/Debug/boneAxesViewer.d.ts +1 -1
- package/Debug/boneAxesViewer.js +1 -1
- package/Debug/boneAxesViewer.js.map +1 -1
- package/Debug/directionalLightFrustumViewer.d.ts +1 -1
- package/Debug/directionalLightFrustumViewer.js +6 -6
- package/Debug/directionalLightFrustumViewer.js.map +1 -1
- package/Debug/rayHelper.d.ts +1 -1
- package/Debug/rayHelper.js +2 -2
- package/Debug/rayHelper.js.map +1 -1
- package/Debug/skeletonViewer.d.ts +2 -2
- package/Debug/skeletonViewer.js +10 -10
- package/Debug/skeletonViewer.js.map +1 -1
- package/DeviceInput/internalDeviceSourceManager.d.ts +1 -1
- package/DeviceInput/internalDeviceSourceManager.js +0 -1
- package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
- package/DeviceInput/webDeviceInputSystem.js +1 -1
- package/DeviceInput/webDeviceInputSystem.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/Native/nativeHelpers.js +4 -1
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +11 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
- package/Engines/abstractEngine.pure.js +2 -2
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/constants.d.ts +4 -0
- package/Engines/constants.js +4 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/engineFactory.d.ts +2 -2
- package/Engines/engineFactory.js +3 -3
- package/Engines/engineFactory.js.map +1 -1
- package/Events/pointerEvents.d.ts +1 -1
- package/Events/pointerEvents.js +1 -1
- package/Events/pointerEvents.js.map +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js +1 -1
- package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js +1 -1
- package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.d.ts +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js +3 -3
- package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js.map +1 -1
- package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +1 -1
- package/FlowGraph/CustomTypes/flowGraphMatrix.js +1 -1
- package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
- package/FlowGraph/flowGraphBlock.d.ts +1 -1
- package/FlowGraph/flowGraphBlock.js +1 -1
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphExecutionBlock.d.ts +1 -1
- package/FlowGraph/flowGraphExecutionBlock.js +1 -1
- package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
- package/FlowGraph/flowGraphMath.d.ts +1 -1
- package/FlowGraph/flowGraphMath.js +1 -1
- package/FlowGraph/flowGraphMath.js.map +1 -1
- package/FlowGraph/flowGraphParser.js +1 -1
- package/FlowGraph/flowGraphParser.js.map +1 -1
- package/FlowGraph/flowGraphPathConverterComponent.d.ts +1 -1
- package/FlowGraph/flowGraphPathConverterComponent.js +2 -2
- package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
- package/FlowGraph/flowGraphValidator.js.map +1 -1
- package/FlowGraph/serialization.js +4 -4
- package/FlowGraph/serialization.js.map +1 -1
- package/FlowGraph/utils.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.d.ts +2 -2
- package/FrameGraph/Node/nodeRenderGraph.js +7 -7
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Tasks/Layers/baseLayerTask.d.ts +30 -0
- package/FrameGraph/Tasks/Layers/baseLayerTask.js +28 -1
- package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/computeShaderTask.d.ts +2 -2
- package/FrameGraph/Tasks/Misc/computeShaderTask.js +2 -2
- package/FrameGraph/Tasks/Misc/computeShaderTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.d.ts +1 -1
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +2 -2
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/blurTask.d.ts +7 -0
- package/FrameGraph/Tasks/PostProcesses/blurTask.js +8 -1
- package/FrameGraph/Tasks/PostProcesses/blurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.d.ts +1 -1
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.d.ts +2 -2
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js +3 -3
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +1 -1
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +2 -2
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +6 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +14 -5
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.d.ts +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.d.ts +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js +2 -2
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.d.ts +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js +2 -2
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +7 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +7 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +1 -1
- package/FrameGraph/Tasks/Texture/clearTextureTask.js +1 -1
- package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.js +1 -1
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/frameGraphTextureManager.d.ts +1 -1
- package/FrameGraph/frameGraphTextureManager.js +1 -1
- package/FrameGraph/frameGraphTextureManager.js.map +1 -1
- package/Gamepads/gamepadManager.js +1 -1
- package/Gamepads/gamepadManager.js.map +1 -1
- package/Gizmos/axisDragGizmo.d.ts +5 -5
- package/Gizmos/axisDragGizmo.js +6 -6
- package/Gizmos/axisDragGizmo.js.map +1 -1
- package/Gizmos/axisScaleGizmo.d.ts +4 -4
- package/Gizmos/axisScaleGizmo.js +6 -6
- package/Gizmos/axisScaleGizmo.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.d.ts +5 -5
- package/Gizmos/boundingBoxGizmo.js +7 -7
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/cameraGizmo.d.ts +3 -3
- package/Gizmos/cameraGizmo.js +7 -7
- package/Gizmos/cameraGizmo.js.map +1 -1
- package/Gizmos/gizmo.d.ts +2 -2
- package/Gizmos/gizmo.js +3 -3
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/gizmoManager.d.ts +2 -2
- package/Gizmos/gizmoManager.js +2 -2
- package/Gizmos/gizmoManager.js.map +1 -1
- package/Gizmos/lightGizmo.d.ts +4 -4
- package/Gizmos/lightGizmo.js +11 -11
- package/Gizmos/lightGizmo.js.map +1 -1
- package/Gizmos/planeDragGizmo.d.ts +4 -4
- package/Gizmos/planeDragGizmo.js +5 -5
- package/Gizmos/planeDragGizmo.js.map +1 -1
- package/Gizmos/positionGizmo.d.ts +1 -1
- package/Gizmos/positionGizmo.js +2 -2
- package/Gizmos/positionGizmo.js.map +1 -1
- package/Gizmos/rotationGizmo.d.ts +3 -3
- package/Gizmos/rotationGizmo.js +3 -3
- package/Gizmos/rotationGizmo.js.map +1 -1
- package/Gizmos/scaleGizmo.d.ts +2 -2
- package/Gizmos/scaleGizmo.js +4 -4
- package/Gizmos/scaleGizmo.js.map +1 -1
- package/Gizmos/spatialAudioGizmo.d.ts +2 -2
- package/Gizmos/spatialAudioGizmo.js +6 -6
- package/Gizmos/spatialAudioGizmo.js.map +1 -1
- package/Helpers/environmentHelper.d.ts +6 -6
- package/Helpers/environmentHelper.js +12 -12
- package/Helpers/environmentHelper.js.map +1 -1
- package/Helpers/materialConversionHelper.d.ts +1 -1
- package/Helpers/materialConversionHelper.js +1 -1
- package/Helpers/materialConversionHelper.js.map +1 -1
- package/Helpers/photoDome.d.ts +1 -1
- package/Helpers/photoDome.js +1 -1
- package/Helpers/photoDome.js.map +1 -1
- package/Helpers/textureDome.d.ts +4 -4
- package/Helpers/textureDome.js +6 -6
- package/Helpers/textureDome.js.map +1 -1
- package/Helpers/videoDome.d.ts +1 -1
- package/Helpers/videoDome.js +2 -2
- package/Helpers/videoDome.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +1 -1
- package/Inputs/scene.inputManager.js +1 -1
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Instrumentation/sceneInstrumentation.js +1 -1
- package/Instrumentation/sceneInstrumentation.js.map +1 -1
- package/Layers/effectLayer.d.ts +1 -1
- package/Layers/effectLayer.js +3 -3
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/layer.d.ts +2 -2
- package/Layers/layer.js +4 -4
- package/Layers/layer.js.map +1 -1
- package/Layers/thinEffectLayer.d.ts +2 -2
- package/Layers/thinEffectLayer.js +3 -3
- package/Layers/thinEffectLayer.js.map +1 -1
- package/Layers/thinGlowLayer.d.ts +1 -1
- package/Layers/thinGlowLayer.js +3 -3
- package/Layers/thinGlowLayer.js.map +1 -1
- package/Layers/thinHighlightLayer.d.ts +1 -1
- package/Layers/thinHighlightLayer.js +3 -3
- package/Layers/thinHighlightLayer.js.map +1 -1
- package/Layers/thinSelectionOutlineLayer.d.ts +1 -1
- package/Layers/thinSelectionOutlineLayer.js +3 -3
- package/Layers/thinSelectionOutlineLayer.js.map +1 -1
- package/Legacy/legacy.js +12 -1
- package/Legacy/legacy.js.map +1 -1
- package/LensFlares/lensFlare.d.ts +2 -2
- package/LensFlares/lensFlare.js +3 -3
- package/LensFlares/lensFlare.js.map +1 -1
- package/LensFlares/lensFlareSystem.d.ts +1 -1
- package/LensFlares/lensFlareSystem.js +6 -6
- package/LensFlares/lensFlareSystem.js.map +1 -1
- package/Lights/LTC/ltcTextureTool.js +1 -1
- package/Lights/LTC/ltcTextureTool.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -285
- package/Lights/Shadows/cascadedShadowGenerator.js +3 -857
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.pure.d.ts +290 -0
- package/Lights/Shadows/cascadedShadowGenerator.pure.js +868 -0
- package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -0
- package/Lights/Shadows/pure.d.ts +1 -0
- package/Lights/Shadows/pure.js +1 -0
- package/Lights/Shadows/pure.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +3 -3
- package/Lights/Shadows/shadowGenerator.js +7 -7
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/areaLight.d.ts +1 -1
- package/Lights/areaLight.js +0 -1
- package/Lights/areaLight.js.map +1 -1
- package/Lights/light.d.ts +2 -2
- package/Lights/light.js +2 -2
- package/Lights/light.js.map +1 -1
- package/Lights/shadowLight.d.ts +1 -1
- package/Lights/shadowLight.js +1 -1
- package/Lights/shadowLight.js.map +1 -1
- package/Loading/sceneLoader.d.ts +2 -2
- package/Loading/sceneLoader.js +3 -3
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/GreasedLine/greasedLineMaterialDefaults.d.ts +1 -1
- package/Materials/GreasedLine/greasedLineMaterialDefaults.js +1 -1
- package/Materials/GreasedLine/greasedLineMaterialDefaults.js.map +1 -1
- package/Materials/GreasedLine/greasedLineSimpleMaterial.d.ts +3 -3
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js +3 -3
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +6 -6
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.d.ts +12 -0
- package/Materials/Node/nodeMaterial.pure.js +68 -13
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialDefault.js +14 -14
- package/Materials/Node/nodeMaterialDefault.js.map +1 -1
- package/Materials/PBR/openpbrMaterial.pure.js +19 -4
- package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +40 -2
- package/Materials/PBR/pbrAnisotropicConfiguration.js +41 -3
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +5 -1
- package/Materials/PBR/pbrBRDFConfiguration.js +5 -1
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +2 -2
- package/Materials/PBR/pbrBaseSimpleMaterial.js +2 -2
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +42 -2
- package/Materials/PBR/pbrClearCoatConfiguration.js +42 -2
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +38 -1
- package/Materials/PBR/pbrIridescenceConfiguration.js +38 -1
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +41 -2
- package/Materials/PBR/pbrSheenConfiguration.js +41 -2
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +41 -2
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +42 -3
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/Filtering/hdrFiltering.js +1 -1
- package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.d.ts +1 -1
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.js +2 -2
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.js.map +1 -1
- package/Materials/Textures/Loaders/EXR/exrLoader.core.d.ts +1 -1
- package/Materials/Textures/Loaders/EXR/exrLoader.core.js +5 -109
- package/Materials/Textures/Loaders/EXR/exrLoader.core.js.map +1 -1
- package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js +1 -1
- package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js.map +1 -1
- package/Materials/Textures/Loaders/basisTextureLoader.js +2 -2
- package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js +3 -1
- package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js +11 -2
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
- package/Materials/Textures/MultiviewRenderTarget.js +1 -1
- package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
- package/Materials/Textures/Packer/packer.d.ts +1 -1
- package/Materials/Textures/Packer/packer.js +6 -6
- package/Materials/Textures/Packer/packer.js.map +1 -1
- package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -2
- package/Materials/Textures/Procedurals/customProceduralTexture.js +4 -4
- package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +4 -1
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js +1 -1
- package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js.map +1 -1
- package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
- package/Materials/Textures/prePassRenderTarget.js +1 -1
- package/Materials/Textures/prePassRenderTarget.js.map +1 -1
- package/Materials/Textures/rawCubeTexture.d.ts +1 -1
- package/Materials/Textures/rawCubeTexture.js +2 -2
- package/Materials/Textures/rawCubeTexture.js.map +1 -1
- package/Materials/Textures/rawTexture.d.ts +1 -1
- package/Materials/Textures/rawTexture.js +1 -1
- package/Materials/Textures/rawTexture.js.map +1 -1
- package/Materials/Textures/rawTexture2DArray.d.ts +1 -1
- package/Materials/Textures/rawTexture2DArray.js +1 -1
- package/Materials/Textures/rawTexture2DArray.js.map +1 -1
- package/Materials/Textures/rawTexture3D.d.ts +1 -1
- package/Materials/Textures/rawTexture3D.js +1 -1
- package/Materials/Textures/rawTexture3D.js.map +1 -1
- package/Materials/Textures/refractionTexture.d.ts +1 -1
- package/Materials/Textures/refractionTexture.js +1 -1
- package/Materials/Textures/refractionTexture.js.map +1 -1
- package/Materials/Textures/textureMerger.d.ts +1 -1
- package/Materials/Textures/textureMerger.js +1 -1
- package/Materials/Textures/textureMerger.js.map +1 -1
- package/Materials/Textures/textureProcessor.d.ts +1 -1
- package/Materials/Textures/textureProcessor.js +2 -2
- package/Materials/Textures/textureProcessor.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.d.ts +4 -4
- package/Materials/Textures/thinRenderTargetTexture.js +2 -2
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/clipPlaneMaterialHelper.js +1 -1
- package/Materials/clipPlaneMaterialHelper.js.map +1 -1
- package/Materials/effectRenderer.pure.js +4 -2
- package/Materials/effectRenderer.pure.js.map +1 -1
- package/Materials/floatingOriginMatrixOverrides.d.ts +1 -1
- package/Materials/floatingOriginMatrixOverrides.js +1 -1
- package/Materials/floatingOriginMatrixOverrides.js.map +1 -1
- package/Materials/material.detailMapConfiguration.d.ts +39 -1
- package/Materials/material.detailMapConfiguration.js +39 -1
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/materialHelper.functions.js +45 -1
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.d.ts +1 -1
- package/Materials/materialHelper.geometryrendering.js +1 -1
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/materialPluginFactoryExport.js +2 -2
- package/Materials/materialPluginFactoryExport.js.map +1 -1
- package/Materials/pushMaterial.d.ts +7 -1
- package/Materials/pushMaterial.js +7 -1
- package/Materials/pushMaterial.js.map +1 -1
- package/Materials/uniformBuffer.js +1 -1
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/math.axis.d.ts +1 -1
- package/Maths/math.axis.js +1 -1
- package/Maths/math.axis.js.map +1 -1
- package/Maths/math.d.ts +2 -2
- package/Maths/math.functions.d.ts +1 -1
- package/Maths/math.functions.js +1 -1
- package/Maths/math.functions.js.map +1 -1
- package/Maths/math.isovector.d.ts +1 -1
- package/Maths/math.isovector.js +1 -1
- package/Maths/math.isovector.js.map +1 -1
- package/Maths/math.js +2 -2
- package/Maths/math.js.map +1 -1
- package/Maths/math.path.d.ts +1 -1
- package/Maths/math.path.js +1 -1
- package/Maths/math.path.js.map +1 -1
- package/Maths/math.plane.d.ts +1 -1
- package/Maths/math.plane.js +1 -1
- package/Maths/math.plane.js.map +1 -1
- package/Maths/math.polar.d.ts +1 -1
- package/Maths/math.polar.js +1 -1
- package/Maths/math.polar.js.map +1 -1
- package/Maths/math.vertexFormat.d.ts +1 -1
- package/Maths/math.vertexFormat.js +1 -1
- package/Maths/math.vertexFormat.js.map +1 -1
- package/Maths/pure.d.ts +1 -0
- package/Maths/pure.js +1 -0
- package/Maths/pure.js.map +1 -1
- package/Meshes/Builders/geodesicBuilder.js +1 -1
- package/Meshes/Builders/geodesicBuilder.js.map +1 -1
- package/Meshes/Builders/goldbergBuilder.d.ts +1 -1
- package/Meshes/Builders/goldbergBuilder.js +4 -4
- package/Meshes/Builders/goldbergBuilder.js.map +1 -1
- package/Meshes/Builders/greasedLineBuilder.d.ts +4 -4
- package/Meshes/Builders/greasedLineBuilder.js +5 -5
- package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
- package/Meshes/Builders/textBuilder.d.ts +2 -2
- package/Meshes/Builders/textBuilder.js +4 -4
- package/Meshes/Builders/textBuilder.js.map +1 -1
- package/Meshes/Builders/tiledBoxBuilder.d.ts +3 -3
- package/Meshes/Builders/tiledBoxBuilder.js +3 -3
- package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
- package/Meshes/Builders/tiledPlaneBuilder.d.ts +1 -1
- package/Meshes/Builders/tiledPlaneBuilder.js +1 -1
- package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
- package/Meshes/Compression/dracoCodec.js +1 -1
- package/Meshes/Compression/dracoCodec.js.map +1 -1
- package/Meshes/Compression/dracoDecoder.js +1 -1
- package/Meshes/Compression/dracoDecoder.js.map +1 -1
- package/Meshes/Compression/dracoEncoder.d.ts +1 -1
- package/Meshes/Compression/dracoEncoder.js +2 -2
- package/Meshes/Compression/dracoEncoder.js.map +1 -1
- package/Meshes/Compression/meshoptCompression.js +1 -1
- package/Meshes/Compression/meshoptCompression.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +64 -3
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -2
- package/Meshes/GreasedLine/greasedLineBaseMesh.js +3 -3
- package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
- package/Meshes/Node/nodeGeometry.d.ts +2 -2
- package/Meshes/Node/nodeGeometry.js +4 -4
- package/Meshes/Node/nodeGeometry.js.map +1 -1
- package/Meshes/Node/nodeGeometryBuildState.d.ts +1 -1
- package/Meshes/Node/nodeGeometryBuildState.js +1 -1
- package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
- package/Meshes/abstractMesh.hotSpot.d.ts +1 -1
- package/Meshes/abstractMesh.hotSpot.js +2 -2
- package/Meshes/abstractMesh.hotSpot.js.map +1 -1
- package/Meshes/abstractMesh.pure.js +2 -13
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/buffer.d.ts +1 -1
- package/Meshes/buffer.js +1 -1
- package/Meshes/buffer.js.map +1 -1
- package/Meshes/csg.d.ts +3 -3
- package/Meshes/csg.js +4 -4
- package/Meshes/csg.js.map +1 -1
- package/Meshes/csg2.d.ts +1 -1
- package/Meshes/csg2.js +38 -11
- package/Meshes/csg2.js.map +1 -1
- package/Meshes/geodesicMesh.d.ts +1 -1
- package/Meshes/geodesicMesh.js +1 -1
- package/Meshes/geodesicMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +2 -2
- package/Meshes/geometry.js +4 -4
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/lattice.d.ts +1 -1
- package/Meshes/lattice.js +1 -1
- package/Meshes/lattice.js.map +1 -1
- package/Meshes/lattice.material.d.ts +1 -1
- package/Meshes/lattice.material.js +1 -1
- package/Meshes/lattice.material.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +2 -2
- package/Meshes/mesh.vertexData.js +3 -4
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/mesh.vertexData.subdivide.js +1 -1
- package/Meshes/mesh.vertexData.subdivide.js.map +1 -1
- package/Meshes/meshBuilder.d.ts +18 -18
- package/Meshes/meshBuilder.js +18 -18
- package/Meshes/meshBuilder.js.map +1 -1
- package/Meshes/meshSimplification.d.ts +1 -1
- package/Meshes/meshSimplification.js +4 -4
- package/Meshes/meshSimplification.js.map +1 -1
- package/Meshes/meshUVSpaceRenderer.d.ts +1 -1
- package/Meshes/meshUVSpaceRenderer.js +0 -1
- package/Meshes/meshUVSpaceRenderer.js.map +1 -1
- package/Meshes/meshUtils.d.ts +1 -1
- package/Meshes/meshUtils.js +2 -2
- package/Meshes/meshUtils.js.map +1 -1
- package/Meshes/polygonMesh.d.ts +2 -2
- package/Meshes/polygonMesh.js +3 -3
- package/Meshes/polygonMesh.js.map +1 -1
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -2
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
- package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
- package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.js +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
- package/Misc/areaLightsTextureTools.d.ts +1 -1
- package/Misc/areaLightsTextureTools.js +3 -3
- package/Misc/areaLightsTextureTools.js.map +1 -1
- package/Misc/assetsManager.d.ts +4 -4
- package/Misc/assetsManager.js +5 -5
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basisWorker.js +1 -1
- package/Misc/basisWorker.js.map +1 -1
- package/Misc/brdfTextureTools.js +1 -1
- package/Misc/brdfTextureTools.js.map +1 -1
- package/Misc/copyTextureToTexture.d.ts +1 -1
- package/Misc/copyTextureToTexture.js +1 -1
- package/Misc/copyTextureToTexture.js.map +1 -1
- package/Misc/decorators.serialization.js +2 -2
- package/Misc/decorators.serialization.js.map +1 -1
- package/Misc/depthReducer.d.ts +2 -2
- package/Misc/depthReducer.js +2 -2
- package/Misc/depthReducer.js.map +1 -1
- package/Misc/gradients.d.ts +1 -1
- package/Misc/gradients.js +1 -1
- package/Misc/gradients.js.map +1 -1
- package/Misc/greasedLineTools.d.ts +1 -1
- package/Misc/greasedLineTools.js +3 -3
- package/Misc/greasedLineTools.js.map +1 -1
- package/Misc/halfFloat.d.ts +17 -0
- package/Misc/halfFloat.js +131 -0
- package/Misc/halfFloat.js.map +1 -0
- package/Misc/khronosTextureContainer2.js +1 -1
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Misc/meshExploder.js +1 -1
- package/Misc/meshExploder.js.map +1 -1
- package/Misc/pivotTools.js +1 -1
- package/Misc/pivotTools.js.map +1 -1
- package/Misc/rgbdTextureTools.js +1 -1
- package/Misc/rgbdTextureTools.js.map +1 -1
- package/Misc/sceneOptimizer.js +1 -1
- package/Misc/sceneOptimizer.js.map +1 -1
- package/Misc/sceneRecorder.js +7 -7
- package/Misc/sceneRecorder.js.map +1 -1
- package/Misc/sceneSerializer.js +3 -3
- package/Misc/sceneSerializer.js.map +1 -1
- package/Misc/snapshotRenderingHelper.js +1 -1
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/textureTools.d.ts +3 -13
- package/Misc/textureTools.js +6 -64
- package/Misc/textureTools.js.map +1 -1
- package/Misc/thinMinMaxReducer.d.ts +1 -1
- package/Misc/thinMinMaxReducer.js +1 -1
- package/Misc/thinMinMaxReducer.js.map +1 -1
- package/Misc/tools.internals.js +1 -1
- package/Misc/tools.internals.js.map +1 -1
- package/Misc/tools.pure.js +1 -1
- package/Misc/tools.pure.js.map +1 -1
- package/Misc/trajectoryClassifier.d.ts +1 -1
- package/Misc/trajectoryClassifier.js +1 -1
- package/Misc/trajectoryClassifier.js.map +1 -1
- package/Misc/videoRecorder.js +1 -1
- package/Misc/videoRecorder.js.map +1 -1
- package/Misc/virtualJoystick.d.ts +1 -1
- package/Misc/virtualJoystick.js +1 -1
- package/Misc/virtualJoystick.js.map +1 -1
- package/Morph/morphTarget.js +1 -1
- package/Morph/morphTarget.js.map +1 -1
- package/Navigation/Plugins/recastJSPlugin.d.ts +1 -1
- package/Navigation/Plugins/recastJSPlugin.js +2 -2
- package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
- package/Particles/EmitterTypes/boxParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/boxParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/boxParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/coneParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/coneParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/customParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/customParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/cylinderParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/cylinderParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/cylinderParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/hemisphericParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/hemisphericParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/hemisphericParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/meshParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/meshParticleEmitter.js +2 -2
- package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/pointParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/pointParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/pointParticleEmitter.js.map +1 -1
- package/Particles/EmitterTypes/sphereParticleEmitter.d.ts +1 -1
- package/Particles/EmitterTypes/sphereParticleEmitter.js +1 -1
- package/Particles/EmitterTypes/sphereParticleEmitter.js.map +1 -1
- package/Particles/Node/nodeParticleBuildState.d.ts +4 -4
- package/Particles/Node/nodeParticleBuildState.js +2 -2
- package/Particles/Node/nodeParticleBuildState.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.d.ts +2 -2
- package/Particles/Node/nodeParticleSystemSet.helper.js +31 -31
- package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.js +8 -8
- package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
- package/Particles/attractor.d.ts +1 -1
- package/Particles/attractor.js +1 -1
- package/Particles/attractor.js.map +1 -1
- package/Particles/flowMap.d.ts +7 -1
- package/Particles/flowMap.js +7 -1
- package/Particles/flowMap.js.map +1 -1
- package/Particles/particle.d.ts +2 -2
- package/Particles/particle.js +2 -2
- package/Particles/particle.js.map +1 -1
- package/Particles/particleHelper.js +5 -5
- package/Particles/particleHelper.js.map +1 -1
- package/Particles/particleSystem.functions.d.ts +1 -1
- package/Particles/particleSystem.functions.js +1 -1
- package/Particles/particleSystem.functions.js.map +1 -1
- package/Particles/particleSystemSet.d.ts +1 -1
- package/Particles/particleSystemSet.js +5 -5
- package/Particles/particleSystemSet.js.map +1 -1
- package/Particles/pointsCloudSystem.d.ts +1 -1
- package/Particles/pointsCloudSystem.js +6 -6
- package/Particles/pointsCloudSystem.js.map +1 -1
- package/Particles/solidParticle.d.ts +2 -2
- package/Particles/solidParticle.js +3 -3
- package/Particles/solidParticle.js.map +1 -1
- package/Particles/solidParticleSystem.d.ts +4 -4
- package/Particles/solidParticleSystem.js +7 -7
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/subEmitter.js +1 -1
- package/Particles/subEmitter.js.map +1 -1
- package/Particles/thinParticleSystem.function.js +2 -2
- package/Particles/thinParticleSystem.function.js.map +1 -1
- package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
- package/Physics/Plugins/cannonJSPlugin.js +1 -1
- package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
- package/Physics/castingResult.d.ts +1 -1
- package/Physics/castingResult.js +1 -1
- package/Physics/castingResult.js.map +1 -1
- package/Physics/physicsHelper.d.ts +1 -1
- package/Physics/physicsHelper.js +4 -4
- package/Physics/physicsHelper.js.map +1 -1
- package/Physics/physicsImpostor.d.ts +1 -1
- package/Physics/physicsImpostor.js +1 -1
- package/Physics/physicsImpostor.js.map +1 -1
- package/Physics/physicsRaycastResult.d.ts +1 -1
- package/Physics/physicsRaycastResult.js +1 -1
- package/Physics/physicsRaycastResult.js.map +1 -1
- package/Physics/v1/Plugins/ammoJSPlugin.d.ts +2 -2
- package/Physics/v1/Plugins/ammoJSPlugin.js +5 -5
- package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
- package/Physics/v1/Plugins/oimoJSPlugin.d.ts +2 -2
- package/Physics/v1/Plugins/oimoJSPlugin.js +2 -2
- package/Physics/v1/Plugins/oimoJSPlugin.js.map +1 -1
- package/Physics/v1/physicsEngine.d.ts +1 -1
- package/Physics/v1/physicsEngine.js +1 -1
- package/Physics/v1/physicsEngine.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.d.ts +14 -2
- package/Physics/v2/Plugins/havokPlugin.js +45 -7
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/Physics/v2/characterController.d.ts +1 -1
- package/Physics/v2/characterController.js +2 -2
- package/Physics/v2/characterController.js.map +1 -1
- package/Physics/v2/physicsAggregate.d.ts +3 -3
- package/Physics/v2/physicsAggregate.js +10 -6
- package/Physics/v2/physicsAggregate.js.map +1 -1
- package/Physics/v2/physicsBody.d.ts +1 -1
- package/Physics/v2/physicsBody.js +1 -1
- package/Physics/v2/physicsBody.js.map +1 -1
- package/Physics/v2/physicsEngine.d.ts +1 -1
- package/Physics/v2/physicsEngine.js +1 -1
- package/Physics/v2/physicsEngine.js.map +1 -1
- package/Physics/v2/physicsShape.d.ts +1 -1
- package/Physics/v2/physicsShape.js +1 -1
- package/Physics/v2/physicsShape.js.map +1 -1
- package/Physics/v2/ragdoll.d.ts +2 -2
- package/Physics/v2/ragdoll.js +2 -2
- package/Physics/v2/ragdoll.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.d.ts +1 -0
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +8 -6
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +3 -2
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/bloomEffect.d.ts +1 -1
- package/PostProcesses/bloomEffect.js +4 -4
- package/PostProcesses/bloomEffect.js.map +1 -1
- package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
- package/PostProcesses/depthOfFieldEffect.js +3 -3
- package/PostProcesses/depthOfFieldEffect.js.map +1 -1
- package/PostProcesses/depthOfFieldMergePostProcess.d.ts +1 -1
- package/PostProcesses/depthOfFieldMergePostProcess.js +1 -1
- package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
- package/PostProcesses/highlightsPostProcess.d.ts +1 -1
- package/PostProcesses/highlightsPostProcess.js +1 -1
- package/PostProcesses/highlightsPostProcess.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +1 -1
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/postProcessManager.d.ts +3 -0
- package/PostProcesses/postProcessManager.js +4 -1
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/PostProcesses/subSurfaceScatteringPostProcess.pure.d.ts +1 -0
- package/PostProcesses/subSurfaceScatteringPostProcess.pure.js +10 -0
- package/PostProcesses/subSurfaceScatteringPostProcess.pure.js.map +1 -1
- package/PostProcesses/thinAnaglyphPostProcess.d.ts +1 -1
- package/PostProcesses/thinAnaglyphPostProcess.js +1 -1
- package/PostProcesses/thinAnaglyphPostProcess.js.map +1 -1
- package/PostProcesses/thinBlackAndWhitePostProcess.d.ts +1 -1
- package/PostProcesses/thinBlackAndWhitePostProcess.js +1 -1
- package/PostProcesses/thinBlackAndWhitePostProcess.js.map +1 -1
- package/PostProcesses/thinBloomEffect.js +1 -1
- package/PostProcesses/thinBloomEffect.js.map +1 -1
- package/PostProcesses/thinBloomMergePostProcess.d.ts +1 -1
- package/PostProcesses/thinBloomMergePostProcess.js +1 -1
- package/PostProcesses/thinBloomMergePostProcess.js.map +1 -1
- package/PostProcesses/thinBlurPostProcess.d.ts +1 -1
- package/PostProcesses/thinBlurPostProcess.js +1 -1
- package/PostProcesses/thinBlurPostProcess.js.map +1 -1
- package/PostProcesses/thinChromaticAberrationPostProcess.d.ts +2 -2
- package/PostProcesses/thinChromaticAberrationPostProcess.js +2 -2
- package/PostProcesses/thinChromaticAberrationPostProcess.js.map +1 -1
- package/PostProcesses/thinCircleOfConfusionPostProcess.d.ts +1 -1
- package/PostProcesses/thinCircleOfConfusionPostProcess.js +1 -1
- package/PostProcesses/thinCircleOfConfusionPostProcess.js.map +1 -1
- package/PostProcesses/thinColorCorrectionPostProcess.d.ts +1 -1
- package/PostProcesses/thinColorCorrectionPostProcess.js +2 -2
- package/PostProcesses/thinColorCorrectionPostProcess.js.map +1 -1
- package/PostProcesses/thinConvolutionPostProcess.d.ts +1 -1
- package/PostProcesses/thinConvolutionPostProcess.js +1 -1
- package/PostProcesses/thinConvolutionPostProcess.js.map +1 -1
- package/PostProcesses/thinCustomPostProcess.d.ts +1 -1
- package/PostProcesses/thinCustomPostProcess.js +1 -1
- package/PostProcesses/thinCustomPostProcess.js.map +1 -1
- package/PostProcesses/thinDepthOfFieldEffect.d.ts +3 -0
- package/PostProcesses/thinDepthOfFieldEffect.js +4 -1
- package/PostProcesses/thinDepthOfFieldEffect.js.map +1 -1
- package/PostProcesses/thinDepthOfFieldMergePostProcess.d.ts +1 -1
- package/PostProcesses/thinDepthOfFieldMergePostProcess.js +1 -1
- package/PostProcesses/thinDepthOfFieldMergePostProcess.js.map +1 -1
- package/PostProcesses/thinExtractHighlightsPostProcess.d.ts +1 -1
- package/PostProcesses/thinExtractHighlightsPostProcess.js +1 -1
- package/PostProcesses/thinExtractHighlightsPostProcess.js.map +1 -1
- package/PostProcesses/thinFXAAPostProcess.d.ts +2 -2
- package/PostProcesses/thinFXAAPostProcess.js +2 -2
- package/PostProcesses/thinFXAAPostProcess.js.map +1 -1
- package/PostProcesses/thinFilterPostProcess.d.ts +2 -2
- package/PostProcesses/thinFilterPostProcess.js +2 -2
- package/PostProcesses/thinFilterPostProcess.js.map +1 -1
- package/PostProcesses/thinGrainPostProcess.d.ts +1 -1
- package/PostProcesses/thinGrainPostProcess.js +1 -1
- package/PostProcesses/thinGrainPostProcess.js.map +1 -1
- package/PostProcesses/thinImageProcessingPostProcess.d.ts +2 -2
- package/PostProcesses/thinImageProcessingPostProcess.js +2 -2
- package/PostProcesses/thinImageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/thinMotionBlurPostProcess.d.ts +1 -1
- package/PostProcesses/thinMotionBlurPostProcess.js +2 -2
- package/PostProcesses/thinMotionBlurPostProcess.js.map +1 -1
- package/PostProcesses/thinPassPostProcess.d.ts +1 -1
- package/PostProcesses/thinPassPostProcess.js +1 -1
- package/PostProcesses/thinPassPostProcess.js.map +1 -1
- package/PostProcesses/thinSSAO2BlurPostProcess.d.ts +1 -1
- package/PostProcesses/thinSSAO2BlurPostProcess.js +1 -1
- package/PostProcesses/thinSSAO2BlurPostProcess.js.map +1 -1
- package/PostProcesses/thinSSAO2CombinePostProcess.d.ts +1 -1
- package/PostProcesses/thinSSAO2CombinePostProcess.js +2 -2
- package/PostProcesses/thinSSAO2CombinePostProcess.js.map +1 -1
- package/PostProcesses/thinSSAO2PostProcess.d.ts +7 -2
- package/PostProcesses/thinSSAO2PostProcess.js +36 -4
- package/PostProcesses/thinSSAO2PostProcess.js.map +1 -1
- package/PostProcesses/thinSSRBlurCombinerPostProcess.d.ts +1 -1
- package/PostProcesses/thinSSRBlurCombinerPostProcess.js +2 -2
- package/PostProcesses/thinSSRBlurCombinerPostProcess.js.map +1 -1
- package/PostProcesses/thinSSRBlurPostProcess.d.ts +2 -2
- package/PostProcesses/thinSSRBlurPostProcess.js +2 -2
- package/PostProcesses/thinSSRBlurPostProcess.js.map +1 -1
- package/PostProcesses/thinSSRPostProcess.d.ts +1 -1
- package/PostProcesses/thinSSRPostProcess.js +2 -2
- package/PostProcesses/thinSSRPostProcess.js.map +1 -1
- package/PostProcesses/thinScreenSpaceCurvaturePostProcess.d.ts +1 -1
- package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js +1 -1
- package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js.map +1 -1
- package/PostProcesses/thinSharpenPostProcess.d.ts +1 -1
- package/PostProcesses/thinSharpenPostProcess.js +1 -1
- package/PostProcesses/thinSharpenPostProcess.js.map +1 -1
- package/PostProcesses/thinTAAPostProcess.d.ts +3 -3
- package/PostProcesses/thinTAAPostProcess.js +4 -4
- package/PostProcesses/thinTAAPostProcess.js.map +1 -1
- package/PostProcesses/thinTonemapPostProcess.d.ts +1 -1
- package/PostProcesses/thinTonemapPostProcess.js +1 -1
- package/PostProcesses/thinTonemapPostProcess.js.map +1 -1
- package/PostProcesses/vrDistortionCorrectionPostProcess.d.ts +1 -1
- package/PostProcesses/vrDistortionCorrectionPostProcess.js +3 -3
- package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsAccumulationPass.d.ts +2 -2
- package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +4 -4
- package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.d.ts +2 -2
- package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js +4 -4
- package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.d.ts +3 -3
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +4 -4
- package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
- package/Rendering/depthPeelingRenderer.d.ts +1 -1
- package/Rendering/depthPeelingRenderer.js +2 -2
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +2 -2
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +3 -3
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +3 -3
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +2 -2
- package/Rendering/fluidRenderer/fluidRenderingTextures.js +3 -3
- package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
- package/Rendering/iblCdfGenerator.d.ts +3 -3
- package/Rendering/iblCdfGenerator.js +5 -5
- package/Rendering/iblCdfGenerator.js.map +1 -1
- package/Rendering/renderingGroup.js +1 -1
- package/Rendering/renderingGroup.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.d.ts +2 -2
- package/Rendering/subSurfaceConfiguration.js +2 -2
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Rendering/utilityLayerRenderer.d.ts +2 -2
- package/Rendering/utilityLayerRenderer.js +4 -4
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/ssao2.fragment.js +10 -2
- package/Shaders/ssao2.fragment.js.map +1 -1
- package/ShadersWGSL/ssao2.fragment.js +10 -2
- package/ShadersWGSL/ssao2.fragment.js.map +1 -1
- package/SmartAssets/smartAssetSerializer.js +1 -1
- package/SmartAssets/smartAssetSerializer.js.map +1 -1
- package/Sprites/sprite.d.ts +2 -2
- package/Sprites/sprite.js +2 -2
- package/Sprites/sprite.js.map +1 -1
- package/Sprites/spriteManager.d.ts +2 -2
- package/Sprites/spriteManager.js +4 -5
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spritePackedManager.js +1 -1
- package/Sprites/spritePackedManager.js.map +1 -1
- package/Sprites/spriteRenderer.js +2 -2
- package/Sprites/spriteRenderer.js.map +1 -1
- package/XR/features/WebXRHitTestLegacy.d.ts +1 -1
- package/XR/features/WebXRHitTestLegacy.js +2 -2
- package/XR/features/WebXRHitTestLegacy.js.map +1 -1
- package/XR/motionController/webXRAbstractMotionController.js +2 -2
- package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
- package/XR/motionController/webXRGenericMotionController.js +2 -2
- package/XR/motionController/webXRGenericMotionController.js.map +1 -1
- package/XR/motionController/webXRProfiledMotionController.js +4 -4
- package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
- package/XR/webXRCamera.d.ts +3 -3
- package/XR/webXRCamera.js +4 -4
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRDefaultExperience.d.ts +4 -4
- package/XR/webXRDefaultExperience.js +4 -4
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXREnterExitUI.js +1 -1
- package/XR/webXREnterExitUI.js.map +1 -1
- package/XR/webXRExperienceHelper.js +2 -2
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRFeaturesManager.d.ts +47 -0
- package/XR/webXRFeaturesManager.js +1 -1
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/XR/webXRInput.js +1 -1
- package/XR/webXRInput.js.map +1 -1
- package/XR/webXRInputSource.js +4 -4
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRManagedOutputCanvas.js +1 -1
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
- package/XR/webXRRenderTargetTextureProvider.js +1 -1
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/assetContainer.d.ts +4 -4
- package/assetContainer.js +6 -6
- package/assetContainer.js.map +1 -1
- package/node.d.ts +1 -1
- package/node.js +6 -2
- package/node.js.map +1 -1
- package/package.json +44 -174
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type UniformBuffer } from "../../Materials/uniformBuffer.js";
|
|
2
|
-
import { Vector2 } from "../../Maths/math.vector.js";
|
|
2
|
+
import { Vector2 } from "../../Maths/math.vector.pure.js";
|
|
3
3
|
import { type BaseTexture } from "../../Materials/Textures/baseTexture.js";
|
|
4
4
|
import { type Nullable } from "../../types.js";
|
|
5
5
|
import { type IAnimatable } from "../../Animations/animatable.interface.js";
|
|
6
6
|
import { type EffectFallbacks } from "../effectFallbacks.js";
|
|
7
|
-
import { MaterialPluginBase } from "../materialPluginBase.js";
|
|
7
|
+
import { MaterialPluginBase } from "../materialPluginBase.pure.js";
|
|
8
8
|
import { MaterialDefines } from "../materialDefines.js";
|
|
9
9
|
import { type Scene } from "../../scene.js";
|
|
10
10
|
import { type AbstractMesh } from "../../Meshes/abstractMesh.js";
|
|
@@ -72,15 +72,53 @@ export declare class PBRAnisotropicConfiguration extends MaterialPluginBase {
|
|
|
72
72
|
*/
|
|
73
73
|
isCompatible(): boolean;
|
|
74
74
|
constructor(material: PBRBaseMaterial, addToPluginList?: boolean);
|
|
75
|
+
/**
|
|
76
|
+
* Checks whether the anisotropy textures are ready for the sub mesh.
|
|
77
|
+
* @param defines defines the material defines to inspect
|
|
78
|
+
* @param scene defines the scene to use for readiness checks
|
|
79
|
+
* @returns true if anisotropy is ready
|
|
80
|
+
*/
|
|
75
81
|
isReadyForSubMesh(defines: MaterialAnisotropicDefines, scene: Scene): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Updates shader defines for anisotropy before attributes are processed.
|
|
84
|
+
* @param defines defines the material defines to update
|
|
85
|
+
* @param scene defines the scene to use for texture checks
|
|
86
|
+
* @param mesh defines the mesh to inspect for tangent data
|
|
87
|
+
*/
|
|
76
88
|
prepareDefinesBeforeAttributes(defines: MaterialAnisotropicDefines, scene: Scene, mesh: AbstractMesh): void;
|
|
89
|
+
/**
|
|
90
|
+
* Binds anisotropy data for a sub mesh.
|
|
91
|
+
* @param uniformBuffer defines the uniform buffer to update
|
|
92
|
+
* @param scene defines the scene to use for texture binding
|
|
93
|
+
*/
|
|
77
94
|
bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene): void;
|
|
95
|
+
/**
|
|
96
|
+
* Checks whether anisotropy uses a texture.
|
|
97
|
+
* @param texture defines the texture to check
|
|
98
|
+
* @returns true if the texture is used by anisotropy
|
|
99
|
+
*/
|
|
78
100
|
hasTexture(texture: BaseTexture): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Adds the active anisotropy textures.
|
|
103
|
+
* @param activeTextures defines the list of active textures to update
|
|
104
|
+
*/
|
|
79
105
|
getActiveTextures(activeTextures: BaseTexture[]): void;
|
|
106
|
+
/**
|
|
107
|
+
* Adds the animatable anisotropy textures.
|
|
108
|
+
* @param animatables defines the list of animatables to update
|
|
109
|
+
*/
|
|
80
110
|
getAnimatables(animatables: IAnimatable[]): void;
|
|
111
|
+
/**
|
|
112
|
+
* Disposes the anisotropy textures.
|
|
113
|
+
* @param forceDisposeTextures defines whether to dispose the textures
|
|
114
|
+
*/
|
|
81
115
|
dispose(forceDisposeTextures?: boolean): void;
|
|
82
116
|
getClassName(): string;
|
|
83
117
|
addFallbacks(defines: MaterialAnisotropicDefines, fallbacks: EffectFallbacks, currentRank: number): number;
|
|
118
|
+
/**
|
|
119
|
+
* Adds the anisotropy sampler names.
|
|
120
|
+
* @param samplers defines the list of sampler names to update
|
|
121
|
+
*/
|
|
84
122
|
getSamplers(samplers: string[]): void;
|
|
85
123
|
getUniforms(): {
|
|
86
124
|
ubo?: Array<{
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { __decorate } from "../../tslib.es6.js";
|
|
2
2
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
3
3
|
import { serialize, expandToProperty, serializeAsVector2, serializeAsTexture } from "../../Misc/decorators.js";
|
|
4
|
-
import { VertexBuffer } from "../../Buffers/buffer.js";
|
|
5
|
-
import { Vector2 } from "../../Maths/math.vector.js";
|
|
4
|
+
import { VertexBuffer } from "../../Buffers/buffer.pure.js";
|
|
5
|
+
import { Vector2 } from "../../Maths/math.vector.pure.js";
|
|
6
6
|
import { MaterialFlags } from "../../Materials/materialFlags.js";
|
|
7
|
-
import { MaterialPluginBase } from "../materialPluginBase.js";
|
|
7
|
+
import { MaterialPluginBase } from "../materialPluginBase.pure.js";
|
|
8
8
|
|
|
9
9
|
import { MaterialDefines } from "../materialDefines.js";
|
|
10
10
|
import { BindTextureMatrix, PrepareDefinesForMergedUV } from "../materialHelper.functions.js";
|
|
@@ -87,6 +87,12 @@ export class PBRAnisotropicConfiguration extends MaterialPluginBase {
|
|
|
87
87
|
this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];
|
|
88
88
|
this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[16];
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Checks whether the anisotropy textures are ready for the sub mesh.
|
|
92
|
+
* @param defines defines the material defines to inspect
|
|
93
|
+
* @param scene defines the scene to use for readiness checks
|
|
94
|
+
* @returns true if anisotropy is ready
|
|
95
|
+
*/
|
|
90
96
|
isReadyForSubMesh(defines, scene) {
|
|
91
97
|
if (!this._isEnabled) {
|
|
92
98
|
return true;
|
|
@@ -102,6 +108,12 @@ export class PBRAnisotropicConfiguration extends MaterialPluginBase {
|
|
|
102
108
|
}
|
|
103
109
|
return true;
|
|
104
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Updates shader defines for anisotropy before attributes are processed.
|
|
113
|
+
* @param defines defines the material defines to update
|
|
114
|
+
* @param scene defines the scene to use for texture checks
|
|
115
|
+
* @param mesh defines the mesh to inspect for tangent data
|
|
116
|
+
*/
|
|
105
117
|
prepareDefinesBeforeAttributes(defines, scene, mesh) {
|
|
106
118
|
if (this._isEnabled) {
|
|
107
119
|
defines.ANISOTROPIC = this._isEnabled;
|
|
@@ -130,6 +142,11 @@ export class PBRAnisotropicConfiguration extends MaterialPluginBase {
|
|
|
130
142
|
defines.ANISOTROPIC_LEGACY = false;
|
|
131
143
|
}
|
|
132
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Binds anisotropy data for a sub mesh.
|
|
147
|
+
* @param uniformBuffer defines the uniform buffer to update
|
|
148
|
+
* @param scene defines the scene to use for texture binding
|
|
149
|
+
*/
|
|
133
150
|
bindForSubMesh(uniformBuffer, scene) {
|
|
134
151
|
if (!this._isEnabled) {
|
|
135
152
|
return;
|
|
@@ -150,22 +167,39 @@ export class PBRAnisotropicConfiguration extends MaterialPluginBase {
|
|
|
150
167
|
}
|
|
151
168
|
}
|
|
152
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Checks whether anisotropy uses a texture.
|
|
172
|
+
* @param texture defines the texture to check
|
|
173
|
+
* @returns true if the texture is used by anisotropy
|
|
174
|
+
*/
|
|
153
175
|
hasTexture(texture) {
|
|
154
176
|
if (this._texture === texture) {
|
|
155
177
|
return true;
|
|
156
178
|
}
|
|
157
179
|
return false;
|
|
158
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Adds the active anisotropy textures.
|
|
183
|
+
* @param activeTextures defines the list of active textures to update
|
|
184
|
+
*/
|
|
159
185
|
getActiveTextures(activeTextures) {
|
|
160
186
|
if (this._texture) {
|
|
161
187
|
activeTextures.push(this._texture);
|
|
162
188
|
}
|
|
163
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Adds the animatable anisotropy textures.
|
|
192
|
+
* @param animatables defines the list of animatables to update
|
|
193
|
+
*/
|
|
164
194
|
getAnimatables(animatables) {
|
|
165
195
|
if (this._texture && this._texture.animations && this._texture.animations.length > 0) {
|
|
166
196
|
animatables.push(this._texture);
|
|
167
197
|
}
|
|
168
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Disposes the anisotropy textures.
|
|
201
|
+
* @param forceDisposeTextures defines whether to dispose the textures
|
|
202
|
+
*/
|
|
169
203
|
dispose(forceDisposeTextures) {
|
|
170
204
|
if (forceDisposeTextures) {
|
|
171
205
|
if (this._texture) {
|
|
@@ -182,6 +216,10 @@ export class PBRAnisotropicConfiguration extends MaterialPluginBase {
|
|
|
182
216
|
}
|
|
183
217
|
return currentRank;
|
|
184
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Adds the anisotropy sampler names.
|
|
221
|
+
* @param samplers defines the list of sampler names to update
|
|
222
|
+
*/
|
|
185
223
|
getSamplers(samplers) {
|
|
186
224
|
samplers.push("anisotropySampler");
|
|
187
225
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbrAnisotropicConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrAnisotropicConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { serialize, expandToProperty, serializeAsVector2, serializeAsTexture } from \"../../Misc/decorators\";\r\nimport { type UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { VertexBuffer } from \"../../Buffers/buffer\";\r\nimport { Vector2 } from \"../../Maths/math.vector\";\r\nimport { MaterialFlags } from \"../../Materials/materialFlags\";\r\nimport { type BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { type Nullable } from \"../../types\";\r\nimport { type IAnimatable } from \"../../Animations/animatable.interface\";\r\nimport { type EffectFallbacks } from \"../effectFallbacks\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\n\r\nimport { type Scene } from \"../../scene\";\r\nimport { type AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { type PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"../materialHelper.functions\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialAnisotropicDefines extends MaterialDefines {\r\n public ANISOTROPIC = false;\r\n public ANISOTROPIC_TEXTURE = false;\r\n public ANISOTROPIC_TEXTUREDIRECTUV = 0;\r\n public ANISOTROPIC_LEGACY = false;\r\n public MAINUV1 = false;\r\n}\r\n\r\n/**\r\n * Plugin that implements the anisotropic component of the PBR material\r\n */\r\nexport class PBRAnisotropicConfiguration extends MaterialPluginBase {\r\n private _isEnabled = false;\r\n /**\r\n * Defines if the anisotropy is enabled in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n /**\r\n * Defines the anisotropy strength (between 0 and 1) it defaults to 1.\r\n */\r\n @serialize()\r\n public intensity: number = 1;\r\n\r\n /**\r\n * Defines if the effect is along the tangents, bitangents or in between.\r\n * By default, the effect is \"stretching\" the highlights along the tangents.\r\n */\r\n @serializeAsVector2()\r\n public direction = new Vector2(1, 0);\r\n\r\n /**\r\n * Sets the anisotropy direction as an angle.\r\n */\r\n public set angle(value: number) {\r\n this.direction.x = Math.cos(value);\r\n this.direction.y = Math.sin(value);\r\n }\r\n\r\n /**\r\n * Gets the anisotropy angle value in radians.\r\n * @returns the anisotropy angle value in radians.\r\n */\r\n public get angle(): number {\r\n return Math.atan2(this.direction.y, this.direction.x);\r\n }\r\n\r\n private _texture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the anisotropy values in a texture.\r\n * rg is direction (like normal from -1 to 1)\r\n * b is a intensity\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public texture: Nullable<BaseTexture> = null;\r\n\r\n private _legacy = false;\r\n /**\r\n * Defines if the anisotropy is in legacy mode for backwards compatibility before 6.4.0.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public legacy: boolean = false;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsMiscDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsMiscDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsMiscDirty();\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\r\n * @returns true if the plugin is compatible with the shader language\r\n */\r\n public override isCompatible(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRAnisotropic\", 110, new MaterialAnisotropicDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[Constants.MATERIAL_TextureDirtyFlag];\r\n this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[Constants.MATERIAL_MiscDirtyFlag];\r\n }\r\n\r\n public override isReadyForSubMesh(defines: MaterialAnisotropicDefines, scene: Scene): boolean {\r\n if (!this._isEnabled) {\r\n return true;\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n if (!this._texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public override prepareDefinesBeforeAttributes(defines: MaterialAnisotropicDefines, scene: Scene, mesh: AbstractMesh): void {\r\n if (this._isEnabled) {\r\n defines.ANISOTROPIC = this._isEnabled;\r\n if (this._isEnabled && !mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {\r\n defines._needUVs = true;\r\n defines.MAINUV1 = true;\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._texture, defines, \"ANISOTROPIC_TEXTURE\");\r\n } else {\r\n defines.ANISOTROPIC_TEXTURE = false;\r\n }\r\n }\r\n }\r\n\r\n if (defines._areMiscDirty) {\r\n defines.ANISOTROPIC_LEGACY = this._legacy;\r\n }\r\n } else {\r\n defines.ANISOTROPIC = false;\r\n defines.ANISOTROPIC_TEXTURE = false;\r\n defines.ANISOTROPIC_TEXTUREDIRECTUV = 0;\r\n defines.ANISOTROPIC_LEGACY = false;\r\n }\r\n }\r\n\r\n public override bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene): 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.AnisotropicTextureEnabled) {\r\n uniformBuffer.updateFloat2(\"vAnisotropyInfos\", this._texture.coordinatesIndex, this._texture.level);\r\n BindTextureMatrix(this._texture, uniformBuffer, \"anisotropy\");\r\n }\r\n\r\n // Anisotropy\r\n uniformBuffer.updateFloat3(\"vAnisotropy\", this.direction.x, this.direction.y, this.intensity);\r\n }\r\n\r\n // Textures\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n uniformBuffer.setTexture(\"anisotropySampler\", this._texture);\r\n }\r\n }\r\n }\r\n\r\n public override 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 override getActiveTextures(activeTextures: BaseTexture[]): void {\r\n if (this._texture) {\r\n activeTextures.push(this._texture);\r\n }\r\n }\r\n\r\n public override 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 override dispose(forceDisposeTextures?: boolean): void {\r\n if (forceDisposeTextures) {\r\n if (this._texture) {\r\n this._texture.dispose();\r\n }\r\n }\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRAnisotropicConfiguration\";\r\n }\r\n\r\n public override addFallbacks(defines: MaterialAnisotropicDefines, fallbacks: EffectFallbacks, currentRank: number): number {\r\n if (defines.ANISOTROPIC) {\r\n fallbacks.addFallback(currentRank++, \"ANISOTROPIC\");\r\n }\r\n return currentRank;\r\n }\r\n\r\n public override getSamplers(samplers: string[]): void {\r\n samplers.push(\"anisotropySampler\");\r\n }\r\n\r\n public override getUniforms(): { ubo?: Array<{ name: string; size: number; type: string }>; vertex?: string; fragment?: string } {\r\n return {\r\n ubo: [\r\n { name: \"vAnisotropy\", size: 3, type: \"vec3\" },\r\n { name: \"vAnisotropyInfos\", size: 2, type: \"vec2\" },\r\n { name: \"anisotropyMatrix\", size: 16, type: \"mat4\" },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Parses a anisotropy Configuration 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 override parse(source: any, scene: Scene, rootUrl: string): void {\r\n super.parse(source, scene, rootUrl);\r\n\r\n // Backward compatibility\r\n if (source.legacy === undefined) {\r\n this.legacy = true;\r\n }\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"pbrAnisotropicConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrAnisotropicConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { serialize, expandToProperty, serializeAsVector2, serializeAsTexture } from \"../../Misc/decorators\";\r\nimport { type UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { VertexBuffer } from \"../../Buffers/buffer.pure\";\r\nimport { Vector2 } from \"../../Maths/math.vector.pure\";\r\nimport { MaterialFlags } from \"../../Materials/materialFlags\";\r\nimport { type BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { type Nullable } from \"../../types\";\r\nimport { type IAnimatable } from \"../../Animations/animatable.interface\";\r\nimport { type EffectFallbacks } from \"../effectFallbacks\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase.pure\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\n\r\nimport { type Scene } from \"../../scene\";\r\nimport { type AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { type PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"../materialHelper.functions\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialAnisotropicDefines extends MaterialDefines {\r\n public ANISOTROPIC = false;\r\n public ANISOTROPIC_TEXTURE = false;\r\n public ANISOTROPIC_TEXTUREDIRECTUV = 0;\r\n public ANISOTROPIC_LEGACY = false;\r\n public MAINUV1 = false;\r\n}\r\n\r\n/**\r\n * Plugin that implements the anisotropic component of the PBR material\r\n */\r\nexport class PBRAnisotropicConfiguration extends MaterialPluginBase {\r\n private _isEnabled = false;\r\n /**\r\n * Defines if the anisotropy is enabled in the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public isEnabled = false;\r\n\r\n /**\r\n * Defines the anisotropy strength (between 0 and 1) it defaults to 1.\r\n */\r\n @serialize()\r\n public intensity: number = 1;\r\n\r\n /**\r\n * Defines if the effect is along the tangents, bitangents or in between.\r\n * By default, the effect is \"stretching\" the highlights along the tangents.\r\n */\r\n @serializeAsVector2()\r\n public direction = new Vector2(1, 0);\r\n\r\n /**\r\n * Sets the anisotropy direction as an angle.\r\n */\r\n public set angle(value: number) {\r\n this.direction.x = Math.cos(value);\r\n this.direction.y = Math.sin(value);\r\n }\r\n\r\n /**\r\n * Gets the anisotropy angle value in radians.\r\n * @returns the anisotropy angle value in radians.\r\n */\r\n public get angle(): number {\r\n return Math.atan2(this.direction.y, this.direction.x);\r\n }\r\n\r\n private _texture: Nullable<BaseTexture> = null;\r\n /**\r\n * Stores the anisotropy values in a texture.\r\n * rg is direction (like normal from -1 to 1)\r\n * b is a intensity\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public texture: Nullable<BaseTexture> = null;\r\n\r\n private _legacy = false;\r\n /**\r\n * Defines if the anisotropy is in legacy mode for backwards compatibility before 6.4.0.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public legacy: boolean = false;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsTexturesDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsTexturesDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsMiscDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsMiscDirty(): void {\r\n this._enable(this._isEnabled);\r\n this._internalMarkAllSubMeshesAsMiscDirty();\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\r\n * @returns true if the plugin is compatible with the shader language\r\n */\r\n public override isCompatible(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRAnisotropic\", 110, new MaterialAnisotropicDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[Constants.MATERIAL_TextureDirtyFlag];\r\n this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[Constants.MATERIAL_MiscDirtyFlag];\r\n }\r\n\r\n /**\r\n * Checks whether the anisotropy textures are ready for the sub mesh.\r\n * @param defines defines the material defines to inspect\r\n * @param scene defines the scene to use for readiness checks\r\n * @returns true if anisotropy is ready\r\n */\r\n public override isReadyForSubMesh(defines: MaterialAnisotropicDefines, scene: Scene): boolean {\r\n if (!this._isEnabled) {\r\n return true;\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n if (!this._texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Updates shader defines for anisotropy before attributes are processed.\r\n * @param defines defines the material defines to update\r\n * @param scene defines the scene to use for texture checks\r\n * @param mesh defines the mesh to inspect for tangent data\r\n */\r\n public override prepareDefinesBeforeAttributes(defines: MaterialAnisotropicDefines, scene: Scene, mesh: AbstractMesh): void {\r\n if (this._isEnabled) {\r\n defines.ANISOTROPIC = this._isEnabled;\r\n if (this._isEnabled && !mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {\r\n defines._needUVs = true;\r\n defines.MAINUV1 = true;\r\n }\r\n\r\n if (defines._areTexturesDirty) {\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n PrepareDefinesForMergedUV(this._texture, defines, \"ANISOTROPIC_TEXTURE\");\r\n } else {\r\n defines.ANISOTROPIC_TEXTURE = false;\r\n }\r\n }\r\n }\r\n\r\n if (defines._areMiscDirty) {\r\n defines.ANISOTROPIC_LEGACY = this._legacy;\r\n }\r\n } else {\r\n defines.ANISOTROPIC = false;\r\n defines.ANISOTROPIC_TEXTURE = false;\r\n defines.ANISOTROPIC_TEXTUREDIRECTUV = 0;\r\n defines.ANISOTROPIC_LEGACY = false;\r\n }\r\n }\r\n\r\n /**\r\n * Binds anisotropy data for a sub mesh.\r\n * @param uniformBuffer defines the uniform buffer to update\r\n * @param scene defines the scene to use for texture binding\r\n */\r\n public override bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene): 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.AnisotropicTextureEnabled) {\r\n uniformBuffer.updateFloat2(\"vAnisotropyInfos\", this._texture.coordinatesIndex, this._texture.level);\r\n BindTextureMatrix(this._texture, uniformBuffer, \"anisotropy\");\r\n }\r\n\r\n // Anisotropy\r\n uniformBuffer.updateFloat3(\"vAnisotropy\", this.direction.x, this.direction.y, this.intensity);\r\n }\r\n\r\n // Textures\r\n if (scene.texturesEnabled) {\r\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\r\n uniformBuffer.setTexture(\"anisotropySampler\", this._texture);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Checks whether anisotropy uses a texture.\r\n * @param texture defines the texture to check\r\n * @returns true if the texture is used by anisotropy\r\n */\r\n public override 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 * Adds the active anisotropy textures.\r\n * @param activeTextures defines the list of active textures to update\r\n */\r\n public override 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 * Adds the animatable anisotropy textures.\r\n * @param animatables defines the list of animatables to update\r\n */\r\n public override 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 anisotropy textures.\r\n * @param forceDisposeTextures defines whether to dispose the textures\r\n */\r\n public override dispose(forceDisposeTextures?: boolean): void {\r\n if (forceDisposeTextures) {\r\n if (this._texture) {\r\n this._texture.dispose();\r\n }\r\n }\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRAnisotropicConfiguration\";\r\n }\r\n\r\n public override addFallbacks(defines: MaterialAnisotropicDefines, fallbacks: EffectFallbacks, currentRank: number): number {\r\n if (defines.ANISOTROPIC) {\r\n fallbacks.addFallback(currentRank++, \"ANISOTROPIC\");\r\n }\r\n return currentRank;\r\n }\r\n\r\n /**\r\n * Adds the anisotropy sampler names.\r\n * @param samplers defines the list of sampler names to update\r\n */\r\n public override getSamplers(samplers: string[]): void {\r\n samplers.push(\"anisotropySampler\");\r\n }\r\n\r\n public override getUniforms(): { ubo?: Array<{ name: string; size: number; type: string }>; vertex?: string; fragment?: string } {\r\n return {\r\n ubo: [\r\n { name: \"vAnisotropy\", size: 3, type: \"vec3\" },\r\n { name: \"vAnisotropyInfos\", size: 2, type: \"vec2\" },\r\n { name: \"anisotropyMatrix\", size: 16, type: \"mat4\" },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Parses a anisotropy Configuration 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 override parse(source: any, scene: Scene, rootUrl: string): void {\r\n super.parse(source, scene, rootUrl);\r\n\r\n // Backward compatibility\r\n if (source.legacy === undefined) {\r\n this.legacy = true;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MaterialDefines } from "../materialDefines.js";
|
|
2
|
-
import { MaterialPluginBase } from "../materialPluginBase.js";
|
|
2
|
+
import { MaterialPluginBase } from "../materialPluginBase.pure.js";
|
|
3
3
|
import { type PBRBaseMaterial } from "./pbrBaseMaterial.js";
|
|
4
4
|
/**
|
|
5
5
|
* @internal
|
|
@@ -133,6 +133,10 @@ export declare class PBRBRDFConfiguration extends MaterialPluginBase {
|
|
|
133
133
|
*/
|
|
134
134
|
isCompatible(): boolean;
|
|
135
135
|
constructor(material: PBRBaseMaterial, addToPluginList?: boolean);
|
|
136
|
+
/**
|
|
137
|
+
* Updates the material defines for BRDF settings.
|
|
138
|
+
* @param defines defines the material defines to update
|
|
139
|
+
*/
|
|
136
140
|
prepareDefines(defines: MaterialBRDFDefines): void;
|
|
137
141
|
getClassName(): string;
|
|
138
142
|
}
|
|
@@ -3,7 +3,7 @@ import { __decorate } from "../../tslib.es6.js";
|
|
|
3
3
|
|
|
4
4
|
import { serialize, expandToProperty } from "../../Misc/decorators.js";
|
|
5
5
|
import { MaterialDefines } from "../materialDefines.js";
|
|
6
|
-
import { MaterialPluginBase } from "../materialPluginBase.js";
|
|
6
|
+
import { MaterialPluginBase } from "../materialPluginBase.pure.js";
|
|
7
7
|
/**
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
@@ -101,6 +101,10 @@ export class PBRBRDFConfiguration extends MaterialPluginBase {
|
|
|
101
101
|
this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[16];
|
|
102
102
|
this._enable(true);
|
|
103
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Updates the material defines for BRDF settings.
|
|
106
|
+
* @param defines defines the material defines to update
|
|
107
|
+
*/
|
|
104
108
|
prepareDefines(defines) {
|
|
105
109
|
defines.BRDF_V_HEIGHT_CORRELATED = this._useSmithVisibilityHeightCorrelated;
|
|
106
110
|
defines.MS_BRDF_ENERGY_CONSERVATION = this._useEnergyConservation && this._useSmithVisibilityHeightCorrelated;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbrBRDFConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrBRDFConfiguration.ts"],"names":[],"mappings":";AAAA,yDAAyD;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAAxD;;QACI,6BAAwB,GAAG,KAAK,CAAC;QACjC,gCAA2B,GAAG,KAAK,CAAC;QACpC,wBAAmB,GAAG,KAAK,CAAC;QAC5B,4CAAuC,GAAG,KAAK,CAAC;QAChD,qCAAgC,GAAG,IAAI,CAAC;QACxC,wCAAmC,GAAG,KAAK,CAAC;QAC5C,uBAAkB,GAAG,CAAC,CAAC;QACvB,8BAAyB,GAAG,CAAC,CAAC;QAC9B,6BAAwB,GAAG,CAAC,CAAC;IACjC,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IAgJxD,gBAAgB;IACT,4BAA4B;QAC/B,IAAI,CAAC,oCAAoC,EAAE,CAAC;IAChD,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY,QAAyB,EAAE,eAAe,GAAG,IAAI;QACzD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,mBAAmB,EAAE,EAAE,eAAe,CAAC,CAAC;QAxGvE,2BAAsB,GAAG,oBAAoB,CAAC,+BAA+B,CAAC;QACtF;;WAEG;QAGI,0BAAqB,GAAG,oBAAoB,CAAC,+BAA+B,CAAC;QAE5E,wCAAmC,GAAG,oBAAoB,CAAC,8CAA8C,CAAC;QAClH;;;;;;;WAOG;QAGI,uCAAkC,GAAG,oBAAoB,CAAC,8CAA8C,CAAC;QAExG,2BAAsB,GAAG,oBAAoB,CAAC,+BAA+B,CAAC;QACtF;;;;;;WAMG;QAGI,0BAAqB,GAAG,oBAAoB,CAAC,+BAA+B,CAAC;QAE5E,kDAA6C,GAAG,oBAAoB,CAAC,yDAAyD,CAAC;QACvI;;;;;WAKG;QAGI,iDAA4C,GAAG,oBAAoB,CAAC,yDAAyD,CAAC;QAE7H,kCAA6B,GAAG,oBAAoB,CAAC,wCAAwC,CAAC;QACtG;;;;WAIG;QAGI,iCAA4B,GAAG,oBAAoB,CAAC,wCAAwC,CAAC;QAE5F,yCAAoC,GAAG,oBAAoB,CAAC,+CAA+C,CAAC;QACpH;;;WAGG;QAGI,wCAAmC,GAAG,oBAAoB,CAAC,+CAA+C,CAAC;QAE1G,sBAAiB,GAAW,oBAAoB,CAAC,qBAAqB,CAAC;QAC/E;;WAEG;QAGI,qBAAgB,GAAW,oBAAoB,CAAC,qBAAqB,CAAC;QAErE,6BAAwB,GAAW,oBAAoB,CAAC,iCAAiC,CAAC;QAClG;;WAEG;QAGI,4BAAuB,GAAW,oBAAoB,CAAC,iCAAiC,CAAC;QAExF,4BAAuB,GAAW,oBAAoB,CAAC,gCAAgC,CAAC;QAChG;;WAEG;QAGI,2BAAsB,GAAW,oBAAoB,CAAC,gCAAgC,CAAC;QAqB1F,IAAI,CAAC,oCAAoC,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACvG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAEe,cAAc,CAAC,OAA4B;QACvD,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,mCAAmC,CAAC;QAC5E,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,mCAAmC,CAAC;QAC9G,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC1D,OAAO,CAAC,uCAAuC,GAAG,IAAI,CAAC,6CAA6C,CAAC;QACrG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,6BAA6B,IAAI,CAAE,IAAI,CAAC,SAA6B,CAAC,gBAAgB,CAAC;QACvI,OAAO,CAAC,mCAAmC,GAAG,IAAI,CAAC,oCAAoC,CAAC;QACxF,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACpD,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAClE,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,CAAC;IACpE,CAAC;IAEe,YAAY;QACxB,OAAO,sBAAsB,CAAC;IAClC,CAAC;;AAjLD;;;GAGG;AACW,oDAA+B,GAAG,IAAI,AAAP,CAAQ;AAErD;;;GAGG;AACW,mEAA8C,GAAG,IAAI,AAAP,CAAQ;AAEpE;;;;GAIG;AACW,oDAA+B,GAAG,IAAI,AAAP,CAAQ;AAErD;;;;GAIG;AACW,8EAAyD,GAAG,IAAI,AAAP,CAAQ;AAE/E;;;;GAIG;AACW,6DAAwC,GAAG,IAAI,AAAP,CAAQ;AAE9D;;GAEG;AACW,oEAA+C,GAAG,IAAI,AAAP,CAAQ;AAErE;;GAEG;AACW,0CAAqB,GAAG,SAAS,CAAC,mCAAmC,AAAhD,CAAiD;AAEpF;;GAEG;AACW,sDAAiC,GAAW,SAAS,CAAC,uCAAuC,AAA5D,CAA6D;AAE5G;;GAEG;AACW,qDAAgC,GAAW,SAAS,CAAC,sCAAsC,AAA3D,CAA4D;AAQnG;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,8BAA8B,CAAC;mEACmC;AAa7E;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,8BAA8B,CAAC;gFAC+D;AAYzG;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,8BAA8B,CAAC;mEACmC;AAW7E;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,8BAA8B,CAAC;0FACoF;AAU9H;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,8BAA8B,CAAC;0EACmD;AAS7F;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,8BAA8B,CAAC;iFACiE;AAQ3G;IAFN,SAAS,CAAC,kBAAkB,CAAC;IAC7B,gBAAgB,CAAC,8BAA8B,CAAC;8DAC4B;AAQtE;IAFN,SAAS,CAAC,yBAAyB,CAAC;IACpC,gBAAgB,CAAC,8BAA8B,CAAC;qEAC+C;AAQzF;IAFN,SAAS,CAAC,wBAAwB,CAAC;IACnC,gBAAgB,CAAC,8BAA8B,CAAC;oEAC6C","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { serialize, expandToProperty } from \"../../Misc/decorators\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase\";\r\nimport { type PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialBRDFDefines extends MaterialDefines {\r\n BRDF_V_HEIGHT_CORRELATED = false;\r\n MS_BRDF_ENERGY_CONSERVATION = false;\r\n SPHERICAL_HARMONICS = false;\r\n SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = false;\r\n MIX_IBL_RADIANCE_WITH_IRRADIANCE = true;\r\n LEGACY_SPECULAR_ENERGY_CONSERVATION = false;\r\n BASE_DIFFUSE_MODEL = 0;\r\n DIELECTRIC_SPECULAR_MODEL = 0;\r\n CONDUCTOR_SPECULAR_MODEL = 0;\r\n}\r\n\r\n/**\r\n * Plugin that implements the BRDF component of the PBR material\r\n */\r\nexport class PBRBRDFConfiguration extends MaterialPluginBase {\r\n /**\r\n * Default value used for the energy conservation.\r\n * This should only be changed to adapt to the type of texture in scene.environmentBRDFTexture.\r\n */\r\n public static DEFAULT_USE_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Default value used for the Smith Visibility Height Correlated mode.\r\n * This should only be changed to adapt to the type of texture in scene.environmentBRDFTexture.\r\n */\r\n public static DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED = true;\r\n\r\n /**\r\n * Default value used for the IBL diffuse part.\r\n * This can help switching back to the polynomials mode globally which is a tiny bit\r\n * less GPU intensive at the drawback of a lower quality.\r\n */\r\n public static DEFAULT_USE_SPHERICAL_HARMONICS = true;\r\n\r\n /**\r\n * Default value used for activating energy conservation for the specular workflow.\r\n * If activated, the albedo color is multiplied with (1. - maxChannel(specular color)).\r\n * If deactivated, a material is only physically plausible, when (albedo color + specular color) < 1.\r\n */\r\n public static DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Default value for whether IBL irradiance is used to augment rough radiance.\r\n * If activated, irradiance is blended into the radiance contribution when the material is rough.\r\n * This better approximates raytracing results for rough surfaces.\r\n */\r\n public static DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE = true;\r\n\r\n /**\r\n * Default value for whether the legacy specular energy conservation is used.\r\n */\r\n public static DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Defines the default diffuse model used by the material.\r\n */\r\n public static DEFAULT_DIFFUSE_MODEL = Constants.MATERIAL_DIFFUSE_MODEL_E_OREN_NAYAR;\r\n\r\n /**\r\n * Defines the default dielectric specular model used by the material.\r\n */\r\n public static DEFAULT_DIELECTRIC_SPECULAR_MODEL: number = Constants.MATERIAL_DIELECTRIC_SPECULAR_MODEL_GLTF;\r\n\r\n /**\r\n * Defines the default conductor specular model used by the material.\r\n */\r\n public static DEFAULT_CONDUCTOR_SPECULAR_MODEL: number = Constants.MATERIAL_CONDUCTOR_SPECULAR_MODEL_GLTF;\r\n\r\n private _useEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the material uses energy conservation.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_ENERGY_CONSERVATION;\r\n\r\n private _useSmithVisibilityHeightCorrelated = PBRBRDFConfiguration.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED;\r\n /**\r\n * LEGACY Mode set to false\r\n * Defines if the material uses height smith correlated visibility term.\r\n * If you intent to not use our default BRDF, you need to load a separate BRDF Texture for the PBR\r\n * You can either load https://assets.babylonjs.com/environments/uncorrelatedBRDF.png\r\n * or https://assets.babylonjs.com/environments/uncorrelatedBRDF.dds to have more precision\r\n * Not relying on height correlated will also disable energy conservation.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSmithVisibilityHeightCorrelated = PBRBRDFConfiguration.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED;\r\n\r\n private _useSphericalHarmonics = PBRBRDFConfiguration.DEFAULT_USE_SPHERICAL_HARMONICS;\r\n /**\r\n * LEGACY Mode set to false\r\n * Defines if the material uses spherical harmonics vs spherical polynomials for the\r\n * diffuse part of the IBL.\r\n * The harmonics despite a tiny bigger cost has been proven to provide closer results\r\n * to the ground truth.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSphericalHarmonics = PBRBRDFConfiguration.DEFAULT_USE_SPHERICAL_HARMONICS;\r\n\r\n private _useSpecularGlossinessInputEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the material uses energy conservation, when the specular workflow is active.\r\n * If activated, the albedo color is multiplied with (1. - maxChannel(specular color)).\r\n * If deactivated, a material is only physically plausible, when (albedo color + specular color) < 1.\r\n * In the deactivated case, the material author has to ensure energy conservation, for a physically plausible rendering.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSpecularGlossinessInputEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION;\r\n\r\n private _mixIblRadianceWithIrradiance = PBRBRDFConfiguration.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE;\r\n /**\r\n * Defines if IBL irradiance is used to augment rough radiance.\r\n * If activated, irradiance is blended into the radiance contribution when the material is rough.\r\n * This better approximates raytracing results for rough surfaces.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public mixIblRadianceWithIrradiance = PBRBRDFConfiguration.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE;\r\n\r\n private _useLegacySpecularEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the legacy specular energy conservation is used.\r\n * If activated, the specular color is multiplied with (1. - maxChannel(albedo color)).\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useLegacySpecularEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION;\r\n\r\n private _baseDiffuseModel: number = PBRBRDFConfiguration.DEFAULT_DIFFUSE_MODEL;\r\n /**\r\n * Defines the base diffuse roughness model of the material.\r\n */\r\n @serialize(\"baseDiffuseModel\")\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public baseDiffuseModel: number = PBRBRDFConfiguration.DEFAULT_DIFFUSE_MODEL;\r\n\r\n private _dielectricSpecularModel: number = PBRBRDFConfiguration.DEFAULT_DIELECTRIC_SPECULAR_MODEL;\r\n /**\r\n * The material model to use for specular lighting of dielectric materials.\r\n */\r\n @serialize(\"dielectricSpecularModel\")\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public dielectricSpecularModel: number = PBRBRDFConfiguration.DEFAULT_DIELECTRIC_SPECULAR_MODEL;\r\n\r\n private _conductorSpecularModel: number = PBRBRDFConfiguration.DEFAULT_CONDUCTOR_SPECULAR_MODEL;\r\n /**\r\n * The material model to use for specular lighting.\r\n */\r\n @serialize(\"conductorSpecularModel\")\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public conductorSpecularModel: number = PBRBRDFConfiguration.DEFAULT_CONDUCTOR_SPECULAR_MODEL;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsMiscDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsMiscDirty(): void {\r\n this._internalMarkAllSubMeshesAsMiscDirty();\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\r\n * @returns true if the plugin is compatible with the shader language\r\n */\r\n public override isCompatible(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRBRDF\", 90, new MaterialBRDFDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[Constants.MATERIAL_MiscDirtyFlag];\r\n this._enable(true);\r\n }\r\n\r\n public override prepareDefines(defines: MaterialBRDFDefines): void {\r\n defines.BRDF_V_HEIGHT_CORRELATED = this._useSmithVisibilityHeightCorrelated;\r\n defines.MS_BRDF_ENERGY_CONSERVATION = this._useEnergyConservation && this._useSmithVisibilityHeightCorrelated;\r\n defines.SPHERICAL_HARMONICS = this._useSphericalHarmonics;\r\n defines.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = this._useSpecularGlossinessInputEnergyConservation;\r\n defines.MIX_IBL_RADIANCE_WITH_IRRADIANCE = this._mixIblRadianceWithIrradiance && !(this._material as PBRBaseMaterial)._disableLighting;\r\n defines.LEGACY_SPECULAR_ENERGY_CONSERVATION = this._useLegacySpecularEnergyConservation;\r\n defines.BASE_DIFFUSE_MODEL = this._baseDiffuseModel;\r\n defines.DIELECTRIC_SPECULAR_MODEL = this._dielectricSpecularModel;\r\n defines.CONDUCTOR_SPECULAR_MODEL = this._conductorSpecularModel;\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRBRDFConfiguration\";\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"pbrBRDFConfiguration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrBRDFConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { serialize, expandToProperty } from \"../../Misc/decorators\";\r\nimport { MaterialDefines } from \"../materialDefines\";\r\nimport { MaterialPluginBase } from \"../materialPluginBase.pure\";\r\nimport { type PBRBaseMaterial } from \"./pbrBaseMaterial\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class MaterialBRDFDefines extends MaterialDefines {\r\n BRDF_V_HEIGHT_CORRELATED = false;\r\n MS_BRDF_ENERGY_CONSERVATION = false;\r\n SPHERICAL_HARMONICS = false;\r\n SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = false;\r\n MIX_IBL_RADIANCE_WITH_IRRADIANCE = true;\r\n LEGACY_SPECULAR_ENERGY_CONSERVATION = false;\r\n BASE_DIFFUSE_MODEL = 0;\r\n DIELECTRIC_SPECULAR_MODEL = 0;\r\n CONDUCTOR_SPECULAR_MODEL = 0;\r\n}\r\n\r\n/**\r\n * Plugin that implements the BRDF component of the PBR material\r\n */\r\nexport class PBRBRDFConfiguration extends MaterialPluginBase {\r\n /**\r\n * Default value used for the energy conservation.\r\n * This should only be changed to adapt to the type of texture in scene.environmentBRDFTexture.\r\n */\r\n public static DEFAULT_USE_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Default value used for the Smith Visibility Height Correlated mode.\r\n * This should only be changed to adapt to the type of texture in scene.environmentBRDFTexture.\r\n */\r\n public static DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED = true;\r\n\r\n /**\r\n * Default value used for the IBL diffuse part.\r\n * This can help switching back to the polynomials mode globally which is a tiny bit\r\n * less GPU intensive at the drawback of a lower quality.\r\n */\r\n public static DEFAULT_USE_SPHERICAL_HARMONICS = true;\r\n\r\n /**\r\n * Default value used for activating energy conservation for the specular workflow.\r\n * If activated, the albedo color is multiplied with (1. - maxChannel(specular color)).\r\n * If deactivated, a material is only physically plausible, when (albedo color + specular color) < 1.\r\n */\r\n public static DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Default value for whether IBL irradiance is used to augment rough radiance.\r\n * If activated, irradiance is blended into the radiance contribution when the material is rough.\r\n * This better approximates raytracing results for rough surfaces.\r\n */\r\n public static DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE = true;\r\n\r\n /**\r\n * Default value for whether the legacy specular energy conservation is used.\r\n */\r\n public static DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION = true;\r\n\r\n /**\r\n * Defines the default diffuse model used by the material.\r\n */\r\n public static DEFAULT_DIFFUSE_MODEL = Constants.MATERIAL_DIFFUSE_MODEL_E_OREN_NAYAR;\r\n\r\n /**\r\n * Defines the default dielectric specular model used by the material.\r\n */\r\n public static DEFAULT_DIELECTRIC_SPECULAR_MODEL: number = Constants.MATERIAL_DIELECTRIC_SPECULAR_MODEL_GLTF;\r\n\r\n /**\r\n * Defines the default conductor specular model used by the material.\r\n */\r\n public static DEFAULT_CONDUCTOR_SPECULAR_MODEL: number = Constants.MATERIAL_CONDUCTOR_SPECULAR_MODEL_GLTF;\r\n\r\n private _useEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the material uses energy conservation.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_ENERGY_CONSERVATION;\r\n\r\n private _useSmithVisibilityHeightCorrelated = PBRBRDFConfiguration.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED;\r\n /**\r\n * LEGACY Mode set to false\r\n * Defines if the material uses height smith correlated visibility term.\r\n * If you intent to not use our default BRDF, you need to load a separate BRDF Texture for the PBR\r\n * You can either load https://assets.babylonjs.com/environments/uncorrelatedBRDF.png\r\n * or https://assets.babylonjs.com/environments/uncorrelatedBRDF.dds to have more precision\r\n * Not relying on height correlated will also disable energy conservation.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSmithVisibilityHeightCorrelated = PBRBRDFConfiguration.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED;\r\n\r\n private _useSphericalHarmonics = PBRBRDFConfiguration.DEFAULT_USE_SPHERICAL_HARMONICS;\r\n /**\r\n * LEGACY Mode set to false\r\n * Defines if the material uses spherical harmonics vs spherical polynomials for the\r\n * diffuse part of the IBL.\r\n * The harmonics despite a tiny bigger cost has been proven to provide closer results\r\n * to the ground truth.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSphericalHarmonics = PBRBRDFConfiguration.DEFAULT_USE_SPHERICAL_HARMONICS;\r\n\r\n private _useSpecularGlossinessInputEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the material uses energy conservation, when the specular workflow is active.\r\n * If activated, the albedo color is multiplied with (1. - maxChannel(specular color)).\r\n * If deactivated, a material is only physically plausible, when (albedo color + specular color) < 1.\r\n * In the deactivated case, the material author has to ensure energy conservation, for a physically plausible rendering.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useSpecularGlossinessInputEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION;\r\n\r\n private _mixIblRadianceWithIrradiance = PBRBRDFConfiguration.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE;\r\n /**\r\n * Defines if IBL irradiance is used to augment rough radiance.\r\n * If activated, irradiance is blended into the radiance contribution when the material is rough.\r\n * This better approximates raytracing results for rough surfaces.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public mixIblRadianceWithIrradiance = PBRBRDFConfiguration.DEFAULT_MIX_IBL_RADIANCE_WITH_IRRADIANCE;\r\n\r\n private _useLegacySpecularEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION;\r\n /**\r\n * Defines if the legacy specular energy conservation is used.\r\n * If activated, the specular color is multiplied with (1. - maxChannel(albedo color)).\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public useLegacySpecularEnergyConservation = PBRBRDFConfiguration.DEFAULT_USE_LEGACY_SPECULAR_ENERGY_CONSERVATION;\r\n\r\n private _baseDiffuseModel: number = PBRBRDFConfiguration.DEFAULT_DIFFUSE_MODEL;\r\n /**\r\n * Defines the base diffuse roughness model of the material.\r\n */\r\n @serialize(\"baseDiffuseModel\")\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public baseDiffuseModel: number = PBRBRDFConfiguration.DEFAULT_DIFFUSE_MODEL;\r\n\r\n private _dielectricSpecularModel: number = PBRBRDFConfiguration.DEFAULT_DIELECTRIC_SPECULAR_MODEL;\r\n /**\r\n * The material model to use for specular lighting of dielectric materials.\r\n */\r\n @serialize(\"dielectricSpecularModel\")\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public dielectricSpecularModel: number = PBRBRDFConfiguration.DEFAULT_DIELECTRIC_SPECULAR_MODEL;\r\n\r\n private _conductorSpecularModel: number = PBRBRDFConfiguration.DEFAULT_CONDUCTOR_SPECULAR_MODEL;\r\n /**\r\n * The material model to use for specular lighting.\r\n */\r\n @serialize(\"conductorSpecularModel\")\r\n @expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\r\n public conductorSpecularModel: number = PBRBRDFConfiguration.DEFAULT_CONDUCTOR_SPECULAR_MODEL;\r\n\r\n /** @internal */\r\n private _internalMarkAllSubMeshesAsMiscDirty: () => void;\r\n\r\n /** @internal */\r\n public _markAllSubMeshesAsMiscDirty(): void {\r\n this._internalMarkAllSubMeshesAsMiscDirty();\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\r\n * @returns true if the plugin is compatible with the shader language\r\n */\r\n public override isCompatible(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(material: PBRBaseMaterial, addToPluginList = true) {\r\n super(material, \"PBRBRDF\", 90, new MaterialBRDFDefines(), addToPluginList);\r\n\r\n this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[Constants.MATERIAL_MiscDirtyFlag];\r\n this._enable(true);\r\n }\r\n\r\n /**\r\n * Updates the material defines for BRDF settings.\r\n * @param defines defines the material defines to update\r\n */\r\n public override prepareDefines(defines: MaterialBRDFDefines): void {\r\n defines.BRDF_V_HEIGHT_CORRELATED = this._useSmithVisibilityHeightCorrelated;\r\n defines.MS_BRDF_ENERGY_CONSERVATION = this._useEnergyConservation && this._useSmithVisibilityHeightCorrelated;\r\n defines.SPHERICAL_HARMONICS = this._useSphericalHarmonics;\r\n defines.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION = this._useSpecularGlossinessInputEnergyConservation;\r\n defines.MIX_IBL_RADIANCE_WITH_IRRADIANCE = this._mixIblRadianceWithIrradiance && !(this._material as PBRBaseMaterial)._disableLighting;\r\n defines.LEGACY_SPECULAR_ENERGY_CONSERVATION = this._useLegacySpecularEnergyConservation;\r\n defines.BASE_DIFFUSE_MODEL = this._baseDiffuseModel;\r\n defines.DIELECTRIC_SPECULAR_MODEL = this._dielectricSpecularModel;\r\n defines.CONDUCTOR_SPECULAR_MODEL = this._conductorSpecularModel;\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRBRDFConfiguration\";\r\n }\r\n}\r\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Scene } from "../../scene.js";
|
|
2
|
-
import { Color3 } from "../../Maths/math.color.js";
|
|
3
|
-
import { PBRBaseMaterial } from "./pbrBaseMaterial.js";
|
|
2
|
+
import { Color3 } from "../../Maths/math.color.pure.js";
|
|
3
|
+
import { PBRBaseMaterial } from "./pbrBaseMaterial.pure.js";
|
|
4
4
|
import { type BaseTexture } from "../../Materials/Textures/baseTexture.js";
|
|
5
5
|
import { type Nullable } from "../../types.js";
|
|
6
6
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "../../tslib.es6.js";
|
|
2
2
|
import { serialize, serializeAsColor3, expandToProperty, serializeAsTexture } from "../../Misc/decorators.js";
|
|
3
|
-
import { Color3 } from "../../Maths/math.color.js";
|
|
4
|
-
import { PBRBaseMaterial } from "./pbrBaseMaterial.js";
|
|
3
|
+
import { Color3 } from "../../Maths/math.color.pure.js";
|
|
4
|
+
import { PBRBaseMaterial } from "./pbrBaseMaterial.pure.js";
|
|
5
5
|
/**
|
|
6
6
|
* The Physically based simple base material of BJS.
|
|
7
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbrBaseSimpleMaterial.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrBaseSimpleMaterial.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3G,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pbrBaseSimpleMaterial.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/PBR/pbrBaseSimpleMaterial.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3G,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD;;;;;GAKG;AACH,MAAM,OAAgB,qBAAsB,SAAQ,eAAe;IA8E/D;;OAEG;IAEH,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD;;OAEG;IACH,IAAW,WAAW,CAAC,KAAc;QACjC,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO;QACX,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,gCAAgC,EAAE,CAAC;IAC5C,CAAC;IAgBD;;;;;OAKG;IACH,YAAY,IAAY,EAAE,KAAa;QACnC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QArHvB;;WAEG;QAGI,0BAAqB,GAAG,CAAC,CAAC;QAEjC;;WAEG;QAGI,oBAAe,GAAG,KAAK,CAAC;QAS/B;;WAEG;QAGI,qBAAgB,GAAG,KAAK,CAAC;QAEhC;;WAEG;QAGI,qBAAgB,GAAG,KAAK,CAAC;QAShC;;WAEG;QAGI,kBAAa,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAS3C;;WAEG;QAGI,sBAAiB,GAAW,GAAG,CAAC;QA0CvC;;WAEG;QAGI,2BAAsB,GAAG,KAAK,CAAC;QAWlC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACvC,CAAC;IAEe,YAAY;QACxB,OAAO,uBAAuB,CAAC;IACnC,CAAC;CACJ;AAzHU;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,gCAAgC,CAAC;oEAClB;AAO1B;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,gCAAgC,CAAC;8DACpB;AAOxB;IAFN,kBAAkB,EAAE;IACpB,gBAAgB,CAAC,kCAAkC,EAAE,oBAAoB,CAAC;iEAC1B;AAO1C;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,kCAAkC,CAAC;+DACrB;AAOzB;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,kCAAkC,CAAC;+DACrB;AAOzB;IAFN,kBAAkB,EAAE;IACpB,gBAAgB,CAAC,kCAAkC,EAAE,cAAc,CAAC;4DACzB;AAOrC;IAFN,iBAAiB,CAAC,UAAU,CAAC;IAC7B,gBAAgB,CAAC,kCAAkC,CAAC;4DACV;AAOpC;IAFN,kBAAkB,EAAE;IACpB,gBAAgB,CAAC,kCAAkC,CAAC;8DACP;AAOvC;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,kCAAkC,EAAE,yBAAyB,CAAC;gEACzC;AAOhC;IAFN,kBAAkB,EAAE;IACpB,gBAAgB,CAAC,kCAAkC,EAAE,iBAAiB,CAAC;+DACzB;AAOxC;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,kCAAkC,EAAE,cAAc,CAAC;0DAC1C;AAM3B;IADC,SAAS,EAAE;wDAGX;AAkBM;IAFN,kBAAkB,EAAE;IACpB,gBAAgB,CAAC,kCAAkC,EAAE,IAAI,CAAC;8DACb;AAOvC;IAFN,SAAS,EAAE;IACX,gBAAgB,CAAC,kCAAkC,CAAC;qEACf","sourcesContent":["import { serialize, serializeAsColor3, expandToProperty, serializeAsTexture } from \"../../Misc/decorators\";\r\nimport { type Scene } from \"../../scene\";\r\nimport { Color3 } from \"../../Maths/math.color.pure\";\r\nimport { PBRBaseMaterial } from \"./pbrBaseMaterial.pure\";\r\nimport { type BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { type Nullable } from \"../../types\";\r\n\r\n/**\r\n * The Physically based simple base material of BJS.\r\n *\r\n * This enables better naming and convention enforcements on top of the pbrMaterial.\r\n * It is used as the base class for both the specGloss and metalRough conventions.\r\n */\r\nexport abstract class PBRBaseSimpleMaterial extends PBRBaseMaterial {\r\n /**\r\n * Number of Simultaneous lights allowed on the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\r\n public maxSimultaneousLights = 4;\r\n\r\n /**\r\n * If sets to true, disables all the lights affecting the material.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\r\n public disableLighting = false;\r\n\r\n /**\r\n * Environment Texture used in the material (this is use for both reflection and environment lighting).\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", \"_reflectionTexture\")\r\n public environmentTexture: Nullable<BaseTexture>;\r\n\r\n /**\r\n * If sets to true, x component of normal map value will invert (x = 1.0 - x).\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public invertNormalMapX = false;\r\n\r\n /**\r\n * If sets to true, y component of normal map value will invert (y = 1.0 - y).\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public invertNormalMapY = false;\r\n\r\n /**\r\n * Normal map used in the model.\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", \"_bumpTexture\")\r\n public normalTexture: Nullable<BaseTexture>;\r\n\r\n /**\r\n * Emissivie color used to self-illuminate the model.\r\n */\r\n @serializeAsColor3(\"emissive\")\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public emissiveColor = new Color3(0, 0, 0);\r\n\r\n /**\r\n * Emissivie texture used to self-illuminate the model.\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public emissiveTexture: Nullable<BaseTexture>;\r\n\r\n /**\r\n * Occlusion Channel Strength.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", \"_ambientTextureStrength\")\r\n public occlusionStrength: number = 1.0;\r\n\r\n /**\r\n * Occlusion Texture of the material (adding extra occlusion effects).\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", \"_ambientTexture\")\r\n public occlusionTexture: Nullable<BaseTexture>;\r\n\r\n /**\r\n * Defines the alpha limits in alpha test mode.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", \"_alphaCutOff\")\r\n public alphaCutOff: number;\r\n\r\n /**\r\n * Gets the current double sided mode.\r\n */\r\n @serialize()\r\n public get doubleSided(): boolean {\r\n return this._twoSidedLighting;\r\n }\r\n /**\r\n * If sets to true and backfaceCulling is false, normals will be flipped on the backside.\r\n */\r\n public set doubleSided(value: boolean) {\r\n if (this._twoSidedLighting === value) {\r\n return;\r\n }\r\n this._twoSidedLighting = value;\r\n this.backFaceCulling = !value;\r\n this._markAllSubMeshesAsTexturesDirty();\r\n }\r\n\r\n /**\r\n * Stores the pre-calculated light information of a mesh in a texture.\r\n */\r\n @serializeAsTexture()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", null)\r\n public lightmapTexture: Nullable<BaseTexture>;\r\n\r\n /**\r\n * If true, the light map contains occlusion information instead of lighting info.\r\n */\r\n @serialize()\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public useLightmapAsShadowmap = false;\r\n\r\n /**\r\n * Instantiates a new PBRMaterial instance.\r\n *\r\n * @param name The material name\r\n * @param scene The scene the material will be use in.\r\n */\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n\r\n this._useAlphaFromAlbedoTexture = true;\r\n this._useAmbientInGrayScale = true;\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"PBRBaseSimpleMaterial\";\r\n }\r\n}\r\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type Nullable } from "../../types.js";
|
|
2
|
-
import { Color3 } from "../../Maths/math.color.js";
|
|
2
|
+
import { Color3 } from "../../Maths/math.color.pure.js";
|
|
3
3
|
import { type BaseTexture } from "../../Materials/Textures/baseTexture.js";
|
|
4
4
|
import { type UniformBuffer } from "../../Materials/uniformBuffer.js";
|
|
5
5
|
import { type IAnimatable } from "../../Animations/animatable.interface.js";
|
|
6
6
|
import { type EffectFallbacks } from "../effectFallbacks.js";
|
|
7
7
|
import { type SubMesh } from "../../Meshes/subMesh.js";
|
|
8
|
-
import { MaterialPluginBase } from "../materialPluginBase.js";
|
|
8
|
+
import { MaterialPluginBase } from "../materialPluginBase.pure.js";
|
|
9
9
|
import { MaterialDefines } from "../materialDefines.js";
|
|
10
10
|
import { type Engine } from "../../Engines/engine.js";
|
|
11
11
|
import { type Scene } from "../../scene.js";
|
|
@@ -128,15 +128,55 @@ export declare class PBRClearCoatConfiguration extends MaterialPluginBase {
|
|
|
128
128
|
*/
|
|
129
129
|
isCompatible(): boolean;
|
|
130
130
|
constructor(material: PBRBaseMaterial, addToPluginList?: boolean);
|
|
131
|
+
/**
|
|
132
|
+
* Checks whether the clear coat textures are ready for the sub mesh.
|
|
133
|
+
* @param defines defines the material defines to inspect
|
|
134
|
+
* @param scene defines the scene to use for readiness checks
|
|
135
|
+
* @param engine defines the engine to use for readiness checks
|
|
136
|
+
* @returns true if clear coat is ready
|
|
137
|
+
*/
|
|
131
138
|
isReadyForSubMesh(defines: MaterialClearCoatDefines, scene: Scene, engine: Engine): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Updates shader defines for clear coat before attributes are processed.
|
|
141
|
+
* @param defines defines the material defines to update
|
|
142
|
+
* @param scene defines the scene to use for texture checks
|
|
143
|
+
*/
|
|
132
144
|
prepareDefinesBeforeAttributes(defines: MaterialClearCoatDefines, scene: Scene): void;
|
|
145
|
+
/**
|
|
146
|
+
* Binds clear coat data for a sub mesh.
|
|
147
|
+
* @param uniformBuffer defines the uniform buffer to update
|
|
148
|
+
* @param scene defines the scene to use for texture binding
|
|
149
|
+
* @param engine defines the engine to use for capability checks
|
|
150
|
+
* @param subMesh defines the sub mesh being rendered
|
|
151
|
+
*/
|
|
133
152
|
bindForSubMesh(uniformBuffer: UniformBuffer, scene: Scene, engine: Engine, subMesh: SubMesh): void;
|
|
153
|
+
/**
|
|
154
|
+
* Checks whether clear coat uses a texture.
|
|
155
|
+
* @param texture defines the texture to check
|
|
156
|
+
* @returns true if the texture is used by clear coat
|
|
157
|
+
*/
|
|
134
158
|
hasTexture(texture: BaseTexture): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Adds the active clear coat textures.
|
|
161
|
+
* @param activeTextures defines the list of active textures to update
|
|
162
|
+
*/
|
|
135
163
|
getActiveTextures(activeTextures: BaseTexture[]): void;
|
|
164
|
+
/**
|
|
165
|
+
* Adds the animatable clear coat textures.
|
|
166
|
+
* @param animatables defines the list of animatables to update
|
|
167
|
+
*/
|
|
136
168
|
getAnimatables(animatables: IAnimatable[]): void;
|
|
169
|
+
/**
|
|
170
|
+
* Disposes the clear coat textures.
|
|
171
|
+
* @param forceDisposeTextures defines whether to dispose the textures
|
|
172
|
+
*/
|
|
137
173
|
dispose(forceDisposeTextures?: boolean): void;
|
|
138
174
|
getClassName(): string;
|
|
139
175
|
addFallbacks(defines: MaterialClearCoatDefines, fallbacks: EffectFallbacks, currentRank: number): number;
|
|
176
|
+
/**
|
|
177
|
+
* Adds the clear coat sampler names.
|
|
178
|
+
* @param samplers defines the list of sampler names to update
|
|
179
|
+
*/
|
|
140
180
|
getSamplers(samplers: string[]): void;
|
|
141
181
|
getUniforms(): {
|
|
142
182
|
ubo?: Array<{
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { __decorate } from "../../tslib.es6.js";
|
|
2
2
|
import { serialize, serializeAsTexture, expandToProperty, serializeAsColor3 } from "../../Misc/decorators.js";
|
|
3
|
-
import { Color3 } from "../../Maths/math.color.js";
|
|
3
|
+
import { Color3 } from "../../Maths/math.color.pure.js";
|
|
4
4
|
import { MaterialFlags } from "../materialFlags.js";
|
|
5
5
|
|
|
6
|
-
import { MaterialPluginBase } from "../materialPluginBase.js";
|
|
6
|
+
import { MaterialPluginBase } from "../materialPluginBase.pure.js";
|
|
7
7
|
import { MaterialDefines } from "../materialDefines.js";
|
|
8
8
|
import { BindTextureMatrix, PrepareDefinesForMergedUV } from "../materialHelper.functions.js";
|
|
9
9
|
/**
|
|
@@ -126,6 +126,13 @@ export class PBRClearCoatConfiguration extends MaterialPluginBase {
|
|
|
126
126
|
this.tintTexture = null;
|
|
127
127
|
this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];
|
|
128
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Checks whether the clear coat textures are ready for the sub mesh.
|
|
131
|
+
* @param defines defines the material defines to inspect
|
|
132
|
+
* @param scene defines the scene to use for readiness checks
|
|
133
|
+
* @param engine defines the engine to use for readiness checks
|
|
134
|
+
* @returns true if clear coat is ready
|
|
135
|
+
*/
|
|
129
136
|
isReadyForSubMesh(defines, scene, engine) {
|
|
130
137
|
if (!this._isEnabled) {
|
|
131
138
|
return true;
|
|
@@ -158,6 +165,11 @@ export class PBRClearCoatConfiguration extends MaterialPluginBase {
|
|
|
158
165
|
}
|
|
159
166
|
return true;
|
|
160
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Updates shader defines for clear coat before attributes are processed.
|
|
170
|
+
* @param defines defines the material defines to update
|
|
171
|
+
* @param scene defines the scene to use for texture checks
|
|
172
|
+
*/
|
|
161
173
|
prepareDefinesBeforeAttributes(defines, scene) {
|
|
162
174
|
if (this._isEnabled) {
|
|
163
175
|
defines.CLEARCOAT = true;
|
|
@@ -218,6 +230,13 @@ export class PBRClearCoatConfiguration extends MaterialPluginBase {
|
|
|
218
230
|
defines.CLEARCOAT_TINT_GAMMATEXTURE = false;
|
|
219
231
|
}
|
|
220
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* Binds clear coat data for a sub mesh.
|
|
235
|
+
* @param uniformBuffer defines the uniform buffer to update
|
|
236
|
+
* @param scene defines the scene to use for texture binding
|
|
237
|
+
* @param engine defines the engine to use for capability checks
|
|
238
|
+
* @param subMesh defines the sub mesh being rendered
|
|
239
|
+
*/
|
|
221
240
|
bindForSubMesh(uniformBuffer, scene, engine, subMesh) {
|
|
222
241
|
if (!this._isEnabled) {
|
|
223
242
|
return;
|
|
@@ -280,6 +299,11 @@ export class PBRClearCoatConfiguration extends MaterialPluginBase {
|
|
|
280
299
|
}
|
|
281
300
|
}
|
|
282
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Checks whether clear coat uses a texture.
|
|
304
|
+
* @param texture defines the texture to check
|
|
305
|
+
* @returns true if the texture is used by clear coat
|
|
306
|
+
*/
|
|
283
307
|
hasTexture(texture) {
|
|
284
308
|
if (this._texture === texture) {
|
|
285
309
|
return true;
|
|
@@ -295,6 +319,10 @@ export class PBRClearCoatConfiguration extends MaterialPluginBase {
|
|
|
295
319
|
}
|
|
296
320
|
return false;
|
|
297
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Adds the active clear coat textures.
|
|
324
|
+
* @param activeTextures defines the list of active textures to update
|
|
325
|
+
*/
|
|
298
326
|
getActiveTextures(activeTextures) {
|
|
299
327
|
if (this._texture) {
|
|
300
328
|
activeTextures.push(this._texture);
|
|
@@ -309,6 +337,10 @@ export class PBRClearCoatConfiguration extends MaterialPluginBase {
|
|
|
309
337
|
activeTextures.push(this._tintTexture);
|
|
310
338
|
}
|
|
311
339
|
}
|
|
340
|
+
/**
|
|
341
|
+
* Adds the animatable clear coat textures.
|
|
342
|
+
* @param animatables defines the list of animatables to update
|
|
343
|
+
*/
|
|
312
344
|
getAnimatables(animatables) {
|
|
313
345
|
if (this._texture && this._texture.animations && this._texture.animations.length > 0) {
|
|
314
346
|
animatables.push(this._texture);
|
|
@@ -323,6 +355,10 @@ export class PBRClearCoatConfiguration extends MaterialPluginBase {
|
|
|
323
355
|
animatables.push(this._tintTexture);
|
|
324
356
|
}
|
|
325
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* Disposes the clear coat textures.
|
|
360
|
+
* @param forceDisposeTextures defines whether to dispose the textures
|
|
361
|
+
*/
|
|
326
362
|
dispose(forceDisposeTextures) {
|
|
327
363
|
if (forceDisposeTextures) {
|
|
328
364
|
this._texture?.dispose();
|
|
@@ -346,6 +382,10 @@ export class PBRClearCoatConfiguration extends MaterialPluginBase {
|
|
|
346
382
|
}
|
|
347
383
|
return currentRank;
|
|
348
384
|
}
|
|
385
|
+
/**
|
|
386
|
+
* Adds the clear coat sampler names.
|
|
387
|
+
* @param samplers defines the list of sampler names to update
|
|
388
|
+
*/
|
|
349
389
|
getSamplers(samplers) {
|
|
350
390
|
samplers.push("clearCoatSampler", "clearCoatRoughnessSampler", "clearCoatBumpSampler", "clearCoatTintSampler");
|
|
351
391
|
}
|