@babylonjs/core 5.0.0-alpha.60 → 5.0.0-alpha.61

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.
Files changed (332) hide show
  1. package/Animations/animation.d.ts +20 -0
  2. package/Animations/animation.js +57 -8
  3. package/Animations/animation.js.map +1 -1
  4. package/Animations/animationKey.d.ts +4 -0
  5. package/Animations/animationKey.js +4 -0
  6. package/Animations/animationKey.js.map +1 -1
  7. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +130 -0
  8. package/BakedVertexAnimation/bakedVertexAnimationManager.js +134 -0
  9. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -0
  10. package/BakedVertexAnimation/index.d.ts +2 -0
  11. package/BakedVertexAnimation/index.js +3 -0
  12. package/BakedVertexAnimation/index.js.map +1 -0
  13. package/BakedVertexAnimation/vertexAnimationBaker.d.ts +65 -0
  14. package/BakedVertexAnimation/vertexAnimationBaker.js +155 -0
  15. package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -0
  16. package/Behaviors/Cameras/framingBehavior.d.ts +5 -0
  17. package/Behaviors/Cameras/framingBehavior.js +8 -1
  18. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  19. package/Bones/bone.d.ts +3 -1
  20. package/Bones/bone.js +4 -1
  21. package/Bones/bone.js.map +1 -1
  22. package/Cameras/Inputs/BaseCameraPointersInput.js +4 -6
  23. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  24. package/Cameras/Inputs/flyCameraMouseInput.js +4 -4
  25. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  26. package/Cameras/Inputs/freeCameraMouseInput.js +4 -4
  27. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  28. package/Cameras/camera.js +7 -1
  29. package/Cameras/camera.js.map +1 -1
  30. package/Cameras/targetCamera.js +1 -1
  31. package/Cameras/targetCamera.js.map +1 -1
  32. package/Culling/boundingBox.d.ts +4 -0
  33. package/Culling/boundingBox.js +8 -0
  34. package/Culling/boundingBox.js.map +1 -1
  35. package/Debug/physicsViewer.js +1 -1
  36. package/Debug/physicsViewer.js.map +1 -1
  37. package/Debug/skeletonViewer.js +2 -2
  38. package/Debug/skeletonViewer.js.map +1 -1
  39. package/DeviceInput/Implementations/nativeDeviceInputWrapper.d.ts +6 -1
  40. package/DeviceInput/Implementations/nativeDeviceInputWrapper.js +16 -1
  41. package/DeviceInput/Implementations/nativeDeviceInputWrapper.js.map +1 -1
  42. package/DeviceInput/Implementations/webDeviceInputSystem.js +1 -1
  43. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
  44. package/DeviceInput/deviceInputSystem.js +6 -1
  45. package/DeviceInput/deviceInputSystem.js.map +1 -1
  46. package/Engines/Extensions/engine.multiview.js +17 -6
  47. package/Engines/Extensions/engine.multiview.js.map +1 -1
  48. package/Engines/WebGPU/Extensions/engine.query.js +19 -3
  49. package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
  50. package/Engines/WebGPU/webgpuBundleList.d.ts +13 -0
  51. package/Engines/WebGPU/webgpuBundleList.js +27 -0
  52. package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
  53. package/Engines/WebGPU/webgpuHardwareTexture.d.ts +4 -0
  54. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  55. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +6 -0
  56. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +6 -0
  57. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  58. package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +27 -0
  59. package/Engines/WebGPU/webgpuSnapshotRendering.js +107 -0
  60. package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -0
  61. package/Engines/WebGPU/webgpuTextureHelper.d.ts +2 -2
  62. package/Engines/WebGPU/webgpuTextureHelper.js +41 -18
  63. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  64. package/Engines/constants.d.ts +2 -0
  65. package/Engines/constants.js +2 -0
  66. package/Engines/constants.js.map +1 -1
  67. package/Engines/engine.d.ts +12 -1
  68. package/Engines/engine.js +33 -0
  69. package/Engines/engine.js.map +1 -1
  70. package/Engines/engineFeatures.d.ts +2 -0
  71. package/Engines/engineFeatures.js.map +1 -1
  72. package/Engines/index.d.ts +1 -0
  73. package/Engines/index.js +1 -0
  74. package/Engines/index.js.map +1 -1
  75. package/Engines/nativeEngine.js +1 -0
  76. package/Engines/nativeEngine.js.map +1 -1
  77. package/Engines/nullEngine.js +1 -0
  78. package/Engines/nullEngine.js.map +1 -1
  79. package/Engines/thinEngine.d.ts +0 -11
  80. package/Engines/thinEngine.js +12 -40
  81. package/Engines/thinEngine.js.map +1 -1
  82. package/Engines/webgpuEngine.d.ts +6 -6
  83. package/Engines/webgpuEngine.js +26 -67
  84. package/Engines/webgpuEngine.js.map +1 -1
  85. package/Helpers/sceneHelpers.d.ts +3 -3
  86. package/Helpers/sceneHelpers.js +1 -2
  87. package/Helpers/sceneHelpers.js.map +1 -1
  88. package/Inputs/scene.inputManager.js +12 -14
  89. package/Inputs/scene.inputManager.js.map +1 -1
  90. package/Layers/effectLayer.d.ts +13 -1
  91. package/Layers/effectLayer.js +115 -65
  92. package/Layers/effectLayer.js.map +1 -1
  93. package/Layers/highlightLayer.d.ts +2 -1
  94. package/Layers/highlightLayer.js +6 -3
  95. package/Layers/highlightLayer.js.map +1 -1
  96. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -0
  97. package/Lights/Shadows/cascadedShadowGenerator.js +14 -0
  98. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  99. package/Lights/Shadows/shadowGenerator.d.ts +4 -0
  100. package/Lights/Shadows/shadowGenerator.js +31 -3
  101. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  102. package/Lights/light.js +7 -1
  103. package/Lights/light.js.map +1 -1
  104. package/Loading/Plugins/babylonFileLoader.js +17 -4
  105. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  106. package/Materials/Background/backgroundMaterial.js +1 -0
  107. package/Materials/Background/backgroundMaterial.js.map +1 -1
  108. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +10 -0
  109. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +31 -0
  110. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  111. package/Materials/Node/Blocks/Fragment/index.d.ts +1 -0
  112. package/Materials/Node/Blocks/Fragment/index.js +1 -0
  113. package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
  114. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.d.ts +41 -0
  115. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +130 -0
  116. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -0
  117. package/Materials/Node/Blocks/Input/inputBlock.js +1 -1
  118. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  119. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.d.ts +1 -0
  120. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +15 -0
  121. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  122. package/Materials/Node/Blocks/index.d.ts +1 -0
  123. package/Materials/Node/Blocks/index.js +1 -0
  124. package/Materials/Node/Blocks/index.js.map +1 -1
  125. package/Materials/Node/Blocks/vectorMergerBlock.js +4 -4
  126. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  127. package/Materials/Node/Blocks/voronoiNoiseBlock.d.ts +39 -0
  128. package/Materials/Node/Blocks/voronoiNoiseBlock.js +107 -0
  129. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -0
  130. package/Materials/Node/Blocks/worleyNoise3DBlock.d.ts +8 -0
  131. package/Materials/Node/Blocks/worleyNoise3DBlock.js +34 -2
  132. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  133. package/Materials/Node/nodeMaterial.d.ts +1 -0
  134. package/Materials/Node/nodeMaterial.js +2 -0
  135. package/Materials/Node/nodeMaterial.js.map +1 -1
  136. package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +5 -0
  137. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  138. package/Materials/PBR/pbrBaseMaterial.d.ts +2 -0
  139. package/Materials/PBR/pbrBaseMaterial.js +11 -4
  140. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  141. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +11 -0
  142. package/Materials/PBR/pbrSubSurfaceConfiguration.js +18 -3
  143. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  144. package/Materials/Textures/hdrCubeTexture.d.ts +9 -0
  145. package/Materials/Textures/hdrCubeTexture.js +21 -5
  146. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  147. package/Materials/Textures/mirrorTexture.d.ts +2 -0
  148. package/Materials/Textures/mirrorTexture.js +13 -0
  149. package/Materials/Textures/mirrorTexture.js.map +1 -1
  150. package/Materials/imageProcessingConfiguration.d.ts +16 -1
  151. package/Materials/imageProcessingConfiguration.js +31 -0
  152. package/Materials/imageProcessingConfiguration.js.map +1 -1
  153. package/Materials/materialHelper.d.ts +15 -1
  154. package/Materials/materialHelper.js +40 -3
  155. package/Materials/materialHelper.js.map +1 -1
  156. package/Materials/pushMaterial.d.ts +2 -2
  157. package/Materials/pushMaterial.js +7 -3
  158. package/Materials/pushMaterial.js.map +1 -1
  159. package/Materials/shaderMaterial.d.ts +6 -5
  160. package/Materials/shaderMaterial.js +58 -28
  161. package/Materials/shaderMaterial.js.map +1 -1
  162. package/Materials/shadowDepthWrapper.js +7 -7
  163. package/Materials/shadowDepthWrapper.js.map +1 -1
  164. package/Materials/standardMaterial.d.ts +2 -0
  165. package/Materials/standardMaterial.js +11 -1
  166. package/Materials/standardMaterial.js.map +1 -1
  167. package/Materials/uniformBuffer.js +1 -2
  168. package/Materials/uniformBuffer.js.map +1 -1
  169. package/Maths/math.color.d.ts +20 -0
  170. package/Maths/math.color.js +45 -2
  171. package/Maths/math.color.js.map +1 -1
  172. package/Maths/math.vector.d.ts +2 -1
  173. package/Maths/math.vector.js +14 -3
  174. package/Maths/math.vector.js.map +1 -1
  175. package/Meshes/Builders/boxBuilder.d.ts +1 -1
  176. package/Meshes/Builders/boxBuilder.js +1 -0
  177. package/Meshes/Builders/boxBuilder.js.map +1 -1
  178. package/Meshes/Builders/cylinderBuilder.d.ts +17 -17
  179. package/Meshes/Builders/cylinderBuilder.js +1 -0
  180. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  181. package/Meshes/Builders/discBuilder.d.ts +1 -1
  182. package/Meshes/Builders/discBuilder.js +1 -0
  183. package/Meshes/Builders/discBuilder.js.map +1 -1
  184. package/Meshes/Builders/groundBuilder.d.ts +8 -8
  185. package/Meshes/Builders/groundBuilder.js +2 -0
  186. package/Meshes/Builders/groundBuilder.js.map +1 -1
  187. package/Meshes/Builders/hemisphereBuilder.d.ts +4 -4
  188. package/Meshes/Builders/hemisphereBuilder.js +1 -0
  189. package/Meshes/Builders/hemisphereBuilder.js.map +1 -1
  190. package/Meshes/Builders/icoSphereBuilder.d.ts +1 -1
  191. package/Meshes/Builders/icoSphereBuilder.js +1 -0
  192. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  193. package/Meshes/Builders/planeBuilder.d.ts +1 -1
  194. package/Meshes/Builders/planeBuilder.js +1 -0
  195. package/Meshes/Builders/planeBuilder.js.map +1 -1
  196. package/Meshes/Builders/polyhedronBuilder.d.ts +1 -1
  197. package/Meshes/Builders/polyhedronBuilder.js +1 -0
  198. package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
  199. package/Meshes/Builders/sphereBuilder.d.ts +1 -1
  200. package/Meshes/Builders/sphereBuilder.js +1 -0
  201. package/Meshes/Builders/sphereBuilder.js.map +1 -1
  202. package/Meshes/Builders/torusBuilder.d.ts +8 -8
  203. package/Meshes/Builders/torusBuilder.js +1 -0
  204. package/Meshes/Builders/torusBuilder.js.map +1 -1
  205. package/Meshes/Builders/torusKnotBuilder.d.ts +11 -11
  206. package/Meshes/Builders/torusKnotBuilder.js +1 -0
  207. package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
  208. package/Meshes/abstractMesh.d.ts +22 -2
  209. package/Meshes/abstractMesh.js +55 -6
  210. package/Meshes/abstractMesh.js.map +1 -1
  211. package/Meshes/geometry.d.ts +3 -0
  212. package/Meshes/geometry.js +13 -5
  213. package/Meshes/geometry.js.map +1 -1
  214. package/Meshes/linesMesh.d.ts +0 -2
  215. package/Meshes/linesMesh.js +3 -35
  216. package/Meshes/linesMesh.js.map +1 -1
  217. package/Meshes/mesh.js +4 -4
  218. package/Meshes/mesh.js.map +1 -1
  219. package/Meshes/thinInstanceMesh.js +6 -5
  220. package/Meshes/thinInstanceMesh.js.map +1 -1
  221. package/Meshes/transformNode.d.ts +8 -8
  222. package/Meshes/transformNode.js +25 -17
  223. package/Meshes/transformNode.js.map +1 -1
  224. package/Misc/basis.d.ts +2 -2
  225. package/Misc/basis.js +19 -4
  226. package/Misc/basis.js.map +1 -1
  227. package/Misc/sceneSerializer.js +0 -3
  228. package/Misc/sceneSerializer.js.map +1 -1
  229. package/Misc/tools.d.ts +2 -4
  230. package/Misc/tools.js +6 -10
  231. package/Misc/tools.js.map +1 -1
  232. package/Particles/particleSystem.js +19 -16
  233. package/Particles/particleSystem.js.map +1 -1
  234. package/Particles/solidParticleSystem.js +29 -5
  235. package/Particles/solidParticleSystem.js.map +1 -1
  236. package/Physics/Plugins/ammoJSPlugin.js +10 -8
  237. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  238. package/PostProcesses/imageProcessingPostProcess.js +1 -0
  239. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  240. package/Probes/reflectionProbe.d.ts +2 -0
  241. package/Probes/reflectionProbe.js +21 -0
  242. package/Probes/reflectionProbe.js.map +1 -1
  243. package/Rendering/boundingBoxRenderer.d.ts +3 -0
  244. package/Rendering/boundingBoxRenderer.js +49 -14
  245. package/Rendering/boundingBoxRenderer.js.map +1 -1
  246. package/Rendering/depthRenderer.d.ts +1 -1
  247. package/Rendering/depthRenderer.js +2 -2
  248. package/Rendering/depthRenderer.js.map +1 -1
  249. package/Rendering/edgesRenderer.js +3 -1
  250. package/Rendering/edgesRenderer.js.map +1 -1
  251. package/Rendering/geometryBufferRenderer.d.ts +0 -2
  252. package/Rendering/geometryBufferRenderer.js +13 -10
  253. package/Rendering/geometryBufferRenderer.js.map +1 -1
  254. package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
  255. package/Shaders/ShadersInclude/bakedVertexAnimation.js +7 -0
  256. package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -0
  257. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
  258. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
  259. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
  260. package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
  261. package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
  262. package/Shaders/ShadersInclude/bonesVertex.js +1 -1
  263. package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
  264. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
  265. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
  266. package/Shaders/background.fragment.js +1 -1
  267. package/Shaders/background.fragment.js.map +1 -1
  268. package/Shaders/background.vertex.d.ts +2 -0
  269. package/Shaders/background.vertex.js +3 -1
  270. package/Shaders/background.vertex.js.map +1 -1
  271. package/Shaders/color.vertex.d.ts +2 -0
  272. package/Shaders/color.vertex.js +3 -1
  273. package/Shaders/color.vertex.js.map +1 -1
  274. package/Shaders/default.vertex.d.ts +2 -0
  275. package/Shaders/default.vertex.js +3 -1
  276. package/Shaders/default.vertex.js.map +1 -1
  277. package/Shaders/depth.vertex.d.ts +2 -0
  278. package/Shaders/depth.vertex.js +3 -1
  279. package/Shaders/depth.vertex.js.map +1 -1
  280. package/Shaders/geometry.vertex.d.ts +2 -0
  281. package/Shaders/geometry.vertex.js +3 -1
  282. package/Shaders/geometry.vertex.js.map +1 -1
  283. package/Shaders/glowMapGeneration.vertex.d.ts +2 -0
  284. package/Shaders/glowMapGeneration.vertex.js +3 -1
  285. package/Shaders/glowMapGeneration.vertex.js.map +1 -1
  286. package/Shaders/outline.vertex.d.ts +2 -0
  287. package/Shaders/outline.vertex.js +3 -1
  288. package/Shaders/outline.vertex.js.map +1 -1
  289. package/Shaders/pbr.vertex.d.ts +2 -0
  290. package/Shaders/pbr.vertex.js +3 -1
  291. package/Shaders/pbr.vertex.js.map +1 -1
  292. package/Shaders/shadowMap.vertex.d.ts +2 -0
  293. package/Shaders/shadowMap.vertex.js +3 -1
  294. package/Shaders/shadowMap.vertex.js.map +1 -1
  295. package/Shaders/volumetricLightScatteringPass.vertex.d.ts +2 -0
  296. package/Shaders/volumetricLightScatteringPass.vertex.js +3 -1
  297. package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
  298. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
  299. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +7 -0
  300. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -0
  301. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
  302. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
  303. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
  304. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
  305. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
  306. package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
  307. package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
  308. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +5 -0
  309. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +7 -0
  310. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -0
  311. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +5 -0
  312. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +7 -0
  313. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -0
  314. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +5 -0
  315. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +7 -0
  316. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -0
  317. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +5 -0
  318. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +7 -0
  319. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -0
  320. package/XR/features/WebXRNearInteraction.d.ts +1 -0
  321. package/XR/features/WebXRNearInteraction.js +2 -0
  322. package/XR/features/WebXRNearInteraction.js.map +1 -1
  323. package/index.d.ts +1 -0
  324. package/index.js +1 -0
  325. package/index.js.map +1 -1
  326. package/node.d.ts +30 -1
  327. package/node.js +12 -0
  328. package/node.js.map +1 -1
  329. package/package.json +43 -1
  330. package/scene.d.ts +10 -0
  331. package/scene.js +27 -0
  332. package/scene.js.map +1 -1
