@babylonjs/core 5.0.0-alpha.55 → 5.0.0-alpha.59

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 (377) hide show
  1. package/Bones/boneIKController.d.ts +1 -2
  2. package/Bones/boneIKController.js +12 -37
  3. package/Bones/boneIKController.js.map +1 -1
  4. package/Buffers/buffer.js +3 -2
  5. package/Buffers/buffer.js.map +1 -1
  6. package/Cameras/Inputs/BaseCameraPointersInput.d.ts +0 -1
  7. package/Cameras/Inputs/BaseCameraPointersInput.js +5 -5
  8. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  9. package/Cameras/Inputs/freeCameraMouseInput.d.ts +0 -1
  10. package/Cameras/Inputs/freeCameraMouseInput.js +27 -28
  11. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  12. package/Cameras/camera.d.ts +4 -0
  13. package/Cameras/camera.js +2 -0
  14. package/Cameras/camera.js.map +1 -1
  15. package/Culling/boundingBox.d.ts +7 -1
  16. package/Culling/boundingBox.js +4 -0
  17. package/Culling/boundingBox.js.map +1 -1
  18. package/DeviceInput/Helpers/eventFactory.js +1 -2
  19. package/DeviceInput/Helpers/eventFactory.js.map +1 -1
  20. package/DeviceInput/Implementations/webDeviceInputSystem.d.ts +1 -0
  21. package/DeviceInput/Implementations/webDeviceInputSystem.js +5 -12
  22. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
  23. package/DeviceInput/InputDevices/deviceEnums.d.ts +1 -3
  24. package/DeviceInput/InputDevices/deviceEnums.js +0 -2
  25. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  26. package/Engines/Extensions/engine.alpha.js +11 -6
  27. package/Engines/Extensions/engine.alpha.js.map +1 -1
  28. package/Engines/Extensions/engine.cubeTexture.d.ts +1 -1
  29. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  30. package/Engines/Extensions/engine.multiRender.d.ts +2 -2
  31. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  32. package/Engines/Extensions/engine.renderTarget.d.ts +7 -15
  33. package/Engines/Extensions/engine.renderTarget.js +6 -63
  34. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  35. package/Engines/Extensions/engine.renderTargetCube.d.ts +1 -1
  36. package/Engines/Extensions/engine.renderTargetCube.js.map +1 -1
  37. package/Engines/IDrawContext.d.ts +4 -0
  38. package/Engines/IDrawContext.js.map +1 -1
  39. package/Engines/IMaterialContext.d.ts +1 -0
  40. package/Engines/IMaterialContext.js.map +1 -1
  41. package/Engines/WebGL/webGLRenderTargetWrapper.d.ts +24 -2
  42. package/Engines/WebGL/webGLRenderTargetWrapper.js +53 -0
  43. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  44. package/Engines/WebGPU/Extensions/engine.alpha.js +20 -31
  45. package/Engines/WebGPU/Extensions/engine.alpha.js.map +1 -1
  46. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  47. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  48. package/Engines/WebGPU/Extensions/engine.renderTarget.js +2 -40
  49. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  50. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
  51. package/Engines/WebGPU/Extensions/engine.storageBuffer.js +1 -1
  52. package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +1 -1
  53. package/Engines/WebGPU/Extensions/engine.uniformBuffer.js +1 -1
  54. package/Engines/WebGPU/Extensions/engine.uniformBuffer.js.map +1 -1
  55. package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -0
  56. package/Engines/WebGPU/webgpuBufferManager.js +3 -0
  57. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  58. package/Engines/WebGPU/webgpuCacheBindGroups.d.ts +3 -2
  59. package/Engines/WebGPU/webgpuCacheBindGroups.js +15 -14
  60. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  61. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +18 -18
  62. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  63. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.d.ts +2 -0
  64. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +17 -0
  65. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
  66. package/Engines/WebGPU/webgpuDrawContext.d.ts +24 -2
  67. package/Engines/WebGPU/webgpuDrawContext.js +75 -1
  68. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  69. package/Engines/WebGPU/webgpuMaterialContext.d.ts +1 -6
  70. package/Engines/WebGPU/webgpuMaterialContext.js +11 -8
  71. package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
  72. package/Engines/WebGPU/webgpuShaderProcessor.d.ts +1 -0
  73. package/Engines/WebGPU/webgpuShaderProcessor.js +2 -1
  74. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  75. package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -0
  76. package/Engines/WebGPU/webgpuTextureHelper.js +67 -1
  77. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  78. package/Engines/constants.d.ts +46 -8
  79. package/Engines/constants.js +46 -8
  80. package/Engines/constants.js.map +1 -1
  81. package/Engines/engine.d.ts +37 -2
  82. package/Engines/engine.js +68 -0
  83. package/Engines/engine.js.map +1 -1
  84. package/Engines/engineFeatures.d.ts +2 -0
  85. package/Engines/engineFeatures.js.map +1 -1
  86. package/Engines/nativeEngine.d.ts +3 -5
  87. package/Engines/nativeEngine.js +2 -2
  88. package/Engines/nativeEngine.js.map +1 -1
  89. package/Engines/nullEngine.d.ts +1 -1
  90. package/Engines/nullEngine.js +2 -2
  91. package/Engines/nullEngine.js.map +1 -1
  92. package/Engines/renderTargetWrapper.d.ts +10 -3
  93. package/Engines/renderTargetWrapper.js +29 -10
  94. package/Engines/renderTargetWrapper.js.map +1 -1
  95. package/Engines/thinEngine.d.ts +16 -1
  96. package/Engines/thinEngine.js +82 -2
  97. package/Engines/thinEngine.js.map +1 -1
  98. package/Engines/webgpuEngine.d.ts +28 -7
  99. package/Engines/webgpuEngine.js +177 -58
  100. package/Engines/webgpuEngine.js.map +1 -1
  101. package/Inputs/scene.inputManager.js +2 -3
  102. package/Inputs/scene.inputManager.js.map +1 -1
  103. package/Layers/effectLayer.d.ts +0 -2
  104. package/Layers/effectLayer.js +12 -11
  105. package/Layers/effectLayer.js.map +1 -1
  106. package/Layers/effectLayerSceneComponent.js +5 -0
  107. package/Layers/effectLayerSceneComponent.js.map +1 -1
  108. package/Layers/glowLayer.js +2 -0
  109. package/Layers/glowLayer.js.map +1 -1
  110. package/Layers/highlightLayer.js +2 -0
  111. package/Layers/highlightLayer.js.map +1 -1
  112. package/LensFlares/lensFlare.d.ts +3 -0
  113. package/LensFlares/lensFlare.js +5 -0
  114. package/LensFlares/lensFlare.js.map +1 -1
  115. package/LensFlares/lensFlareSystem.d.ts +2 -1
  116. package/LensFlares/lensFlareSystem.js +15 -12
  117. package/LensFlares/lensFlareSystem.js.map +1 -1
  118. package/Lights/Shadows/cascadedShadowGenerator.d.ts +0 -2
  119. package/Lights/Shadows/cascadedShadowGenerator.js +3 -12
  120. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  121. package/Lights/Shadows/shadowGenerator.d.ts +0 -3
  122. package/Lights/Shadows/shadowGenerator.js +8 -14
  123. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  124. package/Lights/light.js +3 -0
  125. package/Lights/light.js.map +1 -1
  126. package/Loading/Plugins/babylonFileLoader.js +3 -0
  127. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  128. package/Materials/Background/backgroundMaterial.js +8 -11
  129. package/Materials/Background/backgroundMaterial.js.map +1 -1
  130. package/Materials/Node/Blocks/Dual/lightBlock.js +1 -1
  131. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  132. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +1 -1
  133. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  134. package/Materials/Node/Blocks/PBR/reflectionBlock.js +1 -1
  135. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  136. package/Materials/Node/Blocks/cloudBlock.d.ts +49 -0
  137. package/Materials/Node/Blocks/cloudBlock.js +154 -0
  138. package/Materials/Node/Blocks/cloudBlock.js.map +1 -0
  139. package/Materials/Node/Blocks/colorMergerBlock.d.ts +21 -0
  140. package/Materials/Node/Blocks/colorMergerBlock.js +48 -4
  141. package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
  142. package/Materials/Node/Blocks/index.d.ts +1 -0
  143. package/Materials/Node/Blocks/index.js +1 -0
  144. package/Materials/Node/Blocks/index.js.map +1 -1
  145. package/Materials/Node/Blocks/vectorMergerBlock.d.ts +25 -0
  146. package/Materials/Node/Blocks/vectorMergerBlock.js +93 -23
  147. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  148. package/Materials/Node/nodeMaterial.js +17 -7
  149. package/Materials/Node/nodeMaterial.js.map +1 -1
  150. package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +5 -1
  151. package/Materials/Node/nodeMaterialBuildStateSharedData.js +5 -1
  152. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  153. package/Materials/Node/nodeMaterialDecorator.d.ts +4 -2
  154. package/Materials/Node/nodeMaterialDecorator.js +4 -2
  155. package/Materials/Node/nodeMaterialDecorator.js.map +1 -1
  156. package/Materials/PBR/pbrBaseMaterial.d.ts +4 -2
  157. package/Materials/PBR/pbrBaseMaterial.js +23 -9
  158. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  159. package/Materials/PBR/pbrClearCoatConfiguration.js +1 -1
  160. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  161. package/Materials/PBR/pbrSheenConfiguration.js +1 -1
  162. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  163. package/Materials/PBR/pbrSubSurfaceConfiguration.js +1 -1
  164. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  165. package/Materials/Textures/Procedurals/proceduralTexture.d.ts +3 -3
  166. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  167. package/Materials/Textures/baseTexture.d.ts +2 -0
  168. package/Materials/Textures/baseTexture.js +2 -0
  169. package/Materials/Textures/baseTexture.js.map +1 -1
  170. package/Materials/Textures/multiRenderTarget.d.ts +6 -4
  171. package/Materials/Textures/multiRenderTarget.js +28 -12
  172. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  173. package/Materials/Textures/renderTargetTexture.d.ts +29 -3
  174. package/Materials/Textures/renderTargetTexture.js +127 -14
  175. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  176. package/Materials/Textures/texture.js +11 -4
  177. package/Materials/Textures/texture.js.map +1 -1
  178. package/Materials/Textures/textureCreationOptions.d.ts +57 -0
  179. package/Materials/Textures/textureCreationOptions.js +2 -0
  180. package/Materials/Textures/textureCreationOptions.js.map +1 -0
  181. package/Materials/Textures/thinRenderTargetTexture.d.ts +3 -4
  182. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  183. package/Materials/Textures/videoTexture.d.ts +10 -7
  184. package/Materials/Textures/videoTexture.js +17 -11
  185. package/Materials/Textures/videoTexture.js.map +1 -1
  186. package/Materials/drawWrapper.d.ts +2 -1
  187. package/Materials/drawWrapper.js +10 -1
  188. package/Materials/drawWrapper.js.map +1 -1
  189. package/Materials/effectRenderer.js +1 -1
  190. package/Materials/effectRenderer.js.map +1 -1
  191. package/Materials/material.d.ts +3 -1
  192. package/Materials/material.detailMapConfiguration.d.ts +1 -1
  193. package/Materials/material.detailMapConfiguration.js +2 -2
  194. package/Materials/material.detailMapConfiguration.js.map +1 -1
  195. package/Materials/material.js +18 -9
  196. package/Materials/material.js.map +1 -1
  197. package/Materials/materialHelper.d.ts +7 -0
  198. package/Materials/materialHelper.js +17 -2
  199. package/Materials/materialHelper.js.map +1 -1
  200. package/Materials/pushMaterial.js +1 -1
  201. package/Materials/pushMaterial.js.map +1 -1
  202. package/Materials/shaderMaterial.d.ts +1 -1
  203. package/Materials/shaderMaterial.js +5 -5
  204. package/Materials/shaderMaterial.js.map +1 -1
  205. package/Materials/shadowDepthWrapper.d.ts +4 -4
  206. package/Materials/shadowDepthWrapper.js +16 -15
  207. package/Materials/shadowDepthWrapper.js.map +1 -1
  208. package/Materials/standardMaterial.d.ts +4 -2
  209. package/Materials/standardMaterial.js +23 -9
  210. package/Materials/standardMaterial.js.map +1 -1
  211. package/Materials/uniformBuffer.d.ts +10 -2
  212. package/Materials/uniformBuffer.js +17 -11
  213. package/Materials/uniformBuffer.js.map +1 -1
  214. package/Meshes/Builders/capsuleBuilder.d.ts +5 -5
  215. package/Meshes/Builders/capsuleBuilder.js.map +1 -1
  216. package/Meshes/abstractMesh.d.ts +13 -0
  217. package/Meshes/abstractMesh.js +22 -2
  218. package/Meshes/abstractMesh.js.map +1 -1
  219. package/Meshes/buffer.d.ts +5 -0
  220. package/Meshes/buffer.js +6 -0
  221. package/Meshes/buffer.js.map +1 -0
  222. package/Meshes/geometry.d.ts +7 -0
  223. package/Meshes/geometry.js +16 -0
  224. package/Meshes/geometry.js.map +1 -1
  225. package/Meshes/linesMesh.js +1 -1
  226. package/Meshes/linesMesh.js.map +1 -1
  227. package/Meshes/mesh.js +16 -1
  228. package/Meshes/mesh.js.map +1 -1
  229. package/Meshes/mesh.lts.d.ts +5 -1
  230. package/Meshes/mesh.lts.js +1 -2
  231. package/Meshes/mesh.lts.js.map +1 -1
  232. package/Meshes/subMesh.d.ts +10 -9
  233. package/Meshes/subMesh.js +44 -43
  234. package/Meshes/subMesh.js.map +1 -1
  235. package/Misc/environmentTextureTools.js +1 -0
  236. package/Misc/environmentTextureTools.js.map +1 -1
  237. package/Misc/fileTools.d.ts +1 -3
  238. package/Misc/fileTools.js +12 -13
  239. package/Misc/fileTools.js.map +1 -1
  240. package/Misc/fileTools.lts.d.ts +16 -1
  241. package/Misc/fileTools.lts.js +1 -2
  242. package/Misc/fileTools.lts.js.map +1 -1
  243. package/Misc/rgbdTextureTools.js +1 -0
  244. package/Misc/rgbdTextureTools.js.map +1 -1
  245. package/Misc/sceneSerializer.js +17 -17
  246. package/Misc/sceneSerializer.js.map +1 -1
  247. package/Misc/textureTools.js +2 -0
  248. package/Misc/textureTools.js.map +1 -1
  249. package/Particles/gpuParticleSystem.d.ts +5 -1
  250. package/Particles/gpuParticleSystem.js +31 -5
  251. package/Particles/gpuParticleSystem.js.map +1 -1
  252. package/Particles/particleSystem.d.ts +5 -1
  253. package/Particles/particleSystem.js +35 -5
  254. package/Particles/particleSystem.js.map +1 -1
  255. package/Physics/Plugins/ammoJSPlugin.d.ts +1 -0
  256. package/Physics/Plugins/ammoJSPlugin.js +10 -0
  257. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  258. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +2 -0
  259. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
  260. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +1 -0
  261. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  262. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +1 -0
  263. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
  264. package/PostProcesses/bloomMergePostProcess.js +1 -0
  265. package/PostProcesses/bloomMergePostProcess.js.map +1 -1
  266. package/PostProcesses/depthOfFieldBlurPostProcess.js +1 -0
  267. package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
  268. package/PostProcesses/depthOfFieldMergePostProcess.js +1 -0
  269. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  270. package/PostProcesses/extractHighlightsPostProcess.js +1 -0
  271. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  272. package/PostProcesses/postProcess.d.ts +6 -0
  273. package/PostProcesses/postProcess.js +9 -1
  274. package/PostProcesses/postProcess.js.map +1 -1
  275. package/PostProcesses/screenSpaceReflectionPostProcess.js +2 -2
  276. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  277. package/PostProcesses/tonemapPostProcess.d.ts +2 -1
  278. package/PostProcesses/tonemapPostProcess.js +3 -2
  279. package/PostProcesses/tonemapPostProcess.js.map +1 -1
  280. package/Rendering/boundingBoxRenderer.d.ts +5 -3
  281. package/Rendering/boundingBoxRenderer.js +46 -14
  282. package/Rendering/boundingBoxRenderer.js.map +1 -1
  283. package/Rendering/depthPeelingRenderer.d.ts +85 -0
  284. package/Rendering/depthPeelingRenderer.js +390 -0
  285. package/Rendering/depthPeelingRenderer.js.map +1 -0
  286. package/Rendering/depthPeelingSceneComponent.d.ts +51 -0
  287. package/Rendering/depthPeelingSceneComponent.js +73 -0
  288. package/Rendering/depthPeelingSceneComponent.js.map +1 -0
  289. package/Rendering/depthRenderer.d.ts +9 -2
  290. package/Rendering/depthRenderer.js +77 -43
  291. package/Rendering/depthRenderer.js.map +1 -1
  292. package/Rendering/depthRendererSceneComponent.js +0 -1
  293. package/Rendering/depthRendererSceneComponent.js.map +1 -1
  294. package/Rendering/edgesRenderer.d.ts +2 -0
  295. package/Rendering/edgesRenderer.js +11 -0
  296. package/Rendering/edgesRenderer.js.map +1 -1
  297. package/Rendering/geometryBufferRenderer.js +4 -4
  298. package/Rendering/geometryBufferRenderer.js.map +1 -1
  299. package/Rendering/index.d.ts +2 -0
  300. package/Rendering/index.js +2 -0
  301. package/Rendering/index.js.map +1 -1
  302. package/Rendering/outlineRenderer.d.ts +5 -4
  303. package/Rendering/outlineRenderer.js +24 -19
  304. package/Rendering/outlineRenderer.js.map +1 -1
  305. package/Rendering/prePassRenderer.js +7 -2
  306. package/Rendering/prePassRenderer.js.map +1 -1
  307. package/Rendering/renderingGroup.js +7 -2
  308. package/Rendering/renderingGroup.js.map +1 -1
  309. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.d.ts +5 -0
  310. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js +7 -0
  311. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js.map +1 -0
  312. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.d.ts +5 -0
  313. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +7 -0
  314. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -0
  315. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.d.ts +5 -0
  316. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js +7 -0
  317. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js.map +1 -0
  318. package/Shaders/ShadersInclude/oitDeclaration.d.ts +5 -0
  319. package/Shaders/ShadersInclude/oitDeclaration.js +7 -0
  320. package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -0
  321. package/Shaders/ShadersInclude/oitFragment.d.ts +5 -0
  322. package/Shaders/ShadersInclude/oitFragment.js +7 -0
  323. package/Shaders/ShadersInclude/oitFragment.js.map +1 -0
  324. package/Shaders/boundingBoxRenderer.fragment.d.ts +7 -0
  325. package/Shaders/boundingBoxRenderer.fragment.js +9 -0
  326. package/Shaders/boundingBoxRenderer.fragment.js.map +1 -0
  327. package/Shaders/boundingBoxRenderer.vertex.d.ts +7 -0
  328. package/Shaders/boundingBoxRenderer.vertex.js +9 -0
  329. package/Shaders/boundingBoxRenderer.vertex.js.map +1 -0
  330. package/Shaders/default.fragment.d.ts +2 -0
  331. package/Shaders/default.fragment.js +3 -1
  332. package/Shaders/default.fragment.js.map +1 -1
  333. package/Shaders/oitBackBlend.fragment.d.ts +5 -0
  334. package/Shaders/oitBackBlend.fragment.js +7 -0
  335. package/Shaders/oitBackBlend.fragment.js.map +1 -0
  336. package/Shaders/oitFinal.fragment.d.ts +5 -0
  337. package/Shaders/oitFinal.fragment.js +7 -0
  338. package/Shaders/oitFinal.fragment.js.map +1 -0
  339. package/Shaders/pbr.fragment.d.ts +2 -0
  340. package/Shaders/pbr.fragment.js +3 -1
  341. package/Shaders/pbr.fragment.js.map +1 -1
  342. package/Shaders/screenSpaceReflection.fragment.js +1 -1
  343. package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
  344. package/Sprites/spriteManager.d.ts +3 -1
  345. package/Sprites/spriteManager.js +16 -5
  346. package/Sprites/spriteManager.js.map +1 -1
  347. package/Sprites/spriteRenderer.d.ts +1 -0
  348. package/Sprites/spriteRenderer.js +14 -0
  349. package/Sprites/spriteRenderer.js.map +1 -1
  350. package/States/alphaCullingState.js +1 -1
  351. package/States/alphaCullingState.js.map +1 -1
  352. package/XR/features/WebXRControllerPointerSelection.d.ts +4 -0
  353. package/XR/features/WebXRControllerPointerSelection.js +23 -1
  354. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  355. package/XR/features/WebXRNearInteraction.d.ts +5 -4
  356. package/XR/features/WebXRNearInteraction.js +15 -13
  357. package/XR/features/WebXRNearInteraction.js.map +1 -1
  358. package/XR/features/WebXRWalkingLocomotion.js +28 -13
  359. package/XR/features/WebXRWalkingLocomotion.js.map +1 -1
  360. package/XR/webXRSessionManager.js +1 -3
  361. package/XR/webXRSessionManager.js.map +1 -1
  362. package/package.json +43 -7
  363. package/scene.d.ts +18 -4
  364. package/scene.js +101 -42
  365. package/scene.js.map +1 -1
  366. package/scene.lts.d.ts +6 -1
  367. package/scene.lts.js +1 -2
  368. package/scene.lts.js.map +1 -1
  369. package/sceneComponent.d.ts +1 -0
  370. package/sceneComponent.js +1 -0
  371. package/sceneComponent.js.map +1 -1
  372. package/Engines/depthTextureCreationOptions.d.ts +0 -17
  373. package/Engines/depthTextureCreationOptions.js +0 -10
  374. package/Engines/depthTextureCreationOptions.js.map +0 -1
  375. package/Materials/Textures/renderTargetCreationOptions.d.ts +0 -27
  376. package/Materials/Textures/renderTargetCreationOptions.js +0 -10
  377. package/Materials/Textures/renderTargetCreationOptions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"linesMesh.js","sourceRoot":"","sources":["../../../sourceES6/core/Meshes/linesMesh.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"../types\";\r\nimport { Scene } from \"../scene\";\r\nimport { Color3, Color4 } from \"../Maths/math.color\";\r\nimport { Node } from \"../node\";\r\nimport { VertexBuffer } from \"../Buffers/buffer\";\r\nimport { SubMesh } from \"../Meshes/subMesh\";\r\nimport { Mesh } from \"../Meshes/mesh\";\r\nimport { InstancedMesh } from \"../Meshes/instancedMesh\";\r\nimport { Effect } from \"../Materials/effect\";\r\nimport { Material } from \"../Materials/material\";\r\nimport { ShaderMaterial } from \"../Materials/shaderMaterial\";\r\nimport { MaterialHelper } from '../Materials/materialHelper';\r\n\r\nimport \"../Shaders/color.fragment\";\r\nimport \"../Shaders/color.vertex\";\r\n\r\nMesh._LinesMeshParser = (parsedMesh: any, scene: Scene): Mesh => {\r\n return LinesMesh.Parse(parsedMesh, scene);\r\n};\r\n\r\n/**\r\n * Line mesh\r\n * @see https://doc.babylonjs.com/babylon101/parametric_shapes\r\n */\r\nexport class LinesMesh extends Mesh {\r\n /**\r\n * Color of the line (Default: White)\r\n */\r\n public color = new Color3(1, 1, 1);\r\n\r\n /**\r\n * Alpha of the line (Default: 1)\r\n */\r\n public alpha = 1;\r\n\r\n /**\r\n * The intersection Threshold is the margin applied when intersection a segment of the LinesMesh with a Ray.\r\n * This margin is expressed in world space coordinates, so its value may vary.\r\n * Default value is 0.1\r\n */\r\n public intersectionThreshold: number;\r\n\r\n private _lineMaterial: Material;\r\n\r\n private _isShaderMaterial(shader: Material): shader is ShaderMaterial {\r\n return shader.getClassName() === \"ShaderMaterial\";\r\n }\r\n\r\n private color4: Color4;\r\n\r\n /**\r\n * Creates a new LinesMesh\r\n * @param name defines the name\r\n * @param scene defines the hosting scene\r\n * @param parent defines the parent mesh if any\r\n * @param source defines the optional source LinesMesh used to clone data from\r\n * @param doNotCloneChildren When cloning, skip cloning child meshes of source, default False.\r\n * When false, achieved by calling a clone(), also passing False.\r\n * This will make creation of children, recursive.\r\n * @param useVertexColor defines if this LinesMesh supports vertex color\r\n * @param useVertexAlpha defines if this LinesMesh supports vertex alpha\r\n * @param material material to use to draw the line. If not provided, will create a new one\r\n */\r\n constructor(\r\n name: string,\r\n scene: Nullable<Scene> = null,\r\n parent: Nullable<Node> = null,\r\n source: Nullable<LinesMesh> = null,\r\n doNotCloneChildren?: boolean,\r\n /**\r\n * If vertex color should be applied to the mesh\r\n */\r\n public readonly useVertexColor?: boolean,\r\n /**\r\n * If vertex alpha should be applied to the mesh\r\n */\r\n public readonly useVertexAlpha?: boolean,\r\n material?: Material\r\n ) {\r\n super(name, scene, parent, source, doNotCloneChildren);\r\n\r\n if (source) {\r\n this.color = source.color.clone();\r\n this.alpha = source.alpha;\r\n this.useVertexColor = source.useVertexColor;\r\n this.useVertexAlpha = source.useVertexAlpha;\r\n }\r\n\r\n this.intersectionThreshold = 0.1;\r\n\r\n var defines: string[] = [];\r\n var options = {\r\n attributes: [VertexBuffer.PositionKind],\r\n uniforms: [\"vClipPlane\", \"vClipPlane2\", \"vClipPlane3\", \"vClipPlane4\", \"vClipPlane5\", \"vClipPlane6\", \"world\", \"viewProjection\"],\r\n needAlphaBlending: true,\r\n defines: defines\r\n };\r\n\r\n if (useVertexAlpha === false) {\r\n options.needAlphaBlending = false;\r\n }\r\n\r\n if (!useVertexColor) {\r\n options.uniforms.push(\"color\");\r\n this.color4 = new Color4();\r\n }\r\n else {\r\n options.defines.push(\"#define VERTEXCOLOR\");\r\n options.attributes.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n if (material) {\r\n this.material = material;\r\n } else {\r\n this._lineMaterial = new ShaderMaterial(\"colorShader\", this.getScene(), \"color\", options);\r\n }\r\n }\r\n\r\n private _addClipPlaneDefine(label: string) {\r\n if (!this._isShaderMaterial(this._lineMaterial)) {\r\n return;\r\n }\r\n\r\n const define = \"#define \" + label;\r\n const index = this._lineMaterial.options.defines.indexOf(define);\r\n if (index !== -1) {\r\n return;\r\n }\r\n\r\n this._lineMaterial.options.defines.push(define);\r\n }\r\n\r\n private _removeClipPlaneDefine(label: string) {\r\n if (!this._isShaderMaterial(this._lineMaterial)) {\r\n return;\r\n }\r\n\r\n const define = \"#define \" + label;\r\n const index = this._lineMaterial.options.defines.indexOf(define);\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this._lineMaterial.options.defines.splice(index, 1);\r\n }\r\n\r\n public isReady() {\r\n const scene = this.getScene();\r\n\r\n // Clip planes\r\n scene.clipPlane ? this._addClipPlaneDefine(\"CLIPPLANE\") : this._removeClipPlaneDefine(\"CLIPPLANE\");\r\n scene.clipPlane2 ? this._addClipPlaneDefine(\"CLIPPLANE2\") : this._removeClipPlaneDefine(\"CLIPPLANE2\");\r\n scene.clipPlane3 ? this._addClipPlaneDefine(\"CLIPPLANE3\") : this._removeClipPlaneDefine(\"CLIPPLANE3\");\r\n scene.clipPlane4 ? this._addClipPlaneDefine(\"CLIPPLANE4\") : this._removeClipPlaneDefine(\"CLIPPLANE4\");\r\n scene.clipPlane5 ? this._addClipPlaneDefine(\"CLIPPLANE5\") : this._removeClipPlaneDefine(\"CLIPPLANE5\");\r\n scene.clipPlane6 ? this._addClipPlaneDefine(\"CLIPPLANE6\") : this._removeClipPlaneDefine(\"CLIPPLANE6\");\r\n\r\n if (!this._lineMaterial.isReady(this)) {\r\n return false;\r\n }\r\n\r\n return super.isReady();\r\n }\r\n\r\n /**\r\n * Returns the string \"LineMesh\"\r\n */\r\n public getClassName(): string {\r\n return \"LinesMesh\";\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public get material(): Material {\r\n return this._lineMaterial;\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public set material(value: Material) {\r\n this._lineMaterial = value;\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public get checkCollisions(): boolean {\r\n return false;\r\n }\r\n\r\n public set checkCollisions(value: boolean) {\r\n // Just ignore it\r\n }\r\n\r\n /** @hidden */\r\n public _bind(subMesh: SubMesh, effect: Effect, fillMode: number): Mesh {\r\n if (!this._geometry) {\r\n return this;\r\n }\r\n const colorEffect = this._lineMaterial.getEffect();\r\n\r\n // VBOs\r\n const indexToBind = this.isUnIndexed ? null : this._geometry.getIndexBuffer();\r\n if (!this._userInstancedBuffersStorage) {\r\n this._geometry._bind(colorEffect, indexToBind);\r\n } else {\r\n this._geometry._bind(colorEffect, indexToBind, this._userInstancedBuffersStorage.vertexBuffers, this._userInstancedBuffersStorage.vertexArrayObjects);\r\n }\r\n\r\n // Color\r\n if (!this.useVertexColor && this._isShaderMaterial(this._lineMaterial)) {\r\n const { r, g, b } = this.color;\r\n this.color4.set(r, g, b, this.alpha);\r\n this._lineMaterial.setColor4(\"color\", this.color4);\r\n }\r\n\r\n // Clip planes\r\n MaterialHelper.BindClipPlane(colorEffect!, this.getScene());\r\n return this;\r\n }\r\n\r\n /** @hidden */\r\n public _draw(subMesh: SubMesh, fillMode: number, instancesCount?: number): Mesh {\r\n if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) {\r\n return this;\r\n }\r\n\r\n var engine = this.getScene().getEngine();\r\n\r\n // Draw order\r\n\r\n if (this._unIndexed) {\r\n engine.drawArraysType(Material.LineListDrawMode, subMesh.verticesStart, subMesh.verticesCount, instancesCount);\r\n }\r\n else {\r\n engine.drawElementsType(Material.LineListDrawMode, subMesh.indexStart, subMesh.indexCount, instancesCount);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Disposes of the line mesh\r\n * @param doNotRecurse If children should be disposed\r\n */\r\n public dispose(doNotRecurse?: boolean): void {\r\n this._lineMaterial.dispose(false, false, true);\r\n super.dispose(doNotRecurse);\r\n }\r\n\r\n /**\r\n * Returns a new LineMesh object cloned from the current one.\r\n */\r\n public clone(name: string, newParent: Nullable<Node> = null, doNotCloneChildren?: boolean): LinesMesh {\r\n return new LinesMesh(name, this.getScene(), newParent, this, doNotCloneChildren);\r\n }\r\n\r\n /**\r\n * Creates a new InstancedLinesMesh object from the mesh model.\r\n * @see https://doc.babylonjs.com/how_to/how_to_use_instances\r\n * @param name defines the name of the new instance\r\n * @returns a new InstancedLinesMesh\r\n */\r\n public createInstance(name: string): InstancedLinesMesh {\r\n const instance = new InstancedLinesMesh(name, this);\r\n\r\n if (this.instancedBuffers) {\r\n instance.instancedBuffers = {};\r\n\r\n for (const key in this.instancedBuffers) {\r\n instance.instancedBuffers[key] = this.instancedBuffers[key];\r\n }\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n /**\r\n * Serializes this ground mesh\r\n * @param serializationObject object to write serialization to\r\n */\r\n public serialize(serializationObject: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.color = this.color.asArray();\r\n serializationObject.alpha = this.alpha;\r\n }\r\n\r\n /**\r\n * Parses a serialized ground mesh\r\n * @param parsedMesh the serialized mesh\r\n * @param scene the scene to create the ground mesh in\r\n * @returns the created ground mesh\r\n */\r\n public static Parse(parsedMesh: any, scene: Scene): LinesMesh {\r\n var result = new LinesMesh(parsedMesh.name, scene);\r\n\r\n result.color = Color3.FromArray(parsedMesh.color);\r\n result.alpha = parsedMesh.alpha;\r\n\r\n return result;\r\n }\r\n}\r\n\r\n/**\r\n * Creates an instance based on a source LinesMesh\r\n */\r\nexport class InstancedLinesMesh extends InstancedMesh {\r\n /**\r\n * The intersection Threshold is the margin applied when intersection a segment of the LinesMesh with a Ray.\r\n * This margin is expressed in world space coordinates, so its value may vary.\r\n * Initialized with the intersectionThreshold value of the source LinesMesh\r\n */\r\n public intersectionThreshold: number;\r\n\r\n constructor(name: string, source: LinesMesh) {\r\n super(name, source);\r\n this.intersectionThreshold = source.intersectionThreshold;\r\n }\r\n\r\n /**\r\n * Returns the string \"InstancedLinesMesh\".\r\n */\r\n public getClassName(): string {\r\n return \"InstancedLinesMesh\";\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"linesMesh.js","sourceRoot":"","sources":["../../../sourceES6/core/Meshes/linesMesh.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AAEjC,IAAI,CAAC,gBAAgB,GAAG,UAAC,UAAe,EAAE,KAAY;IAClD,OAAO,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF;;;GAGG;AACH;IAA+B,6BAAI;IA0B/B;;;;;;;;;;;;OAYG;IACH,mBACI,IAAY,EACZ,KAA6B,EAC7B,MAA6B,EAC7B,MAAkC,EAClC,kBAA4B;IAC5B;;OAEG;IACa,cAAwB;IACxC;;OAEG;IACa,cAAwB,EACxC,QAAmB;QAZnB,sBAAA,EAAA,YAA6B;QAC7B,uBAAA,EAAA,aAA6B;QAC7B,uBAAA,EAAA,aAAkC;QAJtC,YAgBI,kBAAM,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,CAAC,SAqCzD;QA5CmB,oBAAc,GAAd,cAAc,CAAU;QAIxB,oBAAc,GAAd,cAAc,CAAU;QAnD5C;;WAEG;QACI,WAAK,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnC;;WAEG;QACI,WAAK,GAAG,CAAC,CAAC;QAgDb,IAAI,MAAM,EAAE;YACR,KAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClC,KAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,KAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YAC5C,KAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;SAC/C;QAED,KAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;QAEjC,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,IAAI,OAAO,GAAG;YACV,UAAU,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC;YACvC,QAAQ,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,CAAC;YAC9H,iBAAiB,EAAE,IAAI;YACvB,OAAO,EAAE,OAAO;SACnB,CAAC;QAEF,IAAI,cAAc,KAAK,KAAK,EAAE;YAC1B,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC;SACrC;QAED,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,KAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;SAC9B;aACI;YACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC5C,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SACnD;QAED,IAAI,QAAQ,EAAE;YACV,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC5B;aAAM;YACH,KAAI,CAAC,aAAa,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,KAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7F;;IACL,CAAC;IAxEO,qCAAiB,GAAzB,UAA0B,MAAgB;QACtC,OAAO,MAAM,CAAC,YAAY,EAAE,KAAK,gBAAgB,CAAC;IACtD,CAAC;IAwEO,uCAAmB,GAA3B,UAA4B,KAAa;QACrC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC7C,OAAO;SACV;QAED,IAAM,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,OAAO;SACV;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAEO,0CAAsB,GAA9B,UAA+B,KAAa;QACxC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC7C,OAAO;SACV;QAED,IAAM,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,OAAO;SACV;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,2BAAO,GAAd;QACI,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,cAAc;QACd,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACnG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACtG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACtG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACtG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACtG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAEtG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAE;YACxE,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,iBAAM,OAAO,WAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,gCAAY,GAAnB;QACI,OAAO,WAAW,CAAC;IACvB,CAAC;IAKD,sBAAW,+BAAQ;QAHnB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,aAAa,CAAC;QAC9B,CAAC;QAED;;WAEG;aACH,UAAoB,KAAe;YAC/B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/B,CAAC;;;OAPA;IAYD,sBAAW,sCAAe;QAH1B;;WAEG;aACH;YACI,OAAO,KAAK,CAAC;QACjB,CAAC;aAED,UAA2B,KAAc;YACrC,iBAAiB;QACrB,CAAC;;;OAJA;IAMD,cAAc;IACP,yBAAK,GAAZ,UAAa,OAAgB,EAAE,MAAc,EAAE,QAAgB;QAC3D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,OAAO,IAAI,CAAC;SACf;QACD,IAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAEnD,OAAO;QACP,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QAC9E,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;SAClD;aAAM;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,4BAA4B,CAAC,aAAa,EAAE,IAAI,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;SACzJ;QAED,QAAQ;QACR,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC9D,IAAA,KAAc,IAAI,CAAC,KAAK,EAAtB,CAAC,OAAA,EAAE,CAAC,OAAA,EAAE,CAAC,OAAe,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACtD;QAED,cAAc;QACd,cAAc,CAAC,aAAa,CAAC,WAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc;IACP,yBAAK,GAAZ,UAAa,OAAgB,EAAE,QAAgB,EAAE,cAAuB;QACpE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,EAAE;YACjH,OAAO,IAAI,CAAC;SACf;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC;QAEzC,aAAa;QAEb,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;SAClH;aACI;YACD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;SAC9G;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,2BAAO,GAAd,UAAe,YAAsB;QACjC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,iBAAM,OAAO,YAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,yBAAK,GAAZ,UAAa,IAAY,EAAE,SAAgC,EAAE,kBAA4B;QAA9D,0BAAA,EAAA,gBAAgC;QACvD,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACrF,CAAC;IAED;;;;;OAKG;IACI,kCAAc,GAArB,UAAsB,IAAY;QAC9B,IAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,QAAQ,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAE/B,KAAK,IAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACrC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;aAC/D;SACJ;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;OAGG;IACI,6BAAS,GAAhB,UAAiB,mBAAwB;QACrC,iBAAM,SAAS,YAAC,mBAAmB,CAAC,CAAC;QACrC,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjD,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED;;;;;GAKD;IACe,eAAK,GAAnB,UAAoB,UAAe,EAAE,KAAY;QAC7C,IAAI,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEnD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAEhC,OAAO,MAAM,CAAC;IAClB,CAAC;IACL,gBAAC;AAAD,CAAC,AAtRD,CAA+B,IAAI,GAsRlC;;AAED;;GAEG;AACH;IAAwC,sCAAa;IAQjD,4BAAY,IAAY,EAAE,MAAiB;QAA3C,YACI,kBAAM,IAAI,EAAE,MAAM,CAAC,SAEtB;QADG,KAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;;IAC9D,CAAC;IAED;;OAEG;IACI,yCAAY,GAAnB;QACI,OAAO,oBAAoB,CAAC;IAChC,CAAC;IACL,yBAAC;AAAD,CAAC,AAnBD,CAAwC,aAAa,GAmBpD","sourcesContent":["import { Nullable } from \"../types\";\r\nimport { Scene } from \"../scene\";\r\nimport { Color3, Color4 } from \"../Maths/math.color\";\r\nimport { Node } from \"../node\";\r\nimport { VertexBuffer } from \"../Buffers/buffer\";\r\nimport { SubMesh } from \"../Meshes/subMesh\";\r\nimport { Mesh } from \"../Meshes/mesh\";\r\nimport { InstancedMesh } from \"../Meshes/instancedMesh\";\r\nimport { Effect } from \"../Materials/effect\";\r\nimport { Material } from \"../Materials/material\";\r\nimport { ShaderMaterial } from \"../Materials/shaderMaterial\";\r\nimport { MaterialHelper } from '../Materials/materialHelper';\r\n\r\nimport \"../Shaders/color.fragment\";\r\nimport \"../Shaders/color.vertex\";\r\n\r\nMesh._LinesMeshParser = (parsedMesh: any, scene: Scene): Mesh => {\r\n return LinesMesh.Parse(parsedMesh, scene);\r\n};\r\n\r\n/**\r\n * Line mesh\r\n * @see https://doc.babylonjs.com/babylon101/parametric_shapes\r\n */\r\nexport class LinesMesh extends Mesh {\r\n /**\r\n * Color of the line (Default: White)\r\n */\r\n public color = new Color3(1, 1, 1);\r\n\r\n /**\r\n * Alpha of the line (Default: 1)\r\n */\r\n public alpha = 1;\r\n\r\n /**\r\n * The intersection Threshold is the margin applied when intersection a segment of the LinesMesh with a Ray.\r\n * This margin is expressed in world space coordinates, so its value may vary.\r\n * Default value is 0.1\r\n */\r\n public intersectionThreshold: number;\r\n\r\n private _lineMaterial: Material;\r\n\r\n private _isShaderMaterial(shader: Material): shader is ShaderMaterial {\r\n return shader.getClassName() === \"ShaderMaterial\";\r\n }\r\n\r\n private color4: Color4;\r\n\r\n /**\r\n * Creates a new LinesMesh\r\n * @param name defines the name\r\n * @param scene defines the hosting scene\r\n * @param parent defines the parent mesh if any\r\n * @param source defines the optional source LinesMesh used to clone data from\r\n * @param doNotCloneChildren When cloning, skip cloning child meshes of source, default False.\r\n * When false, achieved by calling a clone(), also passing False.\r\n * This will make creation of children, recursive.\r\n * @param useVertexColor defines if this LinesMesh supports vertex color\r\n * @param useVertexAlpha defines if this LinesMesh supports vertex alpha\r\n * @param material material to use to draw the line. If not provided, will create a new one\r\n */\r\n constructor(\r\n name: string,\r\n scene: Nullable<Scene> = null,\r\n parent: Nullable<Node> = null,\r\n source: Nullable<LinesMesh> = null,\r\n doNotCloneChildren?: boolean,\r\n /**\r\n * If vertex color should be applied to the mesh\r\n */\r\n public readonly useVertexColor?: boolean,\r\n /**\r\n * If vertex alpha should be applied to the mesh\r\n */\r\n public readonly useVertexAlpha?: boolean,\r\n material?: Material\r\n ) {\r\n super(name, scene, parent, source, doNotCloneChildren);\r\n\r\n if (source) {\r\n this.color = source.color.clone();\r\n this.alpha = source.alpha;\r\n this.useVertexColor = source.useVertexColor;\r\n this.useVertexAlpha = source.useVertexAlpha;\r\n }\r\n\r\n this.intersectionThreshold = 0.1;\r\n\r\n var defines: string[] = [];\r\n var options = {\r\n attributes: [VertexBuffer.PositionKind],\r\n uniforms: [\"vClipPlane\", \"vClipPlane2\", \"vClipPlane3\", \"vClipPlane4\", \"vClipPlane5\", \"vClipPlane6\", \"world\", \"viewProjection\"],\r\n needAlphaBlending: true,\r\n defines: defines\r\n };\r\n\r\n if (useVertexAlpha === false) {\r\n options.needAlphaBlending = false;\r\n }\r\n\r\n if (!useVertexColor) {\r\n options.uniforms.push(\"color\");\r\n this.color4 = new Color4();\r\n }\r\n else {\r\n options.defines.push(\"#define VERTEXCOLOR\");\r\n options.attributes.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n if (material) {\r\n this.material = material;\r\n } else {\r\n this._lineMaterial = new ShaderMaterial(\"colorShader\", this.getScene(), \"color\", options);\r\n }\r\n }\r\n\r\n private _addClipPlaneDefine(label: string) {\r\n if (!this._isShaderMaterial(this._lineMaterial)) {\r\n return;\r\n }\r\n\r\n const define = \"#define \" + label;\r\n const index = this._lineMaterial.options.defines.indexOf(define);\r\n if (index !== -1) {\r\n return;\r\n }\r\n\r\n this._lineMaterial.options.defines.push(define);\r\n }\r\n\r\n private _removeClipPlaneDefine(label: string) {\r\n if (!this._isShaderMaterial(this._lineMaterial)) {\r\n return;\r\n }\r\n\r\n const define = \"#define \" + label;\r\n const index = this._lineMaterial.options.defines.indexOf(define);\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this._lineMaterial.options.defines.splice(index, 1);\r\n }\r\n\r\n public isReady() {\r\n const scene = this.getScene();\r\n\r\n // Clip planes\r\n scene.clipPlane ? this._addClipPlaneDefine(\"CLIPPLANE\") : this._removeClipPlaneDefine(\"CLIPPLANE\");\r\n scene.clipPlane2 ? this._addClipPlaneDefine(\"CLIPPLANE2\") : this._removeClipPlaneDefine(\"CLIPPLANE2\");\r\n scene.clipPlane3 ? this._addClipPlaneDefine(\"CLIPPLANE3\") : this._removeClipPlaneDefine(\"CLIPPLANE3\");\r\n scene.clipPlane4 ? this._addClipPlaneDefine(\"CLIPPLANE4\") : this._removeClipPlaneDefine(\"CLIPPLANE4\");\r\n scene.clipPlane5 ? this._addClipPlaneDefine(\"CLIPPLANE5\") : this._removeClipPlaneDefine(\"CLIPPLANE5\");\r\n scene.clipPlane6 ? this._addClipPlaneDefine(\"CLIPPLANE6\") : this._removeClipPlaneDefine(\"CLIPPLANE6\");\r\n\r\n if (!this._lineMaterial.isReady(this, !!this._userInstancedBuffersStorage)) {\r\n return false;\r\n }\r\n\r\n return super.isReady();\r\n }\r\n\r\n /**\r\n * Returns the string \"LineMesh\"\r\n */\r\n public getClassName(): string {\r\n return \"LinesMesh\";\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public get material(): Material {\r\n return this._lineMaterial;\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public set material(value: Material) {\r\n this._lineMaterial = value;\r\n }\r\n\r\n /**\r\n * @hidden\r\n */\r\n public get checkCollisions(): boolean {\r\n return false;\r\n }\r\n\r\n public set checkCollisions(value: boolean) {\r\n // Just ignore it\r\n }\r\n\r\n /** @hidden */\r\n public _bind(subMesh: SubMesh, effect: Effect, fillMode: number): Mesh {\r\n if (!this._geometry) {\r\n return this;\r\n }\r\n const colorEffect = this._lineMaterial.getEffect();\r\n\r\n // VBOs\r\n const indexToBind = this.isUnIndexed ? null : this._geometry.getIndexBuffer();\r\n if (!this._userInstancedBuffersStorage) {\r\n this._geometry._bind(colorEffect, indexToBind);\r\n } else {\r\n this._geometry._bind(colorEffect, indexToBind, this._userInstancedBuffersStorage.vertexBuffers, this._userInstancedBuffersStorage.vertexArrayObjects);\r\n }\r\n\r\n // Color\r\n if (!this.useVertexColor && this._isShaderMaterial(this._lineMaterial)) {\r\n const { r, g, b } = this.color;\r\n this.color4.set(r, g, b, this.alpha);\r\n this._lineMaterial.setColor4(\"color\", this.color4);\r\n }\r\n\r\n // Clip planes\r\n MaterialHelper.BindClipPlane(colorEffect!, this.getScene());\r\n return this;\r\n }\r\n\r\n /** @hidden */\r\n public _draw(subMesh: SubMesh, fillMode: number, instancesCount?: number): Mesh {\r\n if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) {\r\n return this;\r\n }\r\n\r\n var engine = this.getScene().getEngine();\r\n\r\n // Draw order\r\n\r\n if (this._unIndexed) {\r\n engine.drawArraysType(Material.LineListDrawMode, subMesh.verticesStart, subMesh.verticesCount, instancesCount);\r\n }\r\n else {\r\n engine.drawElementsType(Material.LineListDrawMode, subMesh.indexStart, subMesh.indexCount, instancesCount);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Disposes of the line mesh\r\n * @param doNotRecurse If children should be disposed\r\n */\r\n public dispose(doNotRecurse?: boolean): void {\r\n this._lineMaterial.dispose(false, false, true);\r\n super.dispose(doNotRecurse);\r\n }\r\n\r\n /**\r\n * Returns a new LineMesh object cloned from the current one.\r\n */\r\n public clone(name: string, newParent: Nullable<Node> = null, doNotCloneChildren?: boolean): LinesMesh {\r\n return new LinesMesh(name, this.getScene(), newParent, this, doNotCloneChildren);\r\n }\r\n\r\n /**\r\n * Creates a new InstancedLinesMesh object from the mesh model.\r\n * @see https://doc.babylonjs.com/how_to/how_to_use_instances\r\n * @param name defines the name of the new instance\r\n * @returns a new InstancedLinesMesh\r\n */\r\n public createInstance(name: string): InstancedLinesMesh {\r\n const instance = new InstancedLinesMesh(name, this);\r\n\r\n if (this.instancedBuffers) {\r\n instance.instancedBuffers = {};\r\n\r\n for (const key in this.instancedBuffers) {\r\n instance.instancedBuffers[key] = this.instancedBuffers[key];\r\n }\r\n }\r\n\r\n return instance;\r\n }\r\n\r\n /**\r\n * Serializes this ground mesh\r\n * @param serializationObject object to write serialization to\r\n */\r\n public serialize(serializationObject: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.color = this.color.asArray();\r\n serializationObject.alpha = this.alpha;\r\n }\r\n\r\n /**\r\n * Parses a serialized ground mesh\r\n * @param parsedMesh the serialized mesh\r\n * @param scene the scene to create the ground mesh in\r\n * @returns the created ground mesh\r\n */\r\n public static Parse(parsedMesh: any, scene: Scene): LinesMesh {\r\n var result = new LinesMesh(parsedMesh.name, scene);\r\n\r\n result.color = Color3.FromArray(parsedMesh.color);\r\n result.alpha = parsedMesh.alpha;\r\n\r\n return result;\r\n }\r\n}\r\n\r\n/**\r\n * Creates an instance based on a source LinesMesh\r\n */\r\nexport class InstancedLinesMesh extends InstancedMesh {\r\n /**\r\n * The intersection Threshold is the margin applied when intersection a segment of the LinesMesh with a Ray.\r\n * This margin is expressed in world space coordinates, so its value may vary.\r\n * Initialized with the intersectionThreshold value of the source LinesMesh\r\n */\r\n public intersectionThreshold: number;\r\n\r\n constructor(name: string, source: LinesMesh) {\r\n super(name, source);\r\n this.intersectionThreshold = source.intersectionThreshold;\r\n }\r\n\r\n /**\r\n * Returns the string \"InstancedLinesMesh\".\r\n */\r\n public getClassName(): string {\r\n return \"InstancedLinesMesh\";\r\n }\r\n}\r\n"]}
