@babylonjs/core 7.42.0 → 7.43.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/Animations/animation.js +1 -1
- package/Animations/animation.js.map +1 -1
- package/Culling/Helper/computeShaderBoundingHelper.js +3 -4
- package/Culling/Helper/computeShaderBoundingHelper.js.map +1 -1
- package/Culling/Helper/transformFeedbackBoundingHelper.js +27 -64
- package/Culling/Helper/transformFeedbackBoundingHelper.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.js +3 -2
- package/Engines/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -0
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -0
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.js +6 -1
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.d.ts +64 -0
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js +147 -0
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +0 -15
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.d.ts +4 -0
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +9 -0
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.d.ts +1 -6
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js +0 -13
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.js +0 -1
- package/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/index.d.ts +1 -0
- package/FrameGraph/Node/Blocks/index.js +1 -0
- package/FrameGraph/Node/Blocks/index.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraphBlock.js +17 -0
- package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
- package/FrameGraph/Passes/renderPass.d.ts +0 -8
- package/FrameGraph/Passes/renderPass.js +0 -10
- package/FrameGraph/Passes/renderPass.js.map +1 -1
- package/FrameGraph/Tasks/Layers/glowLayerTask.d.ts +57 -0
- package/FrameGraph/Tasks/Layers/glowLayerTask.js +173 -0
- package/FrameGraph/Tasks/Layers/glowLayerTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js +7 -0
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.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/depthOfFieldMergeTask.js +5 -5
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js +12 -4
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +0 -8
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +1 -17
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +3 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +4 -6
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +20 -22
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.d.ts +7 -1
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js +21 -5
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/taaObjectRendererTask.js +4 -6
- package/FrameGraph/Tasks/Rendering/taaObjectRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Texture/copyToTextureTask.js +1 -1
- package/FrameGraph/Tasks/Texture/copyToTextureTask.js.map +1 -1
- package/FrameGraph/frameGraph.js +22 -11
- package/FrameGraph/frameGraph.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.d.ts +2 -1
- package/FrameGraph/frameGraphRenderContext.js +2 -1
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/frameGraphTask.d.ts +11 -1
- package/FrameGraph/frameGraphTask.js +8 -0
- package/FrameGraph/frameGraphTask.js.map +1 -1
- package/FrameGraph/frameGraphTextureManager.d.ts +8 -2
- package/FrameGraph/frameGraphTextureManager.js +10 -4
- package/FrameGraph/frameGraphTextureManager.js.map +1 -1
- package/FrameGraph/index.d.ts +1 -0
- package/FrameGraph/index.js +1 -0
- package/FrameGraph/index.js.map +1 -1
- package/Layers/effectLayer.d.ts +32 -33
- package/Layers/effectLayer.js +144 -530
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +14 -41
- package/Layers/glowLayer.js +92 -178
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +0 -1
- package/Layers/highlightLayer.js +0 -1
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/index.d.ts +2 -0
- package/Layers/index.js +2 -0
- package/Layers/index.js.map +1 -1
- package/Layers/thinEffectLayer.d.ts +230 -0
- package/Layers/thinEffectLayer.js +734 -0
- package/Layers/thinEffectLayer.js.map +1 -0
- package/Layers/thinGlowLayer.d.ts +141 -0
- package/Layers/thinGlowLayer.js +292 -0
- package/Layers/thinGlowLayer.js.map +1 -0
- package/Lights/Shadows/shadowGenerator.js +40 -19
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js +17 -11
- package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js.map +1 -1
- package/Materials/GreasedLine/greasedLinePluginMaterialShadersWGSL.js +18 -12
- package/Materials/GreasedLine/greasedLinePluginMaterialShadersWGSL.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.js +34 -2
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +34 -24
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +10 -0
- package/Materials/Node/nodeMaterial.js +12 -0
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +5 -0
- package/Materials/PBR/pbrBaseMaterial.js +5 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +12 -0
- package/Materials/Textures/renderTargetTexture.js +29 -8
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/materialHelper.functions.d.ts +17 -1
- package/Materials/materialHelper.functions.js +76 -4
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/shaderMaterial.d.ts +5 -4
- package/Materials/shaderMaterial.js +28 -51
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/standardMaterial.d.ts +5 -0
- package/Materials/standardMaterial.js +5 -0
- package/Materials/standardMaterial.js.map +1 -1
- package/Meshes/Builders/greasedLineBuilder.d.ts +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +22 -22
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineBaseMesh.js +1 -0
- package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +1 -2
- package/Meshes/abstractMesh.js +1 -2
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/linesMesh.js +2 -2
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +30 -3
- package/Meshes/mesh.js +56 -29
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/subMesh.js +16 -3
- package/Meshes/subMesh.js.map +1 -1
- package/Misc/fileTools.js +14 -7
- package/Misc/fileTools.js.map +1 -1
- package/Morph/morphTargetManager.d.ts +20 -0
- package/Morph/morphTargetManager.js +31 -1
- package/Morph/morphTargetManager.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js +15 -16
- package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
- package/Rendering/depthRenderer.js +13 -15
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.js +13 -15
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/objectRenderer.d.ts +9 -2
- package/Rendering/objectRenderer.js +44 -7
- package/Rendering/objectRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.js +13 -15
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js +16 -4
- package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +17 -5
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/assetContainer.d.ts +43 -0
- package/assetContainer.js +67 -0
- package/assetContainer.js.map +1 -1
- package/package.json +1 -1
- package/scene.js +10 -3
- package/scene.js.map +1 -1
|
@@ -13,7 +13,7 @@ import { EffectFallbacks } from "../../Materials/effectFallbacks.js";
|
|
|
13
13
|
import { RenderingManager } from "../../Rendering/renderingManager.js";
|
|
14
14
|
import { DrawWrapper } from "../../Materials/drawWrapper.js";
|
|
15
15
|
import { addClipPlaneUniforms, bindClipPlane, prepareStringDefinesForClipPlanes } from "../../Materials/clipPlaneMaterialHelper.js";
|
|
16
|
-
import { BindMorphTargetParameters, BindSceneUniformBuffer,
|
|
16
|
+
import { BindMorphTargetParameters, BindSceneUniformBuffer, PrepareDefinesAndAttributesForMorphTargets, PushAttributesForInstances, } from "../../Materials/materialHelper.functions.js";
|
|
17
17
|
/**
|
|
18
18
|
* Default implementation IShadowGenerator.
|
|
19
19
|
* This is the main object responsible of generating shadows in the framework.
|
|
@@ -636,11 +636,32 @@ export class ShadowGenerator {
|
|
|
636
636
|
}
|
|
637
637
|
// Custom render function.
|
|
638
638
|
this._shadowMap.customRenderFunction = (opaqueSubMeshes, alphaTestSubMeshes, transparentSubMeshes, depthOnlySubMeshes) => this._renderForShadowMap(opaqueSubMeshes, alphaTestSubMeshes, transparentSubMeshes, depthOnlySubMeshes);
|
|
639
|
-
//
|
|
639
|
+
// When preWarm is false, forces the mesh is ready function to true as we are double checking it
|
|
640
640
|
// in the custom render function. Also it prevents side effects and useless
|
|
641
641
|
// shader variations in DEPTHPREPASS mode.
|
|
642
|
-
this._shadowMap.customIsReadyFunction = () => {
|
|
643
|
-
|
|
642
|
+
this._shadowMap.customIsReadyFunction = (mesh, _refreshRate, preWarm) => {
|
|
643
|
+
if (!preWarm || !mesh.subMeshes) {
|
|
644
|
+
return true;
|
|
645
|
+
}
|
|
646
|
+
let isReady = true;
|
|
647
|
+
for (const subMesh of mesh.subMeshes) {
|
|
648
|
+
const renderingMesh = subMesh.getRenderingMesh();
|
|
649
|
+
const scene = this._scene;
|
|
650
|
+
const engine = scene.getEngine();
|
|
651
|
+
const material = subMesh.getMaterial();
|
|
652
|
+
if (!material || subMesh.verticesCount === 0 || (this.customAllowRendering && !this.customAllowRendering(subMesh))) {
|
|
653
|
+
continue;
|
|
654
|
+
}
|
|
655
|
+
const batch = renderingMesh._getInstancesRenderList(subMesh._id, !!subMesh.getReplacementMesh());
|
|
656
|
+
if (batch.mustReturn) {
|
|
657
|
+
continue;
|
|
658
|
+
}
|
|
659
|
+
const hardwareInstancedRendering = engine.getCaps().instancedArrays &&
|
|
660
|
+
((batch.visibleInstances[subMesh._id] !== null && batch.visibleInstances[subMesh._id] !== undefined) || renderingMesh.hasThinInstances);
|
|
661
|
+
const isTransparent = material.needAlphaBlendingForMesh(renderingMesh);
|
|
662
|
+
isReady = this.isReady(subMesh, hardwareInstancedRendering, isTransparent) && isReady;
|
|
663
|
+
}
|
|
664
|
+
return isReady;
|
|
644
665
|
};
|
|
645
666
|
const engine = this._scene.getEngine();
|
|
646
667
|
this._shadowMap.onBeforeBindObservable.add(() => {
|
|
@@ -1060,10 +1081,14 @@ export class ShadowGenerator {
|
|
|
1060
1081
|
let cachedDefines = subMeshEffect.defines;
|
|
1061
1082
|
const attribs = [VertexBuffer.PositionKind];
|
|
1062
1083
|
const mesh = subMesh.getMesh();
|
|
1084
|
+
let useNormal = false;
|
|
1085
|
+
let uv1 = false;
|
|
1086
|
+
let uv2 = false;
|
|
1063
1087
|
// Normal bias.
|
|
1064
1088
|
if (this.normalBias && mesh.isVerticesDataPresent(VertexBuffer.NormalKind)) {
|
|
1065
1089
|
attribs.push(VertexBuffer.NormalKind);
|
|
1066
1090
|
defines.push("#define NORMAL");
|
|
1091
|
+
useNormal = true;
|
|
1067
1092
|
if (mesh.nonUniformScaling) {
|
|
1068
1093
|
defines.push("#define NONUNIFORMSCALING");
|
|
1069
1094
|
}
|
|
@@ -1089,11 +1114,13 @@ export class ShadowGenerator {
|
|
|
1089
1114
|
if (mesh.isVerticesDataPresent(VertexBuffer.UVKind)) {
|
|
1090
1115
|
attribs.push(VertexBuffer.UVKind);
|
|
1091
1116
|
defines.push("#define UV1");
|
|
1117
|
+
uv1 = true;
|
|
1092
1118
|
}
|
|
1093
1119
|
if (mesh.isVerticesDataPresent(VertexBuffer.UV2Kind)) {
|
|
1094
1120
|
if (this._opacityTexture.coordinatesIndex === 1) {
|
|
1095
1121
|
attribs.push(VertexBuffer.UV2Kind);
|
|
1096
1122
|
defines.push("#define UV2");
|
|
1123
|
+
uv2 = true;
|
|
1097
1124
|
}
|
|
1098
1125
|
}
|
|
1099
1126
|
}
|
|
@@ -1123,20 +1150,14 @@ export class ShadowGenerator {
|
|
|
1123
1150
|
defines.push("#define NUM_BONE_INFLUENCERS 0");
|
|
1124
1151
|
}
|
|
1125
1152
|
// Morph targets
|
|
1126
|
-
const
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
if (manager.isUsingTextureForTargets) {
|
|
1135
|
-
defines.push("#define MORPHTARGETS_TEXTURE");
|
|
1136
|
-
}
|
|
1137
|
-
PrepareAttributesForMorphTargetsInfluencers(attribs, mesh, morphInfluencers);
|
|
1138
|
-
}
|
|
1139
|
-
}
|
|
1153
|
+
const numMorphInfluencers = mesh.morphTargetManager
|
|
1154
|
+
? PrepareDefinesAndAttributesForMorphTargets(mesh.morphTargetManager, defines, attribs, mesh, true, // usePositionMorph
|
|
1155
|
+
useNormal, // useNormalMorph
|
|
1156
|
+
false, // useTangentMorph
|
|
1157
|
+
uv1, // useUVMorph
|
|
1158
|
+
uv2 // useUV2Morph
|
|
1159
|
+
)
|
|
1160
|
+
: 0;
|
|
1140
1161
|
// ClipPlanes
|
|
1141
1162
|
prepareStringDefinesForClipPlanes(material, this._scene, defines);
|
|
1142
1163
|
// Instances
|
|
@@ -1226,7 +1247,7 @@ export class ShadowGenerator {
|
|
|
1226
1247
|
fallbacks: fallbacks,
|
|
1227
1248
|
onCompiled: null,
|
|
1228
1249
|
onError: null,
|
|
1229
|
-
indexParameters: { maxSimultaneousMorphTargets:
|
|
1250
|
+
indexParameters: { maxSimultaneousMorphTargets: numMorphInfluencers },
|
|
1230
1251
|
shaderLanguage: this._shaderLanguage,
|
|
1231
1252
|
}, engine);
|
|
1232
1253
|
subMeshEffect.setEffect(effect, cachedDefines);
|