@@ -8,6 +8,7 @@ import { CurrentScreenBlock } from './Blocks/Dual/currentScreenBlock';
8
8
  import { ParticleTextureBlock } from './Blocks/Particle/particleTextureBlock';
9
9
  import { Scene } from '../../scene';
10
10
  import { ImageSourceBlock } from './Blocks/Dual/imageSourceBlock';
11
+ import { Immutable } from "../../types";
11
12
  /**
12
13
  * Class used to store shared data between 2 NodeMaterialBuildState
13
14
  */
@@ -24,6 +25,10 @@ export declare class NodeMaterialBuildStateSharedData {
24
25
  * Gets the varying declaration string
25
26
  */
26
27
  varyingDeclaration: string;
28
+ /**
29
+ * List of the fragment output nodes
30
+ */
31
+ fragmentOutputNodes: Immutable<Array<NodeMaterialBlock>>;
27
32
  /**
28
33
  * Input blocks
29
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"nodeMaterialBuildStateSharedData.js","sourceRoot":"","sources":["../../../../sourceES6/core/Materials/Node/nodeMaterialBuildStateSharedData.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH;IA8GI,gCAAgC;IAChC;QA9GA;;UAEE;QACK,UAAK,GAAG,IAAI,KAAK,EAAU,CAAC;QAEnC;;WAEG;QACI,aAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;QAEtC;;WAEG;QACI,uBAAkB,GAAG,EAAE,CAAC;QAE/B;;WAEG;QACI,gBAAW,GAAG,IAAI,KAAK,EAAc,CAAC;QAE7C;;WAEG;QACI,kBAAa,GAAG,IAAI,KAAK,EAA8H,CAAC;QAE/J;;WAEG;QACI,mBAAc,GAAG,IAAI,KAAK,EAAqB,CAAC;QAEvD;;WAEG;QACI,yBAAoB,GAAG,IAAI,KAAK,EAAqB,CAAC;QAE5D;;UAEE;QACI,wBAAmB,GAAG,IAAI,KAAK,EAAqB,CAAC;QAE5D;;WAEG;QACI,sBAAiB,GAAG,IAAI,KAAK,EAAqB,CAAC;QAE1D;;UAEE;QACK,4BAAuB,GAAG,IAAI,KAAK,EAAqB,CAAC;QAEhE;;UAEE;QACK,yBAAoB,GAAG,IAAI,KAAK,EAAqB,CAAC;QAE7D;;WAEG;QACI,mBAAc,GAAG,IAAI,KAAK,EAAqB,CAAC;QAEvD;;WAEG;QACI,mBAAc,GAAG,IAAI,KAAK,EAAc,CAAC;QAOhD,gCAAgC;QACzB,kBAAa,GAA8B,EAAE,CAAC;QAErD,8BAA8B;QACvB,gBAAW,GAA8B,EAAE,CAAC;QAWnD;;WAEG;QACI,UAAK,GAAG;YACX,mBAAmB,EAAE,KAAK;YAC1B,6BAA6B,EAAE,KAAK;YACpC,iBAAiB,EAAE,KAAK;YACxB,gBAAgB,EAAE,KAAK;SAC1B,CAAC;QAEF;;WAEG;QACI,WAAM,GAAG;YACZ,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,6BAA6B,EAAE,IAAI,KAAK,EAA+B;SAC1E,CAAC;QAEF;;WAEG;QACI,4BAAuB,GAAY,KAAK,CAAC;QAI5C,oDAAoD;QACpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE/B,yBAAyB;QACzB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE/B,kBAAkB;QAClB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,qDAAU,GAAjB;QACI,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC1D,YAAY,IAAI,qHAAqH,CAAC;SACzI;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC3B,YAAY,IAAI,wHAAwH,CAAC;SAC5I;QACD,KAA8B,UAAyC,EAAzC,KAAA,IAAI,CAAC,MAAM,CAAC,6BAA6B,EAAzC,cAAyC,EAAzC,IAAyC,EAAE;YAApE,IAAI,iBAAiB,SAAA;YACtB,YAAY,IAAI,WAAS,iBAAiB,CAAC,IAAI,oBAAe,iBAAiB,CAAC,UAAU,CAAC,IAAI,SAAI,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE,gDAA6C,CAAC;SAC/L;QAED,IAAI,YAAY,EAAE;YACd,MAAM,mCAAmC,GAAG,YAAY,CAAC;SAC5D;IACL,CAAC;IACL,uCAAC;AAAD,CAAC,AAvKD,IAuKC","sourcesContent":["import { NodeMaterialConnectionPoint } from './nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlock } from './nodeMaterialBlock';\r\nimport { InputBlock } from './Blocks/Input/inputBlock';\r\nimport { TextureBlock } from './Blocks/Dual/textureBlock';\r\nimport { ReflectionTextureBaseBlock } from './Blocks/Dual/reflectionTextureBaseBlock';\r\nimport { RefractionBlock } from './Blocks/PBR/refractionBlock';\r\nimport { CurrentScreenBlock } from './Blocks/Dual/currentScreenBlock';\r\nimport { ParticleTextureBlock } from './Blocks/Particle/particleTextureBlock';\r\nimport { Scene } from '../../scene';\r\nimport { ImageSourceBlock } from './Blocks/Dual/imageSourceBlock';\r\n\r\n/**\r\n * Class used to store shared data between 2 NodeMaterialBuildState\r\n */\r\nexport class NodeMaterialBuildStateSharedData {\r\n /**\r\n * Gets the list of emitted varyings\r\n */\r\n public temps = new Array<string>();\r\n\r\n /**\r\n * Gets the list of emitted varyings\r\n */\r\n public varyings = new Array<string>();\r\n\r\n /**\r\n * Gets the varying declaration string\r\n */\r\n public varyingDeclaration = \"\";\r\n\r\n /**\r\n * Input blocks\r\n */\r\n public inputBlocks = new Array<InputBlock>();\r\n\r\n /**\r\n * Input blocks\r\n */\r\n public textureBlocks = new Array<TextureBlock | ReflectionTextureBaseBlock | RefractionBlock | CurrentScreenBlock | ParticleTextureBlock | ImageSourceBlock>();\r\n\r\n /**\r\n * Bindable blocks (Blocks that need to set data to the effect)\r\n */\r\n public bindableBlocks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * Bindable blocks (Blocks that need to set data to the effect) that will always be called (by bindForSubMesh), contrary to bindableBlocks that won't be called if _mustRebind() returns false\r\n */\r\n public forcedBindableBlocks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * List of blocks that can provide a compilation fallback\r\n */\r\n public blocksWithFallbacks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * List of blocks that can provide a define update\r\n */\r\n public blocksWithDefines = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * List of blocks that can provide a repeatable content\r\n */\r\n public repeatableContentBlocks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * List of blocks that can provide a dynamic list of uniforms\r\n */\r\n public dynamicUniformBlocks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * List of blocks that can block the isReady function for the material\r\n */\r\n public blockingBlocks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * Gets the list of animated inputs\r\n */\r\n public animatedInputs = new Array<InputBlock>();\r\n\r\n /**\r\n * Build Id used to avoid multiple recompilations\r\n */\r\n public buildId: number;\r\n\r\n /** List of emitted variables */\r\n public variableNames: { [key: string]: number } = {};\r\n\r\n /** List of emitted defines */\r\n public defineNames: { [key: string]: number } = {};\r\n\r\n /** Should emit comments? */\r\n public emitComments: boolean;\r\n\r\n /** Emit build activity */\r\n public verbose: boolean;\r\n\r\n /** Gets or sets the hosting scene */\r\n public scene: Scene;\r\n\r\n /**\r\n * Gets the compilation hints emitted at compilation time\r\n */\r\n public hints = {\r\n needWorldViewMatrix: false,\r\n needWorldViewProjectionMatrix: false,\r\n needAlphaBlending: false,\r\n needAlphaTesting: false\r\n };\r\n\r\n /**\r\n * List of compilation checks\r\n */\r\n public checks = {\r\n emitVertex: false,\r\n emitFragment: false,\r\n notConnectedNonOptionalInputs: new Array<NodeMaterialConnectionPoint>()\r\n };\r\n\r\n /**\r\n * Is vertex program allowed to be empty?\r\n */\r\n public allowEmptyVertexProgram: boolean = false;\r\n\r\n /** Creates a new shared data */\r\n public constructor() {\r\n // Exclude usual attributes from free variable names\r\n this.variableNames[\"position\"] = 0;\r\n this.variableNames[\"normal\"] = 0;\r\n this.variableNames[\"tangent\"] = 0;\r\n this.variableNames[\"uv\"] = 0;\r\n this.variableNames[\"uv2\"] = 0;\r\n this.variableNames[\"uv3\"] = 0;\r\n this.variableNames[\"uv4\"] = 0;\r\n this.variableNames[\"uv5\"] = 0;\r\n this.variableNames[\"uv6\"] = 0;\r\n this.variableNames[\"color\"] = 0;\r\n this.variableNames[\"matricesIndices\"] = 0;\r\n this.variableNames[\"matricesWeights\"] = 0;\r\n this.variableNames[\"matricesIndicesExtra\"] = 0;\r\n this.variableNames[\"matricesWeightsExtra\"] = 0;\r\n this.variableNames[\"diffuseBase\"] = 0;\r\n this.variableNames[\"specularBase\"] = 0;\r\n this.variableNames[\"worldPos\"] = 0;\r\n this.variableNames[\"shadow\"] = 0;\r\n this.variableNames[\"view\"] = 0;\r\n\r\n // Exclude known varyings\r\n this.variableNames[\"vTBN\"] = 0;\r\n\r\n // Exclude defines\r\n this.defineNames[\"MAINUV0\"] = 0;\r\n this.defineNames[\"MAINUV1\"] = 0;\r\n this.defineNames[\"MAINUV2\"] = 0;\r\n this.defineNames[\"MAINUV3\"] = 0;\r\n this.defineNames[\"MAINUV4\"] = 0;\r\n this.defineNames[\"MAINUV5\"] = 0;\r\n this.defineNames[\"MAINUV6\"] = 0;\r\n this.defineNames[\"MAINUV7\"] = 0;\r\n }\r\n\r\n /**\r\n * Emits console errors and exceptions if there is a failing check\r\n */\r\n public emitErrors() {\r\n let errorMessage = \"\";\r\n\r\n if (!this.checks.emitVertex && !this.allowEmptyVertexProgram) {\r\n errorMessage += \"NodeMaterial does not have a vertex output. You need to at least add a block that generates a glPosition value.\\r\\n\";\r\n }\r\n if (!this.checks.emitFragment) {\r\n errorMessage += \"NodeMaterial does not have a fragment output. You need to at least add a block that generates a glFragColor value.\\r\\n\";\r\n }\r\n for (var notConnectedInput of this.checks.notConnectedNonOptionalInputs) {\r\n errorMessage += `input ${notConnectedInput.name} from block ${notConnectedInput.ownerBlock.name}[${notConnectedInput.ownerBlock.getClassName()}] is not connected and is not optional.\\r\\n`;\r\n }\r\n\r\n if (errorMessage) {\r\n throw \"Build of NodeMaterial failed:\\r\\n\" + errorMessage;\r\n }\r\n }\r\n}"]}
1
+ {"version":3,"file":"nodeMaterialBuildStateSharedData.js","sourceRoot":"","sources":["../../../../sourceES6/core/Materials/Node/nodeMaterialBuildStateSharedData.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialConnectionPoint } from './nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlock } from './nodeMaterialBlock';\r\nimport { InputBlock } from './Blocks/Input/inputBlock';\r\nimport { TextureBlock } from './Blocks/Dual/textureBlock';\r\nimport { ReflectionTextureBaseBlock } from './Blocks/Dual/reflectionTextureBaseBlock';\r\nimport { RefractionBlock } from './Blocks/PBR/refractionBlock';\r\nimport { CurrentScreenBlock } from './Blocks/Dual/currentScreenBlock';\r\nimport { ParticleTextureBlock } from './Blocks/Particle/particleTextureBlock';\r\nimport { Scene } from '../../scene';\r\nimport { ImageSourceBlock } from './Blocks/Dual/imageSourceBlock';\r\nimport { Immutable } from \"../../types\";\r\n\r\n/**\r\n * Class used to store shared data between 2 NodeMaterialBuildState\r\n */\r\nexport class NodeMaterialBuildStateSharedData {\r\n /**\r\n * Gets the list of emitted varyings\r\n */\r\n public temps = new Array<string>();\r\n\r\n /**\r\n * Gets the list of emitted varyings\r\n */\r\n public varyings = new Array<string>();\r\n\r\n /**\r\n * Gets the varying declaration string\r\n */\r\n public varyingDeclaration = \"\";\r\n\r\n /**\r\n * List of the fragment output nodes\r\n */\r\n public fragmentOutputNodes: Immutable<Array<NodeMaterialBlock>>;\r\n\r\n /**\r\n * Input blocks\r\n */\r\n public inputBlocks = new Array<InputBlock>();\r\n\r\n /**\r\n * Input blocks\r\n */\r\n public textureBlocks = new Array<TextureBlock | ReflectionTextureBaseBlock | RefractionBlock | CurrentScreenBlock | ParticleTextureBlock | ImageSourceBlock>();\r\n\r\n /**\r\n * Bindable blocks (Blocks that need to set data to the effect)\r\n */\r\n public bindableBlocks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * Bindable blocks (Blocks that need to set data to the effect) that will always be called (by bindForSubMesh), contrary to bindableBlocks that won't be called if _mustRebind() returns false\r\n */\r\n public forcedBindableBlocks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * List of blocks that can provide a compilation fallback\r\n */\r\n public blocksWithFallbacks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * List of blocks that can provide a define update\r\n */\r\n public blocksWithDefines = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * List of blocks that can provide a repeatable content\r\n */\r\n public repeatableContentBlocks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * List of blocks that can provide a dynamic list of uniforms\r\n */\r\n public dynamicUniformBlocks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * List of blocks that can block the isReady function for the material\r\n */\r\n public blockingBlocks = new Array<NodeMaterialBlock>();\r\n\r\n /**\r\n * Gets the list of animated inputs\r\n */\r\n public animatedInputs = new Array<InputBlock>();\r\n\r\n /**\r\n * Build Id used to avoid multiple recompilations\r\n */\r\n public buildId: number;\r\n\r\n /** List of emitted variables */\r\n public variableNames: { [key: string]: number } = {};\r\n\r\n /** List of emitted defines */\r\n public defineNames: { [key: string]: number } = {};\r\n\r\n /** Should emit comments? */\r\n public emitComments: boolean;\r\n\r\n /** Emit build activity */\r\n public verbose: boolean;\r\n\r\n /** Gets or sets the hosting scene */\r\n public scene: Scene;\r\n\r\n /**\r\n * Gets the compilation hints emitted at compilation time\r\n */\r\n public hints = {\r\n needWorldViewMatrix: false,\r\n needWorldViewProjectionMatrix: false,\r\n needAlphaBlending: false,\r\n needAlphaTesting: false\r\n };\r\n\r\n /**\r\n * List of compilation checks\r\n */\r\n public checks = {\r\n emitVertex: false,\r\n emitFragment: false,\r\n notConnectedNonOptionalInputs: new Array<NodeMaterialConnectionPoint>()\r\n };\r\n\r\n /**\r\n * Is vertex program allowed to be empty?\r\n */\r\n public allowEmptyVertexProgram: boolean = false;\r\n\r\n /** Creates a new shared data */\r\n public constructor() {\r\n // Exclude usual attributes from free variable names\r\n this.variableNames[\"position\"] = 0;\r\n this.variableNames[\"normal\"] = 0;\r\n this.variableNames[\"tangent\"] = 0;\r\n this.variableNames[\"uv\"] = 0;\r\n this.variableNames[\"uv2\"] = 0;\r\n this.variableNames[\"uv3\"] = 0;\r\n this.variableNames[\"uv4\"] = 0;\r\n this.variableNames[\"uv5\"] = 0;\r\n this.variableNames[\"uv6\"] = 0;\r\n this.variableNames[\"color\"] = 0;\r\n this.variableNames[\"matricesIndices\"] = 0;\r\n this.variableNames[\"matricesWeights\"] = 0;\r\n this.variableNames[\"matricesIndicesExtra\"] = 0;\r\n this.variableNames[\"matricesWeightsExtra\"] = 0;\r\n this.variableNames[\"diffuseBase\"] = 0;\r\n this.variableNames[\"specularBase\"] = 0;\r\n this.variableNames[\"worldPos\"] = 0;\r\n this.variableNames[\"shadow\"] = 0;\r\n this.variableNames[\"view\"] = 0;\r\n\r\n // Exclude known varyings\r\n this.variableNames[\"vTBN\"] = 0;\r\n\r\n // Exclude defines\r\n this.defineNames[\"MAINUV0\"] = 0;\r\n this.defineNames[\"MAINUV1\"] = 0;\r\n this.defineNames[\"MAINUV2\"] = 0;\r\n this.defineNames[\"MAINUV3\"] = 0;\r\n this.defineNames[\"MAINUV4\"] = 0;\r\n this.defineNames[\"MAINUV5\"] = 0;\r\n this.defineNames[\"MAINUV6\"] = 0;\r\n this.defineNames[\"MAINUV7\"] = 0;\r\n }\r\n\r\n /**\r\n * Emits console errors and exceptions if there is a failing check\r\n */\r\n public emitErrors() {\r\n let errorMessage = \"\";\r\n\r\n if (!this.checks.emitVertex && !this.allowEmptyVertexProgram) {\r\n errorMessage += \"NodeMaterial does not have a vertex output. You need to at least add a block that generates a glPosition value.\\r\\n\";\r\n }\r\n if (!this.checks.emitFragment) {\r\n errorMessage += \"NodeMaterial does not have a fragment output. You need to at least add a block that generates a glFragColor value.\\r\\n\";\r\n }\r\n for (var notConnectedInput of this.checks.notConnectedNonOptionalInputs) {\r\n errorMessage += `input ${notConnectedInput.name} from block ${notConnectedInput.ownerBlock.name}[${notConnectedInput.ownerBlock.getClassName()}] is not connected and is not optional.\\r\\n`;\r\n }\r\n\r\n if (errorMessage) {\r\n throw \"Build of NodeMaterial failed:\\r\\n\" + errorMessage;\r\n }\r\n }\r\n}"]}
@@ -49,6 +49,7 @@ export declare class PBRMaterialDefines extends MaterialDefines implements IImag
49
49
  DETAIL: boolean;
