@babylonjs/core 7.19.0 → 7.20.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/Buffers/buffer.nonFloatVertexBuffers.js +1 -1
- package/Buffers/buffer.nonFloatVertexBuffers.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +8 -2
- package/Collisions/gpuPicker.js +41 -20
- package/Collisions/gpuPicker.js.map +1 -1
- package/Engines/Processors/shaderProcessor.d.ts +1 -0
- package/Engines/Processors/shaderProcessor.js +1 -0
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.rawTexture.js +1 -0
- package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +4 -2
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +2 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +12 -5
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.d.ts +1 -4
- package/Engines/WebGPU/webgpuTextureManager.js +90 -75
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.d.ts +2 -2
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/nativeEngine.d.ts +1 -1
- package/Engines/nativeEngine.js +2 -1
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.d.ts +1 -1
- package/Engines/thinEngine.functions.d.ts +1 -1
- package/Engines/thinEngine.functions.js +2 -1
- package/Engines/thinEngine.functions.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +9 -5
- package/Engines/webgpuEngine.js +35 -22
- package/Engines/webgpuEngine.js.map +1 -1
- package/Layers/effectLayer.d.ts +16 -1
- package/Layers/effectLayer.js +32 -2
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +1 -2
- package/Layers/glowLayer.js +16 -3
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +5 -4
- package/Layers/highlightLayer.js +36 -11
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/index.d.ts +10 -0
- package/Layers/index.js +12 -0
- package/Layers/index.js.map +1 -1
- package/Lights/Shadows/index.d.ts +8 -0
- package/Lights/Shadows/index.js +9 -0
- package/Lights/Shadows/index.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +18 -5
- package/Lights/Shadows/shadowGenerator.js +44 -5
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Loading/sceneLoader.d.ts +155 -16
- package/Loading/sceneLoader.js +197 -99
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +1 -0
- package/Materials/Node/nodeMaterial.js +15 -1
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +1 -1
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/effect.functions.d.ts +1 -1
- package/Materials/effect.functions.js +6 -3
- package/Materials/effect.functions.js.map +1 -1
- package/Materials/effect.js +1 -1
- package/Materials/effect.js.map +1 -1
- package/Materials/standardMaterial.d.ts +1 -1
- package/Materials/standardMaterial.js +1 -1
- package/Materials/standardMaterial.js.map +1 -1
- package/Maths/math.constants.d.ts +1 -2
- package/Maths/math.constants.js +1 -2
- package/Maths/math.constants.js.map +1 -1
- package/Maths/math.like.d.ts +9 -0
- package/Maths/math.like.js.map +1 -1
- package/Maths/math.vector.d.ts +23 -23
- package/Maths/math.vector.js +43 -11
- package/Maths/math.vector.js.map +1 -1
- package/Misc/index.d.ts +4 -0
- package/Misc/index.js +5 -0
- package/Misc/index.js.map +1 -1
- package/Misc/rgbdTextureTools.d.ts +1 -0
- package/Misc/rgbdTextureTools.js +15 -2
- package/Misc/rgbdTextureTools.js.map +1 -1
- package/PostProcesses/blurPostProcess.d.ts +6 -0
- package/PostProcesses/blurPostProcess.js +21 -2
- package/PostProcesses/blurPostProcess.js.map +1 -1
- package/PostProcesses/index.d.ts +8 -0
- package/PostProcesses/index.js +10 -0
- package/PostProcesses/index.js.map +1 -1
- package/PostProcesses/passPostProcess.d.ts +2 -0
- package/PostProcesses/passPostProcess.js +26 -2
- package/PostProcesses/passPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.d.ts +11 -2
- package/PostProcesses/postProcess.js +17 -1
- package/PostProcesses/postProcess.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js +17 -0
- package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment.js +20 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js +19 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js +9 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVertex.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVertex.js +9 -0
- package/ShadersWGSL/ShadersInclude/kernelBlurVertex.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +4 -4
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapFragment.js +5 -5
- package/ShadersWGSL/ShadersInclude/shadowMapFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.d.ts +7 -0
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js +26 -0
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +12 -0
- package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js +19 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js +4 -4
- package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js +17 -0
- package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -0
- package/ShadersWGSL/default.fragment.js +2 -2
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/depthBoxBlur.fragment.d.ts +5 -0
- package/ShadersWGSL/depthBoxBlur.fragment.js +14 -0
- package/ShadersWGSL/depthBoxBlur.fragment.js.map +1 -0
- package/ShadersWGSL/glowBlurPostProcess.fragment.d.ts +5 -0
- package/ShadersWGSL/glowBlurPostProcess.fragment.js +15 -0
- package/ShadersWGSL/glowBlurPostProcess.fragment.js.map +1 -0
- package/ShadersWGSL/glowMapGeneration.fragment.d.ts +8 -0
- package/ShadersWGSL/glowMapGeneration.fragment.js +74 -0
- package/ShadersWGSL/glowMapGeneration.fragment.js.map +1 -0
- package/ShadersWGSL/glowMapGeneration.vertex.d.ts +17 -0
- package/ShadersWGSL/glowMapGeneration.vertex.js +92 -0
- package/ShadersWGSL/glowMapGeneration.vertex.js.map +1 -0
- package/ShadersWGSL/glowMapMerge.fragment.d.ts +5 -0
- package/ShadersWGSL/glowMapMerge.fragment.js +32 -0
- package/ShadersWGSL/glowMapMerge.fragment.js.map +1 -0
- package/ShadersWGSL/glowMapMerge.vertex.d.ts +5 -0
- package/ShadersWGSL/glowMapMerge.vertex.js +16 -0
- package/ShadersWGSL/glowMapMerge.vertex.js.map +1 -0
- package/ShadersWGSL/kernelBlur.fragment.d.ts +9 -0
- package/ShadersWGSL/kernelBlur.fragment.js +48 -0
- package/ShadersWGSL/kernelBlur.fragment.js.map +1 -0
- package/ShadersWGSL/kernelBlur.vertex.d.ts +7 -0
- package/ShadersWGSL/kernelBlur.vertex.js +21 -0
- package/ShadersWGSL/kernelBlur.vertex.js.map +1 -0
- package/ShadersWGSL/pass.fragment.d.ts +5 -0
- package/ShadersWGSL/pass.fragment.js +12 -0
- package/ShadersWGSL/pass.fragment.js.map +1 -0
- package/ShadersWGSL/passCube.fragment.d.ts +5 -0
- package/ShadersWGSL/passCube.fragment.js +31 -0
- package/ShadersWGSL/passCube.fragment.js.map +1 -0
- package/ShadersWGSL/rgbdDecode.fragment.d.ts +6 -0
- package/ShadersWGSL/rgbdDecode.fragment.js +14 -0
- package/ShadersWGSL/rgbdDecode.fragment.js.map +1 -0
- package/ShadersWGSL/rgbdEncode.fragment.d.ts +6 -0
- package/ShadersWGSL/rgbdEncode.fragment.js +14 -0
- package/ShadersWGSL/rgbdEncode.fragment.js.map +1 -0
- package/ShadersWGSL/shadowMap.fragment.d.ts +9 -0
- package/ShadersWGSL/shadowMap.fragment.js +39 -0
- package/ShadersWGSL/shadowMap.fragment.js.map +1 -0
- package/ShadersWGSL/shadowMap.vertex.d.ts +22 -0
- package/ShadersWGSL/shadowMap.vertex.js +89 -0
- package/ShadersWGSL/shadowMap.vertex.js.map +1 -0
- package/package.json +1 -1
package/Layers/index.d.ts
CHANGED
|
@@ -4,3 +4,13 @@ export * from "./glowLayer";
|
|
|
4
4
|
export * from "./highlightLayer";
|
|
5
5
|
export * from "./layer";
|
|
6
6
|
export * from "./layerSceneComponent";
|
|
7
|
+
export * from "../Shaders/glowMapGeneration.fragment";
|
|
8
|
+
export * from "../Shaders/glowMapGeneration.vertex";
|
|
9
|
+
export * from "../ShadersWGSL/glowMapGeneration.fragment";
|
|
10
|
+
export * from "../ShadersWGSL/glowMapGeneration.vertex";
|
|
11
|
+
export * from "../Shaders/glowMapMerge.fragment";
|
|
12
|
+
export * from "../Shaders/glowMapMerge.vertex";
|
|
13
|
+
export * from "../Shaders/glowBlurPostProcess.fragment";
|
|
14
|
+
export * from "../ShadersWGSL/glowMapMerge.fragment";
|
|
15
|
+
export * from "../ShadersWGSL/glowMapMerge.vertex";
|
|
16
|
+
export * from "../ShadersWGSL/glowBlurPostProcess.fragment";
|
package/Layers/index.js
CHANGED
|
@@ -4,4 +4,16 @@ export * from "./glowLayer.js";
|
|
|
4
4
|
export * from "./highlightLayer.js";
|
|
5
5
|
export * from "./layer.js";
|
|
6
6
|
export * from "./layerSceneComponent.js";
|
|
7
|
+
// EffectLayer
|
|
8
|
+
export * from "../Shaders/glowMapGeneration.fragment.js";
|
|
9
|
+
export * from "../Shaders/glowMapGeneration.vertex.js";
|
|
10
|
+
export * from "../ShadersWGSL/glowMapGeneration.fragment.js";
|
|
11
|
+
export * from "../ShadersWGSL/glowMapGeneration.vertex.js";
|
|
12
|
+
// Highlights
|
|
13
|
+
export * from "../Shaders/glowMapMerge.fragment.js";
|
|
14
|
+
export * from "../Shaders/glowMapMerge.vertex.js";
|
|
15
|
+
export * from "../Shaders/glowBlurPostProcess.fragment.js";
|
|
16
|
+
export * from "../ShadersWGSL/glowMapMerge.fragment.js";
|
|
17
|
+
export * from "../ShadersWGSL/glowMapMerge.vertex.js";
|
|
18
|
+
export * from "../ShadersWGSL/glowBlurPostProcess.fragment.js";
|
|
7
19
|
//# sourceMappingURL=index.js.map
|
package/Layers/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dev/core/src/Layers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC","sourcesContent":["export * from \"./effectLayer\";\r\nexport * from \"./effectLayerSceneComponent\";\r\nexport * from \"./glowLayer\";\r\nexport * from \"./highlightLayer\";\r\nexport * from \"./layer\";\r\nexport * from \"./layerSceneComponent\";\r\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dev/core/src/Layers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AAEtC,cAAc;AACd,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AAExD,aAAa;AACb,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6CAA6C,CAAC","sourcesContent":["export * from \"./effectLayer\";\r\nexport * from \"./effectLayerSceneComponent\";\r\nexport * from \"./glowLayer\";\r\nexport * from \"./highlightLayer\";\r\nexport * from \"./layer\";\r\nexport * from \"./layerSceneComponent\";\r\n\r\n// EffectLayer\r\nexport * from \"../Shaders/glowMapGeneration.fragment\";\r\nexport * from \"../Shaders/glowMapGeneration.vertex\";\r\nexport * from \"../ShadersWGSL/glowMapGeneration.fragment\";\r\nexport * from \"../ShadersWGSL/glowMapGeneration.vertex\";\r\n\r\n// Highlights\r\nexport * from \"../Shaders/glowMapMerge.fragment\";\r\nexport * from \"../Shaders/glowMapMerge.vertex\";\r\nexport * from \"../Shaders/glowBlurPostProcess.fragment\";\r\nexport * from \"../ShadersWGSL/glowMapMerge.fragment\";\r\nexport * from \"../ShadersWGSL/glowMapMerge.vertex\";\r\nexport * from \"../ShadersWGSL/glowBlurPostProcess.fragment\";\r\n"]}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
export * from "./shadowGenerator";
|
|
2
2
|
export * from "./cascadedShadowGenerator";
|
|
3
3
|
export * from "./shadowGeneratorSceneComponent";
|
|
4
|
+
export * from "../../ShadersWGSL/shadowMap.fragment";
|
|
5
|
+
export * from "../../ShadersWGSL/shadowMap.vertex";
|
|
6
|
+
export * from "../../ShadersWGSL/depthBoxBlur.fragment";
|
|
7
|
+
export * from "../../ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow";
|
|
8
|
+
export * from "../../Shaders/shadowMap.fragment";
|
|
9
|
+
export * from "../../Shaders/shadowMap.vertex";
|
|
10
|
+
export * from "../../Shaders/depthBoxBlur.fragment";
|
|
11
|
+
export * from "../../Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow";
|
package/Lights/Shadows/index.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
export * from "./shadowGenerator.js";
|
|
2
2
|
export * from "./cascadedShadowGenerator.js";
|
|
3
3
|
export * from "./shadowGeneratorSceneComponent.js";
|
|
4
|
+
// Blur postprocess
|
|
5
|
+
export * from "../../ShadersWGSL/shadowMap.fragment.js";
|
|
6
|
+
export * from "../../ShadersWGSL/shadowMap.vertex.js";
|
|
7
|
+
export * from "../../ShadersWGSL/depthBoxBlur.fragment.js";
|
|
8
|
+
export * from "../../ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js";
|
|
9
|
+
export * from "../../Shaders/shadowMap.fragment.js";
|
|
10
|
+
export * from "../../Shaders/shadowMap.vertex.js";
|
|
11
|
+
export * from "../../Shaders/depthBoxBlur.fragment.js";
|
|
12
|
+
export * from "../../Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js";
|
|
4
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../dev/core/src/Lights/Shadows/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC","sourcesContent":["export * from \"./shadowGenerator\";\r\nexport * from \"./cascadedShadowGenerator\";\r\nexport * from \"./shadowGeneratorSceneComponent\";\r\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../dev/core/src/Lights/Shadows/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAEhD,mBAAmB;AACnB,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yEAAyE,CAAC;AACxF,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qEAAqE,CAAC","sourcesContent":["export * from \"./shadowGenerator\";\r\nexport * from \"./cascadedShadowGenerator\";\r\nexport * from \"./shadowGeneratorSceneComponent\";\r\n\r\n// Blur postprocess\r\nexport * from \"../../ShadersWGSL/shadowMap.fragment\";\r\nexport * from \"../../ShadersWGSL/shadowMap.vertex\";\r\nexport * from \"../../ShadersWGSL/depthBoxBlur.fragment\";\r\nexport * from \"../../ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow\";\r\nexport * from \"../../Shaders/shadowMap.fragment\";\r\nexport * from \"../../Shaders/shadowMap.vertex\";\r\nexport * from \"../../Shaders/depthBoxBlur.fragment\";\r\nexport * from \"../../Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow\";\r\n"]}
|
|
@@ -13,11 +13,8 @@ import { PostProcess } from "../../PostProcesses/postProcess";
|
|
|
13
13
|
import { Observable } from "../../Misc/observable";
|
|
14
14
|
import type { UniformBuffer } from "../../Materials/uniformBuffer";
|
|
15
15
|
import type { Camera } from "../../Cameras/camera";
|
|
16
|
-
import "../../Shaders/shadowMap.fragment";
|
|
17
|
-
import "../../Shaders/shadowMap.vertex";
|
|
18
|
-
import "../../Shaders/depthBoxBlur.fragment";
|
|
19
|
-
import "../../Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow";
|
|
20
16
|
import type { BaseTexture } from "../../Materials/Textures/baseTexture";
|
|
17
|
+
import { ShaderLanguage } from "../../Materials/shaderLanguage.js";
|
|
21
18
|
/**
|
|
22
19
|
* Defines the options associated with the creation of a custom shader for a shadow generator.
|
|
23
20
|
*/
|
|
@@ -117,12 +114,19 @@ export interface IShadowGenerator {
|
|
|
117
114
|
* Default implementation IShadowGenerator.
|
|
118
115
|
* This is the main object responsible of generating shadows in the framework.
|
|
119
116
|
* Documentation: https://doc.babylonjs.com/features/featuresDeepDive/lights/shadows
|
|
117
|
+
* #IFYDRS#0: WebGL
|
|
118
|
+
* #IFYDRS#835: WebGPU
|
|
120
119
|
*/
|
|
121
120
|
export declare class ShadowGenerator implements IShadowGenerator {
|
|
122
121
|
/**
|
|
123
122
|
* Name of the shadow generator class
|
|
124
123
|
*/
|
|
125
124
|
static CLASSNAME: string;
|
|
125
|
+
/**
|
|
126
|
+
* Force all the shadow generators to compile to glsl even on WebGPU engines.
|
|
127
|
+
* False by default. This is mostly meant for backward compatibility.
|
|
128
|
+
*/
|
|
129
|
+
static ForceGLSL: boolean;
|
|
126
130
|
/**
|
|
127
131
|
* Shadow generator mode None: no filtering applied.
|
|
128
132
|
*/
|
|
@@ -477,6 +481,12 @@ export declare class ShadowGenerator implements IShadowGenerator {
|
|
|
477
481
|
* @returns the light generating the shadow
|
|
478
482
|
*/
|
|
479
483
|
getLight(): IShadowLight;
|
|
484
|
+
/** Shader language used by the generator */
|
|
485
|
+
protected _shaderLanguage: ShaderLanguage;
|
|
486
|
+
/**
|
|
487
|
+
* Gets the shader language used in this generator.
|
|
488
|
+
*/
|
|
489
|
+
get shaderLanguage(): ShaderLanguage;
|
|
480
490
|
/**
|
|
481
491
|
* If true the shadow map is generated by rendering the back face of the mesh instead of the front face.
|
|
482
492
|
* This can help with self-shadowing as the geometry making up the back of objects is slightly offset.
|
|
@@ -528,11 +538,14 @@ export declare class ShadowGenerator implements IShadowGenerator {
|
|
|
528
538
|
* @param usefullFloatFirst By default the generator will try to use half float textures but if you need precision (for self shadowing for instance), you can use this option to enforce full float texture.
|
|
529
539
|
* @param camera Camera associated with this shadow generator (default: null). If null, takes the scene active camera at the time we need to access it
|
|
530
540
|
* @param useRedTextureType Forces the generator to use a Red instead of a RGBA type for the shadow map texture format (default: false)
|
|
541
|
+
* @param forceGLSL defines a boolean indicating if the shader must be compiled in GLSL even if we are using WebGPU
|
|
531
542
|
*/
|
|
532
|
-
constructor(mapSize: number, light: IShadowLight, usefullFloatFirst?: boolean, camera?: Nullable<Camera>, useRedTextureType?: boolean);
|
|
543
|
+
constructor(mapSize: number, light: IShadowLight, usefullFloatFirst?: boolean, camera?: Nullable<Camera>, useRedTextureType?: boolean, forceGLSL?: boolean);
|
|
533
544
|
protected _initializeGenerator(): void;
|
|
534
545
|
protected _createTargetRenderTexture(): void;
|
|
535
546
|
protected _initializeShadowMap(): void;
|
|
547
|
+
private _shadersLoaded;
|
|
548
|
+
private _initShaderSourceAsync;
|
|
536
549
|
protected _initializeBlurRTTAndPostProcesses(): void;
|
|
537
550
|
protected _renderForShadowMap(opaqueSubMeshes: SmartArray<SubMesh>, alphaTestSubMeshes: SmartArray<SubMesh>, transparentSubMeshes: SmartArray<SubMesh>, depthOnlySubMeshes: SmartArray<SubMesh>): void;
|
|
538
551
|
protected _bindCustomEffectForRenderSubMeshForShadowMap(subMesh: SubMesh, effect: Effect, mesh: AbstractMesh): void;
|
|
@@ -12,16 +12,14 @@ import { _WarnImport } from "../../Misc/devTools.js";
|
|
|
12
12
|
import { EffectFallbacks } from "../../Materials/effectFallbacks.js";
|
|
13
13
|
import { RenderingManager } from "../../Rendering/renderingManager.js";
|
|
14
14
|
import { DrawWrapper } from "../../Materials/drawWrapper.js";
|
|
15
|
-
import "../../Shaders/shadowMap.fragment.js";
|
|
16
|
-
import "../../Shaders/shadowMap.vertex.js";
|
|
17
|
-
import "../../Shaders/depthBoxBlur.fragment.js";
|
|
18
|
-
import "../../Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js";
|
|
19
15
|
import { addClipPlaneUniforms, bindClipPlane, prepareStringDefinesForClipPlanes } from "../../Materials/clipPlaneMaterialHelper.js";
|
|
20
16
|
import { BindMorphTargetParameters, BindSceneUniformBuffer, PrepareAttributesForMorphTargetsInfluencers, PushAttributesForInstances, } from "../../Materials/materialHelper.functions.js";
|
|
21
17
|
/**
|
|
22
18
|
* Default implementation IShadowGenerator.
|
|
23
19
|
* This is the main object responsible of generating shadows in the framework.
|
|
24
20
|
* Documentation: https://doc.babylonjs.com/features/featuresDeepDive/lights/shadows
|
|
21
|
+
* #IFYDRS#0: WebGL
|
|
22
|
+
* #IFYDRS#835: WebGPU
|
|
25
23
|
*/
|
|
26
24
|
export class ShadowGenerator {
|
|
27
25
|
/**
|
|
@@ -465,6 +463,12 @@ export class ShadowGenerator {
|
|
|
465
463
|
getLight() {
|
|
466
464
|
return this._light;
|
|
467
465
|
}
|
|
466
|
+
/**
|
|
467
|
+
* Gets the shader language used in this generator.
|
|
468
|
+
*/
|
|
469
|
+
get shaderLanguage() {
|
|
470
|
+
return this._shaderLanguage;
|
|
471
|
+
}
|
|
468
472
|
_getCamera() {
|
|
469
473
|
return this._camera ?? this._scene.activeCamera;
|
|
470
474
|
}
|
|
@@ -489,8 +493,9 @@ export class ShadowGenerator {
|
|
|
489
493
|
* @param usefullFloatFirst By default the generator will try to use half float textures but if you need precision (for self shadowing for instance), you can use this option to enforce full float texture.
|
|
490
494
|
* @param camera Camera associated with this shadow generator (default: null). If null, takes the scene active camera at the time we need to access it
|
|
491
495
|
* @param useRedTextureType Forces the generator to use a Red instead of a RGBA type for the shadow map texture format (default: false)
|
|
496
|
+
* @param forceGLSL defines a boolean indicating if the shader must be compiled in GLSL even if we are using WebGPU
|
|
492
497
|
*/
|
|
493
|
-
constructor(mapSize, light, usefullFloatFirst, camera, useRedTextureType) {
|
|
498
|
+
constructor(mapSize, light, usefullFloatFirst, camera, useRedTextureType, forceGLSL = false) {
|
|
494
499
|
/**
|
|
495
500
|
* Observable triggered before the shadow is rendered. Can be used to update internal effect state
|
|
496
501
|
*/
|
|
@@ -537,6 +542,8 @@ export class ShadowGenerator {
|
|
|
537
542
|
* Controls the extent to which the shadows fade out at the edge of the frustum
|
|
538
543
|
*/
|
|
539
544
|
this.frustumEdgeFalloff = 0;
|
|
545
|
+
/** Shader language used by the generator */
|
|
546
|
+
this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;
|
|
540
547
|
/**
|
|
541
548
|
* If true the shadow map is generated by rendering the back face of the mesh instead of the front face.
|
|
542
549
|
* This can help with self-shadowing as the geometry making up the back of objects is slightly offset.
|
|
@@ -552,11 +559,13 @@ export class ShadowGenerator {
|
|
|
552
559
|
this._currentFaceIndex = 0;
|
|
553
560
|
this._currentFaceIndexCache = 0;
|
|
554
561
|
this._defaultTextureMatrix = Matrix.Identity();
|
|
562
|
+
this._shadersLoaded = false;
|
|
555
563
|
this._mapSize = mapSize;
|
|
556
564
|
this._light = light;
|
|
557
565
|
this._scene = light.getScene();
|
|
558
566
|
this._camera = camera ?? null;
|
|
559
567
|
this._useRedTextureType = !!useRedTextureType;
|
|
568
|
+
this._initShaderSourceAsync(forceGLSL);
|
|
560
569
|
let shadowGenerators = light._shadowGenerators;
|
|
561
570
|
if (!shadowGenerators) {
|
|
562
571
|
shadowGenerators = light._shadowGenerators = new Map();
|
|
@@ -701,6 +710,27 @@ export class ShadowGenerator {
|
|
|
701
710
|
this._shadowMap.setRenderingAutoClearDepthStencil(i, false);
|
|
702
711
|
}
|
|
703
712
|
}
|
|
713
|
+
async _initShaderSourceAsync(forceGLSL = false) {
|
|
714
|
+
const engine = this._scene.getEngine();
|
|
715
|
+
if (engine.isWebGPU && !forceGLSL && !ShadowGenerator.ForceGLSL) {
|
|
716
|
+
this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;
|
|
717
|
+
await Promise.all([
|
|
718
|
+
import("../../ShadersWGSL/shadowMap.fragment.js"),
|
|
719
|
+
import("../../ShadersWGSL/shadowMap.vertex.js"),
|
|
720
|
+
import("../../ShadersWGSL/depthBoxBlur.fragment.js"),
|
|
721
|
+
import("../../ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js"),
|
|
722
|
+
]);
|
|
723
|
+
}
|
|
724
|
+
else {
|
|
725
|
+
await Promise.all([
|
|
726
|
+
import("../../Shaders/shadowMap.fragment.js"),
|
|
727
|
+
import("../../Shaders/shadowMap.vertex.js"),
|
|
728
|
+
import("../../Shaders/depthBoxBlur.fragment.js"),
|
|
729
|
+
import("../../Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js"),
|
|
730
|
+
]);
|
|
731
|
+
}
|
|
732
|
+
this._shadersLoaded = true;
|
|
733
|
+
}
|
|
704
734
|
_initializeBlurRTTAndPostProcesses() {
|
|
705
735
|
const engine = this._scene.getEngine();
|
|
706
736
|
const targetSize = this._mapSize / this.blurScale;
|
|
@@ -1011,6 +1041,9 @@ export class ShadowGenerator {
|
|
|
1011
1041
|
* @returns true if ready otherwise, false
|
|
1012
1042
|
*/
|
|
1013
1043
|
isReady(subMesh, useInstances, isTransparent) {
|
|
1044
|
+
if (!this._shadersLoaded) {
|
|
1045
|
+
return false;
|
|
1046
|
+
}
|
|
1014
1047
|
const material = subMesh.getMaterial(), shadowDepthWrapper = material?.shadowDepthWrapper;
|
|
1015
1048
|
this._opacityTexture = null;
|
|
1016
1049
|
if (!material) {
|
|
@@ -1193,6 +1226,7 @@ export class ShadowGenerator {
|
|
|
1193
1226
|
onCompiled: null,
|
|
1194
1227
|
onError: null,
|
|
1195
1228
|
indexParameters: { maxSimultaneousMorphTargets: morphInfluencers },
|
|
1229
|
+
shaderLanguage: this._shaderLanguage,
|
|
1196
1230
|
}, engine);
|
|
1197
1231
|
subMeshEffect.setEffect(effect, cachedDefines);
|
|
1198
1232
|
}
|
|
@@ -1590,6 +1624,11 @@ export class ShadowGenerator {
|
|
|
1590
1624
|
* Name of the shadow generator class
|
|
1591
1625
|
*/
|
|
1592
1626
|
ShadowGenerator.CLASSNAME = "ShadowGenerator";
|
|
1627
|
+
/**
|
|
1628
|
+
* Force all the shadow generators to compile to glsl even on WebGPU engines.
|
|
1629
|
+
* False by default. This is mostly meant for backward compatibility.
|
|
1630
|
+
*/
|
|
1631
|
+
ShadowGenerator.ForceGLSL = false;
|
|
1593
1632
|
/**
|
|
1594
1633
|
* Shadow generator mode None: no filtering applied.
|
|
1595
1634
|
*/
|