package/Meshes/mesh.js CHANGED
@@ -1004,16 +1004,22 @@ var Mesh = /** @class */ (function (_super) {
1004
1004
  }
1005
1005
  }
1006
1006
  // Shadows
1007
+ var currentRenderPassId = engine.currentRenderPassId;
1007
1008
  for (var _h = 0, _j = this.lightSources; _h < _j.length; _h++) {
1008
1009
  var light = _j[_h];
1009
1010
  var generator = light.getShadowGenerator();
1010
1011
  if (generator && (!((_a = generator.getShadowMap()) === null || _a === void 0 ? void 0 : _a.renderList) || (((_b = generator.getShadowMap()) === null || _b === void 0 ? void 0 : _b.renderList) && ((_d = (_c = generator.getShadowMap()) === null || _c === void 0 ? void 0 : _c.renderList) === null || _d === void 0 ? void 0 : _d.indexOf(this)) !== -1))) {
1012
+ if (generator.getShadowMap()) {
1013
+ engine.currentRenderPassId = generator.getShadowMap().renderPassId;
1014
+ }
1011
1015
  for (var _k = 0, _l = this.subMeshes; _k < _l.length; _k++) {
1012
1016
  var subMesh = _l[_k];
1013
1017
  if (!generator.isReady(subMesh, hardwareInstancedRendering, (_f = (_e = subMesh.getMaterial()) === null || _e === void 0 ? void 0 : _e.needAlphaBlendingForMesh(this)) !== null && _f !== void 0 ? _f : false)) {
1018
+ engine.currentRenderPassId = currentRenderPassId;
1014
1019
  return false;
1015
1020
  }
1016
1021
  }
1022
+ engine.currentRenderPassId = currentRenderPassId;
1017
1023
  }
1018
1024
  }