50
50
  DETAILDIRECTUV: number;
51
51
  DETAIL_NORMALBLENDMETHOD: number;
52
+ BAKED_VERTEX_ANIMATION_TEXTURE: boolean;
52
53
  AMBIENT: boolean;
53
54
  AMBIENTDIRECTUV: number;
54
55
  AMBIENTINGRAYSCALE: boolean;
@@ -171,6 +172,7 @@ export declare class PBRMaterialDefines extends MaterialDefines implements IImag
171
172
  SAMPLER3DGREENDEPTH: boolean;
172
173
  SAMPLER3DBGRMAP: boolean;
173
174
  IMAGEPROCESSINGPOSTPROCESS: boolean;
175
+ SKIPFINALCOLORCLAMP: boolean;
174
176
  EXPOSURE: boolean;
175
177
  MULTIVIEW: boolean;
176
178
  ORDER_INDEPENDENT_TRANSPARENCY: boolean;
@@ -60,6 +60,7 @@ var PBRMaterialDefines = /** @class */ (function (_super) {
60
60
  _this.DETAIL = false;
61
61
  _this.DETAILDIRECTUV = 0;
62
62
  _this.DETAIL_NORMALBLENDMETHOD = 0;
63
+ _this.BAKED_VERTEX_ANIMATION_TEXTURE = false;
63
64
  _this.AMBIENT = false;
64
65
  _this.AMBIENTDIRECTUV = 0;
65
66
  _this.AMBIENTINGRAYSCALE = false;
@@ -182,6 +183,7 @@ var PBRMaterialDefines = /** @class */ (function (_super) {
182
183
  _this.SAMPLER3DGREENDEPTH = false;
183
184
  _this.SAMPLER3DBGRMAP = false;
184
185
  _this.IMAGEPROCESSINGPOSTPROCESS = false;
186
+ _this.SKIPFINALCOLORCLAMP = false;
185
187
  _this.EXPOSURE = false;
186
188
  _this.MULTIVIEW = false;
187
189
  _this.ORDER_INDEPENDENT_TRANSPARENCY = false;
@@ -1138,6 +1140,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1138
1140
  MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);
1139
1141
  MaterialHelper.PrepareAttributesForInstances(attribs, defines);
1140
1142
  MaterialHelper.PrepareAttributesForMorphTargets(attribs, mesh, defines);
1143
+ MaterialHelper.PrepareAttributesForBakedVertexAnimation(attribs, mesh, defines);
1141
1144
  var shaderName = "pbr";
1142
1145
  var uniforms = ["world", "view", "viewProjection", "vEyePosition", "vLightsType", "vAmbientColor", "vAlbedoColor", "vReflectivityColor", "vMetallicReflectanceFactors", "vEmissiveColor", "visibility", "vReflectionColor",
1143
1146
  "vFogInfos", "vFogColor", "pointSize",
@@ -1624,6 +1627,7 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1624
1627
  * @param subMesh - A submesh of the BJS mesh.
1625
1628
  */
1626
1629
  PBRBaseMaterial.prototype.bindForSubMesh = function (world, mesh, subMesh) {
1630
+ var _a;
1627
1631
  var scene = this.getScene();
1628
1632
  var defines = subMesh.materialDefines;
1629
1633
  if (!defines) {
@@ -1637,7 +1641,10 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1637
1641
  // Matrices Mesh.
1638
1642
  mesh.getMeshUniformBuffer().bindToEffect(effect, "Mesh");
1639
1643
  mesh.transferToEffect(world);
1640
- // PrePass
1644
+ var engine = scene.getEngine();
1645
+ // Binding unconditionally
1646
+ this._uniformBuffer.bindToEffect(effect, "Material");
1647
+ this.subSurface.hardBindForSubMesh(this._uniformBuffer, scene, engine, this.isFrozen, defines.LODBASEDMICROSFURACE, this.realTimeFiltering, subMesh);
1641
1648
  this.prePassConfiguration.bindForSubMesh(this._activeEffect, scene, mesh, world, this.isFrozen);
1642
1649
  // Normal Matrix
1643
1650
  if (defines.OBJECTSPACE_NORMALMAP) {
@@ -1650,8 +1657,6 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1650
1657
  var reflectionTexture = null;
1651
1658
  var ubo = this._uniformBuffer;
1652
1659
  if (mustRebind) {
1653
- var engine = scene.getEngine();
1654
- ubo.bindToEffect(effect, "Material");
1655
1660
  this.bindViewProjection(effect);
1656
1661
  reflectionTexture = this._getReflectionTexture();
1657
1662
  if (!ubo.useUbo || !this.isFrozen || !ubo.isSync) {
@@ -1862,7 +1867,6 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1862
1867
  this.bindEyePosition(effect);
1863
1868
  }
1864
1869
  else if (scene.getEngine()._features.needToAlwaysBindUniformBuffers) {
1865
- ubo.bindToEffect(effect, "Material");
1866
1870
  this._needToBindSceneUbo = true;
1867
1871
  }
1868
1872
  if (mustRebind || !this.isFrozen) {
@@ -1880,6 +1884,9 @@ var PBRBaseMaterial = /** @class */ (function (_super) {
1880
1884
  if (defines.NUM_MORPH_INFLUENCERS) {
1881
1885
  MaterialHelper.BindMorphTargetParameters(mesh, this._activeEffect);
1882
1886
  }
1887
+ if (defines.BAKED_VERTEX_ANIMATION_TEXTURE) {
1888
+ (_a = mesh.bakedVertexAnimationManager) === null || _a === void 0 ? void 0 : _a.bind(effect, defines.INSTANCES);
1889
+ }
1883
1890
  // image processing
1884
1891
  this._imageProcessingConfiguration.bind(this._activeEffect);
1885
1892
  // Log. depth