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

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 (709) hide show
  1. package/Animations/animation.d.ts +20 -0
  2. package/Animations/animation.js +99 -10
  3. package/Animations/animation.js.map +1 -1
  4. package/Animations/animationGroup.d.ts +5 -1
  5. package/Animations/animationGroup.js +19 -1
  6. package/Animations/animationGroup.js.map +1 -1
  7. package/Animations/animationKey.d.ts +4 -0
  8. package/Animations/animationKey.js +4 -0
  9. package/Animations/animationKey.js.map +1 -1
  10. package/Audio/sound.js +15 -1
  11. package/Audio/sound.js.map +1 -1
  12. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +130 -0
  13. package/BakedVertexAnimation/bakedVertexAnimationManager.js +134 -0
  14. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -0
  15. package/BakedVertexAnimation/index.d.ts +2 -0
  16. package/BakedVertexAnimation/index.js +3 -0
  17. package/BakedVertexAnimation/index.js.map +1 -0
  18. package/BakedVertexAnimation/vertexAnimationBaker.d.ts +65 -0
  19. package/BakedVertexAnimation/vertexAnimationBaker.js +155 -0
  20. package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -0
  21. package/Behaviors/Cameras/autoRotationBehavior.d.ts +5 -0
  22. package/Behaviors/Cameras/autoRotationBehavior.js +7 -0
  23. package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
  24. package/Behaviors/Cameras/framingBehavior.d.ts +5 -0
  25. package/Behaviors/Cameras/framingBehavior.js +8 -1
  26. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  27. package/Behaviors/Meshes/followBehavior.js +1 -1
  28. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  29. package/Behaviors/Meshes/handConstraintBehavior.js +16 -12
  30. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  31. package/Bones/bone.d.ts +3 -1
  32. package/Bones/bone.js +4 -1
  33. package/Bones/bone.js.map +1 -1
  34. package/Cameras/Inputs/BaseCameraPointersInput.js +4 -6
  35. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  36. package/Cameras/Inputs/flyCameraMouseInput.js +4 -4
  37. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  38. package/Cameras/Inputs/freeCameraMouseInput.js +4 -4
  39. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  40. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js +1 -1
  41. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
  42. package/Cameras/VR/vrExperienceHelper.d.ts +1 -1
  43. package/Cameras/VR/vrExperienceHelper.js +1 -1
  44. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  45. package/Cameras/camera.js +8 -2
  46. package/Cameras/camera.js.map +1 -1
  47. package/Cameras/targetCamera.js +1 -1
  48. package/Cameras/targetCamera.js.map +1 -1
  49. package/Culling/boundingBox.d.ts +4 -0
  50. package/Culling/boundingBox.js +8 -0
  51. package/Culling/boundingBox.js.map +1 -1
  52. package/Debug/physicsViewer.js +1 -1
  53. package/Debug/physicsViewer.js.map +1 -1
  54. package/Debug/skeletonViewer.js +2 -2
  55. package/Debug/skeletonViewer.js.map +1 -1
  56. package/DeviceInput/Implementations/{nativeDeviceInputWrapper.d.ts → nativeDeviceInputSystem.d.ts} +11 -22
  57. package/DeviceInput/Implementations/nativeDeviceInputSystem.js +80 -0
  58. package/DeviceInput/Implementations/nativeDeviceInputSystem.js.map +1 -0
  59. package/DeviceInput/Implementations/webDeviceInputSystem.d.ts +7 -20
  60. package/DeviceInput/Implementations/webDeviceInputSystem.js +80 -72
  61. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
  62. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +3 -2
  63. package/DeviceInput/InputDevices/deviceSourceManager.js +5 -1
  64. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  65. package/DeviceInput/Interfaces/inputInterfaces.d.ts +6 -13
  66. package/DeviceInput/Interfaces/inputInterfaces.js.map +1 -1
  67. package/DeviceInput/deviceInputSystem.d.ts +49 -5
  68. package/DeviceInput/deviceInputSystem.js +66 -9
  69. package/DeviceInput/deviceInputSystem.js.map +1 -1
  70. package/DeviceInput/index.d.ts +1 -1
  71. package/DeviceInput/index.js +1 -1
  72. package/DeviceInput/index.js.map +1 -1
  73. package/Engines/Extensions/engine.dynamicTexture.d.ts +2 -1
  74. package/Engines/Extensions/engine.dynamicTexture.js +2 -1
  75. package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
  76. package/Engines/Extensions/engine.multiview.js +17 -6
  77. package/Engines/Extensions/engine.multiview.js.map +1 -1
  78. package/Engines/Extensions/engine.views.d.ts +1 -1
  79. package/Engines/Extensions/engine.views.js +1 -1
  80. package/Engines/Extensions/engine.views.js.map +1 -1
  81. package/Engines/Processors/iShaderProcessor.d.ts +1 -1
  82. package/Engines/Processors/iShaderProcessor.js.map +1 -1
  83. package/Engines/Processors/shaderProcessingOptions.d.ts +5 -0
  84. package/Engines/Processors/shaderProcessingOptions.js.map +1 -1
  85. package/Engines/Processors/shaderProcessor.js +8 -2
  86. package/Engines/Processors/shaderProcessor.js.map +1 -1
  87. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +3 -11
  88. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
  89. package/Engines/WebGPU/Extensions/engine.multiRender.js +0 -4
  90. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  91. package/Engines/WebGPU/Extensions/engine.query.js +19 -3
  92. package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
  93. package/Engines/WebGPU/Extensions/engine.renderTarget.js +0 -4
  94. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  95. package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -1
  96. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  97. package/Engines/WebGPU/webgpuBundleList.d.ts +13 -0
  98. package/Engines/WebGPU/webgpuBundleList.js +27 -0
  99. package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
  100. package/Engines/WebGPU/webgpuCacheBindGroups.js +3 -3
  101. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  102. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +42 -61
  103. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  104. package/Engines/WebGPU/webgpuCacheSampler.js +6 -4
  105. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  106. package/Engines/WebGPU/webgpuClearQuad.js +17 -8
  107. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  108. package/Engines/WebGPU/webgpuComputeContext.js +2 -2
  109. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  110. package/Engines/WebGPU/webgpuConstants.d.ts +57 -13
  111. package/Engines/WebGPU/webgpuConstants.js +62 -13
  112. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  113. package/Engines/WebGPU/webgpuHardwareTexture.d.ts +27 -3
  114. package/Engines/WebGPU/webgpuHardwareTexture.js +12 -2
  115. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  116. package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -0
  117. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  118. package/Engines/WebGPU/webgpuShaderProcessor.d.ts +2 -0
  119. package/Engines/WebGPU/webgpuShaderProcessor.js +23 -0
  120. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  121. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +1 -0
  122. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +17 -1
  123. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  124. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +7 -2
  125. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +16 -29
  126. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  127. package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +27 -0
  128. package/Engines/WebGPU/webgpuSnapshotRendering.js +107 -0
  129. package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -0
  130. package/Engines/WebGPU/webgpuTextureHelper.d.ts +4 -4
  131. package/Engines/WebGPU/webgpuTextureHelper.js +277 -83
  132. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  133. package/Engines/constants.d.ts +2 -0
  134. package/Engines/constants.js +2 -0
  135. package/Engines/constants.js.map +1 -1
  136. package/Engines/engine.d.ts +157 -46
  137. package/Engines/engine.js +38 -1
  138. package/Engines/engine.js.map +1 -1
  139. package/Engines/engineFeatures.d.ts +2 -0
  140. package/Engines/engineFeatures.js.map +1 -1
  141. package/Engines/index.d.ts +1 -0
  142. package/Engines/index.js +1 -0
  143. package/Engines/index.js.map +1 -1
  144. package/Engines/nativeEngine.js +34 -17
  145. package/Engines/nativeEngine.js.map +1 -1
  146. package/Engines/nullEngine.js +1 -0
  147. package/Engines/nullEngine.js.map +1 -1
  148. package/Engines/renderTargetWrapper.d.ts +1 -1
  149. package/Engines/renderTargetWrapper.js +1 -1
  150. package/Engines/renderTargetWrapper.js.map +1 -1
  151. package/Engines/thinEngine.d.ts +0 -11
  152. package/Engines/thinEngine.js +12 -40
  153. package/Engines/thinEngine.js.map +1 -1
  154. package/Engines/webgpuEngine.d.ts +11 -19
  155. package/Engines/webgpuEngine.js +46 -126
  156. package/Engines/webgpuEngine.js.map +1 -1
  157. package/Gizmos/positionGizmo.js +1 -1
  158. package/Gizmos/positionGizmo.js.map +1 -1
  159. package/Helpers/sceneHelpers.d.ts +3 -3
  160. package/Helpers/sceneHelpers.js +1 -2
  161. package/Helpers/sceneHelpers.js.map +1 -1
  162. package/Inputs/scene.inputManager.js +18 -15
  163. package/Inputs/scene.inputManager.js.map +1 -1
  164. package/Layers/effectLayer.d.ts +13 -1
  165. package/Layers/effectLayer.js +115 -65
  166. package/Layers/effectLayer.js.map +1 -1
  167. package/Layers/glowLayer.d.ts +8 -0
  168. package/Layers/glowLayer.js +7 -3
  169. package/Layers/glowLayer.js.map +1 -1
  170. package/Layers/highlightLayer.d.ts +2 -1
  171. package/Layers/highlightLayer.js +8 -3
  172. package/Layers/highlightLayer.js.map +1 -1
  173. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -0
  174. package/Lights/Shadows/cascadedShadowGenerator.js +14 -0
  175. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  176. package/Lights/Shadows/shadowGenerator.d.ts +4 -0
  177. package/Lights/Shadows/shadowGenerator.js +31 -3
  178. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  179. package/Lights/light.js +10 -1
  180. package/Lights/light.js.map +1 -1
  181. package/Lights/pointLight.js +1 -1
  182. package/Lights/pointLight.js.map +1 -1
  183. package/Lights/spotLight.js +1 -1
  184. package/Lights/spotLight.js.map +1 -1
  185. package/Loading/Plugins/babylonFileLoader.js +20 -4
  186. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  187. package/Materials/Background/backgroundMaterial.js +1 -0
  188. package/Materials/Background/backgroundMaterial.js.map +1 -1
  189. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +10 -0
  190. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +31 -0
  191. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  192. package/Materials/Node/Blocks/Fragment/index.d.ts +2 -0
  193. package/Materials/Node/Blocks/Fragment/index.js +2 -0
  194. package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
  195. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.d.ts +41 -0
  196. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +128 -0
  197. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -0
  198. package/Materials/Node/Blocks/Fragment/twirlBlock.d.ts +49 -0
  199. package/Materials/Node/Blocks/Fragment/twirlBlock.js +145 -0
  200. package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -0
  201. package/Materials/Node/Blocks/Input/inputBlock.js +1 -1
  202. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  203. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.d.ts +1 -0
  204. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +15 -0
  205. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  206. package/Materials/Node/Blocks/customBlock.d.ts +31 -0
  207. package/Materials/Node/Blocks/customBlock.js +144 -0
  208. package/Materials/Node/Blocks/customBlock.js.map +1 -0
  209. package/Materials/Node/Blocks/index.d.ts +2 -0
  210. package/Materials/Node/Blocks/index.js +2 -0
  211. package/Materials/Node/Blocks/index.js.map +1 -1
  212. package/Materials/Node/Blocks/vectorMergerBlock.js +4 -4
  213. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  214. package/Materials/Node/Blocks/voronoiNoiseBlock.d.ts +39 -0
  215. package/Materials/Node/Blocks/voronoiNoiseBlock.js +107 -0
  216. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -0
  217. package/Materials/Node/Blocks/worleyNoise3DBlock.d.ts +8 -0
  218. package/Materials/Node/Blocks/worleyNoise3DBlock.js +34 -2
  219. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  220. package/Materials/Node/nodeMaterial.d.ts +1 -0
  221. package/Materials/Node/nodeMaterial.js +10 -0
  222. package/Materials/Node/nodeMaterial.js.map +1 -1
  223. package/Materials/Node/nodeMaterialBlock.js +1 -1
  224. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  225. package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +5 -0
  226. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  227. package/Materials/PBR/index.d.ts +4 -0
  228. package/Materials/PBR/index.js +4 -0
  229. package/Materials/PBR/index.js.map +1 -1
  230. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +28 -96
  231. package/Materials/PBR/pbrAnisotropicConfiguration.js +50 -111
  232. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  233. package/Materials/PBR/pbrBRDFConfiguration.d.ts +11 -37
  234. package/Materials/PBR/pbrBRDFConfiguration.js +39 -52
  235. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  236. package/Materials/PBR/pbrBaseMaterial.d.ts +17 -74
  237. package/Materials/PBR/pbrBaseMaterial.js +75 -183
  238. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  239. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  240. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +23 -98
  241. package/Materials/PBR/pbrClearCoatConfiguration.js +91 -143
  242. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  243. package/Materials/PBR/pbrSheenConfiguration.d.ts +25 -93
  244. package/Materials/PBR/pbrSheenConfiguration.js +71 -126
  245. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  246. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +29 -104
  247. package/Materials/PBR/pbrSubSurfaceConfiguration.js +158 -204
  248. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  249. package/Materials/Textures/dynamicTexture.d.ts +3 -2
  250. package/Materials/Textures/dynamicTexture.js +5 -3
  251. package/Materials/Textures/dynamicTexture.js.map +1 -1
  252. package/Materials/Textures/hdrCubeTexture.d.ts +9 -0
  253. package/Materials/Textures/hdrCubeTexture.js +21 -5
  254. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  255. package/Materials/Textures/mirrorTexture.d.ts +2 -0
  256. package/Materials/Textures/mirrorTexture.js +13 -0
  257. package/Materials/Textures/mirrorTexture.js.map +1 -1
  258. package/Materials/Textures/renderTargetTexture.js +1 -1
  259. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  260. package/Materials/Textures/thinRenderTargetTexture.js +1 -1
  261. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  262. package/Materials/Textures/thinTexture.d.ts +1 -2
  263. package/Materials/Textures/thinTexture.js +2 -4
  264. package/Materials/Textures/thinTexture.js.map +1 -1
  265. package/Materials/Textures/videoTexture.d.ts +1 -1
  266. package/Materials/Textures/videoTexture.js +1 -1
  267. package/Materials/Textures/videoTexture.js.map +1 -1
  268. package/Materials/effect.d.ts +6 -1
  269. package/Materials/effect.js +4 -1
  270. package/Materials/effect.js.map +1 -1
  271. package/Materials/fresnelParameters.d.ts +1 -1
  272. package/Materials/fresnelParameters.js +1 -1
  273. package/Materials/fresnelParameters.js.map +1 -1
  274. package/Materials/imageProcessingConfiguration.d.ts +16 -1
  275. package/Materials/imageProcessingConfiguration.js +31 -0
  276. package/Materials/imageProcessingConfiguration.js.map +1 -1
  277. package/Materials/index.d.ts +4 -0
  278. package/Materials/index.js +4 -0
  279. package/Materials/index.js.map +1 -1
  280. package/Materials/material.d.ts +43 -2
  281. package/Materials/material.detailMapConfiguration.d.ts +29 -87
  282. package/Materials/material.detailMapConfiguration.js +50 -106
  283. package/Materials/material.detailMapConfiguration.js.map +1 -1
  284. package/Materials/material.js +99 -8
  285. package/Materials/material.js.map +1 -1
  286. package/Materials/materialDefines.d.ts +16 -0
  287. package/Materials/materialDefines.js +17 -5
  288. package/Materials/materialDefines.js.map +1 -1
  289. package/Materials/materialHelper.d.ts +15 -1
  290. package/Materials/materialHelper.js +40 -3
  291. package/Materials/materialHelper.js.map +1 -1
  292. package/Materials/materialPluginBase.d.ts +182 -0
  293. package/Materials/materialPluginBase.js +209 -0
  294. package/Materials/materialPluginBase.js.map +1 -0
  295. package/Materials/materialPluginEvent.d.ts +98 -0
  296. package/Materials/materialPluginEvent.js +21 -0
  297. package/Materials/materialPluginEvent.js.map +1 -0
  298. package/Materials/materialPluginFactoryExport.d.ts +40 -0
  299. package/Materials/materialPluginFactoryExport.js +75 -0
  300. package/Materials/materialPluginFactoryExport.js.map +1 -0
  301. package/Materials/materialPluginManager.d.ts +90 -0
  302. package/Materials/materialPluginManager.js +323 -0
  303. package/Materials/materialPluginManager.js.map +1 -0
  304. package/Materials/pushMaterial.d.ts +2 -2
  305. package/Materials/pushMaterial.js +7 -3
  306. package/Materials/pushMaterial.js.map +1 -1
  307. package/Materials/shaderMaterial.d.ts +7 -6
  308. package/Materials/shaderMaterial.js +71 -29
  309. package/Materials/shaderMaterial.js.map +1 -1
  310. package/Materials/shadowDepthWrapper.js +7 -7
  311. package/Materials/shadowDepthWrapper.js.map +1 -1
  312. package/Materials/standardMaterial.d.ts +15 -10
  313. package/Materials/standardMaterial.js +53 -49
  314. package/Materials/standardMaterial.js.map +1 -1
  315. package/Materials/uniformBuffer.js +1 -2
  316. package/Materials/uniformBuffer.js.map +1 -1
  317. package/Maths/math.color.d.ts +20 -0
  318. package/Maths/math.color.js +45 -2
  319. package/Maths/math.color.js.map +1 -1
  320. package/Maths/math.vector.d.ts +14 -9
  321. package/Maths/math.vector.js +36 -17
  322. package/Maths/math.vector.js.map +1 -1
  323. package/Meshes/Builders/boxBuilder.d.ts +1 -1
  324. package/Meshes/Builders/boxBuilder.js +1 -0
  325. package/Meshes/Builders/boxBuilder.js.map +1 -1
  326. package/Meshes/Builders/capsuleBuilder.d.ts +1 -1
  327. package/Meshes/Builders/capsuleBuilder.js +1 -1
  328. package/Meshes/Builders/capsuleBuilder.js.map +1 -1
  329. package/Meshes/Builders/cylinderBuilder.d.ts +17 -17
  330. package/Meshes/Builders/cylinderBuilder.js +1 -0
  331. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  332. package/Meshes/Builders/discBuilder.d.ts +1 -1
  333. package/Meshes/Builders/discBuilder.js +1 -0
  334. package/Meshes/Builders/discBuilder.js.map +1 -1
  335. package/Meshes/Builders/groundBuilder.d.ts +8 -8
  336. package/Meshes/Builders/groundBuilder.js +2 -0
  337. package/Meshes/Builders/groundBuilder.js.map +1 -1
  338. package/Meshes/Builders/hemisphereBuilder.d.ts +4 -4
  339. package/Meshes/Builders/hemisphereBuilder.js +1 -0
  340. package/Meshes/Builders/hemisphereBuilder.js.map +1 -1
  341. package/Meshes/Builders/icoSphereBuilder.d.ts +1 -1
  342. package/Meshes/Builders/icoSphereBuilder.js +1 -0
  343. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  344. package/Meshes/Builders/planeBuilder.d.ts +1 -1
  345. package/Meshes/Builders/planeBuilder.js +1 -0
  346. package/Meshes/Builders/planeBuilder.js.map +1 -1
  347. package/Meshes/Builders/polyhedronBuilder.d.ts +1 -1
  348. package/Meshes/Builders/polyhedronBuilder.js +1 -0
  349. package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
  350. package/Meshes/Builders/sphereBuilder.d.ts +1 -1
  351. package/Meshes/Builders/sphereBuilder.js +1 -0
  352. package/Meshes/Builders/sphereBuilder.js.map +1 -1
  353. package/Meshes/Builders/torusBuilder.d.ts +8 -8
  354. package/Meshes/Builders/torusBuilder.js +1 -0
  355. package/Meshes/Builders/torusBuilder.js.map +1 -1
  356. package/Meshes/Builders/torusKnotBuilder.d.ts +11 -11
  357. package/Meshes/Builders/torusKnotBuilder.js +1 -0
  358. package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
  359. package/Meshes/abstractMesh.d.ts +23 -3
  360. package/Meshes/abstractMesh.js +79 -29
  361. package/Meshes/abstractMesh.js.map +1 -1
  362. package/Meshes/geometry.d.ts +3 -0
  363. package/Meshes/geometry.js +15 -7
  364. package/Meshes/geometry.js.map +1 -1
  365. package/Meshes/linesMesh.d.ts +1 -3
  366. package/Meshes/linesMesh.js +5 -36
  367. package/Meshes/linesMesh.js.map +1 -1
  368. package/Meshes/mesh.d.ts +12 -0
  369. package/Meshes/mesh.js +186 -117
  370. package/Meshes/mesh.js.map +1 -1
  371. package/Meshes/mesh.lts.d.ts +8 -8
  372. package/Meshes/mesh.lts.js.map +1 -1
  373. package/Meshes/mesh.vertexData.d.ts +6 -1
  374. package/Meshes/mesh.vertexData.js +295 -114
  375. package/Meshes/mesh.vertexData.js.map +1 -1
  376. package/Meshes/thinInstanceMesh.js +6 -5
  377. package/Meshes/thinInstanceMesh.js.map +1 -1
  378. package/Meshes/transformNode.d.ts +8 -8
  379. package/Meshes/transformNode.js +41 -26
  380. package/Meshes/transformNode.js.map +1 -1
  381. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +2 -1
  382. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +38 -33
  383. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  384. package/Misc/PerformanceViewer/performanceViewerCollector.d.ts +29 -4
  385. package/Misc/PerformanceViewer/performanceViewerCollector.js +36 -12
  386. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  387. package/Misc/assetsManager.d.ts +4 -4
  388. package/Misc/assetsManager.js +2 -2
  389. package/Misc/assetsManager.js.map +1 -1
  390. package/Misc/basis.d.ts +2 -2
  391. package/Misc/basis.js +20 -4
  392. package/Misc/basis.js.map +1 -1
  393. package/Misc/coroutine.d.ts +41 -0
  394. package/Misc/coroutine.js +136 -0
  395. package/Misc/coroutine.js.map +1 -0
  396. package/Misc/index.d.ts +1 -0
  397. package/Misc/index.js +1 -0
  398. package/Misc/index.js.map +1 -1
  399. package/Misc/interfaces/iPerfViewer.d.ts +4 -0
  400. package/Misc/interfaces/iPerfViewer.js.map +1 -1
  401. package/Misc/observableCoroutine.d.ts +9 -10
  402. package/Misc/observableCoroutine.js +34 -39
  403. package/Misc/observableCoroutine.js.map +1 -1
  404. package/Misc/sceneSerializer.js +1 -3
  405. package/Misc/sceneSerializer.js.map +1 -1
  406. package/Misc/tools.d.ts +2 -4
  407. package/Misc/tools.js +6 -10
  408. package/Misc/tools.js.map +1 -1
  409. package/Particles/particleSystem.js +22 -16
  410. package/Particles/particleSystem.js.map +1 -1
  411. package/Particles/solidParticleSystem.js +29 -5
  412. package/Particles/solidParticleSystem.js.map +1 -1
  413. package/Particles/subEmitter.js +1 -0
  414. package/Particles/subEmitter.js.map +1 -1
  415. package/Physics/Plugins/ammoJSPlugin.js +10 -8
  416. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  417. package/PostProcesses/imageProcessingPostProcess.js +1 -0
  418. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  419. package/Probes/reflectionProbe.d.ts +2 -0
  420. package/Probes/reflectionProbe.js +21 -0
  421. package/Probes/reflectionProbe.js.map +1 -1
  422. package/Rendering/boundingBoxRenderer.d.ts +3 -0
  423. package/Rendering/boundingBoxRenderer.js +49 -14
  424. package/Rendering/boundingBoxRenderer.js.map +1 -1
  425. package/Rendering/depthPeelingRenderer.d.ts +4 -1
  426. package/Rendering/depthPeelingRenderer.js +34 -9
  427. package/Rendering/depthPeelingRenderer.js.map +1 -1
  428. package/Rendering/depthRenderer.d.ts +1 -1
  429. package/Rendering/depthRenderer.js +2 -2
  430. package/Rendering/depthRenderer.js.map +1 -1
  431. package/Rendering/edgesRenderer.js +3 -1
  432. package/Rendering/edgesRenderer.js.map +1 -1
  433. package/Rendering/geometryBufferRenderer.d.ts +0 -2
  434. package/Rendering/geometryBufferRenderer.js +13 -10
  435. package/Rendering/geometryBufferRenderer.js.map +1 -1
  436. package/Rendering/prePassRenderer.js +6 -6
  437. package/Rendering/prePassRenderer.js.map +1 -1
  438. package/Rendering/renderingGroup.js +5 -1
  439. package/Rendering/renderingGroup.js.map +1 -1
  440. package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
  441. package/Shaders/ShadersInclude/bakedVertexAnimation.js +7 -0
  442. package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -0
  443. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
  444. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
  445. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
  446. package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
  447. package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
  448. package/Shaders/ShadersInclude/bonesVertex.js +1 -1
  449. package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
  450. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
  451. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
  452. package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
  453. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  454. package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
  455. package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
  456. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
  457. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
  458. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
  459. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
  460. package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
  461. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  462. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
  463. package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
  464. package/Shaders/anaglyph.fragment.js +1 -1
  465. package/Shaders/anaglyph.fragment.js.map +1 -1
  466. package/Shaders/background.fragment.js +1 -1
  467. package/Shaders/background.fragment.js.map +1 -1
  468. package/Shaders/background.vertex.d.ts +2 -0
  469. package/Shaders/background.vertex.js +3 -1
  470. package/Shaders/background.vertex.js.map +1 -1
  471. package/Shaders/blackAndWhite.fragment.js +1 -1
  472. package/Shaders/blackAndWhite.fragment.js.map +1 -1
  473. package/Shaders/bloomMerge.fragment.js +1 -1
  474. package/Shaders/bloomMerge.fragment.js.map +1 -1
  475. package/Shaders/blur.fragment.js +1 -1
  476. package/Shaders/blur.fragment.js.map +1 -1
  477. package/Shaders/boundingBoxRenderer.fragment.js +1 -1
  478. package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
  479. package/Shaders/boundingBoxRenderer.vertex.js +1 -1
  480. package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
  481. package/Shaders/chromaticAberration.fragment.js +1 -1
  482. package/Shaders/chromaticAberration.fragment.js.map +1 -1
  483. package/Shaders/circleOfConfusion.fragment.js +1 -1
  484. package/Shaders/circleOfConfusion.fragment.js.map +1 -1
  485. package/Shaders/clearQuad.vertex.js +1 -1
  486. package/Shaders/clearQuad.vertex.js.map +1 -1
  487. package/Shaders/color.fragment.js +1 -1
  488. package/Shaders/color.fragment.js.map +1 -1
  489. package/Shaders/color.vertex.d.ts +2 -0
  490. package/Shaders/color.vertex.js +3 -1
  491. package/Shaders/color.vertex.js.map +1 -1
  492. package/Shaders/colorCorrection.fragment.js +1 -1
  493. package/Shaders/colorCorrection.fragment.js.map +1 -1
  494. package/Shaders/convolution.fragment.js +1 -1
  495. package/Shaders/convolution.fragment.js.map +1 -1
  496. package/Shaders/default.fragment.js +1 -1
  497. package/Shaders/default.fragment.js.map +1 -1
  498. package/Shaders/default.vertex.d.ts +2 -0
  499. package/Shaders/default.vertex.js +3 -1
  500. package/Shaders/default.vertex.js.map +1 -1
  501. package/Shaders/depth.fragment.js +1 -1
  502. package/Shaders/depth.fragment.js.map +1 -1
  503. package/Shaders/depth.vertex.d.ts +2 -0
  504. package/Shaders/depth.vertex.js +3 -1
  505. package/Shaders/depth.vertex.js.map +1 -1
  506. package/Shaders/depthBoxBlur.fragment.js +1 -1
  507. package/Shaders/depthBoxBlur.fragment.js.map +1 -1
  508. package/Shaders/depthOfField.fragment.js +1 -1
  509. package/Shaders/depthOfField.fragment.js.map +1 -1
  510. package/Shaders/depthOfFieldMerge.fragment.js +1 -1
  511. package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
  512. package/Shaders/displayPass.fragment.js +1 -1
  513. package/Shaders/displayPass.fragment.js.map +1 -1
  514. package/Shaders/extractHighlights.fragment.js +1 -1
  515. package/Shaders/extractHighlights.fragment.js.map +1 -1
  516. package/Shaders/filter.fragment.js +1 -1
  517. package/Shaders/filter.fragment.js.map +1 -1
  518. package/Shaders/fxaa.vertex.js +1 -1
  519. package/Shaders/fxaa.vertex.js.map +1 -1
  520. package/Shaders/geometry.vertex.d.ts +2 -0
  521. package/Shaders/geometry.vertex.js +3 -1
  522. package/Shaders/geometry.vertex.js.map +1 -1
  523. package/Shaders/glowBlurPostProcess.fragment.js +1 -1
  524. package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
  525. package/Shaders/glowMapGeneration.fragment.js +1 -1
  526. package/Shaders/glowMapGeneration.fragment.js.map +1 -1
  527. package/Shaders/glowMapGeneration.vertex.d.ts +2 -0
  528. package/Shaders/glowMapGeneration.vertex.js +3 -1
  529. package/Shaders/glowMapGeneration.vertex.js.map +1 -1
  530. package/Shaders/glowMapMerge.fragment.js +1 -1
  531. package/Shaders/glowMapMerge.fragment.js.map +1 -1
  532. package/Shaders/glowMapMerge.vertex.js +1 -1
  533. package/Shaders/glowMapMerge.vertex.js.map +1 -1
  534. package/Shaders/grain.fragment.js +1 -1
  535. package/Shaders/grain.fragment.js.map +1 -1
  536. package/Shaders/hdrFiltering.vertex.js +1 -1
  537. package/Shaders/hdrFiltering.vertex.js.map +1 -1
  538. package/Shaders/highlights.fragment.js +1 -1
  539. package/Shaders/highlights.fragment.js.map +1 -1
  540. package/Shaders/imageProcessing.fragment.js +1 -1
  541. package/Shaders/imageProcessing.fragment.js.map +1 -1
  542. package/Shaders/kernelBlur.fragment.js +1 -1
  543. package/Shaders/kernelBlur.fragment.js.map +1 -1
  544. package/Shaders/kernelBlur.vertex.js +1 -1
  545. package/Shaders/kernelBlur.vertex.js.map +1 -1
  546. package/Shaders/layer.fragment.js +1 -1
  547. package/Shaders/layer.fragment.js.map +1 -1
  548. package/Shaders/layer.vertex.js +1 -1
  549. package/Shaders/layer.vertex.js.map +1 -1
  550. package/Shaders/lensFlare.fragment.js +1 -1
  551. package/Shaders/lensFlare.fragment.js.map +1 -1
  552. package/Shaders/lensFlare.vertex.js +1 -1
  553. package/Shaders/lensFlare.vertex.js.map +1 -1
  554. package/Shaders/lensHighlights.fragment.js +1 -1
  555. package/Shaders/lensHighlights.fragment.js.map +1 -1
  556. package/Shaders/line.fragment.js +1 -1
  557. package/Shaders/line.fragment.js.map +1 -1
  558. package/Shaders/line.vertex.js +1 -1
  559. package/Shaders/line.vertex.js.map +1 -1
  560. package/Shaders/minmaxRedux.fragment.js +1 -1
  561. package/Shaders/minmaxRedux.fragment.js.map +1 -1
  562. package/Shaders/motionBlur.fragment.js +1 -1
  563. package/Shaders/motionBlur.fragment.js.map +1 -1
  564. package/Shaders/noise.fragment.js +1 -1
  565. package/Shaders/noise.fragment.js.map +1 -1
  566. package/Shaders/outline.fragment.js +1 -1
  567. package/Shaders/outline.fragment.js.map +1 -1
  568. package/Shaders/outline.vertex.d.ts +2 -0
  569. package/Shaders/outline.vertex.js +3 -1
  570. package/Shaders/outline.vertex.js.map +1 -1
  571. package/Shaders/particles.fragment.js +1 -1
  572. package/Shaders/particles.fragment.js.map +1 -1
  573. package/Shaders/particles.vertex.js +1 -1
  574. package/Shaders/particles.vertex.js.map +1 -1
  575. package/Shaders/pass.fragment.js +1 -1
  576. package/Shaders/pass.fragment.js.map +1 -1
  577. package/Shaders/passCube.fragment.js +1 -1
  578. package/Shaders/passCube.fragment.js.map +1 -1
  579. package/Shaders/pbr.fragment.js +1 -1
  580. package/Shaders/pbr.fragment.js.map +1 -1
  581. package/Shaders/pbr.vertex.d.ts +2 -0
  582. package/Shaders/pbr.vertex.js +3 -1
  583. package/Shaders/pbr.vertex.js.map +1 -1
  584. package/Shaders/postprocess.vertex.js +1 -1
  585. package/Shaders/postprocess.vertex.js.map +1 -1
  586. package/Shaders/procedural.vertex.js +1 -1
  587. package/Shaders/procedural.vertex.js.map +1 -1
  588. package/Shaders/rgbdDecode.fragment.js +1 -1
  589. package/Shaders/rgbdDecode.fragment.js.map +1 -1
  590. package/Shaders/rgbdEncode.fragment.js +1 -1
  591. package/Shaders/rgbdEncode.fragment.js.map +1 -1
  592. package/Shaders/screenSpaceCurvature.fragment.js +1 -1
  593. package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
  594. package/Shaders/shadowMap.fragment.js +1 -1
  595. package/Shaders/shadowMap.fragment.js.map +1 -1
  596. package/Shaders/shadowMap.vertex.d.ts +2 -0
  597. package/Shaders/shadowMap.vertex.js +3 -1
  598. package/Shaders/shadowMap.vertex.js.map +1 -1
  599. package/Shaders/sharpen.fragment.js +1 -1
  600. package/Shaders/sharpen.fragment.js.map +1 -1
  601. package/Shaders/sprites.fragment.js +1 -1
  602. package/Shaders/sprites.fragment.js.map +1 -1
  603. package/Shaders/sprites.vertex.js +1 -1
  604. package/Shaders/sprites.vertex.js.map +1 -1
  605. package/Shaders/ssaoCombine.fragment.js +1 -1
  606. package/Shaders/ssaoCombine.fragment.js.map +1 -1
  607. package/Shaders/standard.fragment.js +1 -1
  608. package/Shaders/standard.fragment.js.map +1 -1
  609. package/Shaders/stereoscopicInterlace.fragment.js +1 -1
  610. package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
  611. package/Shaders/subSurfaceScattering.fragment.js +1 -1
  612. package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
  613. package/Shaders/tonemap.fragment.js +1 -1
  614. package/Shaders/tonemap.fragment.js.map +1 -1
  615. package/Shaders/volumetricLightScattering.fragment.js +1 -1
  616. package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
  617. package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
  618. package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
  619. package/Shaders/volumetricLightScatteringPass.vertex.d.ts +2 -0
  620. package/Shaders/volumetricLightScatteringPass.vertex.js +3 -1
  621. package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
  622. package/Shaders/vrDistortionCorrection.fragment.js +1 -1
  623. package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
  624. package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
  625. package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
  626. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
  627. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +7 -0
  628. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -0
  629. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
  630. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
  631. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
  632. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
  633. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
  634. package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
  635. package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
  636. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +5 -0
  637. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +7 -0
  638. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -0
  639. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +5 -0
  640. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +7 -0
  641. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -0
  642. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +5 -0
  643. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +7 -0
  644. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -0
  645. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +5 -0
  646. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +7 -0
  647. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -0
  648. package/XR/features/WebXRControllerPointerSelection.d.ts +14 -0
  649. package/XR/features/WebXRControllerPointerSelection.js +55 -21
  650. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  651. package/XR/features/WebXRHandTracking.d.ts +2 -0
  652. package/XR/features/WebXRHandTracking.js +34 -14
  653. package/XR/features/WebXRHandTracking.js.map +1 -1
  654. package/XR/features/WebXRLayers.d.ts +78 -0
  655. package/XR/features/WebXRLayers.js +243 -0
  656. package/XR/features/WebXRLayers.js.map +1 -0
  657. package/XR/features/WebXRNearInteraction.d.ts +1 -0
  658. package/XR/features/WebXRNearInteraction.js +2 -0
  659. package/XR/features/WebXRNearInteraction.js.map +1 -1
  660. package/XR/features/WebXRPlaneDetector.js +8 -12
  661. package/XR/features/WebXRPlaneDetector.js.map +1 -1
  662. package/XR/features/index.d.ts +1 -0
  663. package/XR/features/index.js +1 -0
  664. package/XR/features/index.js.map +1 -1
  665. package/XR/native/index.d.ts +1 -0
  666. package/XR/native/index.js +2 -0
  667. package/XR/native/index.js.map +1 -0
  668. package/XR/native/nativeXRRenderTarget.d.ts +44 -0
  669. package/XR/native/nativeXRRenderTarget.js +81 -0
  670. package/XR/native/nativeXRRenderTarget.js.map +1 -0
  671. package/XR/webXRCamera.js +2 -10
  672. package/XR/webXRCamera.js.map +1 -1
  673. package/XR/webXRExperienceHelper.js +15 -13
  674. package/XR/webXRExperienceHelper.js.map +1 -1
  675. package/XR/webXRFeaturesManager.d.ts +4 -0
  676. package/XR/webXRFeaturesManager.js +5 -1
  677. package/XR/webXRFeaturesManager.js.map +1 -1
  678. package/XR/webXRLayerWrapper.d.ts +48 -0
  679. package/XR/webXRLayerWrapper.js +60 -0
  680. package/XR/webXRLayerWrapper.js.map +1 -0
  681. package/XR/webXRManagedOutputCanvas.d.ts +2 -1
  682. package/XR/webXRManagedOutputCanvas.js +36 -29
  683. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  684. package/XR/webXRRenderTargetTextureProvider.d.ts +55 -0
  685. package/XR/webXRRenderTargetTextureProvider.js +63 -0
  686. package/XR/webXRRenderTargetTextureProvider.js.map +1 -0
  687. package/XR/webXRSessionManager.d.ts +30 -7
  688. package/XR/webXRSessionManager.js +62 -64
  689. package/XR/webXRSessionManager.js.map +1 -1
  690. package/XR/webXRTypes.d.ts +1 -1
  691. package/XR/webXRTypes.js.map +1 -1
  692. package/XR/webXRWebGLLayer.d.ts +36 -0
  693. package/XR/webXRWebGLLayer.js +69 -0
  694. package/XR/webXRWebGLLayer.js.map +1 -0
  695. package/abstractScene.d.ts +1 -1
  696. package/abstractScene.js +1 -1
  697. package/abstractScene.js.map +1 -1
  698. package/index.d.ts +1 -0
  699. package/index.js +1 -0
  700. package/index.js.map +1 -1
  701. package/node.d.ts +30 -1
  702. package/node.js +12 -0
  703. package/node.js.map +1 -1
  704. package/package.json +87 -6
  705. package/scene.d.ts +14 -0
  706. package/scene.js +31 -0
  707. package/scene.js.map +1 -1
  708. package/DeviceInput/Implementations/nativeDeviceInputWrapper.js +0 -66
  709. package/DeviceInput/Implementations/nativeDeviceInputWrapper.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vectorMergerBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/vectorMergerBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\nimport { Scene } from '../../../scene';\r\n\r\n/**\r\n * Block used to create a Vector2/3/4 out of individual inputs (one for each component)\r\n */\r\nexport class VectorMergerBlock extends NodeMaterialBlock {\r\n /**\r\n * Gets or sets the swizzle for x (meaning which compoent to affect to the output.x)\r\n */\r\n public xSwizzle: \"x\" | \"y\" | \"z\" | \"w\" = \"x\";\r\n /**\r\n * Gets or sets the swizzle for y (meaning which compoent to affect to the output.y)\r\n */\r\n public ySwizzle: \"x\" | \"y\" | \"z\" | \"w\" = \"y\";\r\n /**\r\n * Gets or sets the swizzle for z (meaning which compoent to affect to the output.z)\r\n */\r\n public zSwizzle: \"x\" | \"y\" | \"z\" | \"w\" = \"z\";\r\n /**\r\n * Gets or sets the swizzle for w (meaning which compoent to affect to the output.w)\r\n */\r\n public wSwizzle: \"x\" | \"y\" | \"z\" | \"w\" = \"w\";\r\n\r\n /**\r\n * Create a new VectorMergerBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n\r\n this.registerInput(\"xyzw \", NodeMaterialBlockConnectionPointTypes.Vector4, true);\r\n this.registerInput(\"xyz \", NodeMaterialBlockConnectionPointTypes.Vector3, true);\r\n this.registerInput(\"xy \", NodeMaterialBlockConnectionPointTypes.Vector2, true);\r\n this.registerInput(\"zw \", NodeMaterialBlockConnectionPointTypes.Vector2, true);\r\n this.registerInput(\"x\", NodeMaterialBlockConnectionPointTypes.Float, true);\r\n this.registerInput(\"y\", NodeMaterialBlockConnectionPointTypes.Float, true);\r\n this.registerInput(\"z\", NodeMaterialBlockConnectionPointTypes.Float, true);\r\n this.registerInput(\"w\", NodeMaterialBlockConnectionPointTypes.Float, true);\r\n\r\n this.registerOutput(\"xyzw\", NodeMaterialBlockConnectionPointTypes.Vector4);\r\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n this.registerOutput(\"xy\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerOutput(\"zw\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"VectorMergerBlock\";\r\n }\r\n\r\n /**\r\n * Gets the xyzw component (input)\r\n */\r\n public get xyzwIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the xyz component (input)\r\n */\r\n public get xyzIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the xy component (input)\r\n */\r\n public get xyIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the zw component (input)\r\n */\r\n public get zwIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the x component (input)\r\n */\r\n public get x(): NodeMaterialConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the y component (input)\r\n */\r\n public get y(): NodeMaterialConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n /**\r\n * Gets the z component (input)\r\n */\r\n public get z(): NodeMaterialConnectionPoint {\r\n return this._inputs[6];\r\n }\r\n\r\n /**\r\n * Gets the w component (input)\r\n */\r\n public get w(): NodeMaterialConnectionPoint {\r\n return this._inputs[7];\r\n }\r\n\r\n /**\r\n * Gets the xyzw component (output)\r\n */\r\n public get xyzw(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the xyz component (output)\r\n */\r\n public get xyzOut(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the xy component (output)\r\n */\r\n public get xyOut(): NodeMaterialConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n /**\r\n * Gets the zw component (output)\r\n */\r\n public get zwOut(): NodeMaterialConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the xy component (output)\r\n * @deprecated Please use xyOut instead.\r\n */\r\n public get xy(): NodeMaterialConnectionPoint {\r\n return this.xyOut;\r\n }\r\n\r\n /**\r\n * Gets the xyz component (output)\r\n * @deprecated Please use xyzOut instead.\r\n */\r\n public get xyz(): NodeMaterialConnectionPoint {\r\n return this.xyzOut;\r\n }\r\n\r\n protected _inputRename(name: string) {\r\n if (name === \"xyzw \") {\r\n return \"xyzwIn\";\r\n }\r\n if (name === \"xyz \") {\r\n return \"xyzIn\";\r\n }\r\n if (name === \"xy \") {\r\n return \"xyIn\";\r\n }\r\n if (name === \"zw \") {\r\n return \"zwIn\";\r\n }\r\n return name;\r\n }\r\n\r\n private _buildSwizzle(len: number) {\r\n let swizzle = this.xSwizzle + this.ySwizzle + this.zSwizzle + this.wSwizzle;\r\n\r\n return \".\" + swizzle.substr(0, len);\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n let xInput = this.x;\r\n let yInput = this.y;\r\n let zInput = this.z;\r\n let wInput = this.w;\r\n let xyInput = this.xyIn;\r\n let zwInput = this.zwIn;\r\n let xyzInput = this.xyzIn;\r\n let xyzwInput = this.xyzwIn;\r\n\r\n let v4Output = this._outputs[0];\r\n let v3Output = this._outputs[1];\r\n let v2Output = this._outputs[2];\r\n let v2CompOutput = this._outputs[3];\r\n\r\n if (xyzwInput.isConnected) {\r\n if (v4Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = ${xyzwInput.associatedVariableName}${this._buildSwizzle(4)};\\r\\n`;\r\n }\r\n\r\n if (v3Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v3Output, state) + ` = ${xyzwInput.associatedVariableName}${this._buildSwizzle(3)};\\r\\n`;\r\n }\r\n\r\n if (v2Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v2Output, state) + ` = ${xyzwInput.associatedVariableName}${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n } else if (xyzInput.isConnected) {\r\n if (v4Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = vec4(${xyzInput.associatedVariableName}, ${wInput.isConnected ? this._writeVariable(wInput) : \"0.0\"})${this._buildSwizzle(4)};\\r\\n`;\r\n }\r\n\r\n if (v3Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v3Output, state) + ` = ${xyzInput.associatedVariableName}${this._buildSwizzle(3)};\\r\\n`;\r\n }\r\n\r\n if (v2Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v2Output, state) + ` = ${xyzInput.associatedVariableName}${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n } else if (xyInput.isConnected) {\r\n if (v4Output.hasEndpoints) {\r\n if (zwInput.isConnected) {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = vec4(${xyInput.associatedVariableName}, ${zwInput.associatedVariableName})${this._buildSwizzle(4)};\\r\\n`;\r\n } else {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = vec4(${xyInput.associatedVariableName}, ${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"}, ${wInput.isConnected ? this._writeVariable(wInput) : \"0.0\"})${this._buildSwizzle(4)};\\r\\n`;\r\n }\r\n }\r\n\r\n if (v3Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v3Output, state) + ` = vec3(${xyInput.associatedVariableName}, ${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"})${this._buildSwizzle(3)};\\r\\n`;\r\n }\r\n\r\n if (v2Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v2Output, state) + ` = ${xyInput.associatedVariableName}${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n\r\n if (v2CompOutput.hasEndpoints) {\r\n if (zwInput.isConnected) {\r\n state.compilationString += this._declareOutput(v2CompOutput, state) + ` = ${zwInput.associatedVariableName}${this._buildSwizzle(2)};\\r\\n`;\r\n } else {\r\n state.compilationString += this._declareOutput(v2CompOutput, state) + ` = vec2(${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"}, ${wInput.isConnected ? this._writeVariable(wInput) : \"0.0\"})${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n }\r\n } else {\r\n if (v4Output.hasEndpoints) {\r\n if (zwInput.isConnected) {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = vec4(${xInput.isConnected ? this._writeVariable(xInput) : \"0.0\"}, ${yInput.isConnected ? this._writeVariable(yInput) : \"0.0\"}, ${zwInput.associatedVariableName})${this._buildSwizzle(4)};\\r\\n`;\r\n } else {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = vec4(${xInput.isConnected ? this._writeVariable(xInput) : \"0.0\"}, ${yInput.isConnected ? this._writeVariable(yInput) : \"0.0\"}, ${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"}, ${wInput.isConnected ? this._writeVariable(wInput) : \"0.0\"})${this._buildSwizzle(4)};\\r\\n`;\r\n }\r\n }\r\n\r\n if (v3Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v3Output, state) + ` = vec3(${xInput.isConnected ? this._writeVariable(xInput) : \"0.0\"}, ${yInput.isConnected ? this._writeVariable(yInput) : \"0.0\"}, ${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"})${this._buildSwizzle(3)};\\r\\n`;\r\n }\r\n\r\n if (v2Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v2Output, state) + ` = vec2(${xInput.isConnected ? this._writeVariable(xInput) : \"0.0\"}, ${yInput.isConnected ? this._writeVariable(yInput) : \"0.0\"})${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n\r\n if (v2CompOutput.hasEndpoints) {\r\n if (zwInput.isConnected) {\r\n state.compilationString += this._declareOutput(v2CompOutput, state) + ` = ${zwInput.associatedVariableName}${this._buildSwizzle(2)};\\r\\n`;\r\n } else {\r\n state.compilationString += this._declareOutput(v2CompOutput, state) + ` = vec2(${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"}, ${wInput.isConnected ? this._writeVariable(wInput) : \"0.0\"})${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n public serialize(): any {\r\n let serializationObject = super.serialize();\r\n\r\n serializationObject.xSwizzle = this.xSwizzle;\r\n serializationObject.ySwizzle = this.ySwizzle;\r\n serializationObject.zSwizzle = this.zSwizzle;\r\n serializationObject.wSwizzle = this.wSwizzle;\r\n\r\n return serializationObject;\r\n }\r\n\r\n public _deserialize(serializationObject: any, scene: Scene, rootUrl: string) {\r\n super._deserialize(serializationObject, scene, rootUrl);\r\n\r\n this.xSwizzle = serializationObject.xSwizzle ?? \"x\";\r\n this.ySwizzle = serializationObject.ySwizzle ?? \"y\";\r\n this.zSwizzle = serializationObject.zSwizzle ?? \"z\";\r\n this.wSwizzle = serializationObject.wSwizzle ?? \"w\";\r\n }\r\n\r\n protected _dumpPropertiesCode() {\r\n var codeString = super._dumpPropertiesCode();\r\n codeString += `${this._codeVariableName}.xSwizzle = ${this.xSwizzle}};\\r\\n`;\r\n codeString += `${this._codeVariableName}.ySwizzle = ${this.ySwizzle}};\\r\\n`;\r\n codeString += `${this._codeVariableName}.zSwizzle = ${this.zSwizzle}};\\r\\n`;\r\n codeString += `${this._codeVariableName}.wSwizzle = ${this.wSwizzle}};\\r\\n`;\r\n\r\n return codeString;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.VectorMergerBlock\", VectorMergerBlock);\r\n"]}
1
+ {"version":3,"file":"vectorMergerBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/vectorMergerBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\nimport { Scene } from '../../../scene';\r\n\r\n/**\r\n * Block used to create a Vector2/3/4 out of individual inputs (one for each component)\r\n */\r\nexport class VectorMergerBlock extends NodeMaterialBlock {\r\n /**\r\n * Gets or sets the swizzle for x (meaning which compoent to affect to the output.x)\r\n */\r\n public xSwizzle: \"x\" | \"y\" | \"z\" | \"w\" = \"x\";\r\n /**\r\n * Gets or sets the swizzle for y (meaning which compoent to affect to the output.y)\r\n */\r\n public ySwizzle: \"x\" | \"y\" | \"z\" | \"w\" = \"y\";\r\n /**\r\n * Gets or sets the swizzle for z (meaning which compoent to affect to the output.z)\r\n */\r\n public zSwizzle: \"x\" | \"y\" | \"z\" | \"w\" = \"z\";\r\n /**\r\n * Gets or sets the swizzle for w (meaning which compoent to affect to the output.w)\r\n */\r\n public wSwizzle: \"x\" | \"y\" | \"z\" | \"w\" = \"w\";\r\n\r\n /**\r\n * Create a new VectorMergerBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n\r\n this.registerInput(\"xyzw \", NodeMaterialBlockConnectionPointTypes.Vector4, true);\r\n this.registerInput(\"xyz \", NodeMaterialBlockConnectionPointTypes.Vector3, true);\r\n this.registerInput(\"xy \", NodeMaterialBlockConnectionPointTypes.Vector2, true);\r\n this.registerInput(\"zw \", NodeMaterialBlockConnectionPointTypes.Vector2, true);\r\n this.registerInput(\"x\", NodeMaterialBlockConnectionPointTypes.Float, true);\r\n this.registerInput(\"y\", NodeMaterialBlockConnectionPointTypes.Float, true);\r\n this.registerInput(\"z\", NodeMaterialBlockConnectionPointTypes.Float, true);\r\n this.registerInput(\"w\", NodeMaterialBlockConnectionPointTypes.Float, true);\r\n\r\n this.registerOutput(\"xyzw\", NodeMaterialBlockConnectionPointTypes.Vector4);\r\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n this.registerOutput(\"xy\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerOutput(\"zw\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"VectorMergerBlock\";\r\n }\r\n\r\n /**\r\n * Gets the xyzw component (input)\r\n */\r\n public get xyzwIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the xyz component (input)\r\n */\r\n public get xyzIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the xy component (input)\r\n */\r\n public get xyIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the zw component (input)\r\n */\r\n public get zwIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the x component (input)\r\n */\r\n public get x(): NodeMaterialConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the y component (input)\r\n */\r\n public get y(): NodeMaterialConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n /**\r\n * Gets the z component (input)\r\n */\r\n public get z(): NodeMaterialConnectionPoint {\r\n return this._inputs[6];\r\n }\r\n\r\n /**\r\n * Gets the w component (input)\r\n */\r\n public get w(): NodeMaterialConnectionPoint {\r\n return this._inputs[7];\r\n }\r\n\r\n /**\r\n * Gets the xyzw component (output)\r\n */\r\n public get xyzw(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the xyz component (output)\r\n */\r\n public get xyzOut(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the xy component (output)\r\n */\r\n public get xyOut(): NodeMaterialConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n /**\r\n * Gets the zw component (output)\r\n */\r\n public get zwOut(): NodeMaterialConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the xy component (output)\r\n * @deprecated Please use xyOut instead.\r\n */\r\n public get xy(): NodeMaterialConnectionPoint {\r\n return this.xyOut;\r\n }\r\n\r\n /**\r\n * Gets the xyz component (output)\r\n * @deprecated Please use xyzOut instead.\r\n */\r\n public get xyz(): NodeMaterialConnectionPoint {\r\n return this.xyzOut;\r\n }\r\n\r\n protected _inputRename(name: string) {\r\n if (name === \"xyzw \") {\r\n return \"xyzwIn\";\r\n }\r\n if (name === \"xyz \") {\r\n return \"xyzIn\";\r\n }\r\n if (name === \"xy \") {\r\n return \"xyIn\";\r\n }\r\n if (name === \"zw \") {\r\n return \"zwIn\";\r\n }\r\n return name;\r\n }\r\n\r\n private _buildSwizzle(len: number) {\r\n let swizzle = this.xSwizzle + this.ySwizzle + this.zSwizzle + this.wSwizzle;\r\n\r\n return \".\" + swizzle.substr(0, len);\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n let xInput = this.x;\r\n let yInput = this.y;\r\n let zInput = this.z;\r\n let wInput = this.w;\r\n let xyInput = this.xyIn;\r\n let zwInput = this.zwIn;\r\n let xyzInput = this.xyzIn;\r\n let xyzwInput = this.xyzwIn;\r\n\r\n let v4Output = this._outputs[0];\r\n let v3Output = this._outputs[1];\r\n let v2Output = this._outputs[2];\r\n let v2CompOutput = this._outputs[3];\r\n\r\n if (xyzwInput.isConnected) {\r\n if (v4Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = ${xyzwInput.associatedVariableName}${this._buildSwizzle(4)};\\r\\n`;\r\n }\r\n\r\n if (v3Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v3Output, state) + ` = ${xyzwInput.associatedVariableName}${this._buildSwizzle(3)};\\r\\n`;\r\n }\r\n\r\n if (v2Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v2Output, state) + ` = ${xyzwInput.associatedVariableName}${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n } else if (xyzInput.isConnected) {\r\n if (v4Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = vec4(${xyzInput.associatedVariableName}, ${wInput.isConnected ? this._writeVariable(wInput) : \"0.0\"})${this._buildSwizzle(4)};\\r\\n`;\r\n }\r\n\r\n if (v3Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v3Output, state) + ` = ${xyzInput.associatedVariableName}${this._buildSwizzle(3)};\\r\\n`;\r\n }\r\n\r\n if (v2Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v2Output, state) + ` = ${xyzInput.associatedVariableName}${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n } else if (xyInput.isConnected) {\r\n if (v4Output.hasEndpoints) {\r\n if (zwInput.isConnected) {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = vec4(${xyInput.associatedVariableName}, ${zwInput.associatedVariableName})${this._buildSwizzle(4)};\\r\\n`;\r\n } else {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = vec4(${xyInput.associatedVariableName}, ${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"}, ${wInput.isConnected ? this._writeVariable(wInput) : \"0.0\"})${this._buildSwizzle(4)};\\r\\n`;\r\n }\r\n }\r\n\r\n if (v3Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v3Output, state) + ` = vec3(${xyInput.associatedVariableName}, ${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"})${this._buildSwizzle(3)};\\r\\n`;\r\n }\r\n\r\n if (v2Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v2Output, state) + ` = ${xyInput.associatedVariableName}${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n\r\n if (v2CompOutput.hasEndpoints) {\r\n if (zwInput.isConnected) {\r\n state.compilationString += this._declareOutput(v2CompOutput, state) + ` = ${zwInput.associatedVariableName}${this._buildSwizzle(2)};\\r\\n`;\r\n } else {\r\n state.compilationString += this._declareOutput(v2CompOutput, state) + ` = vec2(${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"}, ${wInput.isConnected ? this._writeVariable(wInput) : \"0.0\"})${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n }\r\n } else {\r\n if (v4Output.hasEndpoints) {\r\n if (zwInput.isConnected) {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = vec4(${xInput.isConnected ? this._writeVariable(xInput) : \"0.0\"}, ${yInput.isConnected ? this._writeVariable(yInput) : \"0.0\"}, ${zwInput.associatedVariableName})${this._buildSwizzle(4)};\\r\\n`;\r\n } else {\r\n state.compilationString += this._declareOutput(v4Output, state) + ` = vec4(${xInput.isConnected ? this._writeVariable(xInput) : \"0.0\"}, ${yInput.isConnected ? this._writeVariable(yInput) : \"0.0\"}, ${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"}, ${wInput.isConnected ? this._writeVariable(wInput) : \"0.0\"})${this._buildSwizzle(4)};\\r\\n`;\r\n }\r\n }\r\n\r\n if (v3Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v3Output, state) + ` = vec3(${xInput.isConnected ? this._writeVariable(xInput) : \"0.0\"}, ${yInput.isConnected ? this._writeVariable(yInput) : \"0.0\"}, ${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"})${this._buildSwizzle(3)};\\r\\n`;\r\n }\r\n\r\n if (v2Output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(v2Output, state) + ` = vec2(${xInput.isConnected ? this._writeVariable(xInput) : \"0.0\"}, ${yInput.isConnected ? this._writeVariable(yInput) : \"0.0\"})${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n\r\n if (v2CompOutput.hasEndpoints) {\r\n if (zwInput.isConnected) {\r\n state.compilationString += this._declareOutput(v2CompOutput, state) + ` = ${zwInput.associatedVariableName}${this._buildSwizzle(2)};\\r\\n`;\r\n } else {\r\n state.compilationString += this._declareOutput(v2CompOutput, state) + ` = vec2(${zInput.isConnected ? this._writeVariable(zInput) : \"0.0\"}, ${wInput.isConnected ? this._writeVariable(wInput) : \"0.0\"})${this._buildSwizzle(2)};\\r\\n`;\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n public serialize(): any {\r\n let serializationObject = super.serialize();\r\n\r\n serializationObject.xSwizzle = this.xSwizzle;\r\n serializationObject.ySwizzle = this.ySwizzle;\r\n serializationObject.zSwizzle = this.zSwizzle;\r\n serializationObject.wSwizzle = this.wSwizzle;\r\n\r\n return serializationObject;\r\n }\r\n\r\n public _deserialize(serializationObject: any, scene: Scene, rootUrl: string) {\r\n super._deserialize(serializationObject, scene, rootUrl);\r\n\r\n this.xSwizzle = serializationObject.xSwizzle ?? \"x\";\r\n this.ySwizzle = serializationObject.ySwizzle ?? \"y\";\r\n this.zSwizzle = serializationObject.zSwizzle ?? \"z\";\r\n this.wSwizzle = serializationObject.wSwizzle ?? \"w\";\r\n }\r\n\r\n protected _dumpPropertiesCode() {\r\n var codeString = super._dumpPropertiesCode();\r\n codeString += `${this._codeVariableName}.xSwizzle = \"${this.xSwizzle}\";\\r\\n`;\r\n codeString += `${this._codeVariableName}.ySwizzle = \"${this.ySwizzle}\";\\r\\n`;\r\n codeString += `${this._codeVariableName}.zSwizzle = \"${this.zSwizzle}\";\\r\\n`;\r\n codeString += `${this._codeVariableName}.wSwizzle = \"${this.wSwizzle}\";\\r\\n`;\r\n\r\n return codeString;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.VectorMergerBlock\", VectorMergerBlock);\r\n"]}
@@ -0,0 +1,39 @@
1
+ import { NodeMaterialBlock } from '../nodeMaterialBlock';
2
+ import { NodeMaterialBuildState } from '../nodeMaterialBuildState';
3
+ import { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';
4
+ /**
5
+ * block used to Generate a Voronoi Noise Pattern
6
+ */
7
+ export declare class VoronoiNoiseBlock extends NodeMaterialBlock {
8
+ /**
9
+ * Creates a new VoronoiNoiseBlock
10
+ * @param name defines the block name
11
+ */
12
+ constructor(name: string);
13
+ /**
14
+ * Gets the current class name
15
+ * @returns the class name
16
+ */
17
+ getClassName(): string;
18
+ /**
19
+ * Gets the seed input component
20
+ */
21
+ get seed(): NodeMaterialConnectionPoint;
22
+ /**
23
+ * Gets the offset input component
24
+ */
25
+ get offset(): NodeMaterialConnectionPoint;
26
+ /**
27
+ * Gets the density input component
28
+ */
29
+ get density(): NodeMaterialConnectionPoint;
30
+ /**
31
+ * Gets the output component
32
+ */
33
+ get output(): NodeMaterialConnectionPoint;
34
+ /**
35
+ * Gets the output component
36
+ */
37
+ get cells(): NodeMaterialConnectionPoint;
38
+ protected _buildBlock(state: NodeMaterialBuildState): this | undefined;
39
+ }
@@ -0,0 +1,107 @@
1
+ import { __extends } from "tslib";
2
+ import { NodeMaterialBlock } from '../nodeMaterialBlock.js';
3
+ import { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes.js';
4
+ import { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets.js';
5
+ import { RegisterClass } from '../../../Misc/typeStore.js';
6
+ /**
7
+ * block used to Generate a Voronoi Noise Pattern
8
+ */
9
+ var VoronoiNoiseBlock = /** @class */ (function (_super) {
10
+ __extends(VoronoiNoiseBlock, _super);
11
+ /**
12
+ * Creates a new VoronoiNoiseBlock
13
+ * @param name defines the block name
14
+ */
15
+ function VoronoiNoiseBlock(name) {
16
+ var _this = _super.call(this, name, NodeMaterialBlockTargets.Neutral) || this;
17
+ _this.registerInput("seed", NodeMaterialBlockConnectionPointTypes.Vector2);
18
+ _this.registerInput("offset", NodeMaterialBlockConnectionPointTypes.Float);
19
+ _this.registerInput("density", NodeMaterialBlockConnectionPointTypes.Float);
20
+ _this.registerOutput("output", NodeMaterialBlockConnectionPointTypes.Float);
21
+ _this.registerOutput("cells", NodeMaterialBlockConnectionPointTypes.Float);
22
+ return _this;
23
+ }
24
+ /**
25
+ * Gets the current class name
26
+ * @returns the class name
27
+ */
28
+ VoronoiNoiseBlock.prototype.getClassName = function () {
29
+ return "VoronoiNoiseBlock";
30
+ };
31
+ Object.defineProperty(VoronoiNoiseBlock.prototype, "seed", {
32
+ /**
33
+ * Gets the seed input component
34
+ */
35
+ get: function () {
36
+ return this._inputs[0];
37
+ },
38
+ enumerable: false,
39
+ configurable: true
40
+ });
41
+ Object.defineProperty(VoronoiNoiseBlock.prototype, "offset", {
42
+ /**
43
+ * Gets the offset input component
44
+ */
45
+ get: function () {
46
+ return this._inputs[1];
47
+ },
48
+ enumerable: false,
49
+ configurable: true
50
+ });
51
+ Object.defineProperty(VoronoiNoiseBlock.prototype, "density", {
52
+ /**
53
+ * Gets the density input component
54
+ */
55
+ get: function () {
56
+ return this._inputs[2];
57
+ },
58
+ enumerable: false,
59
+ configurable: true
60
+ });
61
+ Object.defineProperty(VoronoiNoiseBlock.prototype, "output", {
62
+ /**
63
+ * Gets the output component
64
+ */
65
+ get: function () {
66
+ return this._outputs[0];
67
+ },
68
+ enumerable: false,
69
+ configurable: true
70
+ });
71
+ Object.defineProperty(VoronoiNoiseBlock.prototype, "cells", {
72
+ /**
73
+ * Gets the output component
74
+ */
75
+ get: function () {
76
+ return this._outputs[1];
77
+ },
78
+ enumerable: false,
79
+ configurable: true
80
+ });
81
+ VoronoiNoiseBlock.prototype._buildBlock = function (state) {
82
+ _super.prototype._buildBlock.call(this, state);
83
+ if (!this.seed.isConnected) {
84
+ return;
85
+ }
86
+ var functionString = "vec2 voronoiRandom(vec2 seed, float offset){\n mat2 m = mat2(15.27, 47.63, 99.41, 89.98);\n vec2 uv = fract(sin(m * seed) * 46839.32);\n return vec2(sin(uv.y * offset) * 0.5 + 0.5, cos(uv.x * offset) * 0.5 + 0.5);\n }\n ";
87
+ state._emitFunction('voronoiRandom', functionString, '// Voronoi random generator');
88
+ functionString = "void voronoi(vec2 seed, float offset, float density, out float outValue, out float cells){\n vec2 g = floor(seed * density);\n vec2 f = fract(seed * density);\n float t = 8.0;\n vec3 res = vec3(8.0, 0.0, 0.0);\n\n for(int y=-1; y<=1; y++)\n {\n for(int x=-1; x<=1; x++)\n {\n vec2 lattice = vec2(x,y);\n vec2 randomOffset = voronoiRandom(lattice + g, offset);\n float d = distance(lattice + randomOffset, f);\n if(d < res.x)\n {\n res = vec3(d, randomOffset.x, randomOffset.y);\n outValue = res.x;\n cells = res.y;\n }\n }\n }\n }\n ";
89
+ state._emitFunction('voronoi', functionString, '// Voronoi');
90
+ var tempOutput = state._getFreeVariableName("tempOutput");
91
+ var tempCells = state._getFreeVariableName("tempCells");
92
+ state.compilationString += "float " + tempOutput + " = 0.0;\r\n";
93
+ state.compilationString += "float " + tempCells + " = 0.0;\r\n";
94
+ state.compilationString += "voronoi(" + this.seed.associatedVariableName + ", " + this.offset.associatedVariableName + ", " + this.density.associatedVariableName + ", " + tempOutput + ", " + tempCells + ");\r\n";
95
+ if (this.output.hasEndpoints) {
96
+ state.compilationString += this._declareOutput(this.output, state) + (" = " + tempOutput + ";\r\n");
97
+ }
98
+ if (this.cells.hasEndpoints) {
99
+ state.compilationString += this._declareOutput(this.cells, state) + (" = " + tempCells + ";\r\n");
100
+ }
101
+ return this;
102
+ };
103
+ return VoronoiNoiseBlock;
104
+ }(NodeMaterialBlock));
105
+ export { VoronoiNoiseBlock };
106
+ RegisterClass("BABYLON.VoronoiNoiseBlock", VoronoiNoiseBlock);
107
+ //# sourceMappingURL=voronoiNoiseBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voronoiNoiseBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/voronoiNoiseBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\n\r\n/**\r\n * block used to Generate a Voronoi Noise Pattern\r\n */\r\nexport class VoronoiNoiseBlock extends NodeMaterialBlock {\r\n /**\r\n * Creates a new VoronoiNoiseBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerInput(\"offset\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerInput(\"density\", NodeMaterialBlockConnectionPointTypes.Float);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"cells\", NodeMaterialBlockConnectionPointTypes.Float);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"VoronoiNoiseBlock\";\r\n }\r\n\r\n /**\r\n * Gets the seed input component\r\n */\r\n public get seed(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the offset input component\r\n */\r\n public get offset(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the density input component\r\n */\r\n public get density(): NodeMaterialConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get cells(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (!this.seed.isConnected) {\r\n return;\r\n }\r\n\r\n let functionString = `vec2 voronoiRandom(vec2 seed, float offset){\r\n mat2 m = mat2(15.27, 47.63, 99.41, 89.98);\r\n vec2 uv = fract(sin(m * seed) * 46839.32);\r\n return vec2(sin(uv.y * offset) * 0.5 + 0.5, cos(uv.x * offset) * 0.5 + 0.5);\r\n }\r\n `;\r\n\r\n state._emitFunction('voronoiRandom', functionString, '// Voronoi random generator');\r\n\r\n functionString = `void voronoi(vec2 seed, float offset, float density, out float outValue, out float cells){\r\n vec2 g = floor(seed * density);\r\n vec2 f = fract(seed * density);\r\n float t = 8.0;\r\n vec3 res = vec3(8.0, 0.0, 0.0);\r\n\r\n for(int y=-1; y<=1; y++)\r\n {\r\n for(int x=-1; x<=1; x++)\r\n {\r\n vec2 lattice = vec2(x,y);\r\n vec2 randomOffset = voronoiRandom(lattice + g, offset);\r\n float d = distance(lattice + randomOffset, f);\r\n if(d < res.x)\r\n {\r\n res = vec3(d, randomOffset.x, randomOffset.y);\r\n outValue = res.x;\r\n cells = res.y;\r\n }\r\n }\r\n }\r\n }\r\n `;\r\n\r\n state._emitFunction('voronoi', functionString, '// Voronoi');\r\n\r\n let tempOutput = state._getFreeVariableName(\"tempOutput\");\r\n let tempCells = state._getFreeVariableName(\"tempCells\");\r\n\r\n state.compilationString += `float ${tempOutput} = 0.0;\\r\\n`;\r\n state.compilationString += `float ${tempCells} = 0.0;\\r\\n`;\r\n state.compilationString += `voronoi(${this.seed.associatedVariableName}, ${this.offset.associatedVariableName}, ${this.density.associatedVariableName}, ${tempOutput}, ${tempCells});\\r\\n`;\r\n\r\n if (this.output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.output, state) + ` = ${tempOutput};\\r\\n`;\r\n }\r\n\r\n if (this.cells.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.cells, state) + ` = ${tempCells};\\r\\n`;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n}\r\n\r\nRegisterClass(\"BABYLON.VoronoiNoiseBlock\", VoronoiNoiseBlock);"]}
@@ -30,6 +30,14 @@ export declare class WorleyNoise3DBlock extends NodeMaterialBlock {
30
30
  * Gets the output component
31
31
  */
32
32
  get output(): NodeMaterialConnectionPoint;
33
+ /**
34
+ * Gets the x component
35
+ */
36
+ get x(): NodeMaterialConnectionPoint;
37
+ /**
38
+ * Gets the y component
39
+ */
40
+ get y(): NodeMaterialConnectionPoint;
33
41
  protected _buildBlock(state: NodeMaterialBuildState): this | undefined;
34
42
  /**
35
43
  * Exposes the properties to the UI?
@@ -25,6 +25,8 @@ var WorleyNoise3DBlock = /** @class */ (function (_super) {
25
25
  _this.registerInput("seed", NodeMaterialBlockConnectionPointTypes.Vector3);
26
26
  _this.registerInput("jitter", NodeMaterialBlockConnectionPointTypes.Float);
27
27
  _this.registerOutput("output", NodeMaterialBlockConnectionPointTypes.Vector2);
28
+ _this.registerOutput("x", NodeMaterialBlockConnectionPointTypes.Float);
29
+ _this.registerOutput("y", NodeMaterialBlockConnectionPointTypes.Float);
28
30
  return _this;
29
31
  }
30
32
  /**
@@ -64,12 +66,32 @@ var WorleyNoise3DBlock = /** @class */ (function (_super) {
64
66
  enumerable: false,
65
67
  configurable: true
66
68
  });
69
+ Object.defineProperty(WorleyNoise3DBlock.prototype, "x", {
70
+ /**
71
+ * Gets the x component
72
+ */
73
+ get: function () {
74
+ return this._outputs[1];
75
+ },
76
+ enumerable: false,
77
+ configurable: true
78
+ });
79
+ Object.defineProperty(WorleyNoise3DBlock.prototype, "y", {
80
+ /**
81
+ * Gets the y component
82
+ */
83
+ get: function () {
84
+ return this._outputs[2];
85
+ },
86
+ enumerable: false,
87
+ configurable: true
88
+ });
67
89
  WorleyNoise3DBlock.prototype._buildBlock = function (state) {
68
90
  _super.prototype._buildBlock.call(this, state);
69
91
  if (!this.seed.isConnected) {
70
92
  return;
71
93
  }
72
- if (!this._outputs[0].hasEndpoints) {
94
+ if (!this.output.hasEndpoints && !this.x.hasEndpoints && !this.y.hasEndpoints) {
73
95
  return;
74
96
  }
75
97
  var functionString = "vec3 permute(vec3 x){\r\n";
@@ -222,7 +244,17 @@ var WorleyNoise3DBlock = /** @class */ (function (_super) {
222
244
  functionString += " return sqrt(d11.xy); // F1, F2\r\n";
223
245
  functionString += "}\r\n\r\n";
224
246
  state._emitFunction('worley3D', functionString, '// Worley3D');
225
- state.compilationString += this._declareOutput(this._outputs[0], state) + (" = worley(" + this.seed.associatedVariableName + ", " + this.jitter.associatedVariableName + ", " + this.manhattanDistance + ");\r\n");
247
+ var tempVariable = state._getFreeVariableName("worleyTemp");
248
+ state.compilationString += "vec2 " + tempVariable + " = worley(" + this.seed.associatedVariableName + ", " + this.jitter.associatedVariableName + ", " + this.manhattanDistance + ");\r\n";
249
+ if (this.output.hasEndpoints) {
250
+ state.compilationString += this._declareOutput(this.output, state) + (" = " + tempVariable + ";\r\n");
251
+ }
252
+ if (this.x.hasEndpoints) {
253
+ state.compilationString += this._declareOutput(this.x, state) + (" = " + tempVariable + ".x;\r\n");
254
+ }
255
+ if (this.y.hasEndpoints) {
256
+ state.compilationString += this._declareOutput(this.y, state) + (" = " + tempVariable + ".y;\r\n");
257
+ }
226
258
  return this;
227
259
  };
228
260
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"worleyNoise3DBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/worleyNoise3DBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\nimport { Scene } from '../../../scene';\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../nodeMaterialDecorator\";\r\n\r\n/**\r\n * block used to Generate a Worley Noise 3D Noise Pattern\r\n */\r\n\r\n// Source: https://github.com/Erkaman/glsl-worley\r\n// Converted to BJS by Pryme8\r\n//\r\n// Worley Noise 3D\r\n// Return vec2 value range of -1.0->1.0, F1-F2 respectivly\r\n\r\nexport class WorleyNoise3DBlock extends NodeMaterialBlock {\r\n /** Gets or sets a boolean indicating that normal should be inverted on X axis */\r\n @editableInPropertyPage(\"Use Manhattan Distance\", PropertyTypeForEdition.Boolean, \"PROPERTIES\", { \"notifiers\": { \"update\": false } })\r\n public manhattanDistance = false;\r\n\r\n /**\r\n * Creates a new WorleyNoise3DBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n this.registerInput(\"jitter\", NodeMaterialBlockConnectionPointTypes.Float);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"WorleyNoise3DBlock\";\r\n }\r\n\r\n /**\r\n * Gets the seed input component\r\n */\r\n public get seed(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the jitter input component\r\n */\r\n public get jitter(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (!this.seed.isConnected) {\r\n return;\r\n }\r\n\r\n if (!this._outputs[0].hasEndpoints) {\r\n return;\r\n }\r\n\r\n let functionString = `vec3 permute(vec3 x){\\r\\n`;\r\n functionString += ` return mod((34.0 * x + 1.0) * x, 289.0);\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n functionString += `vec3 dist(vec3 x, vec3 y, vec3 z, bool manhattanDistance){\\r\\n`;\r\n functionString += ` return manhattanDistance ? abs(x) + abs(y) + abs(z) : (x * x + y * y + z * z);\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n functionString += `vec2 worley(vec3 P, float jitter, bool manhattanDistance){\\r\\n`;\r\n functionString += ` float K = 0.142857142857; // 1/7\\r\\n`;\r\n functionString += ` float Ko = 0.428571428571; // 1/2-K/2\\r\\n`;\r\n functionString += ` float K2 = 0.020408163265306; // 1/(7*7)\\r\\n`;\r\n functionString += ` float Kz = 0.166666666667; // 1/6\\r\\n`;\r\n functionString += ` float Kzo = 0.416666666667; // 1/2-1/6*2\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 Pi = mod(floor(P), 289.0);\\r\\n`;\r\n functionString += ` vec3 Pf = fract(P) - 0.5;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += ` vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += ` vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));\\r\\n`;\r\n functionString += ` vec3 p1 = permute(p + Pi.y - 1.0);\\r\\n`;\r\n functionString += ` vec3 p2 = permute(p + Pi.y);\\r\\n`;\r\n functionString += ` vec3 p3 = permute(p + Pi.y + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p11 = permute(p1 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p12 = permute(p1 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p13 = permute(p1 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p21 = permute(p2 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p22 = permute(p2 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p23 = permute(p2 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p31 = permute(p3 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p32 = permute(p3 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p33 = permute(p3 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox11 = fract(p11*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox12 = fract(p12*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz12 = floor(p12*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox13 = fract(p13*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz13 = floor(p13*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox21 = fract(p21*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz21 = floor(p21*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox22 = fract(p22*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz22 = floor(p22*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox23 = fract(p23*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz23 = floor(p23*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox31 = fract(p31*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz31 = floor(p31*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox32 = fract(p32*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz32 = floor(p32*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox33 = fract(p33*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz33 = floor(p33*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx11 = Pfx + jitter*ox11;\\r\\n`;\r\n functionString += ` vec3 dy11 = Pfy.x + jitter*oy11;\\r\\n`;\r\n functionString += ` vec3 dz11 = Pfz.x + jitter*oz11;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx12 = Pfx + jitter*ox12;\\r\\n`;\r\n functionString += ` vec3 dy12 = Pfy.x + jitter*oy12;\\r\\n`;\r\n functionString += ` vec3 dz12 = Pfz.y + jitter*oz12;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx13 = Pfx + jitter*ox13;\\r\\n`;\r\n functionString += ` vec3 dy13 = Pfy.x + jitter*oy13;\\r\\n`;\r\n functionString += ` vec3 dz13 = Pfz.z + jitter*oz13;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx21 = Pfx + jitter*ox21;\\r\\n`;\r\n functionString += ` vec3 dy21 = Pfy.y + jitter*oy21;\\r\\n`;\r\n functionString += ` vec3 dz21 = Pfz.x + jitter*oz21;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx22 = Pfx + jitter*ox22;\\r\\n`;\r\n functionString += ` vec3 dy22 = Pfy.y + jitter*oy22;\\r\\n`;\r\n functionString += ` vec3 dz22 = Pfz.y + jitter*oz22;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx23 = Pfx + jitter*ox23;\\r\\n`;\r\n functionString += ` vec3 dy23 = Pfy.y + jitter*oy23;\\r\\n`;\r\n functionString += ` vec3 dz23 = Pfz.z + jitter*oz23;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx31 = Pfx + jitter*ox31;\\r\\n`;\r\n functionString += ` vec3 dy31 = Pfy.z + jitter*oy31;\\r\\n`;\r\n functionString += ` vec3 dz31 = Pfz.x + jitter*oz31;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx32 = Pfx + jitter*ox32;\\r\\n`;\r\n functionString += ` vec3 dy32 = Pfy.z + jitter*oy32;\\r\\n`;\r\n functionString += ` vec3 dz32 = Pfz.y + jitter*oz32;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx33 = Pfx + jitter*ox33;\\r\\n`;\r\n functionString += ` vec3 dy33 = Pfy.z + jitter*oy33;\\r\\n`;\r\n functionString += ` vec3 dz33 = Pfz.z + jitter*oz33;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d12 =dist(dx12, dy12, dz12, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 d1a = min(d11, d12);\\r\\n`;\r\n functionString += ` d12 = max(d11, d12);\\r\\n`;\r\n functionString += ` d11 = min(d1a, d13); // Smallest now not in d12 or d13\\r\\n`;\r\n functionString += ` d13 = max(d1a, d13);\\r\\n`;\r\n functionString += ` d12 = min(d12, d13); // 2nd smallest now not in d13\\r\\n`;\r\n functionString += ` vec3 d2a = min(d21, d22);\\r\\n`;\r\n functionString += ` d22 = max(d21, d22);\\r\\n`;\r\n functionString += ` d21 = min(d2a, d23); // Smallest now not in d22 or d23\\r\\n`;\r\n functionString += ` d23 = max(d2a, d23);\\r\\n`;\r\n functionString += ` d22 = min(d22, d23); // 2nd smallest now not in d23\\r\\n`;\r\n functionString += ` vec3 d3a = min(d31, d32);\\r\\n`;\r\n functionString += ` d32 = max(d31, d32);\\r\\n`;\r\n functionString += ` d31 = min(d3a, d33); // Smallest now not in d32 or d33\\r\\n`;\r\n functionString += ` d33 = max(d3a, d33);\\r\\n`;\r\n functionString += ` d32 = min(d32, d33); // 2nd smallest now not in d33\\r\\n`;\r\n functionString += ` vec3 da = min(d11, d21);\\r\\n`;\r\n functionString += ` d21 = max(d11, d21);\\r\\n`;\r\n functionString += ` d11 = min(da, d31); // Smallest now in d11\\r\\n`;\r\n functionString += ` d31 = max(da, d31); // 2nd smallest now not in d31\\r\\n`;\r\n functionString += ` d11.xy = (d11.x < d11.y) ? d11.xy : d11.yx;\\r\\n`;\r\n functionString += ` d11.xz = (d11.x < d11.z) ? d11.xz : d11.zx; // d11.x now smallest\\r\\n`;\r\n functionString += ` d12 = min(d12, d21); // 2nd smallest now not in d21\\r\\n`;\r\n functionString += ` d12 = min(d12, d22); // nor in d22\\r\\n`;\r\n functionString += ` d12 = min(d12, d31); // nor in d31\\r\\n`;\r\n functionString += ` d12 = min(d12, d32); // nor in d32\\r\\n`;\r\n functionString += ` d11.yz = min(d11.yz,d12.xy); // nor in d12.yz\\r\\n`;\r\n functionString += ` d11.y = min(d11.y,d12.z); // Only two more to go\\r\\n`;\r\n functionString += ` d11.y = min(d11.y,d11.z); // Done! (Phew!)\\r\\n`;\r\n functionString += ` return sqrt(d11.xy); // F1, F2\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n state._emitFunction('worley3D', functionString, '// Worley3D');\r\n state.compilationString += this._declareOutput(this._outputs[0], state) + ` = worley(${this.seed.associatedVariableName}, ${this.jitter.associatedVariableName}, ${this.manhattanDistance});\\r\\n`;\r\n\r\n return this;\r\n }\r\n /**\r\n * Exposes the properties to the UI?\r\n */\r\n protected _dumpPropertiesCode() {\r\n var codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.manhattanDistance = ${this.manhattanDistance};\\r\\n`;\r\n\r\n return codeString;\r\n }\r\n /**\r\n * Exposes the properties to the Serialize?\r\n */\r\n public serialize(): any {\r\n let serializationObject = super.serialize();\r\n\r\n serializationObject.manhattanDistance = this.manhattanDistance;\r\n\r\n return serializationObject;\r\n }\r\n /**\r\n * Exposes the properties to the deserialize?\r\n */\r\n public _deserialize(serializationObject: any, scene: Scene, rootUrl: string) {\r\n super._deserialize(serializationObject, scene, rootUrl);\r\n\r\n this.manhattanDistance = serializationObject.manhattanDistance;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.WorleyNoise3DBlock\", WorleyNoise3DBlock);"]}
1
+ {"version":3,"file":"worleyNoise3DBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/worleyNoise3DBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\nimport { Scene } from '../../../scene';\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../nodeMaterialDecorator\";\r\n\r\n/**\r\n * block used to Generate a Worley Noise 3D Noise Pattern\r\n */\r\n\r\n// Source: https://github.com/Erkaman/glsl-worley\r\n// Converted to BJS by Pryme8\r\n//\r\n// Worley Noise 3D\r\n// Return vec2 value range of -1.0->1.0, F1-F2 respectivly\r\n\r\nexport class WorleyNoise3DBlock extends NodeMaterialBlock {\r\n /** Gets or sets a boolean indicating that normal should be inverted on X axis */\r\n @editableInPropertyPage(\"Use Manhattan Distance\", PropertyTypeForEdition.Boolean, \"PROPERTIES\", { \"notifiers\": { \"update\": false } })\r\n public manhattanDistance = false;\r\n\r\n /**\r\n * Creates a new WorleyNoise3DBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n this.registerInput(\"jitter\", NodeMaterialBlockConnectionPointTypes.Float);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"WorleyNoise3DBlock\";\r\n }\r\n\r\n /**\r\n * Gets the seed input component\r\n */\r\n public get seed(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the jitter input component\r\n */\r\n public get jitter(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the x component\r\n */\r\n public get x(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the y component\r\n */\r\n public get y(): NodeMaterialConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (!this.seed.isConnected) {\r\n return;\r\n }\r\n\r\n if (!this.output.hasEndpoints && !this.x.hasEndpoints && !this.y.hasEndpoints) {\r\n return;\r\n }\r\n\r\n let functionString = `vec3 permute(vec3 x){\\r\\n`;\r\n functionString += ` return mod((34.0 * x + 1.0) * x, 289.0);\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n functionString += `vec3 dist(vec3 x, vec3 y, vec3 z, bool manhattanDistance){\\r\\n`;\r\n functionString += ` return manhattanDistance ? abs(x) + abs(y) + abs(z) : (x * x + y * y + z * z);\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n functionString += `vec2 worley(vec3 P, float jitter, bool manhattanDistance){\\r\\n`;\r\n functionString += ` float K = 0.142857142857; // 1/7\\r\\n`;\r\n functionString += ` float Ko = 0.428571428571; // 1/2-K/2\\r\\n`;\r\n functionString += ` float K2 = 0.020408163265306; // 1/(7*7)\\r\\n`;\r\n functionString += ` float Kz = 0.166666666667; // 1/6\\r\\n`;\r\n functionString += ` float Kzo = 0.416666666667; // 1/2-1/6*2\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 Pi = mod(floor(P), 289.0);\\r\\n`;\r\n functionString += ` vec3 Pf = fract(P) - 0.5;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += ` vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += ` vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));\\r\\n`;\r\n functionString += ` vec3 p1 = permute(p + Pi.y - 1.0);\\r\\n`;\r\n functionString += ` vec3 p2 = permute(p + Pi.y);\\r\\n`;\r\n functionString += ` vec3 p3 = permute(p + Pi.y + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p11 = permute(p1 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p12 = permute(p1 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p13 = permute(p1 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p21 = permute(p2 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p22 = permute(p2 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p23 = permute(p2 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p31 = permute(p3 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p32 = permute(p3 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p33 = permute(p3 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox11 = fract(p11*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox12 = fract(p12*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz12 = floor(p12*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox13 = fract(p13*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz13 = floor(p13*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox21 = fract(p21*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz21 = floor(p21*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox22 = fract(p22*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz22 = floor(p22*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox23 = fract(p23*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz23 = floor(p23*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox31 = fract(p31*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz31 = floor(p31*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox32 = fract(p32*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz32 = floor(p32*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox33 = fract(p33*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz33 = floor(p33*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx11 = Pfx + jitter*ox11;\\r\\n`;\r\n functionString += ` vec3 dy11 = Pfy.x + jitter*oy11;\\r\\n`;\r\n functionString += ` vec3 dz11 = Pfz.x + jitter*oz11;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx12 = Pfx + jitter*ox12;\\r\\n`;\r\n functionString += ` vec3 dy12 = Pfy.x + jitter*oy12;\\r\\n`;\r\n functionString += ` vec3 dz12 = Pfz.y + jitter*oz12;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx13 = Pfx + jitter*ox13;\\r\\n`;\r\n functionString += ` vec3 dy13 = Pfy.x + jitter*oy13;\\r\\n`;\r\n functionString += ` vec3 dz13 = Pfz.z + jitter*oz13;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx21 = Pfx + jitter*ox21;\\r\\n`;\r\n functionString += ` vec3 dy21 = Pfy.y + jitter*oy21;\\r\\n`;\r\n functionString += ` vec3 dz21 = Pfz.x + jitter*oz21;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx22 = Pfx + jitter*ox22;\\r\\n`;\r\n functionString += ` vec3 dy22 = Pfy.y + jitter*oy22;\\r\\n`;\r\n functionString += ` vec3 dz22 = Pfz.y + jitter*oz22;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx23 = Pfx + jitter*ox23;\\r\\n`;\r\n functionString += ` vec3 dy23 = Pfy.y + jitter*oy23;\\r\\n`;\r\n functionString += ` vec3 dz23 = Pfz.z + jitter*oz23;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx31 = Pfx + jitter*ox31;\\r\\n`;\r\n functionString += ` vec3 dy31 = Pfy.z + jitter*oy31;\\r\\n`;\r\n functionString += ` vec3 dz31 = Pfz.x + jitter*oz31;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx32 = Pfx + jitter*ox32;\\r\\n`;\r\n functionString += ` vec3 dy32 = Pfy.z + jitter*oy32;\\r\\n`;\r\n functionString += ` vec3 dz32 = Pfz.y + jitter*oz32;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx33 = Pfx + jitter*ox33;\\r\\n`;\r\n functionString += ` vec3 dy33 = Pfy.z + jitter*oy33;\\r\\n`;\r\n functionString += ` vec3 dz33 = Pfz.z + jitter*oz33;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d12 =dist(dx12, dy12, dz12, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 d1a = min(d11, d12);\\r\\n`;\r\n functionString += ` d12 = max(d11, d12);\\r\\n`;\r\n functionString += ` d11 = min(d1a, d13); // Smallest now not in d12 or d13\\r\\n`;\r\n functionString += ` d13 = max(d1a, d13);\\r\\n`;\r\n functionString += ` d12 = min(d12, d13); // 2nd smallest now not in d13\\r\\n`;\r\n functionString += ` vec3 d2a = min(d21, d22);\\r\\n`;\r\n functionString += ` d22 = max(d21, d22);\\r\\n`;\r\n functionString += ` d21 = min(d2a, d23); // Smallest now not in d22 or d23\\r\\n`;\r\n functionString += ` d23 = max(d2a, d23);\\r\\n`;\r\n functionString += ` d22 = min(d22, d23); // 2nd smallest now not in d23\\r\\n`;\r\n functionString += ` vec3 d3a = min(d31, d32);\\r\\n`;\r\n functionString += ` d32 = max(d31, d32);\\r\\n`;\r\n functionString += ` d31 = min(d3a, d33); // Smallest now not in d32 or d33\\r\\n`;\r\n functionString += ` d33 = max(d3a, d33);\\r\\n`;\r\n functionString += ` d32 = min(d32, d33); // 2nd smallest now not in d33\\r\\n`;\r\n functionString += ` vec3 da = min(d11, d21);\\r\\n`;\r\n functionString += ` d21 = max(d11, d21);\\r\\n`;\r\n functionString += ` d11 = min(da, d31); // Smallest now in d11\\r\\n`;\r\n functionString += ` d31 = max(da, d31); // 2nd smallest now not in d31\\r\\n`;\r\n functionString += ` d11.xy = (d11.x < d11.y) ? d11.xy : d11.yx;\\r\\n`;\r\n functionString += ` d11.xz = (d11.x < d11.z) ? d11.xz : d11.zx; // d11.x now smallest\\r\\n`;\r\n functionString += ` d12 = min(d12, d21); // 2nd smallest now not in d21\\r\\n`;\r\n functionString += ` d12 = min(d12, d22); // nor in d22\\r\\n`;\r\n functionString += ` d12 = min(d12, d31); // nor in d31\\r\\n`;\r\n functionString += ` d12 = min(d12, d32); // nor in d32\\r\\n`;\r\n functionString += ` d11.yz = min(d11.yz,d12.xy); // nor in d12.yz\\r\\n`;\r\n functionString += ` d11.y = min(d11.y,d12.z); // Only two more to go\\r\\n`;\r\n functionString += ` d11.y = min(d11.y,d11.z); // Done! (Phew!)\\r\\n`;\r\n functionString += ` return sqrt(d11.xy); // F1, F2\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n state._emitFunction('worley3D', functionString, '// Worley3D');\r\n\r\n const tempVariable = state._getFreeVariableName(\"worleyTemp\");\r\n\r\n state.compilationString += `vec2 ${tempVariable} = worley(${this.seed.associatedVariableName}, ${this.jitter.associatedVariableName}, ${this.manhattanDistance});\\r\\n`;\r\n\r\n if (this.output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.output, state) + ` = ${tempVariable};\\r\\n`;\r\n }\r\n\r\n if (this.x.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.x, state) + ` = ${tempVariable}.x;\\r\\n`;\r\n }\r\n\r\n if (this.y.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.y, state) + ` = ${tempVariable}.y;\\r\\n`;\r\n }\r\n return this;\r\n }\r\n /**\r\n * Exposes the properties to the UI?\r\n */\r\n protected _dumpPropertiesCode() {\r\n var codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.manhattanDistance = ${this.manhattanDistance};\\r\\n`;\r\n\r\n return codeString;\r\n }\r\n /**\r\n * Exposes the properties to the Serialize?\r\n */\r\n public serialize(): any {\r\n let serializationObject = super.serialize();\r\n\r\n serializationObject.manhattanDistance = this.manhattanDistance;\r\n\r\n return serializationObject;\r\n }\r\n /**\r\n * Exposes the properties to the deserialize?\r\n */\r\n public _deserialize(serializationObject: any, scene: Scene, rootUrl: string) {\r\n super._deserialize(serializationObject, scene, rootUrl);\r\n\r\n this.manhattanDistance = serializationObject.manhattanDistance;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.WorleyNoise3DBlock\", WorleyNoise3DBlock);"]}
@@ -68,6 +68,7 @@ export declare class NodeMaterialDefines extends MaterialDefines implements IIma
68
68
  SAMPLER3DGREENDEPTH: boolean;
69
69
  SAMPLER3DBGRMAP: boolean;
70
70
  IMAGEPROCESSINGPOSTPROCESS: boolean;
71
+ SKIPFINALCOLORCLAMP: boolean;
71
72
  /** MISC. */
72
73
  BUMPDIRECTUV: number;
73
74
  constructor();
@@ -77,6 +77,7 @@ var NodeMaterialDefines = /** @class */ (function (_super) {
77
77
  _this.SAMPLER3DGREENDEPTH = false;
78
78
  _this.SAMPLER3DBGRMAP = false;
79
79
  _this.IMAGEPROCESSINGPOSTPROCESS = false;
80
+ _this.SKIPFINALCOLORCLAMP = false;
80
81
  /** MISC. */
81
82
  _this.BUMPDIRECTUV = 0;
82
83
  _this.rebuild();
@@ -527,6 +528,7 @@ var NodeMaterial = /** @class */ (function (_super) {
527
528
  this._fragmentCompilationState.target = NodeMaterialBlockTargets.Fragment;
528
529
  // Shared data
529
530
  this._sharedData = new NodeMaterialBuildStateSharedData();
531
+ this._sharedData.fragmentOutputNodes = this._fragmentOutputNodes;
530
532
  this._vertexCompilationState.sharedData = this._sharedData;
531
533
  this._fragmentCompilationState.sharedData = this._sharedData;
532
534
  this._sharedData.buildId = this._buildId;
@@ -1117,7 +1119,15 @@ var NodeMaterial = /** @class */ (function (_super) {
1117
1119
  var block = _c[_b];
1118
1120
  block.dispose();
1119
1121
  }
1122
+ this.attachedBlocks = [];
1123
+ this._sharedData = null;
1124
+ this._vertexCompilationState = null;
1125
+ this._fragmentCompilationState = null;
1120
1126
  this.onBuildObservable.clear();
1127
+ if (this._imageProcessingObserver) {
1128
+ this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);
1129
+ this._imageProcessingObserver = null;
1130
+ }
1121
1131
  _super.prototype.dispose.call(this, forceDisposeEffect, forceDisposeTextures, notBoundToMesh);
1122
1132
  };
1123
1133
  /** Creates the node editor window. */