1019
1025
  // LOD
@@ -1668,6 +1674,9 @@ var Mesh = /** @class */ (function (_super) {
1668
1674
  // Stats
1669
1675
  this.getScene()._activeIndices.addCount(subMesh.indexCount * instancesCount, false);
1670
1676
  // Draw
1677
+ if (engine._currentDrawContext) {
1678
+ engine._currentDrawContext.useInstancing = true;
1679
+ }
1671
1680
  this._bind(subMesh, effect, fillMode);
1672
1681
  this._draw(subMesh, fillMode, instancesCount);
1673
1682
  // Write current matrices as previous matrices in case of manual update
@@ -1690,6 +1699,9 @@ var Mesh = /** @class */ (function (_super) {
1690
1699
  var instancesCount = (_b = (_a = this._thinInstanceDataStorage) === null || _a === void 0 ? void 0 : _a.instancesCount) !== null && _b !== void 0 ? _b : 0;
1691
1700
  this.getScene()._activeIndices.addCount(subMesh.indexCount * instancesCount, false);
1692
1701
  // Draw
1702
+ if (engine._currentDrawContext) {
1703
+ engine._currentDrawContext.useInstancing = true;
1704
+ }
1693
1705
  this._bind(subMesh, effect, fillMode);
1694
1706
  this._draw(subMesh, fillMode, instancesCount);
1695
1707
  // Write current matrices as previous matrices
@@ -1721,6 +1733,9 @@ var Mesh = /** @class */ (function (_super) {
1721
1733
  this._renderWithInstances(subMesh, fillMode, batch, effect, engine);
1722
1734
  }
1723
1735
  else {
1736
+ if (engine._currentDrawContext) {
1737
+ engine._currentDrawContext.useInstancing = false;
1738
+ }
1724
1739
  var instanceCount = 0;
1725
1740
  if (batch.renderSelf[subMesh._id]) {
1726
1741
  // Draw
@@ -3884,5 +3899,5 @@ export { Mesh };
3884
3899
  RegisterClass("BABYLON.Mesh", Mesh);
3885
3900
  // LTS
3886
3901
  import { _injectLTSMesh } from "./mesh.lts.js";
3887
- _injectLTSMesh();
3902
+ _injectLTSMesh(Mesh);
3888
3903
  //# sourceMappingURL=mesh.js.map