@babylonjs/core 7.53.3 → 7.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1196) hide show
  1. package/AudioV2/abstractAudio/audioEngineV2.d.ts +11 -1
  2. package/AudioV2/abstractAudio/audioEngineV2.js +14 -1
  3. package/AudioV2/abstractAudio/audioEngineV2.js.map +1 -1
  4. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +2 -0
  5. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +6 -6
  6. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
  7. package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.d.ts +3 -0
  8. package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.js +4 -2
  9. package/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.js.map +1 -1
  10. package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.d.ts +3 -0
  11. package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.js +4 -2
  12. package/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.js.map +1 -1
  13. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +10 -9
  14. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -1
  15. package/AudioV2/webAudio/webAudioEngine.d.ts +12 -0
  16. package/AudioV2/webAudio/webAudioEngine.js +16 -2
  17. package/AudioV2/webAudio/webAudioEngine.js.map +1 -1
  18. package/AudioV2/webAudio/webAudioMainOut.d.ts +3 -0
  19. package/AudioV2/webAudio/webAudioMainOut.js +4 -2
  20. package/AudioV2/webAudio/webAudioMainOut.js.map +1 -1
  21. package/AudioV2/webAudio/webAudioStaticSound.js +2 -2
  22. package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
  23. package/AudioV2/webAudio/webAudioUnmuteUI.d.ts +15 -0
  24. package/AudioV2/webAudio/webAudioUnmuteUI.js +45 -0
  25. package/AudioV2/webAudio/webAudioUnmuteUI.js.map +1 -0
  26. package/Behaviors/Meshes/pointerDragBehavior.js +10 -0
  27. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  28. package/Cameras/Inputs/BaseCameraPointersInput.d.ts +4 -1
  29. package/Cameras/Inputs/BaseCameraPointersInput.js +10 -7
  30. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  31. package/DeviceInput/webDeviceInputSystem.js +21 -3
  32. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  33. package/Engines/abstractEngine.js +2 -2
  34. package/Engines/abstractEngine.js.map +1 -1
  35. package/Engines/thinEngine.d.ts +2 -1
  36. package/Engines/thinEngine.js +10 -2
  37. package/Engines/thinEngine.js.map +1 -1
  38. package/Engines/webgpuEngine.d.ts +2 -1
  39. package/Engines/webgpuEngine.js +3 -2
  40. package/Engines/webgpuEngine.js.map +1 -1
  41. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js +3 -0
  42. package/FlowGraph/Blocks/Data/Math/flowGraphVectorMathBlocks.js.map +1 -1
  43. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.d.ts +16 -1
  44. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js +33 -1
  45. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js.map +1 -1
  46. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js +4 -4
  47. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js.map +1 -1
  48. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.js +4 -4
  49. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.js.map +1 -1
  50. package/FrameGraph/Node/Blocks/PostProcesses/anaglyphPostProcessBlock.js +2 -2
  51. package/FrameGraph/Node/Blocks/PostProcesses/anaglyphPostProcessBlock.js.map +1 -1
  52. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +4 -4
  53. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
  54. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.js +25 -15
  55. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.js.map +1 -1
  56. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +6 -6
  57. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  58. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +4 -2
  59. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
  60. package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js +2 -0
  61. package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js.map +1 -1
  62. package/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.js +2 -0
  63. package/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.js.map +1 -1
  64. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.js +4 -2
  65. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.js.map +1 -1
  66. package/FrameGraph/Node/Blocks/Textures/clearBlock.js +4 -4
  67. package/FrameGraph/Node/Blocks/Textures/clearBlock.js.map +1 -1
  68. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.js +4 -4
  69. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.js.map +1 -1
  70. package/FrameGraph/Node/Blocks/Textures/generateMipmapsBlock.js +2 -2
  71. package/FrameGraph/Node/Blocks/Textures/generateMipmapsBlock.js.map +1 -1
  72. package/FrameGraph/Node/Blocks/{Rendering/cullObjectsBlock.d.ts → cullObjectsBlock.d.ts} +3 -3
  73. package/FrameGraph/Node/Blocks/{Rendering/cullObjectsBlock.js → cullObjectsBlock.js} +4 -4
  74. package/FrameGraph/Node/Blocks/cullObjectsBlock.js.map +1 -0
  75. package/FrameGraph/Node/Blocks/executeBlock.js +1 -2
  76. package/FrameGraph/Node/Blocks/executeBlock.js.map +1 -1
  77. package/FrameGraph/Node/Blocks/index.d.ts +1 -1
  78. package/FrameGraph/Node/Blocks/index.js +1 -1
  79. package/FrameGraph/Node/Blocks/index.js.map +1 -1
  80. package/FrameGraph/Node/Blocks/resourceContainerBlock.js +16 -16
  81. package/FrameGraph/Node/Blocks/resourceContainerBlock.js.map +1 -1
  82. package/FrameGraph/Node/nodeRenderGraphBlock.d.ts +1 -1
  83. package/FrameGraph/Node/nodeRenderGraphBlock.js +5 -4
  84. package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
  85. package/FrameGraph/Tasks/Layers/baseLayerTask.js +4 -4
  86. package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
  87. package/FrameGraph/Tasks/Misc/cullObjectsTask.js.map +1 -0
  88. package/FrameGraph/Tasks/PostProcesses/bloomTask.js +2 -2
  89. package/FrameGraph/Tasks/PostProcesses/bloomTask.js.map +1 -1
  90. package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js +2 -2
  91. package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js.map +1 -1
  92. package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.js +4 -4
  93. package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.js.map +1 -1
  94. package/FrameGraph/index.d.ts +1 -1
  95. package/FrameGraph/index.js +1 -1
  96. package/FrameGraph/index.js.map +1 -1
  97. package/Gizmos/gizmo.js +25 -17
  98. package/Gizmos/gizmo.js.map +1 -1
  99. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +1 -0
  100. package/Materials/PBR/pbrSubSurfaceConfiguration.js +3 -0
  101. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  102. package/Materials/material.js +1 -1
  103. package/Materials/material.js.map +1 -1
  104. package/Meshes/Node/Blocks/conditionBlock.d.ts +4 -0
  105. package/Meshes/Node/Blocks/conditionBlock.js +19 -8
  106. package/Meshes/Node/Blocks/conditionBlock.js.map +1 -1
  107. package/Misc/decorators.js +2 -2
  108. package/Misc/decorators.js.map +1 -1
  109. package/Physics/v2/Plugins/havokPlugin.js +1 -0
  110. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  111. package/PostProcesses/subSurfaceScatteringPostProcess.d.ts +3 -0
  112. package/PostProcesses/subSurfaceScatteringPostProcess.js +16 -1
  113. package/PostProcesses/subSurfaceScatteringPostProcess.js.map +1 -1
  114. package/Rendering/subSurfaceConfiguration.js +5 -1
  115. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  116. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js +3 -1
  117. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js.map +1 -1
  118. package/Shaders/ShadersInclude/backgroundUboDeclaration.js +3 -1
  119. package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  120. package/Shaders/ShadersInclude/backgroundVertexDeclaration.js +3 -1
  121. package/Shaders/ShadersInclude/backgroundVertexDeclaration.js.map +1 -1
  122. package/Shaders/ShadersInclude/bakedVertexAnimation.js +3 -1
  123. package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -1
  124. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +3 -1
  125. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
  126. package/Shaders/ShadersInclude/bayerDitherFunctions.js +3 -1
  127. package/Shaders/ShadersInclude/bayerDitherFunctions.js.map +1 -1
  128. package/Shaders/ShadersInclude/bonesDeclaration.js +3 -1
  129. package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
  130. package/Shaders/ShadersInclude/bonesVertex.js +3 -1
  131. package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
  132. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js +3 -1
  133. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js.map +1 -1
  134. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +3 -1
  135. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
  136. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js +3 -1
  137. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js.map +1 -1
  138. package/Shaders/ShadersInclude/bumpFragment.js +3 -1
  139. package/Shaders/ShadersInclude/bumpFragment.js.map +1 -1
  140. package/Shaders/ShadersInclude/bumpFragmentFunctions.js +3 -1
  141. package/Shaders/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
  142. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +3 -1
  143. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  144. package/Shaders/ShadersInclude/bumpVertex.js +3 -1
  145. package/Shaders/ShadersInclude/bumpVertex.js.map +1 -1
  146. package/Shaders/ShadersInclude/bumpVertexDeclaration.js +3 -1
  147. package/Shaders/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
  148. package/Shaders/ShadersInclude/clipPlaneFragment.js +3 -1
  149. package/Shaders/ShadersInclude/clipPlaneFragment.js.map +1 -1
  150. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js +3 -1
  151. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
  152. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js +3 -1
  153. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js.map +1 -1
  154. package/Shaders/ShadersInclude/clipPlaneVertex.js +3 -1
  155. package/Shaders/ShadersInclude/clipPlaneVertex.js.map +1 -1
  156. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js +3 -1
  157. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
  158. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js +3 -1
  159. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js.map +1 -1
  160. package/Shaders/ShadersInclude/decalFragment.js +3 -1
  161. package/Shaders/ShadersInclude/decalFragment.js.map +1 -1
  162. package/Shaders/ShadersInclude/decalFragmentDeclaration.js +3 -1
  163. package/Shaders/ShadersInclude/decalFragmentDeclaration.js.map +1 -1
  164. package/Shaders/ShadersInclude/decalVertexDeclaration.js +3 -1
  165. package/Shaders/ShadersInclude/decalVertexDeclaration.js.map +1 -1
  166. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +3 -1
  167. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
  168. package/Shaders/ShadersInclude/defaultUboDeclaration.js +3 -1
  169. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  170. package/Shaders/ShadersInclude/defaultVertexDeclaration.js +3 -1
  171. package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
  172. package/Shaders/ShadersInclude/depthPrePass.js +3 -1
  173. package/Shaders/ShadersInclude/depthPrePass.js.map +1 -1
  174. package/Shaders/ShadersInclude/diffusionProfile.js +3 -1
  175. package/Shaders/ShadersInclude/diffusionProfile.js.map +1 -1
  176. package/Shaders/ShadersInclude/fibonacci.js +3 -2
  177. package/Shaders/ShadersInclude/fibonacci.js.map +1 -1
  178. package/Shaders/ShadersInclude/fogFragment.js +3 -1
  179. package/Shaders/ShadersInclude/fogFragment.js.map +1 -1
  180. package/Shaders/ShadersInclude/fogFragmentDeclaration.js +3 -1
  181. package/Shaders/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
  182. package/Shaders/ShadersInclude/fogVertex.js +3 -1
  183. package/Shaders/ShadersInclude/fogVertex.js.map +1 -1
  184. package/Shaders/ShadersInclude/fogVertexDeclaration.js +3 -1
  185. package/Shaders/ShadersInclude/fogVertexDeclaration.js.map +1 -1
  186. package/Shaders/ShadersInclude/fresnelFunction.js +3 -1
  187. package/Shaders/ShadersInclude/fresnelFunction.js.map +1 -1
  188. package/Shaders/ShadersInclude/gaussianSplatting.js +3 -1
  189. package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
  190. package/Shaders/ShadersInclude/gaussianSplattingFragmentDeclaration.js +3 -1
  191. package/Shaders/ShadersInclude/gaussianSplattingFragmentDeclaration.js.map +1 -1
  192. package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js +3 -1
  193. package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js.map +1 -1
  194. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +3 -1
  195. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
  196. package/Shaders/ShadersInclude/geometryUboDeclaration.js +3 -1
  197. package/Shaders/ShadersInclude/geometryUboDeclaration.js.map +1 -1
  198. package/Shaders/ShadersInclude/geometryVertexDeclaration.js +3 -1
  199. package/Shaders/ShadersInclude/geometryVertexDeclaration.js.map +1 -1
  200. package/Shaders/ShadersInclude/harmonicsFunctions.js +3 -1
  201. package/Shaders/ShadersInclude/harmonicsFunctions.js.map +1 -1
  202. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +3 -1
  203. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  204. package/Shaders/ShadersInclude/helperFunctions.js +3 -1
  205. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  206. package/Shaders/ShadersInclude/imageProcessingCompatibility.js +3 -1
  207. package/Shaders/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
  208. package/Shaders/ShadersInclude/imageProcessingDeclaration.js +3 -1
  209. package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
  210. package/Shaders/ShadersInclude/imageProcessingFunctions.js +3 -1
  211. package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  212. package/Shaders/ShadersInclude/importanceSampling.js +3 -1
  213. package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
  214. package/Shaders/ShadersInclude/instancesDeclaration.js +3 -1
  215. package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
  216. package/Shaders/ShadersInclude/instancesVertex.js +3 -1
  217. package/Shaders/ShadersInclude/instancesVertex.js.map +1 -1
  218. package/Shaders/ShadersInclude/intersectionFunctions.js +3 -1
  219. package/Shaders/ShadersInclude/intersectionFunctions.js.map +1 -1
  220. package/Shaders/ShadersInclude/kernelBlurFragment.js +3 -1
  221. package/Shaders/ShadersInclude/kernelBlurFragment.js.map +1 -1
  222. package/Shaders/ShadersInclude/kernelBlurFragment2.js +3 -1
  223. package/Shaders/ShadersInclude/kernelBlurFragment2.js.map +1 -1
  224. package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js +3 -1
  225. package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -1
  226. package/Shaders/ShadersInclude/kernelBlurVertex.js +3 -1
  227. package/Shaders/ShadersInclude/kernelBlurVertex.js.map +1 -1
  228. package/Shaders/ShadersInclude/lightFragment.js +3 -1
  229. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  230. package/Shaders/ShadersInclude/lightFragmentDeclaration.js +3 -1
  231. package/Shaders/ShadersInclude/lightFragmentDeclaration.js.map +1 -1
  232. package/Shaders/ShadersInclude/lightUboDeclaration.js +3 -1
  233. package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
  234. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +3 -1
  235. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
  236. package/Shaders/ShadersInclude/lightVxUboDeclaration.js +3 -1
  237. package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
  238. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +3 -1
  239. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  240. package/Shaders/ShadersInclude/lineUboDeclaration.js +3 -1
  241. package/Shaders/ShadersInclude/lineUboDeclaration.js.map +1 -1
  242. package/Shaders/ShadersInclude/lineVertexDeclaration.js +3 -1
  243. package/Shaders/ShadersInclude/lineVertexDeclaration.js.map +1 -1
  244. package/Shaders/ShadersInclude/logDepthDeclaration.js +3 -1
  245. package/Shaders/ShadersInclude/logDepthDeclaration.js.map +1 -1
  246. package/Shaders/ShadersInclude/logDepthFragment.js +3 -1
  247. package/Shaders/ShadersInclude/logDepthFragment.js.map +1 -1
  248. package/Shaders/ShadersInclude/logDepthVertex.js +3 -1
  249. package/Shaders/ShadersInclude/logDepthVertex.js.map +1 -1
  250. package/Shaders/ShadersInclude/ltcHelperFunctions.js +3 -1
  251. package/Shaders/ShadersInclude/ltcHelperFunctions.js.map +1 -1
  252. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js +3 -1
  253. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
  254. package/Shaders/ShadersInclude/meshFragmentDeclaration.js +3 -1
  255. package/Shaders/ShadersInclude/meshFragmentDeclaration.js.map +1 -1
  256. package/Shaders/ShadersInclude/meshUboDeclaration.js +3 -1
  257. package/Shaders/ShadersInclude/meshUboDeclaration.js.map +1 -1
  258. package/Shaders/ShadersInclude/meshVertexDeclaration.js +3 -1
  259. package/Shaders/ShadersInclude/meshVertexDeclaration.js.map +1 -1
  260. package/Shaders/ShadersInclude/morphTargetsVertex.js +3 -1
  261. package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
  262. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +3 -1
  263. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  264. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js +3 -1
  265. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
  266. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +3 -1
  267. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  268. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +3 -1
  269. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
  270. package/Shaders/ShadersInclude/oitDeclaration.js +3 -1
  271. package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
  272. package/Shaders/ShadersInclude/oitFragment.js +3 -1
  273. package/Shaders/ShadersInclude/oitFragment.js.map +1 -1
  274. package/Shaders/ShadersInclude/packingFunctions.js +3 -1
  275. package/Shaders/ShadersInclude/packingFunctions.js.map +1 -1
  276. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +3 -1
  277. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  278. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +3 -1
  279. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  280. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +3 -1
  281. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
  282. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +3 -1
  283. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
  284. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +3 -1
  285. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
  286. package/Shaders/ShadersInclude/pbrBlockClearcoat.js +3 -1
  287. package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
  288. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +3 -1
  289. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
  290. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +3 -1
  291. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
  292. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +5 -2
  293. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
  294. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +3 -1
  295. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  296. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js +3 -1
  297. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
  298. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +3 -1
  299. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
  300. package/Shaders/ShadersInclude/pbrBlockIridescence.js +3 -1
  301. package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
  302. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +3 -1
  303. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
  304. package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +3 -1
  305. package/Shaders/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
  306. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js +3 -1
  307. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
  308. package/Shaders/ShadersInclude/pbrBlockPrePass.js +3 -1
  309. package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  310. package/Shaders/ShadersInclude/pbrBlockReflectance.js +3 -1
  311. package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
  312. package/Shaders/ShadersInclude/pbrBlockReflectance0.js +3 -1
  313. package/Shaders/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
  314. package/Shaders/ShadersInclude/pbrBlockReflection.js +3 -1
  315. package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
  316. package/Shaders/ShadersInclude/pbrBlockReflectivity.js +3 -1
  317. package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  318. package/Shaders/ShadersInclude/pbrBlockSheen.js +3 -1
  319. package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
  320. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +3 -1
  321. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  322. package/Shaders/ShadersInclude/pbrDebug.js +3 -1
  323. package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
  324. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js +3 -1
  325. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
  326. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
  327. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  328. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +3 -1
  329. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
  330. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +3 -1
  331. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
  332. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +3 -1
  333. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  334. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +3 -1
  335. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
  336. package/Shaders/ShadersInclude/pbrHelperFunctions.js +3 -1
  337. package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  338. package/Shaders/ShadersInclude/pbrIBLFunctions.js +3 -1
  339. package/Shaders/ShadersInclude/pbrIBLFunctions.js.map +1 -1
  340. package/Shaders/ShadersInclude/pbrUboDeclaration.js +3 -1
  341. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  342. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +3 -1
  343. package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
  344. package/Shaders/ShadersInclude/pointCloudVertex.js +3 -1
  345. package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
  346. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js +3 -1
  347. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
  348. package/Shaders/ShadersInclude/prePassDeclaration.js +3 -1
  349. package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
  350. package/Shaders/ShadersInclude/prePassVertex.js +3 -1
  351. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  352. package/Shaders/ShadersInclude/prePassVertexDeclaration.js +3 -1
  353. package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
  354. package/Shaders/ShadersInclude/reflectionFunction.js +3 -1
  355. package/Shaders/ShadersInclude/reflectionFunction.js.map +1 -1
  356. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js +3 -1
  357. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
  358. package/Shaders/ShadersInclude/samplerFragmentDeclaration.js +3 -1
  359. package/Shaders/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
  360. package/Shaders/ShadersInclude/samplerVertexDeclaration.js +3 -1
  361. package/Shaders/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
  362. package/Shaders/ShadersInclude/samplerVertexImplementation.js +3 -1
  363. package/Shaders/ShadersInclude/samplerVertexImplementation.js.map +1 -1
  364. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +3 -1
  365. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
  366. package/Shaders/ShadersInclude/sceneUboDeclaration.js +3 -1
  367. package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  368. package/Shaders/ShadersInclude/sceneVertexDeclaration.js +3 -1
  369. package/Shaders/ShadersInclude/sceneVertexDeclaration.js.map +1 -1
  370. package/Shaders/ShadersInclude/screenSpaceRayTrace.js +3 -1
  371. package/Shaders/ShadersInclude/screenSpaceRayTrace.js.map +1 -1
  372. package/Shaders/ShadersInclude/shadowMapFragment.js +3 -1
  373. package/Shaders/ShadersInclude/shadowMapFragment.js.map +1 -1
  374. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +3 -1
  375. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
  376. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +3 -1
  377. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
  378. package/Shaders/ShadersInclude/shadowMapUboDeclaration.js +3 -1
  379. package/Shaders/ShadersInclude/shadowMapUboDeclaration.js.map +1 -1
  380. package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js +3 -1
  381. package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js.map +1 -1
  382. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js +3 -1
  383. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
  384. package/Shaders/ShadersInclude/shadowMapVertexMetric.js +3 -1
  385. package/Shaders/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
  386. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js +3 -1
  387. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
  388. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +3 -1
  389. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
  390. package/Shaders/ShadersInclude/shadowsVertex.js +3 -1
  391. package/Shaders/ShadersInclude/shadowsVertex.js.map +1 -1
  392. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js +3 -1
  393. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
  394. package/Shaders/ShadersInclude/uvAttributeDeclaration.js +3 -1
  395. package/Shaders/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
  396. package/Shaders/ShadersInclude/uvVariableDeclaration.js +3 -1
  397. package/Shaders/ShadersInclude/uvVariableDeclaration.js.map +1 -1
  398. package/Shaders/ShadersInclude/vertexColorMixing.js +3 -1
  399. package/Shaders/ShadersInclude/vertexColorMixing.js.map +1 -1
  400. package/Shaders/anaglyph.fragment.js +3 -1
  401. package/Shaders/anaglyph.fragment.js.map +1 -1
  402. package/Shaders/background.fragment.js +3 -1
  403. package/Shaders/background.fragment.js.map +1 -1
  404. package/Shaders/background.vertex.js +3 -1
  405. package/Shaders/background.vertex.js.map +1 -1
  406. package/Shaders/bilateralBlur.fragment.js +3 -1
  407. package/Shaders/bilateralBlur.fragment.js.map +1 -1
  408. package/Shaders/bilateralBlurQuality.fragment.js +3 -1
  409. package/Shaders/bilateralBlurQuality.fragment.js.map +1 -1
  410. package/Shaders/blackAndWhite.fragment.js +3 -1
  411. package/Shaders/blackAndWhite.fragment.js.map +1 -1
  412. package/Shaders/bloomMerge.fragment.js +3 -1
  413. package/Shaders/bloomMerge.fragment.js.map +1 -1
  414. package/Shaders/boundingBoxRenderer.fragment.js +3 -1
  415. package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
  416. package/Shaders/boundingBoxRenderer.vertex.js +3 -1
  417. package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
  418. package/Shaders/chromaticAberration.fragment.js +3 -1
  419. package/Shaders/chromaticAberration.fragment.js.map +1 -1
  420. package/Shaders/circleOfConfusion.fragment.js +3 -1
  421. package/Shaders/circleOfConfusion.fragment.js.map +1 -1
  422. package/Shaders/color.fragment.js +3 -1
  423. package/Shaders/color.fragment.js.map +1 -1
  424. package/Shaders/color.vertex.js +3 -1
  425. package/Shaders/color.vertex.js.map +1 -1
  426. package/Shaders/colorCorrection.fragment.js +3 -1
  427. package/Shaders/colorCorrection.fragment.js.map +1 -1
  428. package/Shaders/convolution.fragment.js +3 -1
  429. package/Shaders/convolution.fragment.js.map +1 -1
  430. package/Shaders/copyTexture3DLayerToTexture.fragment.js +3 -1
  431. package/Shaders/copyTexture3DLayerToTexture.fragment.js.map +1 -1
  432. package/Shaders/copyTextureToTexture.fragment.js +3 -1
  433. package/Shaders/copyTextureToTexture.fragment.js.map +1 -1
  434. package/Shaders/default.fragment.js +3 -1
  435. package/Shaders/default.fragment.js.map +1 -1
  436. package/Shaders/default.vertex.js +3 -1
  437. package/Shaders/default.vertex.js.map +1 -1
  438. package/Shaders/depth.fragment.js +3 -1
  439. package/Shaders/depth.fragment.js.map +1 -1
  440. package/Shaders/depth.vertex.js +3 -1
  441. package/Shaders/depth.vertex.js.map +1 -1
  442. package/Shaders/depthBoxBlur.fragment.js +3 -1
  443. package/Shaders/depthBoxBlur.fragment.js.map +1 -1
  444. package/Shaders/depthOfField.fragment.js +3 -1
  445. package/Shaders/depthOfField.fragment.js.map +1 -1
  446. package/Shaders/depthOfFieldMerge.fragment.js +3 -1
  447. package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
  448. package/Shaders/displayPass.fragment.js +3 -1
  449. package/Shaders/displayPass.fragment.js.map +1 -1
  450. package/Shaders/equirectangularPanorama.fragment.js +3 -1
  451. package/Shaders/equirectangularPanorama.fragment.js.map +1 -1
  452. package/Shaders/extractHighlights.fragment.js +3 -1
  453. package/Shaders/extractHighlights.fragment.js.map +1 -1
  454. package/Shaders/filter.fragment.js +3 -1
  455. package/Shaders/filter.fragment.js.map +1 -1
  456. package/Shaders/fluidRenderingBilateralBlur.fragment.js +3 -1
  457. package/Shaders/fluidRenderingBilateralBlur.fragment.js.map +1 -1
  458. package/Shaders/fluidRenderingParticleDepth.fragment.js +3 -1
  459. package/Shaders/fluidRenderingParticleDepth.fragment.js.map +1 -1
  460. package/Shaders/fluidRenderingParticleDepth.vertex.js +3 -1
  461. package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
  462. package/Shaders/fluidRenderingParticleDiffuse.fragment.js +3 -1
  463. package/Shaders/fluidRenderingParticleDiffuse.fragment.js.map +1 -1
  464. package/Shaders/fluidRenderingParticleDiffuse.vertex.js +3 -1
  465. package/Shaders/fluidRenderingParticleDiffuse.vertex.js.map +1 -1
  466. package/Shaders/fluidRenderingParticleThickness.fragment.js +3 -1
  467. package/Shaders/fluidRenderingParticleThickness.fragment.js.map +1 -1
  468. package/Shaders/fluidRenderingParticleThickness.vertex.js +3 -1
  469. package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
  470. package/Shaders/fluidRenderingRender.fragment.js +3 -1
  471. package/Shaders/fluidRenderingRender.fragment.js.map +1 -1
  472. package/Shaders/fluidRenderingStandardBlur.fragment.js +3 -1
  473. package/Shaders/fluidRenderingStandardBlur.fragment.js.map +1 -1
  474. package/Shaders/fxaa.fragment.js +3 -1
  475. package/Shaders/fxaa.fragment.js.map +1 -1
  476. package/Shaders/fxaa.vertex.js +3 -1
  477. package/Shaders/fxaa.vertex.js.map +1 -1
  478. package/Shaders/gaussianSplatting.fragment.js +3 -1
  479. package/Shaders/gaussianSplatting.fragment.js.map +1 -1
  480. package/Shaders/gaussianSplatting.vertex.js +3 -1
  481. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  482. package/Shaders/geometry.fragment.js +3 -1
  483. package/Shaders/geometry.fragment.js.map +1 -1
  484. package/Shaders/geometry.vertex.js +3 -1
  485. package/Shaders/geometry.vertex.js.map +1 -1
  486. package/Shaders/glowBlurPostProcess.fragment.js +3 -1
  487. package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
  488. package/Shaders/glowMapGeneration.fragment.js +3 -1
  489. package/Shaders/glowMapGeneration.fragment.js.map +1 -1
  490. package/Shaders/glowMapGeneration.vertex.js +3 -1
  491. package/Shaders/glowMapGeneration.vertex.js.map +1 -1
  492. package/Shaders/glowMapMerge.fragment.js +3 -1
  493. package/Shaders/glowMapMerge.fragment.js.map +1 -1
  494. package/Shaders/glowMapMerge.vertex.js +3 -1
  495. package/Shaders/glowMapMerge.vertex.js.map +1 -1
  496. package/Shaders/gpuRenderParticles.fragment.js +3 -1
  497. package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
  498. package/Shaders/gpuRenderParticles.vertex.js +3 -1
  499. package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
  500. package/Shaders/gpuTransform.fragment.js +3 -1
  501. package/Shaders/gpuTransform.fragment.js.map +1 -1
  502. package/Shaders/gpuTransform.vertex.js +3 -1
  503. package/Shaders/gpuTransform.vertex.js.map +1 -1
  504. package/Shaders/gpuUpdateParticles.fragment.js +3 -1
  505. package/Shaders/gpuUpdateParticles.fragment.js.map +1 -1
  506. package/Shaders/gpuUpdateParticles.vertex.js +3 -1
  507. package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
  508. package/Shaders/grain.fragment.js +3 -1
  509. package/Shaders/grain.fragment.js.map +1 -1
  510. package/Shaders/greasedLine.fragment.js +3 -1
  511. package/Shaders/greasedLine.fragment.js.map +1 -1
  512. package/Shaders/greasedLine.vertex.js +3 -1
  513. package/Shaders/greasedLine.vertex.js.map +1 -1
  514. package/Shaders/hdrFiltering.fragment.js +3 -1
  515. package/Shaders/hdrFiltering.fragment.js.map +1 -1
  516. package/Shaders/hdrFiltering.vertex.js +3 -1
  517. package/Shaders/hdrFiltering.vertex.js.map +1 -1
  518. package/Shaders/hdrIrradianceFiltering.fragment.js +3 -1
  519. package/Shaders/hdrIrradianceFiltering.fragment.js.map +1 -1
  520. package/Shaders/hdrIrradianceFiltering.vertex.js +3 -1
  521. package/Shaders/hdrIrradianceFiltering.vertex.js.map +1 -1
  522. package/Shaders/highlights.fragment.js +3 -1
  523. package/Shaders/highlights.fragment.js.map +1 -1
  524. package/Shaders/iblCdfDebug.fragment.js +3 -1
  525. package/Shaders/iblCdfDebug.fragment.js.map +1 -1
  526. package/Shaders/iblCdfx.fragment.js +3 -1
  527. package/Shaders/iblCdfx.fragment.js.map +1 -1
  528. package/Shaders/iblCdfy.fragment.js +3 -1
  529. package/Shaders/iblCdfy.fragment.js.map +1 -1
  530. package/Shaders/iblCombineVoxelGrids.fragment.js +3 -1
  531. package/Shaders/iblCombineVoxelGrids.fragment.js.map +1 -1
  532. package/Shaders/iblGenerateVoxelMip.fragment.js +3 -1
  533. package/Shaders/iblGenerateVoxelMip.fragment.js.map +1 -1
  534. package/Shaders/iblIcdf.fragment.js +3 -1
  535. package/Shaders/iblIcdf.fragment.js.map +1 -1
  536. package/Shaders/iblScaledLuminance.fragment.js +3 -1
  537. package/Shaders/iblScaledLuminance.fragment.js.map +1 -1
  538. package/Shaders/iblShadowAccumulation.fragment.js +3 -1
  539. package/Shaders/iblShadowAccumulation.fragment.js.map +1 -1
  540. package/Shaders/iblShadowDebug.fragment.js +3 -1
  541. package/Shaders/iblShadowDebug.fragment.js.map +1 -1
  542. package/Shaders/iblShadowGBufferDebug.fragment.js +3 -1
  543. package/Shaders/iblShadowGBufferDebug.fragment.js.map +1 -1
  544. package/Shaders/iblShadowSpatialBlur.fragment.js +3 -1
  545. package/Shaders/iblShadowSpatialBlur.fragment.js.map +1 -1
  546. package/Shaders/iblShadowVoxelTracing.fragment.js +3 -1
  547. package/Shaders/iblShadowVoxelTracing.fragment.js.map +1 -1
  548. package/Shaders/iblShadowsCombine.fragment.js +3 -1
  549. package/Shaders/iblShadowsCombine.fragment.js.map +1 -1
  550. package/Shaders/iblVoxelGrid.fragment.js +3 -1
  551. package/Shaders/iblVoxelGrid.fragment.js.map +1 -1
  552. package/Shaders/iblVoxelGrid.vertex.js +3 -1
  553. package/Shaders/iblVoxelGrid.vertex.js.map +1 -1
  554. package/Shaders/iblVoxelGrid2dArrayDebug.fragment.js +3 -1
  555. package/Shaders/iblVoxelGrid2dArrayDebug.fragment.js.map +1 -1
  556. package/Shaders/iblVoxelGrid3dDebug.fragment.js +3 -1
  557. package/Shaders/iblVoxelGrid3dDebug.fragment.js.map +1 -1
  558. package/Shaders/iblVoxelSlabDebug.fragment.js +3 -1
  559. package/Shaders/iblVoxelSlabDebug.fragment.js.map +1 -1
  560. package/Shaders/iblVoxelSlabDebug.vertex.js +3 -1
  561. package/Shaders/iblVoxelSlabDebug.vertex.js.map +1 -1
  562. package/Shaders/imageProcessing.fragment.js +3 -1
  563. package/Shaders/imageProcessing.fragment.js.map +1 -1
  564. package/Shaders/kernelBlur.fragment.js +3 -1
  565. package/Shaders/kernelBlur.fragment.js.map +1 -1
  566. package/Shaders/kernelBlur.vertex.js +3 -1
  567. package/Shaders/kernelBlur.vertex.js.map +1 -1
  568. package/Shaders/layer.fragment.js +3 -1
  569. package/Shaders/layer.fragment.js.map +1 -1
  570. package/Shaders/layer.vertex.js +3 -1
  571. package/Shaders/layer.vertex.js.map +1 -1
  572. package/Shaders/lensFlare.fragment.js +3 -1
  573. package/Shaders/lensFlare.fragment.js.map +1 -1
  574. package/Shaders/lensFlare.vertex.js +3 -1
  575. package/Shaders/lensFlare.vertex.js.map +1 -1
  576. package/Shaders/lensHighlights.fragment.js +3 -1
  577. package/Shaders/lensHighlights.fragment.js.map +1 -1
  578. package/Shaders/line.fragment.js +3 -1
  579. package/Shaders/line.fragment.js.map +1 -1
  580. package/Shaders/line.vertex.js +3 -1
  581. package/Shaders/line.vertex.js.map +1 -1
  582. package/Shaders/lod.fragment.js +3 -1
  583. package/Shaders/lod.fragment.js.map +1 -1
  584. package/Shaders/lodCube.fragment.js +3 -1
  585. package/Shaders/lodCube.fragment.js.map +1 -1
  586. package/Shaders/meshUVSpaceRenderer.fragment.js +3 -1
  587. package/Shaders/meshUVSpaceRenderer.fragment.js.map +1 -1
  588. package/Shaders/meshUVSpaceRenderer.vertex.js +3 -1
  589. package/Shaders/meshUVSpaceRenderer.vertex.js.map +1 -1
  590. package/Shaders/meshUVSpaceRendererFinaliser.fragment.js +3 -1
  591. package/Shaders/meshUVSpaceRendererFinaliser.fragment.js.map +1 -1
  592. package/Shaders/meshUVSpaceRendererFinaliser.vertex.js +3 -1
  593. package/Shaders/meshUVSpaceRendererFinaliser.vertex.js.map +1 -1
  594. package/Shaders/meshUVSpaceRendererMasker.fragment.js +3 -1
  595. package/Shaders/meshUVSpaceRendererMasker.fragment.js.map +1 -1
  596. package/Shaders/meshUVSpaceRendererMasker.vertex.js +3 -1
  597. package/Shaders/meshUVSpaceRendererMasker.vertex.js.map +1 -1
  598. package/Shaders/minmaxRedux.fragment.js +3 -1
  599. package/Shaders/minmaxRedux.fragment.js.map +1 -1
  600. package/Shaders/motionBlur.fragment.js +3 -1
  601. package/Shaders/motionBlur.fragment.js.map +1 -1
  602. package/Shaders/noise.fragment.js +3 -1
  603. package/Shaders/noise.fragment.js.map +1 -1
  604. package/Shaders/oitBackBlend.fragment.js +3 -1
  605. package/Shaders/oitBackBlend.fragment.js.map +1 -1
  606. package/Shaders/oitFinal.fragment.js +3 -1
  607. package/Shaders/oitFinal.fragment.js.map +1 -1
  608. package/Shaders/outline.fragment.js +3 -1
  609. package/Shaders/outline.fragment.js.map +1 -1
  610. package/Shaders/outline.vertex.js +3 -1
  611. package/Shaders/outline.vertex.js.map +1 -1
  612. package/Shaders/particles.fragment.js +3 -1
  613. package/Shaders/particles.fragment.js.map +1 -1
  614. package/Shaders/particles.vertex.js +3 -1
  615. package/Shaders/particles.vertex.js.map +1 -1
  616. package/Shaders/pass.fragment.js +3 -1
  617. package/Shaders/pass.fragment.js.map +1 -1
  618. package/Shaders/passCube.fragment.js +3 -1
  619. package/Shaders/passCube.fragment.js.map +1 -1
  620. package/Shaders/pbr.fragment.js +6 -1
  621. package/Shaders/pbr.fragment.js.map +1 -1
  622. package/Shaders/pbr.vertex.js +3 -1
  623. package/Shaders/pbr.vertex.js.map +1 -1
  624. package/Shaders/picking.fragment.js +3 -1
  625. package/Shaders/picking.fragment.js.map +1 -1
  626. package/Shaders/picking.vertex.js +3 -1
  627. package/Shaders/picking.vertex.js.map +1 -1
  628. package/Shaders/postprocess.vertex.js +3 -1
  629. package/Shaders/postprocess.vertex.js.map +1 -1
  630. package/Shaders/procedural.vertex.js +3 -1
  631. package/Shaders/procedural.vertex.js.map +1 -1
  632. package/Shaders/refraction.fragment.js +3 -1
  633. package/Shaders/refraction.fragment.js.map +1 -1
  634. package/Shaders/rgbdDecode.fragment.js +3 -1
  635. package/Shaders/rgbdDecode.fragment.js.map +1 -1
  636. package/Shaders/rgbdEncode.fragment.js +3 -1
  637. package/Shaders/rgbdEncode.fragment.js.map +1 -1
  638. package/Shaders/rsmFullGlobalIllumination.fragment.js +3 -1
  639. package/Shaders/rsmFullGlobalIllumination.fragment.js.map +1 -1
  640. package/Shaders/rsmGlobalIllumination.fragment.js +3 -1
  641. package/Shaders/rsmGlobalIllumination.fragment.js.map +1 -1
  642. package/Shaders/screenSpaceCurvature.fragment.js +3 -1
  643. package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
  644. package/Shaders/screenSpaceReflection.fragment.js +3 -1
  645. package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
  646. package/Shaders/screenSpaceReflection2.fragment.js +3 -1
  647. package/Shaders/screenSpaceReflection2.fragment.js.map +1 -1
  648. package/Shaders/screenSpaceReflection2Blur.fragment.js +3 -1
  649. package/Shaders/screenSpaceReflection2Blur.fragment.js.map +1 -1
  650. package/Shaders/screenSpaceReflection2BlurCombiner.fragment.js +3 -1
  651. package/Shaders/screenSpaceReflection2BlurCombiner.fragment.js.map +1 -1
  652. package/Shaders/shadowMap.fragment.js +3 -1
  653. package/Shaders/shadowMap.fragment.js.map +1 -1
  654. package/Shaders/shadowMap.vertex.js +3 -1
  655. package/Shaders/shadowMap.vertex.js.map +1 -1
  656. package/Shaders/sharpen.fragment.js +3 -1
  657. package/Shaders/sharpen.fragment.js.map +1 -1
  658. package/Shaders/spriteMap.fragment.js +3 -1
  659. package/Shaders/spriteMap.fragment.js.map +1 -1
  660. package/Shaders/spriteMap.vertex.js +3 -1
  661. package/Shaders/spriteMap.vertex.js.map +1 -1
  662. package/Shaders/sprites.fragment.js +3 -1
  663. package/Shaders/sprites.fragment.js.map +1 -1
  664. package/Shaders/sprites.vertex.js +3 -1
  665. package/Shaders/sprites.vertex.js.map +1 -1
  666. package/Shaders/ssao.fragment.js +3 -1
  667. package/Shaders/ssao.fragment.js.map +1 -1
  668. package/Shaders/ssao2.fragment.js +3 -1
  669. package/Shaders/ssao2.fragment.js.map +1 -1
  670. package/Shaders/ssaoCombine.fragment.js +3 -1
  671. package/Shaders/ssaoCombine.fragment.js.map +1 -1
  672. package/Shaders/standard.fragment.js +3 -1
  673. package/Shaders/standard.fragment.js.map +1 -1
  674. package/Shaders/stereoscopicInterlace.fragment.js +3 -1
  675. package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
  676. package/Shaders/subSurfaceScattering.fragment.d.ts +1 -1
  677. package/Shaders/subSurfaceScattering.fragment.js +8 -6
  678. package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
  679. package/Shaders/taa.fragment.js +3 -1
  680. package/Shaders/taa.fragment.js.map +1 -1
  681. package/Shaders/tonemap.fragment.js +3 -1
  682. package/Shaders/tonemap.fragment.js.map +1 -1
  683. package/Shaders/velocity.fragment.js +3 -1
  684. package/Shaders/velocity.fragment.js.map +1 -1
  685. package/Shaders/velocity.vertex.js +3 -1
  686. package/Shaders/velocity.vertex.js.map +1 -1
  687. package/Shaders/volumetricLightScattering.fragment.js +3 -1
  688. package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
  689. package/Shaders/volumetricLightScatteringPass.fragment.js +3 -1
  690. package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
  691. package/Shaders/volumetricLightScatteringPass.vertex.js +3 -1
  692. package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
  693. package/Shaders/vrDistortionCorrection.fragment.js +3 -1
  694. package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
  695. package/Shaders/vrMultiviewToSingleview.fragment.js +3 -1
  696. package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
  697. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js +3 -1
  698. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  699. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +3 -1
  700. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
  701. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +3 -1
  702. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
  703. package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js +3 -1
  704. package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js.map +1 -1
  705. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +3 -1
  706. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
  707. package/ShadersWGSL/ShadersInclude/bonesVertex.js +3 -1
  708. package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
  709. package/ShadersWGSL/ShadersInclude/bumpFragment.js +3 -1
  710. package/ShadersWGSL/ShadersInclude/bumpFragment.js.map +1 -1
  711. package/ShadersWGSL/ShadersInclude/bumpFragmentFunctions.js +3 -1
  712. package/ShadersWGSL/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
  713. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js +3 -1
  714. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  715. package/ShadersWGSL/ShadersInclude/bumpVertex.js +3 -1
  716. package/ShadersWGSL/ShadersInclude/bumpVertex.js.map +1 -1
  717. package/ShadersWGSL/ShadersInclude/bumpVertexDeclaration.js +3 -1
  718. package/ShadersWGSL/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
  719. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +3 -1
  720. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
  721. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +3 -1
  722. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
  723. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +3 -1
  724. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
  725. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +3 -1
  726. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
  727. package/ShadersWGSL/ShadersInclude/decalFragment.js +3 -1
  728. package/ShadersWGSL/ShadersInclude/decalFragment.js.map +1 -1
  729. package/ShadersWGSL/ShadersInclude/decalFragmentDeclaration.js +3 -1
  730. package/ShadersWGSL/ShadersInclude/decalFragmentDeclaration.js.map +1 -1
  731. package/ShadersWGSL/ShadersInclude/decalVertexDeclaration.js +3 -1
  732. package/ShadersWGSL/ShadersInclude/decalVertexDeclaration.js.map +1 -1
  733. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +3 -1
  734. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  735. package/ShadersWGSL/ShadersInclude/depthPrePass.js +3 -1
  736. package/ShadersWGSL/ShadersInclude/depthPrePass.js.map +1 -1
  737. package/ShadersWGSL/ShadersInclude/diffusionProfile.d.ts +5 -0
  738. package/ShadersWGSL/ShadersInclude/diffusionProfile.js +12 -0
  739. package/ShadersWGSL/ShadersInclude/diffusionProfile.js.map +1 -0
  740. package/ShadersWGSL/ShadersInclude/fibonacci.d.ts +5 -0
  741. package/ShadersWGSL/ShadersInclude/fibonacci.js +17 -0
  742. package/ShadersWGSL/ShadersInclude/fibonacci.js.map +1 -0
  743. package/ShadersWGSL/ShadersInclude/fogFragment.js +3 -1
  744. package/ShadersWGSL/ShadersInclude/fogFragment.js.map +1 -1
  745. package/ShadersWGSL/ShadersInclude/fogFragmentDeclaration.js +3 -1
  746. package/ShadersWGSL/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
  747. package/ShadersWGSL/ShadersInclude/fogVertex.js +3 -1
  748. package/ShadersWGSL/ShadersInclude/fogVertex.js.map +1 -1
  749. package/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js +3 -1
  750. package/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js.map +1 -1
  751. package/ShadersWGSL/ShadersInclude/fresnelFunction.js +3 -1
  752. package/ShadersWGSL/ShadersInclude/fresnelFunction.js.map +1 -1
  753. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
  754. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
  755. package/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js +3 -1
  756. package/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js.map +1 -1
  757. package/ShadersWGSL/ShadersInclude/gaussianSplattingUboDeclaration.js +3 -1
  758. package/ShadersWGSL/ShadersInclude/gaussianSplattingUboDeclaration.js.map +1 -1
  759. package/ShadersWGSL/ShadersInclude/gaussianSplattingVertexDeclaration.js +3 -1
  760. package/ShadersWGSL/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -1
  761. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js +3 -1
  762. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js.map +1 -1
  763. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +3 -1
  764. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  765. package/ShadersWGSL/ShadersInclude/helperFunctions.js +3 -1
  766. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  767. package/ShadersWGSL/ShadersInclude/imageProcessingCompatibility.js +3 -1
  768. package/ShadersWGSL/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
  769. package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js +3 -1
  770. package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
  771. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +3 -1
  772. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  773. package/ShadersWGSL/ShadersInclude/importanceSampling.js +3 -1
  774. package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -1
  775. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +3 -1
  776. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  777. package/ShadersWGSL/ShadersInclude/instancesVertex.js +3 -1
  778. package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
  779. package/ShadersWGSL/ShadersInclude/intersectionFunctions.js +3 -1
  780. package/ShadersWGSL/ShadersInclude/intersectionFunctions.js.map +1 -1
  781. package/ShadersWGSL/ShadersInclude/kernelBlurFragment.js +3 -1
  782. package/ShadersWGSL/ShadersInclude/kernelBlurFragment.js.map +1 -1
  783. package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js +3 -1
  784. package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js.map +1 -1
  785. package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js +3 -1
  786. package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -1
  787. package/ShadersWGSL/ShadersInclude/kernelBlurVertex.js +3 -1
  788. package/ShadersWGSL/ShadersInclude/kernelBlurVertex.js.map +1 -1
  789. package/ShadersWGSL/ShadersInclude/lightFragment.js +3 -1
  790. package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
  791. package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js +3 -1
  792. package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js.map +1 -1
  793. package/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.js +3 -1
  794. package/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
  795. package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js +3 -1
  796. package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
  797. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js +3 -1
  798. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  799. package/ShadersWGSL/ShadersInclude/logDepthDeclaration.js +3 -1
  800. package/ShadersWGSL/ShadersInclude/logDepthDeclaration.js.map +1 -1
  801. package/ShadersWGSL/ShadersInclude/logDepthFragment.js +3 -1
  802. package/ShadersWGSL/ShadersInclude/logDepthFragment.js.map +1 -1
  803. package/ShadersWGSL/ShadersInclude/logDepthVertex.js +3 -1
  804. package/ShadersWGSL/ShadersInclude/logDepthVertex.js.map +1 -1
  805. package/ShadersWGSL/ShadersInclude/ltcHelperFunctions.js +3 -1
  806. package/ShadersWGSL/ShadersInclude/ltcHelperFunctions.js.map +1 -1
  807. package/ShadersWGSL/ShadersInclude/mainUVVaryingDeclaration.js +3 -1
  808. package/ShadersWGSL/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
  809. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +3 -1
  810. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
  811. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +3 -1
  812. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
  813. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +3 -1
  814. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  815. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +3 -1
  816. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
  817. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +3 -1
  818. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  819. package/ShadersWGSL/ShadersInclude/oitDeclaration.js +3 -1
  820. package/ShadersWGSL/ShadersInclude/oitDeclaration.js.map +1 -1
  821. package/ShadersWGSL/ShadersInclude/oitFragment.js +3 -1
  822. package/ShadersWGSL/ShadersInclude/oitFragment.js.map +1 -1
  823. package/ShadersWGSL/ShadersInclude/packingFunctions.js +3 -1
  824. package/ShadersWGSL/ShadersInclude/packingFunctions.js.map +1 -1
  825. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +3 -1
  826. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  827. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js +3 -1
  828. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  829. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js +3 -1
  830. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
  831. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js +3 -1
  832. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
  833. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js +3 -1
  834. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
  835. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js +3 -1
  836. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
  837. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js +3 -1
  838. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
  839. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js +3 -1
  840. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
  841. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js +5 -2
  842. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
  843. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js +3 -1
  844. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  845. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js +3 -1
  846. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
  847. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js +3 -1
  848. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
  849. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js +3 -1
  850. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js.map +1 -1
  851. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js +3 -1
  852. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
  853. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js +3 -1
  854. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
  855. package/ShadersWGSL/ShadersInclude/pbrBlockNormalGeometric.js +3 -1
  856. package/ShadersWGSL/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
  857. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +3 -1
  858. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  859. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js +3 -1
  860. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js.map +1 -1
  861. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js +3 -1
  862. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
  863. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +3 -1
  864. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -1
  865. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js +3 -1
  866. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  867. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js +3 -1
  868. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js.map +1 -1
  869. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js +3 -1
  870. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  871. package/ShadersWGSL/ShadersInclude/pbrDebug.js +3 -1
  872. package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
  873. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js +3 -1
  874. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
  875. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
  876. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  877. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js +3 -1
  878. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
  879. package/ShadersWGSL/ShadersInclude/pbrFragmentExtraDeclaration.js +3 -1
  880. package/ShadersWGSL/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  881. package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js +3 -1
  882. package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
  883. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +3 -1
  884. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  885. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js +3 -1
  886. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js.map +1 -1
  887. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +3 -1
  888. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  889. package/ShadersWGSL/ShadersInclude/pointCloudVertex.js +3 -1
  890. package/ShadersWGSL/ShadersInclude/pointCloudVertex.js.map +1 -1
  891. package/ShadersWGSL/ShadersInclude/pointCloudVertexDeclaration.js +3 -1
  892. package/ShadersWGSL/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
  893. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +3 -1
  894. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
  895. package/ShadersWGSL/ShadersInclude/prePassVertex.js +3 -1
  896. package/ShadersWGSL/ShadersInclude/prePassVertex.js.map +1 -1
  897. package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js +3 -1
  898. package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
  899. package/ShadersWGSL/ShadersInclude/reflectionFunction.js +3 -1
  900. package/ShadersWGSL/ShadersInclude/reflectionFunction.js.map +1 -1
  901. package/ShadersWGSL/ShadersInclude/samplerFragmentAlternateDeclaration.js +3 -1
  902. package/ShadersWGSL/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
  903. package/ShadersWGSL/ShadersInclude/samplerFragmentDeclaration.js +3 -1
  904. package/ShadersWGSL/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
  905. package/ShadersWGSL/ShadersInclude/samplerVertexDeclaration.js +3 -1
  906. package/ShadersWGSL/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
  907. package/ShadersWGSL/ShadersInclude/samplerVertexImplementation.js +3 -1
  908. package/ShadersWGSL/ShadersInclude/samplerVertexImplementation.js.map +1 -1
  909. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +3 -1
  910. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  911. package/ShadersWGSL/ShadersInclude/screenSpaceRayTrace.js +3 -1
  912. package/ShadersWGSL/ShadersInclude/screenSpaceRayTrace.js.map +1 -1
  913. package/ShadersWGSL/ShadersInclude/shadowMapFragment.js +3 -1
  914. package/ShadersWGSL/ShadersInclude/shadowMapFragment.js.map +1 -1
  915. package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js +3 -1
  916. package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
  917. package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +3 -1
  918. package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
  919. package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js +3 -1
  920. package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
  921. package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js +3 -1
  922. package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
  923. package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js +3 -1
  924. package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
  925. package/ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.js +3 -1
  926. package/ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
  927. package/ShadersWGSL/ShadersInclude/shadowsVertex.js +3 -1
  928. package/ShadersWGSL/ShadersInclude/shadowsVertex.js.map +1 -1
  929. package/ShadersWGSL/ShadersInclude/subSurfaceScatteringFunctions.js +3 -1
  930. package/ShadersWGSL/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
  931. package/ShadersWGSL/ShadersInclude/uvAttributeDeclaration.js +3 -1
  932. package/ShadersWGSL/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
  933. package/ShadersWGSL/ShadersInclude/uvVariableDeclaration.js +3 -1
  934. package/ShadersWGSL/ShadersInclude/uvVariableDeclaration.js.map +1 -1
  935. package/ShadersWGSL/ShadersInclude/vertexColorMixing.js +3 -1
  936. package/ShadersWGSL/ShadersInclude/vertexColorMixing.js.map +1 -1
  937. package/ShadersWGSL/anaglyph.fragment.js +3 -1
  938. package/ShadersWGSL/anaglyph.fragment.js.map +1 -1
  939. package/ShadersWGSL/background.fragment.js +3 -1
  940. package/ShadersWGSL/background.fragment.js.map +1 -1
  941. package/ShadersWGSL/background.vertex.js +3 -1
  942. package/ShadersWGSL/background.vertex.js.map +1 -1
  943. package/ShadersWGSL/bilateralBlur.fragment.js +3 -1
  944. package/ShadersWGSL/bilateralBlur.fragment.js.map +1 -1
  945. package/ShadersWGSL/bilateralBlurQuality.fragment.js +3 -1
  946. package/ShadersWGSL/bilateralBlurQuality.fragment.js.map +1 -1
  947. package/ShadersWGSL/blackAndWhite.fragment.js +3 -1
  948. package/ShadersWGSL/blackAndWhite.fragment.js.map +1 -1
  949. package/ShadersWGSL/bloomMerge.fragment.js +3 -1
  950. package/ShadersWGSL/bloomMerge.fragment.js.map +1 -1
  951. package/ShadersWGSL/boundingBoxRenderer.fragment.js +3 -1
  952. package/ShadersWGSL/boundingBoxRenderer.fragment.js.map +1 -1
  953. package/ShadersWGSL/boundingBoxRenderer.vertex.js +3 -1
  954. package/ShadersWGSL/boundingBoxRenderer.vertex.js.map +1 -1
  955. package/ShadersWGSL/boundingInfo.compute.js +3 -1
  956. package/ShadersWGSL/boundingInfo.compute.js.map +1 -1
  957. package/ShadersWGSL/chromaticAberration.fragment.js +3 -1
  958. package/ShadersWGSL/chromaticAberration.fragment.js.map +1 -1
  959. package/ShadersWGSL/circleOfConfusion.fragment.js +3 -1
  960. package/ShadersWGSL/circleOfConfusion.fragment.js.map +1 -1
  961. package/ShadersWGSL/clearQuad.fragment.js +3 -1
  962. package/ShadersWGSL/clearQuad.fragment.js.map +1 -1
  963. package/ShadersWGSL/clearQuad.vertex.js +3 -1
  964. package/ShadersWGSL/clearQuad.vertex.js.map +1 -1
  965. package/ShadersWGSL/color.fragment.js +3 -1
  966. package/ShadersWGSL/color.fragment.js.map +1 -1
  967. package/ShadersWGSL/color.vertex.js +3 -1
  968. package/ShadersWGSL/color.vertex.js.map +1 -1
  969. package/ShadersWGSL/colorCorrection.fragment.js +3 -1
  970. package/ShadersWGSL/colorCorrection.fragment.js.map +1 -1
  971. package/ShadersWGSL/convolution.fragment.js +3 -1
  972. package/ShadersWGSL/convolution.fragment.js.map +1 -1
  973. package/ShadersWGSL/copyTexture3DLayerToTexture.fragment.js +3 -1
  974. package/ShadersWGSL/copyTexture3DLayerToTexture.fragment.js.map +1 -1
  975. package/ShadersWGSL/copyTextureToTexture.fragment.js +3 -1
  976. package/ShadersWGSL/copyTextureToTexture.fragment.js.map +1 -1
  977. package/ShadersWGSL/default.fragment.js +3 -1
  978. package/ShadersWGSL/default.fragment.js.map +1 -1
  979. package/ShadersWGSL/default.vertex.js +3 -1
  980. package/ShadersWGSL/default.vertex.js.map +1 -1
  981. package/ShadersWGSL/depth.fragment.js +3 -1
  982. package/ShadersWGSL/depth.fragment.js.map +1 -1
  983. package/ShadersWGSL/depth.vertex.js +3 -1
  984. package/ShadersWGSL/depth.vertex.js.map +1 -1
  985. package/ShadersWGSL/depthBoxBlur.fragment.js +3 -1
  986. package/ShadersWGSL/depthBoxBlur.fragment.js.map +1 -1
  987. package/ShadersWGSL/depthOfFieldMerge.fragment.js +3 -1
  988. package/ShadersWGSL/depthOfFieldMerge.fragment.js.map +1 -1
  989. package/ShadersWGSL/displayPass.fragment.js +3 -1
  990. package/ShadersWGSL/displayPass.fragment.js.map +1 -1
  991. package/ShadersWGSL/extractHighlights.fragment.js +3 -1
  992. package/ShadersWGSL/extractHighlights.fragment.js.map +1 -1
  993. package/ShadersWGSL/filter.fragment.js +3 -1
  994. package/ShadersWGSL/filter.fragment.js.map +1 -1
  995. package/ShadersWGSL/fluidRenderingBilateralBlur.fragment.js +3 -1
  996. package/ShadersWGSL/fluidRenderingBilateralBlur.fragment.js.map +1 -1
  997. package/ShadersWGSL/fluidRenderingParticleDepth.fragment.js +3 -1
  998. package/ShadersWGSL/fluidRenderingParticleDepth.fragment.js.map +1 -1
  999. package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js +3 -1
  1000. package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js.map +1 -1
  1001. package/ShadersWGSL/fluidRenderingParticleDiffuse.fragment.js +3 -1
  1002. package/ShadersWGSL/fluidRenderingParticleDiffuse.fragment.js.map +1 -1
  1003. package/ShadersWGSL/fluidRenderingParticleDiffuse.vertex.js +3 -1
  1004. package/ShadersWGSL/fluidRenderingParticleDiffuse.vertex.js.map +1 -1
  1005. package/ShadersWGSL/fluidRenderingParticleThickness.fragment.js +3 -1
  1006. package/ShadersWGSL/fluidRenderingParticleThickness.fragment.js.map +1 -1
  1007. package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js +3 -1
  1008. package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js.map +1 -1
  1009. package/ShadersWGSL/fluidRenderingRender.fragment.js +3 -1
  1010. package/ShadersWGSL/fluidRenderingRender.fragment.js.map +1 -1
  1011. package/ShadersWGSL/fluidRenderingStandardBlur.fragment.js +3 -1
  1012. package/ShadersWGSL/fluidRenderingStandardBlur.fragment.js.map +1 -1
  1013. package/ShadersWGSL/fxaa.fragment.js +3 -1
  1014. package/ShadersWGSL/fxaa.fragment.js.map +1 -1
  1015. package/ShadersWGSL/fxaa.vertex.js +3 -1
  1016. package/ShadersWGSL/fxaa.vertex.js.map +1 -1
  1017. package/ShadersWGSL/gaussianSplatting.fragment.js +3 -1
  1018. package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
  1019. package/ShadersWGSL/gaussianSplatting.vertex.js +3 -1
  1020. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  1021. package/ShadersWGSL/geometry.fragment.js +3 -1
  1022. package/ShadersWGSL/geometry.fragment.js.map +1 -1
  1023. package/ShadersWGSL/geometry.vertex.js +3 -1
  1024. package/ShadersWGSL/geometry.vertex.js.map +1 -1
  1025. package/ShadersWGSL/glowBlurPostProcess.fragment.js +3 -1
  1026. package/ShadersWGSL/glowBlurPostProcess.fragment.js.map +1 -1
  1027. package/ShadersWGSL/glowMapGeneration.fragment.js +3 -1
  1028. package/ShadersWGSL/glowMapGeneration.fragment.js.map +1 -1
  1029. package/ShadersWGSL/glowMapGeneration.vertex.js +3 -1
  1030. package/ShadersWGSL/glowMapGeneration.vertex.js.map +1 -1
  1031. package/ShadersWGSL/glowMapMerge.fragment.js +3 -1
  1032. package/ShadersWGSL/glowMapMerge.fragment.js.map +1 -1
  1033. package/ShadersWGSL/glowMapMerge.vertex.js +3 -1
  1034. package/ShadersWGSL/glowMapMerge.vertex.js.map +1 -1
  1035. package/ShadersWGSL/gpuUpdateParticles.compute.js +3 -1
  1036. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  1037. package/ShadersWGSL/grain.fragment.js +3 -1
  1038. package/ShadersWGSL/grain.fragment.js.map +1 -1
  1039. package/ShadersWGSL/greasedLine.fragment.js +3 -1
  1040. package/ShadersWGSL/greasedLine.fragment.js.map +1 -1
  1041. package/ShadersWGSL/greasedLine.vertex.js +3 -1
  1042. package/ShadersWGSL/greasedLine.vertex.js.map +1 -1
  1043. package/ShadersWGSL/hdrFiltering.fragment.js +3 -1
  1044. package/ShadersWGSL/hdrFiltering.fragment.js.map +1 -1
  1045. package/ShadersWGSL/hdrFiltering.vertex.js +3 -1
  1046. package/ShadersWGSL/hdrFiltering.vertex.js.map +1 -1
  1047. package/ShadersWGSL/hdrIrradianceFiltering.fragment.js +3 -1
  1048. package/ShadersWGSL/hdrIrradianceFiltering.fragment.js.map +1 -1
  1049. package/ShadersWGSL/hdrIrradianceFiltering.vertex.js +3 -1
  1050. package/ShadersWGSL/hdrIrradianceFiltering.vertex.js.map +1 -1
  1051. package/ShadersWGSL/highlights.fragment.js +3 -1
  1052. package/ShadersWGSL/highlights.fragment.js.map +1 -1
  1053. package/ShadersWGSL/iblCdfDebug.fragment.js +3 -1
  1054. package/ShadersWGSL/iblCdfDebug.fragment.js.map +1 -1
  1055. package/ShadersWGSL/iblCdfx.fragment.js +3 -1
  1056. package/ShadersWGSL/iblCdfx.fragment.js.map +1 -1
  1057. package/ShadersWGSL/iblCdfy.fragment.js +3 -1
  1058. package/ShadersWGSL/iblCdfy.fragment.js.map +1 -1
  1059. package/ShadersWGSL/iblCombineVoxelGrids.fragment.js +3 -1
  1060. package/ShadersWGSL/iblCombineVoxelGrids.fragment.js.map +1 -1
  1061. package/ShadersWGSL/iblGenerateVoxelMip.fragment.js +3 -1
  1062. package/ShadersWGSL/iblGenerateVoxelMip.fragment.js.map +1 -1
  1063. package/ShadersWGSL/iblIcdf.fragment.js +3 -1
  1064. package/ShadersWGSL/iblIcdf.fragment.js.map +1 -1
  1065. package/ShadersWGSL/iblScaledLuminance.fragment.js +3 -1
  1066. package/ShadersWGSL/iblScaledLuminance.fragment.js.map +1 -1
  1067. package/ShadersWGSL/iblShadowAccumulation.fragment.js +3 -1
  1068. package/ShadersWGSL/iblShadowAccumulation.fragment.js.map +1 -1
  1069. package/ShadersWGSL/iblShadowDebug.fragment.js +3 -1
  1070. package/ShadersWGSL/iblShadowDebug.fragment.js.map +1 -1
  1071. package/ShadersWGSL/iblShadowGBufferDebug.fragment.js +3 -1
  1072. package/ShadersWGSL/iblShadowGBufferDebug.fragment.js.map +1 -1
  1073. package/ShadersWGSL/iblShadowSpatialBlur.fragment.js +3 -1
  1074. package/ShadersWGSL/iblShadowSpatialBlur.fragment.js.map +1 -1
  1075. package/ShadersWGSL/iblShadowVoxelTracing.fragment.js +3 -1
  1076. package/ShadersWGSL/iblShadowVoxelTracing.fragment.js.map +1 -1
  1077. package/ShadersWGSL/iblShadowsCombine.fragment.js +3 -1
  1078. package/ShadersWGSL/iblShadowsCombine.fragment.js.map +1 -1
  1079. package/ShadersWGSL/iblVoxelGrid.fragment.js +3 -1
  1080. package/ShadersWGSL/iblVoxelGrid.fragment.js.map +1 -1
  1081. package/ShadersWGSL/iblVoxelGrid.vertex.js +3 -1
  1082. package/ShadersWGSL/iblVoxelGrid.vertex.js.map +1 -1
  1083. package/ShadersWGSL/iblVoxelGrid2dArrayDebug.fragment.js +3 -1
  1084. package/ShadersWGSL/iblVoxelGrid2dArrayDebug.fragment.js.map +1 -1
  1085. package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js +3 -1
  1086. package/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js.map +1 -1
  1087. package/ShadersWGSL/iblVoxelSlabDebug.fragment.js +3 -1
  1088. package/ShadersWGSL/iblVoxelSlabDebug.fragment.js.map +1 -1
  1089. package/ShadersWGSL/iblVoxelSlabDebug.vertex.js +3 -1
  1090. package/ShadersWGSL/iblVoxelSlabDebug.vertex.js.map +1 -1
  1091. package/ShadersWGSL/imageProcessing.fragment.js +3 -1
  1092. package/ShadersWGSL/imageProcessing.fragment.js.map +1 -1
  1093. package/ShadersWGSL/kernelBlur.fragment.js +3 -1
  1094. package/ShadersWGSL/kernelBlur.fragment.js.map +1 -1
  1095. package/ShadersWGSL/kernelBlur.vertex.js +3 -1
  1096. package/ShadersWGSL/kernelBlur.vertex.js.map +1 -1
  1097. package/ShadersWGSL/layer.fragment.js +3 -1
  1098. package/ShadersWGSL/layer.fragment.js.map +1 -1
  1099. package/ShadersWGSL/layer.vertex.js +3 -1
  1100. package/ShadersWGSL/layer.vertex.js.map +1 -1
  1101. package/ShadersWGSL/lensFlare.fragment.js +3 -1
  1102. package/ShadersWGSL/lensFlare.fragment.js.map +1 -1
  1103. package/ShadersWGSL/lensFlare.vertex.js +3 -1
  1104. package/ShadersWGSL/lensFlare.vertex.js.map +1 -1
  1105. package/ShadersWGSL/line.fragment.js +3 -1
  1106. package/ShadersWGSL/line.fragment.js.map +1 -1
  1107. package/ShadersWGSL/line.vertex.js +3 -1
  1108. package/ShadersWGSL/line.vertex.js.map +1 -1
  1109. package/ShadersWGSL/lod.fragment.js +3 -1
  1110. package/ShadersWGSL/lod.fragment.js.map +1 -1
  1111. package/ShadersWGSL/lodCube.fragment.js +3 -1
  1112. package/ShadersWGSL/lodCube.fragment.js.map +1 -1
  1113. package/ShadersWGSL/meshUVSpaceRenderer.fragment.js +3 -1
  1114. package/ShadersWGSL/meshUVSpaceRenderer.fragment.js.map +1 -1
  1115. package/ShadersWGSL/meshUVSpaceRenderer.vertex.js +3 -1
  1116. package/ShadersWGSL/meshUVSpaceRenderer.vertex.js.map +1 -1
  1117. package/ShadersWGSL/meshUVSpaceRendererFinaliser.fragment.js +3 -1
  1118. package/ShadersWGSL/meshUVSpaceRendererFinaliser.fragment.js.map +1 -1
  1119. package/ShadersWGSL/meshUVSpaceRendererFinaliser.vertex.js +3 -1
  1120. package/ShadersWGSL/meshUVSpaceRendererFinaliser.vertex.js.map +1 -1
  1121. package/ShadersWGSL/meshUVSpaceRendererMasker.fragment.js +3 -1
  1122. package/ShadersWGSL/meshUVSpaceRendererMasker.fragment.js.map +1 -1
  1123. package/ShadersWGSL/meshUVSpaceRendererMasker.vertex.js +3 -1
  1124. package/ShadersWGSL/meshUVSpaceRendererMasker.vertex.js.map +1 -1
  1125. package/ShadersWGSL/motionBlur.fragment.js +3 -1
  1126. package/ShadersWGSL/motionBlur.fragment.js.map +1 -1
  1127. package/ShadersWGSL/oitBackBlend.fragment.js +3 -1
  1128. package/ShadersWGSL/oitBackBlend.fragment.js.map +1 -1
  1129. package/ShadersWGSL/oitFinal.fragment.js +3 -1
  1130. package/ShadersWGSL/oitFinal.fragment.js.map +1 -1
  1131. package/ShadersWGSL/outline.fragment.js +3 -1
  1132. package/ShadersWGSL/outline.fragment.js.map +1 -1
  1133. package/ShadersWGSL/outline.vertex.js +3 -1
  1134. package/ShadersWGSL/outline.vertex.js.map +1 -1
  1135. package/ShadersWGSL/particles.fragment.js +3 -1
  1136. package/ShadersWGSL/particles.fragment.js.map +1 -1
  1137. package/ShadersWGSL/particles.vertex.js +3 -1
  1138. package/ShadersWGSL/particles.vertex.js.map +1 -1
  1139. package/ShadersWGSL/pass.fragment.js +3 -1
  1140. package/ShadersWGSL/pass.fragment.js.map +1 -1
  1141. package/ShadersWGSL/passCube.fragment.js +3 -1
  1142. package/ShadersWGSL/passCube.fragment.js.map +1 -1
  1143. package/ShadersWGSL/pbr.fragment.js +6 -1
  1144. package/ShadersWGSL/pbr.fragment.js.map +1 -1
  1145. package/ShadersWGSL/pbr.vertex.js +3 -1
  1146. package/ShadersWGSL/pbr.vertex.js.map +1 -1
  1147. package/ShadersWGSL/picking.fragment.js +3 -1
  1148. package/ShadersWGSL/picking.fragment.js.map +1 -1
  1149. package/ShadersWGSL/picking.vertex.js +3 -1
  1150. package/ShadersWGSL/picking.vertex.js.map +1 -1
  1151. package/ShadersWGSL/postprocess.vertex.js +3 -1
  1152. package/ShadersWGSL/postprocess.vertex.js.map +1 -1
  1153. package/ShadersWGSL/procedural.vertex.js +3 -1
  1154. package/ShadersWGSL/procedural.vertex.js.map +1 -1
  1155. package/ShadersWGSL/rgbdDecode.fragment.js +3 -1
  1156. package/ShadersWGSL/rgbdDecode.fragment.js.map +1 -1
  1157. package/ShadersWGSL/rgbdEncode.fragment.js +3 -1
  1158. package/ShadersWGSL/rgbdEncode.fragment.js.map +1 -1
  1159. package/ShadersWGSL/rsmFullGlobalIllumination.fragment.js +3 -1
  1160. package/ShadersWGSL/rsmFullGlobalIllumination.fragment.js.map +1 -1
  1161. package/ShadersWGSL/rsmGlobalIllumination.fragment.js +3 -1
  1162. package/ShadersWGSL/rsmGlobalIllumination.fragment.js.map +1 -1
  1163. package/ShadersWGSL/screenSpaceReflection2.fragment.js +3 -1
  1164. package/ShadersWGSL/screenSpaceReflection2.fragment.js.map +1 -1
  1165. package/ShadersWGSL/screenSpaceReflection2Blur.fragment.js +3 -1
  1166. package/ShadersWGSL/screenSpaceReflection2Blur.fragment.js.map +1 -1
  1167. package/ShadersWGSL/screenSpaceReflection2BlurCombiner.fragment.js +3 -1
  1168. package/ShadersWGSL/screenSpaceReflection2BlurCombiner.fragment.js.map +1 -1
  1169. package/ShadersWGSL/shadowMap.fragment.js +3 -1
  1170. package/ShadersWGSL/shadowMap.fragment.js.map +1 -1
  1171. package/ShadersWGSL/shadowMap.vertex.js +3 -1
  1172. package/ShadersWGSL/shadowMap.vertex.js.map +1 -1
  1173. package/ShadersWGSL/sharpen.fragment.js +3 -1
  1174. package/ShadersWGSL/sharpen.fragment.js.map +1 -1
  1175. package/ShadersWGSL/sprites.fragment.js +3 -1
  1176. package/ShadersWGSL/sprites.fragment.js.map +1 -1
  1177. package/ShadersWGSL/sprites.vertex.js +3 -1
  1178. package/ShadersWGSL/sprites.vertex.js.map +1 -1
  1179. package/ShadersWGSL/ssao2.fragment.js +3 -1
  1180. package/ShadersWGSL/ssao2.fragment.js.map +1 -1
  1181. package/ShadersWGSL/ssaoCombine.fragment.js +3 -1
  1182. package/ShadersWGSL/ssaoCombine.fragment.js.map +1 -1
  1183. package/ShadersWGSL/subSurfaceScattering.fragment.d.ts +9 -0
  1184. package/ShadersWGSL/subSurfaceScattering.fragment.js +77 -0
  1185. package/ShadersWGSL/subSurfaceScattering.fragment.js.map +1 -0
  1186. package/ShadersWGSL/taa.fragment.js +3 -1
  1187. package/ShadersWGSL/taa.fragment.js.map +1 -1
  1188. package/ShadersWGSL/tonemap.fragment.js +3 -1
  1189. package/ShadersWGSL/tonemap.fragment.js.map +1 -1
  1190. package/ShadersWGSL/vrDistortionCorrection.fragment.js +3 -1
  1191. package/ShadersWGSL/vrDistortionCorrection.fragment.js.map +1 -1
  1192. package/package.json +1 -1
  1193. package/FrameGraph/Node/Blocks/Rendering/cullObjectsBlock.js.map +0 -1
  1194. package/FrameGraph/Tasks/Rendering/cullObjectsTask.js.map +0 -1
  1195. /package/FrameGraph/Tasks/{Rendering → Misc}/cullObjectsTask.d.ts +0 -0
  1196. /package/FrameGraph/Tasks/{Rendering → Misc}/cullObjectsTask.js +0 -0
@@ -15,6 +15,10 @@ export declare function LastCreatedAudioEngine(): Nullable<AudioEngineV2>;
15
15
  * Options for creating a v2 audio engine.
16
16
  */
17
17
  export interface IAudioEngineV2Options extends ISpatialAudioListenerOptions {
18
+ /**
19
+ * The smoothing duration to use when changing audio parameters, in seconds. Defaults to `0.01` (10 milliseconds).
20
+ */
21
+ parameterRampDuration: number;
18
22
  /**
19
23
  * The initial output volume of the audio engine. Defaults to `1`.
20
24
  */
@@ -36,7 +40,8 @@ export declare abstract class AudioEngineV2 {
36
40
  /** Owned top-level sound and bus nodes. */
37
41
  private readonly _nodes;
38
42
  private _defaultMainBus;
39
- protected constructor();
43
+ private _parameterRampDuration;
44
+ protected constructor(options: Partial<IAudioEngineV2Options>);
40
45
  /**
41
46
  * The elapsed time since the audio engine was started, in seconds.
42
47
  */
@@ -71,6 +76,11 @@ export declare abstract class AudioEngineV2 {
71
76
  * The output volume of the audio engine.
72
77
  */
73
78
  abstract volume: number;
79
+ /**
80
+ * The smoothing duration to use when changing audio parameters, in seconds. Defaults to `0.01` (10 milliseconds).
81
+ */
82
+ get parameterRampDuration(): number;
83
+ set parameterRampDuration(value: number);
74
84
  /**
75
85
  * Creates a new audio bus.
76
86
  * @param name - The name of the audio bus.
@@ -15,13 +15,17 @@ export function LastCreatedAudioEngine() {
15
15
  * A v2 audio engine based on the WebAudio API can be created with the {@link CreateAudioEngineAsync} function.
16
16
  */
17
17
  export class AudioEngineV2 {
18
- constructor() {
18
+ constructor(options) {
19
19
  /** Not owned, but all items should be in `_nodes` container, too, which is owned. */
20
20
  this._mainBuses = new Set();
21
21
  /** Owned top-level sound and bus nodes. */
22
22
  this._nodes = new Set();
23
23
  this._defaultMainBus = null;
24
+ this._parameterRampDuration = 0.01;
24
25
  Instances.push(this);
26
+ if (typeof options.parameterRampDuration === "number") {
27
+ this.parameterRampDuration = options.parameterRampDuration;
28
+ }
25
29
  }
26
30
  /**
27
31
  * The default main bus that will be used for audio buses and sounds if their `outBus` option is not set.
@@ -37,6 +41,15 @@ export class AudioEngineV2 {
37
41
  }
38
42
  return this._defaultMainBus;
39
43
  }
44
+ /**
45
+ * The smoothing duration to use when changing audio parameters, in seconds. Defaults to `0.01` (10 milliseconds).
46
+ */
47
+ get parameterRampDuration() {
48
+ return this._parameterRampDuration;
49
+ }
50
+ set parameterRampDuration(value) {
51
+ this._parameterRampDuration = Math.max(0, value);
52
+ }
40
53
  /**
41
54
  * Releases associated resources.
42
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"audioEngineV2.js","sourceRoot":"","sources":["../../../../../dev/core/src/AudioV2/abstractAudio/audioEngineV2.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../types\";\nimport type { AbstractAudioNode, AbstractNamedAudioNode } from \"./abstractAudioNode\";\nimport type { AudioBus, IAudioBusOptions } from \"./audioBus\";\nimport type { IMainAudioBusOptions, MainAudioBus } from \"./mainAudioBus\";\nimport type { IStaticSoundOptions, StaticSound } from \"./staticSound\";\nimport type { IStaticSoundBufferOptions, StaticSoundBuffer } from \"./staticSoundBuffer\";\nimport type { IStreamingSoundOptions, StreamingSound } from \"./streamingSound\";\nimport type { AbstractSpatialAudioListener, ISpatialAudioListenerOptions } from \"./subProperties/abstractSpatialAudioListener\";\n\nconst Instances: AudioEngineV2[] = [];\n\n/**\n * Gets the most recently created v2 audio engine.\n * @returns The most recently created v2 audio engine.\n */\nexport function LastCreatedAudioEngine(): Nullable<AudioEngineV2> {\n if (Instances.length === 0) {\n return null;\n }\n\n return Instances[Instances.length - 1];\n}\n\n/**\n * Options for creating a v2 audio engine.\n */\nexport interface IAudioEngineV2Options extends ISpatialAudioListenerOptions {\n /**\n * The initial output volume of the audio engine. Defaults to `1`.\n */\n volume: number;\n}\n\n/**\n * The state of a v2 audio engine.\n * @see {@link AudioEngineV2.state}\n */\nexport type AudioEngineV2State = \"closed\" | \"interrupted\" | \"running\" | \"suspended\";\n\n/**\n * Abstract base class for v2 audio engines.\n *\n * A v2 audio engine based on the WebAudio API can be created with the {@link CreateAudioEngineAsync} function.\n */\nexport abstract class AudioEngineV2 {\n /** Not owned, but all items should be in `_nodes` container, too, which is owned. */\n private readonly _mainBuses = new Set<MainAudioBus>();\n\n /** Owned top-level sound and bus nodes. */\n private readonly _nodes = new Set<AbstractNamedAudioNode>();\n\n private _defaultMainBus: Nullable<MainAudioBus> = null;\n\n protected constructor() {\n Instances.push(this);\n }\n\n /**\n * The elapsed time since the audio engine was started, in seconds.\n */\n public abstract readonly currentTime: number;\n\n /**\n * The default main bus that will be used for audio buses and sounds if their `outBus` option is not set.\n * @see {@link IAudioBusOptions.outBus}\n * @see {@link IAbstractSoundOptions.outBus}\n */\n public get defaultMainBus(): Nullable<MainAudioBus> {\n if (this._mainBuses.size === 0) {\n return null;\n }\n\n if (!this._defaultMainBus) {\n this._defaultMainBus = Array.from(this._mainBuses)[0];\n }\n\n return this._defaultMainBus;\n }\n\n /**\n * The spatial audio listener properties for the audio engine.\n * - Each audio engine has exactly one listener.\n */\n public abstract readonly listener: AbstractSpatialAudioListener;\n\n /**\n * The main output node.\n * - This is the last node in the audio graph before the audio is sent to the speakers.\n */\n public abstract readonly mainOut: AbstractAudioNode;\n\n /**\n * The current state of the audio engine.\n *\n * Possible values are:\n * - `\"closed\"`: The audio engine has been closed.\n * - `\"interrupted\"`: The audio engine has been interrupted and is not running.\n * - `\"running\"`: The audio engine is running normally.\n * - `\"suspended\"`: The audio engine is suspended and is not running.\n */\n public abstract readonly state: AudioEngineV2State;\n\n /**\n * The output volume of the audio engine.\n */\n public abstract volume: number;\n\n /**\n * Creates a new audio bus.\n * @param name - The name of the audio bus.\n * @param options - The options to use when creating the audio bus.\n * @param engine - The audio engine.\n * @returns A promise that resolves with the created audio bus.\n */\n public abstract createBusAsync(name: string, options?: Partial<IAudioBusOptions>): Promise<AudioBus>;\n\n /**\n * Creates a new main audio bus.\n * @param name - The name of the main audio bus.\n * @param options - The options to use when creating the main audio bus.\n * @returns A promise that resolves with the created main audio bus.\n */\n public abstract createMainBusAsync(name: string, options?: Partial<IMainAudioBusOptions>): Promise<MainAudioBus>;\n /**\n * Creates a new static sound.\n * @param name - The name of the sound.\n * @param source - The source of the sound.\n * @param options - The options for the static sound.\n * @returns A promise that resolves to the created static sound.\n */\n public abstract createSoundAsync(\n name: string,\n source: ArrayBuffer | AudioBuffer | StaticSoundBuffer | string | string[],\n options?: Partial<IStaticSoundOptions>\n ): Promise<StaticSound>;\n\n /**\n * Creates a new static sound buffer.\n * @param source - The source of the sound buffer.\n * @param options - The options for the static sound buffer.\n * @param engine - The audio engine.\n * @returns A promise that resolves to the created static sound buffer.\n */\n public abstract createSoundBufferAsync(\n source: ArrayBuffer | AudioBuffer | StaticSoundBuffer | string | string[],\n options?: Partial<IStaticSoundBufferOptions>\n ): Promise<StaticSoundBuffer>;\n\n /**\n * Creates a new streaming sound.\n * @param name - The name of the sound.\n * @param source - The source of the sound.\n * @param options - The options for the streaming sound.\n * @returns A promise that resolves to the created streaming sound.\n */\n public abstract createStreamingSoundAsync(name: string, source: HTMLMediaElement | string | string[], options?: Partial<IStreamingSoundOptions>): Promise<StreamingSound>;\n\n /**\n * Releases associated resources.\n */\n public dispose(): void {\n if (Instances.includes(this)) {\n Instances.splice(Instances.indexOf(this), 1);\n }\n\n const nodeIt = this._nodes.values();\n for (let next = nodeIt.next(); !next.done; next = nodeIt.next()) {\n next.value.dispose();\n }\n\n this._mainBuses.clear();\n this._nodes.clear();\n\n this._defaultMainBus = null;\n }\n\n /**\n * Checks if the specified format is valid.\n * @param format The format to check as an audio file extension like \"mp3\" or \"wav\".\n * @returns `true` if the format is valid; otherwise `false`.\n */\n public abstract isFormatValid(format: string): boolean;\n\n /**\n * Pauses the audio engine if it is running.\n * @returns A promise that resolves when the audio engine is paused.\n */\n public abstract pause(): Promise<void>;\n\n /**\n * Resumes the audio engine if it is not running.\n * @returns A promise that resolves when the audio engine is running.\n */\n public abstract resume(): Promise<void>;\n\n /**\n * Unlocks the audio engine if it is locked.\n * - Note that the returned promise may already be resolved if the audio engine is already unlocked.\n * @returns A promise that is resolved when the audio engine is unlocked.\n */\n public unlock(): Promise<void> {\n return this.resume();\n }\n\n protected _addMainBus(mainBus: MainAudioBus): void {\n this._mainBuses.add(mainBus);\n\n this._addNode(mainBus);\n }\n\n protected _removeMainBus(mainBus: MainAudioBus): void {\n this._mainBuses.delete(mainBus);\n this._defaultMainBus = null;\n\n this._removeNode(mainBus);\n }\n\n protected _addNode(node: AbstractNamedAudioNode): void {\n this._nodes.add(node);\n }\n\n protected _removeNode(node: AbstractNamedAudioNode): void {\n this._nodes.delete(node);\n }\n}\n\n/**\n * @internal\n * @param engine - The given audio engine. If `null` then the last created audio engine is used.\n * @returns the given audio engine or the last created audio engine.\n * @throws An error if the resulting engine is `null`.\n */\nexport function _GetAudioEngine(engine: Nullable<AudioEngineV2>): AudioEngineV2 {\n if (!engine) {\n engine = LastCreatedAudioEngine();\n }\n\n if (engine) {\n return engine;\n }\n\n throw new Error(\"No audio engine.\");\n}\n\n/**\n * Creates a new audio bus.\n * @param name - The name of the audio bus.\n * @param options - The options to use when creating the audio bus.\n * @param engine - The audio engine.\n * @returns A promise that resolves with the created audio bus.\n */\nexport function CreateAudioBusAsync(name: string, options: Partial<IAudioBusOptions> = {}, engine: Nullable<AudioEngineV2> = null): Promise<AudioBus> {\n engine = _GetAudioEngine(engine);\n return engine.createBusAsync(name, options);\n}\n\n/**\n * Creates a new main audio bus.\n * @param name - The name of the main audio bus.\n * @param options - The options to use when creating the main audio bus.\n * @param engine - The audio engine.\n * @returns A promise that resolves with the created main audio bus.\n */\nexport function CreateMainAudioBusAsync(name: string, options: Partial<IMainAudioBusOptions> = {}, engine: Nullable<AudioEngineV2> = null): Promise<MainAudioBus> {\n engine = _GetAudioEngine(engine);\n return engine.createMainBusAsync(name, options);\n}\n\n/**\n * Creates a new static sound.\n * @param name - The name of the sound.\n * @param source - The source of the sound.\n * @param options - The options for the static sound.\n * @param engine - The audio engine.\n * @returns A promise that resolves to the created static sound.\n */\nexport function CreateSoundAsync(\n name: string,\n source: ArrayBuffer | AudioBuffer | StaticSoundBuffer | string | string[],\n options: Partial<IStaticSoundOptions> = {},\n engine: Nullable<AudioEngineV2> = null\n): Promise<StaticSound> {\n engine = _GetAudioEngine(engine);\n return engine.createSoundAsync(name, source, options);\n}\n\n/**\n * Creates a new static sound buffer.\n * @param source - The source of the sound buffer.\n * @param options - The options for the static sound buffer.\n * @param engine - The audio engine.\n * @returns A promise that resolves to the created static sound buffer.\n */\nexport async function CreateSoundBufferAsync(\n source: ArrayBuffer | AudioBuffer | StaticSoundBuffer | string | string[],\n options: Partial<IStaticSoundBufferOptions> = {},\n engine: Nullable<AudioEngineV2> = null\n): Promise<StaticSoundBuffer> {\n engine = _GetAudioEngine(engine);\n return engine.createSoundBufferAsync(source, options);\n}\n\n/**\n * Creates a new streaming sound.\n * @param name - The name of the sound.\n * @param source - The source of the sound.\n * @param options - The options for the streaming sound.\n * @param engine - The audio engine.\n * @returns A promise that resolves to the created streaming sound.\n */\nexport function CreateStreamingSoundAsync(\n name: string,\n source: HTMLMediaElement | string | string[],\n options: Partial<IStreamingSoundOptions> = {},\n engine: Nullable<AudioEngineV2> = null\n): Promise<StreamingSound> {\n engine = _GetAudioEngine(engine);\n return engine.createStreamingSoundAsync(name, source, options);\n}\n"]}
1
+ {"version":3,"file":"audioEngineV2.js","sourceRoot":"","sources":["../../../../../dev/core/src/AudioV2/abstractAudio/audioEngineV2.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../types\";\nimport type { AbstractAudioNode, AbstractNamedAudioNode } from \"./abstractAudioNode\";\nimport type { AudioBus, IAudioBusOptions } from \"./audioBus\";\nimport type { IMainAudioBusOptions, MainAudioBus } from \"./mainAudioBus\";\nimport type { IStaticSoundOptions, StaticSound } from \"./staticSound\";\nimport type { IStaticSoundBufferOptions, StaticSoundBuffer } from \"./staticSoundBuffer\";\nimport type { IStreamingSoundOptions, StreamingSound } from \"./streamingSound\";\nimport type { AbstractSpatialAudioListener, ISpatialAudioListenerOptions } from \"./subProperties/abstractSpatialAudioListener\";\n\nconst Instances: AudioEngineV2[] = [];\n\n/**\n * Gets the most recently created v2 audio engine.\n * @returns The most recently created v2 audio engine.\n */\nexport function LastCreatedAudioEngine(): Nullable<AudioEngineV2> {\n if (Instances.length === 0) {\n return null;\n }\n\n return Instances[Instances.length - 1];\n}\n\n/**\n * Options for creating a v2 audio engine.\n */\nexport interface IAudioEngineV2Options extends ISpatialAudioListenerOptions {\n /**\n * The smoothing duration to use when changing audio parameters, in seconds. Defaults to `0.01` (10 milliseconds).\n */\n parameterRampDuration: number;\n /**\n * The initial output volume of the audio engine. Defaults to `1`.\n */\n volume: number;\n}\n\n/**\n * The state of a v2 audio engine.\n * @see {@link AudioEngineV2.state}\n */\nexport type AudioEngineV2State = \"closed\" | \"interrupted\" | \"running\" | \"suspended\";\n\n/**\n * Abstract base class for v2 audio engines.\n *\n * A v2 audio engine based on the WebAudio API can be created with the {@link CreateAudioEngineAsync} function.\n */\nexport abstract class AudioEngineV2 {\n /** Not owned, but all items should be in `_nodes` container, too, which is owned. */\n private readonly _mainBuses = new Set<MainAudioBus>();\n\n /** Owned top-level sound and bus nodes. */\n private readonly _nodes = new Set<AbstractNamedAudioNode>();\n\n private _defaultMainBus: Nullable<MainAudioBus> = null;\n\n private _parameterRampDuration: number = 0.01;\n\n protected constructor(options: Partial<IAudioEngineV2Options>) {\n Instances.push(this);\n\n if (typeof options.parameterRampDuration === \"number\") {\n this.parameterRampDuration = options.parameterRampDuration;\n }\n }\n\n /**\n * The elapsed time since the audio engine was started, in seconds.\n */\n public abstract readonly currentTime: number;\n\n /**\n * The default main bus that will be used for audio buses and sounds if their `outBus` option is not set.\n * @see {@link IAudioBusOptions.outBus}\n * @see {@link IAbstractSoundOptions.outBus}\n */\n public get defaultMainBus(): Nullable<MainAudioBus> {\n if (this._mainBuses.size === 0) {\n return null;\n }\n\n if (!this._defaultMainBus) {\n this._defaultMainBus = Array.from(this._mainBuses)[0];\n }\n\n return this._defaultMainBus;\n }\n\n /**\n * The spatial audio listener properties for the audio engine.\n * - Each audio engine has exactly one listener.\n */\n public abstract readonly listener: AbstractSpatialAudioListener;\n\n /**\n * The main output node.\n * - This is the last node in the audio graph before the audio is sent to the speakers.\n */\n public abstract readonly mainOut: AbstractAudioNode;\n\n /**\n * The current state of the audio engine.\n *\n * Possible values are:\n * - `\"closed\"`: The audio engine has been closed.\n * - `\"interrupted\"`: The audio engine has been interrupted and is not running.\n * - `\"running\"`: The audio engine is running normally.\n * - `\"suspended\"`: The audio engine is suspended and is not running.\n */\n public abstract readonly state: AudioEngineV2State;\n\n /**\n * The output volume of the audio engine.\n */\n public abstract volume: number;\n\n /**\n * The smoothing duration to use when changing audio parameters, in seconds. Defaults to `0.01` (10 milliseconds).\n */\n public get parameterRampDuration(): number {\n return this._parameterRampDuration;\n }\n\n public set parameterRampDuration(value: number) {\n this._parameterRampDuration = Math.max(0, value);\n }\n\n /**\n * Creates a new audio bus.\n * @param name - The name of the audio bus.\n * @param options - The options to use when creating the audio bus.\n * @param engine - The audio engine.\n * @returns A promise that resolves with the created audio bus.\n */\n public abstract createBusAsync(name: string, options?: Partial<IAudioBusOptions>): Promise<AudioBus>;\n\n /**\n * Creates a new main audio bus.\n * @param name - The name of the main audio bus.\n * @param options - The options to use when creating the main audio bus.\n * @returns A promise that resolves with the created main audio bus.\n */\n public abstract createMainBusAsync(name: string, options?: Partial<IMainAudioBusOptions>): Promise<MainAudioBus>;\n /**\n * Creates a new static sound.\n * @param name - The name of the sound.\n * @param source - The source of the sound.\n * @param options - The options for the static sound.\n * @returns A promise that resolves to the created static sound.\n */\n public abstract createSoundAsync(\n name: string,\n source: ArrayBuffer | AudioBuffer | StaticSoundBuffer | string | string[],\n options?: Partial<IStaticSoundOptions>\n ): Promise<StaticSound>;\n\n /**\n * Creates a new static sound buffer.\n * @param source - The source of the sound buffer.\n * @param options - The options for the static sound buffer.\n * @param engine - The audio engine.\n * @returns A promise that resolves to the created static sound buffer.\n */\n public abstract createSoundBufferAsync(\n source: ArrayBuffer | AudioBuffer | StaticSoundBuffer | string | string[],\n options?: Partial<IStaticSoundBufferOptions>\n ): Promise<StaticSoundBuffer>;\n\n /**\n * Creates a new streaming sound.\n * @param name - The name of the sound.\n * @param source - The source of the sound.\n * @param options - The options for the streaming sound.\n * @returns A promise that resolves to the created streaming sound.\n */\n public abstract createStreamingSoundAsync(name: string, source: HTMLMediaElement | string | string[], options?: Partial<IStreamingSoundOptions>): Promise<StreamingSound>;\n\n /**\n * Releases associated resources.\n */\n public dispose(): void {\n if (Instances.includes(this)) {\n Instances.splice(Instances.indexOf(this), 1);\n }\n\n const nodeIt = this._nodes.values();\n for (let next = nodeIt.next(); !next.done; next = nodeIt.next()) {\n next.value.dispose();\n }\n\n this._mainBuses.clear();\n this._nodes.clear();\n\n this._defaultMainBus = null;\n }\n\n /**\n * Checks if the specified format is valid.\n * @param format The format to check as an audio file extension like \"mp3\" or \"wav\".\n * @returns `true` if the format is valid; otherwise `false`.\n */\n public abstract isFormatValid(format: string): boolean;\n\n /**\n * Pauses the audio engine if it is running.\n * @returns A promise that resolves when the audio engine is paused.\n */\n public abstract pause(): Promise<void>;\n\n /**\n * Resumes the audio engine if it is not running.\n * @returns A promise that resolves when the audio engine is running.\n */\n public abstract resume(): Promise<void>;\n\n /**\n * Unlocks the audio engine if it is locked.\n * - Note that the returned promise may already be resolved if the audio engine is already unlocked.\n * @returns A promise that is resolved when the audio engine is unlocked.\n */\n public unlock(): Promise<void> {\n return this.resume();\n }\n\n protected _addMainBus(mainBus: MainAudioBus): void {\n this._mainBuses.add(mainBus);\n\n this._addNode(mainBus);\n }\n\n protected _removeMainBus(mainBus: MainAudioBus): void {\n this._mainBuses.delete(mainBus);\n this._defaultMainBus = null;\n\n this._removeNode(mainBus);\n }\n\n protected _addNode(node: AbstractNamedAudioNode): void {\n this._nodes.add(node);\n }\n\n protected _removeNode(node: AbstractNamedAudioNode): void {\n this._nodes.delete(node);\n }\n}\n\n/**\n * @internal\n * @param engine - The given audio engine. If `null` then the last created audio engine is used.\n * @returns the given audio engine or the last created audio engine.\n * @throws An error if the resulting engine is `null`.\n */\nexport function _GetAudioEngine(engine: Nullable<AudioEngineV2>): AudioEngineV2 {\n if (!engine) {\n engine = LastCreatedAudioEngine();\n }\n\n if (engine) {\n return engine;\n }\n\n throw new Error(\"No audio engine.\");\n}\n\n/**\n * Creates a new audio bus.\n * @param name - The name of the audio bus.\n * @param options - The options to use when creating the audio bus.\n * @param engine - The audio engine.\n * @returns A promise that resolves with the created audio bus.\n */\nexport function CreateAudioBusAsync(name: string, options: Partial<IAudioBusOptions> = {}, engine: Nullable<AudioEngineV2> = null): Promise<AudioBus> {\n engine = _GetAudioEngine(engine);\n return engine.createBusAsync(name, options);\n}\n\n/**\n * Creates a new main audio bus.\n * @param name - The name of the main audio bus.\n * @param options - The options to use when creating the main audio bus.\n * @param engine - The audio engine.\n * @returns A promise that resolves with the created main audio bus.\n */\nexport function CreateMainAudioBusAsync(name: string, options: Partial<IMainAudioBusOptions> = {}, engine: Nullable<AudioEngineV2> = null): Promise<MainAudioBus> {\n engine = _GetAudioEngine(engine);\n return engine.createMainBusAsync(name, options);\n}\n\n/**\n * Creates a new static sound.\n * @param name - The name of the sound.\n * @param source - The source of the sound.\n * @param options - The options for the static sound.\n * @param engine - The audio engine.\n * @returns A promise that resolves to the created static sound.\n */\nexport function CreateSoundAsync(\n name: string,\n source: ArrayBuffer | AudioBuffer | StaticSoundBuffer | string | string[],\n options: Partial<IStaticSoundOptions> = {},\n engine: Nullable<AudioEngineV2> = null\n): Promise<StaticSound> {\n engine = _GetAudioEngine(engine);\n return engine.createSoundAsync(name, source, options);\n}\n\n/**\n * Creates a new static sound buffer.\n * @param source - The source of the sound buffer.\n * @param options - The options for the static sound buffer.\n * @param engine - The audio engine.\n * @returns A promise that resolves to the created static sound buffer.\n */\nexport async function CreateSoundBufferAsync(\n source: ArrayBuffer | AudioBuffer | StaticSoundBuffer | string | string[],\n options: Partial<IStaticSoundBufferOptions> = {},\n engine: Nullable<AudioEngineV2> = null\n): Promise<StaticSoundBuffer> {\n engine = _GetAudioEngine(engine);\n return engine.createSoundBufferAsync(source, options);\n}\n\n/**\n * Creates a new streaming sound.\n * @param name - The name of the sound.\n * @param source - The source of the sound.\n * @param options - The options for the streaming sound.\n * @param engine - The audio engine.\n * @returns A promise that resolves to the created streaming sound.\n */\nexport function CreateStreamingSoundAsync(\n name: string,\n source: HTMLMediaElement | string | string[],\n options: Partial<IStreamingSoundOptions> = {},\n engine: Nullable<AudioEngineV2> = null\n): Promise<StreamingSound> {\n engine = _GetAudioEngine(engine);\n return engine.createStreamingSoundAsync(name, source, options);\n}\n"]}
@@ -10,6 +10,8 @@ export declare class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {
10
10
  private _lastRotation;
11
11
  private _lastRotationQuaternion;
12
12
  /** @internal */
13
+ readonly engine: _WebAudioEngine;
14
+ /** @internal */
13
15
  readonly position: Vector3;
14
16
  /** @internal */
15
17
  readonly rotation: Vector3;
@@ -103,9 +103,9 @@ export class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {
103
103
  if (this._lastPosition.equalsWithEpsilon(this.position)) {
104
104
  return;
105
105
  }
106
- this.node.positionX.value = this.position.x;
107
- this.node.positionY.value = this.position.y;
108
- this.node.positionZ.value = this.position.z;
106
+ this.engine._setAudioParam(this.node.positionX, this.position.x);
107
+ this.engine._setAudioParam(this.node.positionY, this.position.y);
108
+ this.engine._setAudioParam(this.node.positionZ, this.position.z);
109
109
  this._lastPosition.copyFrom(this.position);
110
110
  }
111
111
  /** @internal */
@@ -123,9 +123,9 @@ export class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {
123
123
  }
124
124
  Matrix.FromQuaternionToRef(TmpQuaternion, TmpMatrix);
125
125
  Vector3.TransformNormalToRef(Vector3.RightReadOnly, TmpMatrix, TmpVector);
126
- this.node.orientationX.value = TmpVector.x;
127
- this.node.orientationY.value = TmpVector.y;
128
- this.node.orientationZ.value = TmpVector.z;
126
+ this.engine._setAudioParam(this.node.orientationX, TmpVector.x);
127
+ this.engine._setAudioParam(this.node.orientationY, TmpVector.y);
128
+ this.engine._setAudioParam(this.node.orientationZ, TmpVector.z);
129
129
  }
130
130
  _connect(node) {
131
131
  const connected = super._connect(node);
@@ -1 +1 @@
1
- {"version":3,"file":"spatialWebAudioSubNode.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, Vector3 } from \"../../../Maths/math.vector\";\r\nimport { _SpatialAudioSubNode } from \"../../abstractAudio/subNodes/spatialAudioSubNode\";\r\nimport { _SpatialAudioDefaults } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\r\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\r\nimport type { IWebAudioInNode } from \"../webAudioNode\";\r\n\r\nconst TmpMatrix = Matrix.Zero();\r\nconst TmpQuaternion = new Quaternion();\r\nconst TmpVector = Vector3.Zero();\r\n\r\nfunction d2r(degrees: number): number {\r\n return (degrees * Math.PI) / 180;\r\n}\r\n\r\nfunction r2d(radians: number): number {\r\n return (radians * 180) / Math.PI;\r\n}\r\n\r\n/** @internal */\r\nexport async function _CreateSpatialAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_SpatialAudioSubNode> {\r\n return new _SpatialWebAudioSubNode(engine);\r\n}\r\n\r\n/** @internal */\r\nexport class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {\r\n private _lastPosition: Vector3 = Vector3.Zero();\r\n private _lastRotation: Vector3 = Vector3.Zero();\r\n private _lastRotationQuaternion: Quaternion = new Quaternion();\r\n\r\n /** @internal */\r\n public readonly position = _SpatialAudioDefaults.position.clone();\r\n /** @internal */\r\n public readonly rotation: Vector3 = _SpatialAudioDefaults.rotation.clone();\r\n /** @internal */\r\n public readonly rotationQuaternion: Quaternion = _SpatialAudioDefaults.rotationQuaternion.clone();\r\n\r\n /** @internal */\r\n public readonly node: PannerNode;\r\n\r\n /** @internal */\r\n public constructor(engine: _WebAudioEngine) {\r\n super(engine);\r\n\r\n this.node = new PannerNode(engine.audioContext);\r\n }\r\n\r\n /** @internal */\r\n public get coneInnerAngle(): number {\r\n return d2r(this.node.coneInnerAngle);\r\n }\r\n\r\n public set coneInnerAngle(value: number) {\r\n this.node.coneInnerAngle = r2d(value);\r\n }\r\n\r\n /** @internal */\r\n public get coneOuterAngle(): number {\r\n return d2r(this.node.coneOuterAngle);\r\n }\r\n\r\n public set coneOuterAngle(value: number) {\r\n this.node.coneOuterAngle = r2d(value);\r\n }\r\n\r\n /** @internal */\r\n public get coneOuterVolume(): number {\r\n return this.node.coneOuterGain;\r\n }\r\n\r\n public set coneOuterVolume(value: number) {\r\n this.node.coneOuterGain = value;\r\n }\r\n\r\n /** @internal */\r\n public get distanceModel(): \"linear\" | \"inverse\" | \"exponential\" {\r\n return this.node.distanceModel;\r\n }\r\n\r\n public set distanceModel(value: \"linear\" | \"inverse\" | \"exponential\") {\r\n this.node.distanceModel = value;\r\n\r\n // Wiggle the max distance to make the change take effect.\r\n const maxDistance = this.node.maxDistance;\r\n this.node.maxDistance = maxDistance + 0.001;\r\n this.node.maxDistance = maxDistance;\r\n }\r\n\r\n /** @internal */\r\n public get minDistance(): number {\r\n return this.node.refDistance;\r\n }\r\n\r\n public set minDistance(value: number) {\r\n this.node.refDistance = value;\r\n }\r\n\r\n /** @internal */\r\n public get maxDistance(): number {\r\n return this.node.maxDistance;\r\n }\r\n\r\n public set maxDistance(value: number) {\r\n this.node.maxDistance = value;\r\n }\r\n\r\n /** @internal */\r\n public get panningModel(): \"equalpower\" | \"HRTF\" {\r\n return this.node.panningModel;\r\n }\r\n\r\n public set panningModel(value: \"equalpower\" | \"HRTF\") {\r\n this.node.panningModel = value;\r\n }\r\n\r\n /** @internal */\r\n public get rolloffFactor(): number {\r\n return this.node.rolloffFactor;\r\n }\r\n\r\n public set rolloffFactor(value: number) {\r\n this.node.rolloffFactor = value;\r\n }\r\n\r\n /** @internal */\r\n public get inNode(): AudioNode {\r\n return this.node;\r\n }\r\n\r\n /** @internal */\r\n public get outNode(): AudioNode {\r\n return this.node;\r\n }\r\n\r\n /** @internal */\r\n public _updatePosition(): void {\r\n if (this._lastPosition.equalsWithEpsilon(this.position)) {\r\n return;\r\n }\r\n\r\n this.node.positionX.value = this.position.x;\r\n this.node.positionY.value = this.position.y;\r\n this.node.positionZ.value = this.position.z;\r\n\r\n this._lastPosition.copyFrom(this.position);\r\n }\r\n\r\n /** @internal */\r\n public _updateRotation(): void {\r\n if (!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion)) {\r\n TmpQuaternion.copyFrom(this.rotationQuaternion);\r\n this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);\r\n } else if (!this._lastRotation.equalsWithEpsilon(this.rotation)) {\r\n Quaternion.FromEulerAnglesToRef(this.rotation.x, this.rotation.y, this.rotation.z, TmpQuaternion);\r\n this._lastRotation.copyFrom(this.rotation);\r\n } else {\r\n return;\r\n }\r\n\r\n Matrix.FromQuaternionToRef(TmpQuaternion, TmpMatrix);\r\n Vector3.TransformNormalToRef(Vector3.RightReadOnly, TmpMatrix, TmpVector);\r\n\r\n this.node.orientationX.value = TmpVector.x;\r\n this.node.orientationY.value = TmpVector.y;\r\n this.node.orientationZ.value = TmpVector.z;\r\n }\r\n\r\n protected override _connect(node: IWebAudioInNode): boolean {\r\n const connected = super._connect(node);\r\n\r\n if (!connected) {\r\n return false;\r\n }\r\n\r\n // If the wrapped node is not available now, it will be connected later by the subgraph.\r\n if (node.inNode) {\r\n this.node.connect(node.inNode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected override _disconnect(node: IWebAudioInNode): boolean {\r\n const disconnected = super._disconnect(node);\r\n\r\n if (!disconnected) {\r\n return false;\r\n }\r\n\r\n if (node.inNode) {\r\n this.node.disconnect(node.inNode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public getClassName(): string {\r\n return \"_SpatialWebAudioSubNode\";\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"spatialWebAudioSubNode.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, Vector3 } from \"../../../Maths/math.vector\";\r\nimport { _SpatialAudioSubNode } from \"../../abstractAudio/subNodes/spatialAudioSubNode\";\r\nimport { _SpatialAudioDefaults } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\r\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\r\nimport type { IWebAudioInNode } from \"../webAudioNode\";\r\n\r\nconst TmpMatrix = Matrix.Zero();\r\nconst TmpQuaternion = new Quaternion();\r\nconst TmpVector = Vector3.Zero();\r\n\r\nfunction d2r(degrees: number): number {\r\n return (degrees * Math.PI) / 180;\r\n}\r\n\r\nfunction r2d(radians: number): number {\r\n return (radians * 180) / Math.PI;\r\n}\r\n\r\n/** @internal */\r\nexport async function _CreateSpatialAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_SpatialAudioSubNode> {\r\n return new _SpatialWebAudioSubNode(engine);\r\n}\r\n\r\n/** @internal */\r\nexport class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {\r\n private _lastPosition: Vector3 = Vector3.Zero();\r\n private _lastRotation: Vector3 = Vector3.Zero();\r\n private _lastRotationQuaternion: Quaternion = new Quaternion();\r\n\r\n /** @internal */\r\n public override readonly engine: _WebAudioEngine;\r\n\r\n /** @internal */\r\n public readonly position = _SpatialAudioDefaults.position.clone();\r\n /** @internal */\r\n public readonly rotation: Vector3 = _SpatialAudioDefaults.rotation.clone();\r\n /** @internal */\r\n public readonly rotationQuaternion: Quaternion = _SpatialAudioDefaults.rotationQuaternion.clone();\r\n\r\n /** @internal */\r\n public readonly node: PannerNode;\r\n\r\n /** @internal */\r\n public constructor(engine: _WebAudioEngine) {\r\n super(engine);\r\n\r\n this.node = new PannerNode(engine.audioContext);\r\n }\r\n\r\n /** @internal */\r\n public get coneInnerAngle(): number {\r\n return d2r(this.node.coneInnerAngle);\r\n }\r\n\r\n public set coneInnerAngle(value: number) {\r\n this.node.coneInnerAngle = r2d(value);\r\n }\r\n\r\n /** @internal */\r\n public get coneOuterAngle(): number {\r\n return d2r(this.node.coneOuterAngle);\r\n }\r\n\r\n public set coneOuterAngle(value: number) {\r\n this.node.coneOuterAngle = r2d(value);\r\n }\r\n\r\n /** @internal */\r\n public get coneOuterVolume(): number {\r\n return this.node.coneOuterGain;\r\n }\r\n\r\n public set coneOuterVolume(value: number) {\r\n this.node.coneOuterGain = value;\r\n }\r\n\r\n /** @internal */\r\n public get distanceModel(): \"linear\" | \"inverse\" | \"exponential\" {\r\n return this.node.distanceModel;\r\n }\r\n\r\n public set distanceModel(value: \"linear\" | \"inverse\" | \"exponential\") {\r\n this.node.distanceModel = value;\r\n\r\n // Wiggle the max distance to make the change take effect.\r\n const maxDistance = this.node.maxDistance;\r\n this.node.maxDistance = maxDistance + 0.001;\r\n this.node.maxDistance = maxDistance;\r\n }\r\n\r\n /** @internal */\r\n public get minDistance(): number {\r\n return this.node.refDistance;\r\n }\r\n\r\n public set minDistance(value: number) {\r\n this.node.refDistance = value;\r\n }\r\n\r\n /** @internal */\r\n public get maxDistance(): number {\r\n return this.node.maxDistance;\r\n }\r\n\r\n public set maxDistance(value: number) {\r\n this.node.maxDistance = value;\r\n }\r\n\r\n /** @internal */\r\n public get panningModel(): \"equalpower\" | \"HRTF\" {\r\n return this.node.panningModel;\r\n }\r\n\r\n public set panningModel(value: \"equalpower\" | \"HRTF\") {\r\n this.node.panningModel = value;\r\n }\r\n\r\n /** @internal */\r\n public get rolloffFactor(): number {\r\n return this.node.rolloffFactor;\r\n }\r\n\r\n public set rolloffFactor(value: number) {\r\n this.node.rolloffFactor = value;\r\n }\r\n\r\n /** @internal */\r\n public get inNode(): AudioNode {\r\n return this.node;\r\n }\r\n\r\n /** @internal */\r\n public get outNode(): AudioNode {\r\n return this.node;\r\n }\r\n\r\n /** @internal */\r\n public _updatePosition(): void {\r\n if (this._lastPosition.equalsWithEpsilon(this.position)) {\r\n return;\r\n }\r\n\r\n this.engine._setAudioParam(this.node.positionX, this.position.x);\r\n this.engine._setAudioParam(this.node.positionY, this.position.y);\r\n this.engine._setAudioParam(this.node.positionZ, this.position.z);\r\n\r\n this._lastPosition.copyFrom(this.position);\r\n }\r\n\r\n /** @internal */\r\n public _updateRotation(): void {\r\n if (!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion)) {\r\n TmpQuaternion.copyFrom(this.rotationQuaternion);\r\n this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);\r\n } else if (!this._lastRotation.equalsWithEpsilon(this.rotation)) {\r\n Quaternion.FromEulerAnglesToRef(this.rotation.x, this.rotation.y, this.rotation.z, TmpQuaternion);\r\n this._lastRotation.copyFrom(this.rotation);\r\n } else {\r\n return;\r\n }\r\n\r\n Matrix.FromQuaternionToRef(TmpQuaternion, TmpMatrix);\r\n Vector3.TransformNormalToRef(Vector3.RightReadOnly, TmpMatrix, TmpVector);\r\n\r\n this.engine._setAudioParam(this.node.orientationX, TmpVector.x);\r\n this.engine._setAudioParam(this.node.orientationY, TmpVector.y);\r\n this.engine._setAudioParam(this.node.orientationZ, TmpVector.z);\r\n }\r\n\r\n protected override _connect(node: IWebAudioInNode): boolean {\r\n const connected = super._connect(node);\r\n\r\n if (!connected) {\r\n return false;\r\n }\r\n\r\n // If the wrapped node is not available now, it will be connected later by the subgraph.\r\n if (node.inNode) {\r\n this.node.connect(node.inNode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected override _disconnect(node: IWebAudioInNode): boolean {\r\n const disconnected = super._disconnect(node);\r\n\r\n if (!disconnected) {\r\n return false;\r\n }\r\n\r\n if (node.inNode) {\r\n this.node.disconnect(node.inNode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public getClassName(): string {\r\n return \"_SpatialWebAudioSubNode\";\r\n }\r\n}\r\n"]}
@@ -5,6 +5,9 @@ import type { IWebAudioInNode } from "../webAudioNode";
5
5
  export declare function _CreateStereoAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_StereoAudioSubNode>;
6
6
  /** @internal */
7
7
  export declare class _StereoWebAudioSubNode extends _StereoAudioSubNode {
8
+ private _pan;
9
+ /** @internal */
10
+ readonly engine: _WebAudioEngine;
8
11
  /** @internal */
9
12
  readonly node: StereoPannerNode;
10
13
  /** @internal */
@@ -8,15 +8,17 @@ export class _StereoWebAudioSubNode extends _StereoAudioSubNode {
8
8
  /** @internal */
9
9
  constructor(engine) {
10
10
  super(engine);
11
+ this._pan = 0;
11
12
  this.node = new StereoPannerNode(engine.audioContext);
12
13
  }
13
14
  /** @internal */
14
15
  get pan() {
15
- return this.node.pan.value;
16
+ return this._pan;
16
17
  }
17
18
  /** @internal */
18
19
  set pan(value) {
19
- this.node.pan.value = value;
20
+ this._pan = value;
21
+ this.engine._setAudioParam(this.node.pan, value);
20
22
  }
21
23
  /** @internal */
22
24
  get inNode() {
@@ -1 +1 @@
1
- {"version":3,"file":"stereoWebAudioSubNode.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAItF,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,MAAuB;IACxE,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAI3D,gBAAgB;IAChB,YAAmB,MAAuB;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,IAAI,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IAChB,IAAW,GAAG;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,CAAC;IAED,gBAAgB;IAChB,IAAW,GAAG,CAAC,KAAa;QACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,gBAAgB;IAChB,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,gBAAgB;IAChB,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,gBAAgB;IACT,YAAY;QACf,OAAO,wBAAwB,CAAC;IACpC,CAAC;IAEkB,QAAQ,CAAC,IAAqB;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,wFAAwF;QACxF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEkB,WAAW,CAAC,IAAqB;QAChD,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ","sourcesContent":["import { _StereoAudioSubNode } from \"../../abstractAudio/subNodes/stereoAudioSubNode\";\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\nimport type { IWebAudioInNode } from \"../webAudioNode\";\n\n/** @internal */\nexport async function _CreateStereoAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_StereoAudioSubNode> {\n return new _StereoWebAudioSubNode(engine);\n}\n\n/** @internal */\nexport class _StereoWebAudioSubNode extends _StereoAudioSubNode {\n /** @internal */\n public readonly node: StereoPannerNode;\n\n /** @internal */\n public constructor(engine: _WebAudioEngine) {\n super(engine);\n\n this.node = new StereoPannerNode(engine.audioContext);\n }\n\n /** @internal */\n public get pan(): number {\n return this.node.pan.value;\n }\n\n /** @internal */\n public set pan(value: number) {\n this.node.pan.value = value;\n }\n\n /** @internal */\n public get inNode(): AudioNode {\n return this.node;\n }\n\n /** @internal */\n public get outNode(): AudioNode {\n return this.node;\n }\n\n /** @internal */\n public getClassName(): string {\n return \"_StereoWebAudioSubNode\";\n }\n\n protected override _connect(node: IWebAudioInNode): boolean {\n const connected = super._connect(node);\n\n if (!connected) {\n return false;\n }\n\n // If the wrapped node is not available now, it will be connected later by the subgraph.\n if (node.inNode) {\n this.node.connect(node.inNode);\n }\n\n return true;\n }\n\n protected override _disconnect(node: IWebAudioInNode): boolean {\n const disconnected = super._disconnect(node);\n\n if (!disconnected) {\n return false;\n }\n\n if (node.inNode) {\n this.node.disconnect(node.inNode);\n }\n\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"stereoWebAudioSubNode.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/stereoWebAudioSubNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAItF,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,MAAuB;IACxE,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAS3D,gBAAgB;IAChB,YAAmB,MAAuB;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QAVV,SAAI,GAAW,CAAC,CAAC;QAYrB,IAAI,CAAC,IAAI,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IAChB,IAAW,GAAG;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,gBAAgB;IAChB,IAAW,GAAG,CAAC,KAAa;QACxB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB;IAChB,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,gBAAgB;IAChB,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,gBAAgB;IACT,YAAY;QACf,OAAO,wBAAwB,CAAC;IACpC,CAAC;IAEkB,QAAQ,CAAC,IAAqB;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,wFAAwF;QACxF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEkB,WAAW,CAAC,IAAqB;QAChD,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ","sourcesContent":["import { _StereoAudioSubNode } from \"../../abstractAudio/subNodes/stereoAudioSubNode\";\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\nimport type { IWebAudioInNode } from \"../webAudioNode\";\n\n/** @internal */\nexport async function _CreateStereoAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_StereoAudioSubNode> {\n return new _StereoWebAudioSubNode(engine);\n}\n\n/** @internal */\nexport class _StereoWebAudioSubNode extends _StereoAudioSubNode {\n private _pan: number = 0;\n\n /** @internal */\n public override readonly engine: _WebAudioEngine;\n\n /** @internal */\n public readonly node: StereoPannerNode;\n\n /** @internal */\n public constructor(engine: _WebAudioEngine) {\n super(engine);\n\n this.node = new StereoPannerNode(engine.audioContext);\n }\n\n /** @internal */\n public get pan(): number {\n return this._pan;\n }\n\n /** @internal */\n public set pan(value: number) {\n this._pan = value;\n this.engine._setAudioParam(this.node.pan, value);\n }\n\n /** @internal */\n public get inNode(): AudioNode {\n return this.node;\n }\n\n /** @internal */\n public get outNode(): AudioNode {\n return this.node;\n }\n\n /** @internal */\n public getClassName(): string {\n return \"_StereoWebAudioSubNode\";\n }\n\n protected override _connect(node: IWebAudioInNode): boolean {\n const connected = super._connect(node);\n\n if (!connected) {\n return false;\n }\n\n // If the wrapped node is not available now, it will be connected later by the subgraph.\n if (node.inNode) {\n this.node.connect(node.inNode);\n }\n\n return true;\n }\n\n protected override _disconnect(node: IWebAudioInNode): boolean {\n const disconnected = super._disconnect(node);\n\n if (!disconnected) {\n return false;\n }\n\n if (node.inNode) {\n this.node.disconnect(node.inNode);\n }\n\n return true;\n }\n}\n"]}
@@ -5,6 +5,9 @@ import type { IWebAudioInNode, IWebAudioSubNode } from "../webAudioNode";
5
5
  export declare function _CreateVolumeAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_VolumeAudioSubNode>;
6
6
  /** @internal */
7
7
  export declare class _VolumeWebAudioSubNode extends _VolumeAudioSubNode implements IWebAudioSubNode {
8
+ private _volume;
9
+ /** @internal */
10
+ readonly engine: _WebAudioEngine;
8
11
  /** @internal */
9
12
  readonly node: GainNode;
10
13
  /** @internal */
@@ -8,15 +8,17 @@ export class _VolumeWebAudioSubNode extends _VolumeAudioSubNode {
8
8
  /** @internal */
9
9
  constructor(engine) {
10
10
  super(engine);
11
+ this._volume = 1;
11
12
  this.node = new GainNode(engine.audioContext);
12
13
  }
13
14
  /** @internal */
14
15
  get volume() {
15
- return this.node.gain.value;
16
+ return this._volume;
16
17
  }
17
18
  /** @internal */
18
19
  set volume(value) {
19
- this.node.gain.value = value;
20
+ this._volume = value;
21
+ this.engine._setAudioParam(this.node.gain, value);
20
22
  }
21
23
  /** @internal */
22
24
  get inNode() {
@@ -1 +1 @@
1
- {"version":3,"file":"volumeWebAudioSubNode.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAItF,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,MAAuB;IACxE,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAI3D,gBAAgB;IAChB,YAAmB,MAAuB;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,gBAAgB;IAChB,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,gBAAgB;IAChB,IAAW,MAAM,CAAC,KAAa;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,gBAAgB;IAChB,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,gBAAgB;IAChB,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEkB,QAAQ,CAAC,IAAqB;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,wFAAwF;QACxF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEkB,WAAW,CAAC,IAAqB;QAChD,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB;IACT,YAAY;QACf,OAAO,wBAAwB,CAAC;IACpC,CAAC;CACJ","sourcesContent":["import { _VolumeAudioSubNode } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\nimport type { IWebAudioInNode, IWebAudioSubNode } from \"../webAudioNode\";\n\n/** @internal */\nexport async function _CreateVolumeAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_VolumeAudioSubNode> {\n return new _VolumeWebAudioSubNode(engine);\n}\n\n/** @internal */\nexport class _VolumeWebAudioSubNode extends _VolumeAudioSubNode implements IWebAudioSubNode {\n /** @internal */\n public readonly node: GainNode;\n\n /** @internal */\n public constructor(engine: _WebAudioEngine) {\n super(engine);\n\n this.node = new GainNode(engine.audioContext);\n }\n\n /** @internal */\n public get volume(): number {\n return this.node.gain.value;\n }\n\n /** @internal */\n public set volume(value: number) {\n this.node.gain.value = value;\n }\n\n /** @internal */\n public get inNode(): AudioNode {\n return this.node;\n }\n\n /** @internal */\n public get outNode(): AudioNode {\n return this.node;\n }\n\n protected override _connect(node: IWebAudioInNode): boolean {\n const connected = super._connect(node);\n\n if (!connected) {\n return false;\n }\n\n // If the wrapped node is not available now, it will be connected later by the subgraph.\n if (node.inNode) {\n this.node.connect(node.inNode);\n }\n\n return true;\n }\n\n protected override _disconnect(node: IWebAudioInNode): boolean {\n const disconnected = super._disconnect(node);\n\n if (!disconnected) {\n return false;\n }\n\n if (node.inNode) {\n this.node.disconnect(node.inNode);\n }\n\n return true;\n }\n\n /** @internal */\n public getClassName(): string {\n return \"_VolumeWebAudioSubNode\";\n }\n}\n"]}
1
+ {"version":3,"file":"volumeWebAudioSubNode.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/volumeWebAudioSubNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAItF,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,MAAuB;IACxE,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAS3D,gBAAgB;IAChB,YAAmB,MAAuB;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QAVV,YAAO,GAAW,CAAC,CAAC;QAYxB,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,gBAAgB;IAChB,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,gBAAgB;IAChB,IAAW,MAAM,CAAC,KAAa;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,gBAAgB;IAChB,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,gBAAgB;IAChB,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEkB,QAAQ,CAAC,IAAqB;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,wFAAwF;QACxF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEkB,WAAW,CAAC,IAAqB;QAChD,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB;IACT,YAAY;QACf,OAAO,wBAAwB,CAAC;IACpC,CAAC;CACJ","sourcesContent":["import { _VolumeAudioSubNode } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\nimport type { IWebAudioInNode, IWebAudioSubNode } from \"../webAudioNode\";\n\n/** @internal */\nexport async function _CreateVolumeAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_VolumeAudioSubNode> {\n return new _VolumeWebAudioSubNode(engine);\n}\n\n/** @internal */\nexport class _VolumeWebAudioSubNode extends _VolumeAudioSubNode implements IWebAudioSubNode {\n private _volume: number = 1;\n\n /** @internal */\n public override readonly engine: _WebAudioEngine;\n\n /** @internal */\n public readonly node: GainNode;\n\n /** @internal */\n public constructor(engine: _WebAudioEngine) {\n super(engine);\n\n this.node = new GainNode(engine.audioContext);\n }\n\n /** @internal */\n public get volume(): number {\n return this._volume;\n }\n\n /** @internal */\n public set volume(value: number) {\n this._volume = value;\n this.engine._setAudioParam(this.node.gain, value);\n }\n\n /** @internal */\n public get inNode(): AudioNode {\n return this.node;\n }\n\n /** @internal */\n public get outNode(): AudioNode {\n return this.node;\n }\n\n protected override _connect(node: IWebAudioInNode): boolean {\n const connected = super._connect(node);\n\n if (!connected) {\n return false;\n }\n\n // If the wrapped node is not available now, it will be connected later by the subgraph.\n if (node.inNode) {\n this.node.connect(node.inNode);\n }\n\n return true;\n }\n\n protected override _disconnect(node: IWebAudioInNode): boolean {\n const disconnected = super._disconnect(node);\n\n if (!disconnected) {\n return false;\n }\n\n if (node.inNode) {\n this.node.disconnect(node.inNode);\n }\n\n return true;\n }\n\n /** @internal */\n public getClassName(): string {\n return \"_VolumeWebAudioSubNode\";\n }\n}\n"]}
@@ -26,6 +26,7 @@ class _SpatialWebAudioListener extends _SpatialAudioListener {
26
26
  this.rotation = Vector3.Zero();
27
27
  /** @internal */
28
28
  this.rotationQuaternion = new Quaternion();
29
+ this.engine = engine;
29
30
  this._audioContext = engine.audioContext;
30
31
  this._updaterComponent = new _SpatialWebAudioUpdaterComponent(this, autoUpdate, minUpdateTime);
31
32
  }
@@ -59,9 +60,9 @@ class _SpatialWebAudioListener extends _SpatialAudioListener {
59
60
  return;
60
61
  }
61
62
  const listener = this._audioContext.listener;
62
- listener.positionX.value = this.position.x;
63
- listener.positionY.value = this.position.y;
64
- listener.positionZ.value = this.position.z;
63
+ this.engine._setAudioParam(listener.positionX, this.position.x);
64
+ this.engine._setAudioParam(listener.positionY, this.position.y);
65
+ this.engine._setAudioParam(listener.positionZ, this.position.z);
65
66
  this._lastPosition.copyFrom(this.position);
66
67
  }
67
68
  /** @internal */
@@ -81,13 +82,13 @@ class _SpatialWebAudioListener extends _SpatialAudioListener {
81
82
  const listener = this._audioContext.listener;
82
83
  // NB: The WebAudio API is right-handed.
83
84
  Vector3.TransformNormalToRef(Vector3.RightHandedForwardReadOnly, TmpMatrix, TmpVector);
84
- listener.forwardX.value = TmpVector.x;
85
- listener.forwardY.value = TmpVector.y;
86
- listener.forwardZ.value = TmpVector.z;
85
+ this.engine._setAudioParam(listener.forwardX, TmpVector.x);
86
+ this.engine._setAudioParam(listener.forwardY, TmpVector.y);
87
+ this.engine._setAudioParam(listener.forwardZ, TmpVector.z);
87
88
  Vector3.TransformNormalToRef(Vector3.Up(), TmpMatrix, TmpVector);
88
- listener.upX.value = TmpVector.x;
89
- listener.upY.value = TmpVector.y;
90
- listener.upZ.value = TmpVector.z;
89
+ this.engine._setAudioParam(listener.upX, TmpVector.x);
90
+ this.engine._setAudioParam(listener.upY, TmpVector.y);
91
+ this.engine._setAudioParam(listener.upZ, TmpVector.z);
91
92
  }
92
93
  }
93
94
  //# sourceMappingURL=spatialWebAudioListener.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spatialWebAudioListener.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subProperties/spatialWebAudioListener.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, Vector3 } from \"../../../Maths/math.vector\";\nimport { _SpatialAudioListener } from \"../../abstractAudio/subProperties/spatialAudioListener\";\nimport { _SpatialWebAudioUpdaterComponent } from \"../components/spatialWebAudioUpdaterComponent\";\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\n\nconst TmpMatrix = Matrix.Zero();\nconst TmpQuaternion = new Quaternion();\nconst TmpVector = Vector3.Zero();\n\n/** @internal */\nexport function _CreateSpatialAudioListener(engine: _WebAudioEngine, autoUpdate: boolean, minUpdateTime: number): _SpatialAudioListener {\n return new _SpatialWebAudioListener(engine, autoUpdate, minUpdateTime);\n}\n\n/**\n * This sub property is not backed by a sub node and all properties are set directly on the audio context listener.\n *\n * @internal\n */\nclass _SpatialWebAudioListener extends _SpatialAudioListener {\n private _audioContext: AudioContext;\n private _lastPosition: Vector3 = Vector3.Zero();\n private _lastRotation: Vector3 = Vector3.Zero();\n private _lastRotationQuaternion: Quaternion = new Quaternion();\n private _updaterComponent: _SpatialWebAudioUpdaterComponent;\n\n /** @internal */\n public readonly position: Vector3 = Vector3.Zero();\n /** @internal */\n public readonly rotation: Vector3 = Vector3.Zero();\n /** @internal */\n public readonly rotationQuaternion: Quaternion = new Quaternion();\n\n /** @internal */\n public constructor(engine: _WebAudioEngine, autoUpdate: boolean, minUpdateTime: number) {\n super();\n\n this._audioContext = engine.audioContext;\n this._updaterComponent = new _SpatialWebAudioUpdaterComponent(this, autoUpdate, minUpdateTime);\n }\n\n /** @internal */\n public get minUpdateTime(): number {\n return this._updaterComponent.minUpdateTime;\n }\n\n /** @internal */\n public set minUpdateTime(value: number) {\n this._updaterComponent.minUpdateTime = value;\n }\n\n /** @internal */\n public override dispose(): void {\n super.dispose();\n\n this._updaterComponent.dispose();\n this._updaterComponent = null!;\n }\n\n /** @internal */\n public update(): void {\n if (this.isAttached) {\n this._attacherComponent?.update();\n } else {\n this._updatePosition();\n this._updateRotation();\n }\n }\n\n /** @internal */\n public _updatePosition(): void {\n if (this._lastPosition.equalsWithEpsilon(this.position)) {\n return;\n }\n\n const listener = this._audioContext.listener;\n listener.positionX.value = this.position.x;\n listener.positionY.value = this.position.y;\n listener.positionZ.value = this.position.z;\n\n this._lastPosition.copyFrom(this.position);\n }\n\n /** @internal */\n public _updateRotation(): void {\n if (!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion)) {\n TmpQuaternion.copyFrom(this.rotationQuaternion);\n this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);\n } else if (!this._lastRotation.equalsWithEpsilon(this.rotation)) {\n Quaternion.FromEulerAnglesToRef(this.rotation.x, this.rotation.y, this.rotation.z, TmpQuaternion);\n this._lastRotation.copyFrom(this.rotation);\n } else {\n return;\n }\n\n Matrix.FromQuaternionToRef(TmpQuaternion, TmpMatrix);\n const listener = this._audioContext.listener;\n\n // NB: The WebAudio API is right-handed.\n Vector3.TransformNormalToRef(Vector3.RightHandedForwardReadOnly, TmpMatrix, TmpVector);\n listener.forwardX.value = TmpVector.x;\n listener.forwardY.value = TmpVector.y;\n listener.forwardZ.value = TmpVector.z;\n\n Vector3.TransformNormalToRef(Vector3.Up(), TmpMatrix, TmpVector);\n listener.upX.value = TmpVector.x;\n listener.upY.value = TmpVector.y;\n listener.upZ.value = TmpVector.z;\n }\n}\n"]}
1
+ {"version":3,"file":"spatialWebAudioListener.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subProperties/spatialWebAudioListener.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, Vector3 } from \"../../../Maths/math.vector\";\nimport { _SpatialAudioListener } from \"../../abstractAudio/subProperties/spatialAudioListener\";\nimport { _SpatialWebAudioUpdaterComponent } from \"../components/spatialWebAudioUpdaterComponent\";\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\n\nconst TmpMatrix = Matrix.Zero();\nconst TmpQuaternion = new Quaternion();\nconst TmpVector = Vector3.Zero();\n\n/** @internal */\nexport function _CreateSpatialAudioListener(engine: _WebAudioEngine, autoUpdate: boolean, minUpdateTime: number): _SpatialAudioListener {\n return new _SpatialWebAudioListener(engine, autoUpdate, minUpdateTime);\n}\n\n/**\n * This sub property is not backed by a sub node and all properties are set directly on the audio context listener.\n *\n * @internal\n */\nclass _SpatialWebAudioListener extends _SpatialAudioListener {\n private _audioContext: AudioContext;\n private _lastPosition: Vector3 = Vector3.Zero();\n private _lastRotation: Vector3 = Vector3.Zero();\n private _lastRotationQuaternion: Quaternion = new Quaternion();\n private _updaterComponent: _SpatialWebAudioUpdaterComponent;\n\n /** @internal */\n public readonly engine: _WebAudioEngine;\n\n /** @internal */\n public readonly position: Vector3 = Vector3.Zero();\n /** @internal */\n public readonly rotation: Vector3 = Vector3.Zero();\n /** @internal */\n public readonly rotationQuaternion: Quaternion = new Quaternion();\n\n /** @internal */\n public constructor(engine: _WebAudioEngine, autoUpdate: boolean, minUpdateTime: number) {\n super();\n\n this.engine = engine;\n\n this._audioContext = engine.audioContext;\n this._updaterComponent = new _SpatialWebAudioUpdaterComponent(this, autoUpdate, minUpdateTime);\n }\n\n /** @internal */\n public get minUpdateTime(): number {\n return this._updaterComponent.minUpdateTime;\n }\n\n /** @internal */\n public set minUpdateTime(value: number) {\n this._updaterComponent.minUpdateTime = value;\n }\n\n /** @internal */\n public override dispose(): void {\n super.dispose();\n\n this._updaterComponent.dispose();\n this._updaterComponent = null!;\n }\n\n /** @internal */\n public update(): void {\n if (this.isAttached) {\n this._attacherComponent?.update();\n } else {\n this._updatePosition();\n this._updateRotation();\n }\n }\n\n /** @internal */\n public _updatePosition(): void {\n if (this._lastPosition.equalsWithEpsilon(this.position)) {\n return;\n }\n\n const listener = this._audioContext.listener;\n\n this.engine._setAudioParam(listener.positionX, this.position.x);\n this.engine._setAudioParam(listener.positionY, this.position.y);\n this.engine._setAudioParam(listener.positionZ, this.position.z);\n\n this._lastPosition.copyFrom(this.position);\n }\n\n /** @internal */\n public _updateRotation(): void {\n if (!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion)) {\n TmpQuaternion.copyFrom(this.rotationQuaternion);\n this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);\n } else if (!this._lastRotation.equalsWithEpsilon(this.rotation)) {\n Quaternion.FromEulerAnglesToRef(this.rotation.x, this.rotation.y, this.rotation.z, TmpQuaternion);\n this._lastRotation.copyFrom(this.rotation);\n } else {\n return;\n }\n\n Matrix.FromQuaternionToRef(TmpQuaternion, TmpMatrix);\n const listener = this._audioContext.listener;\n\n // NB: The WebAudio API is right-handed.\n Vector3.TransformNormalToRef(Vector3.RightHandedForwardReadOnly, TmpMatrix, TmpVector);\n this.engine._setAudioParam(listener.forwardX, TmpVector.x);\n this.engine._setAudioParam(listener.forwardY, TmpVector.y);\n this.engine._setAudioParam(listener.forwardZ, TmpVector.z);\n\n Vector3.TransformNormalToRef(Vector3.Up(), TmpMatrix, TmpVector);\n this.engine._setAudioParam(listener.upX, TmpVector.x);\n this.engine._setAudioParam(listener.upY, TmpVector.y);\n this.engine._setAudioParam(listener.upZ, TmpVector.z);\n }\n}\n"]}
@@ -17,6 +17,14 @@ export interface IWebAudioEngineOptions extends IAudioEngineV2Options {
17
17
  * The audio context to be used by the engine.
18
18
  */
19
19
  audioContext: AudioContext;
20
+ /**
21
+ * The default UI's parent element. Defaults to the last created graphics engine's canvas if it exists; otherwise the HTML document's body.
22
+ */
23
+ defaultUIParentElement?: HTMLElement;
24
+ /**
25
+ * Set to `true` to disable the default UI. Defaults to `false`.
26
+ */
27
+ disableDefaultUI?: boolean;
20
28
  /**
21
29
  * Set to `true` to automatically resume the audio context when the user interacts with the page. Defaults to `true`.
22
30
  */
@@ -42,6 +50,7 @@ export declare class _WebAudioEngine extends AudioEngineV2 {
42
50
  private _invalidFormats;
43
51
  private _listener;
44
52
  private _mainOut;
53
+ private _pauseCalled;
45
54
  private _resumeOnInteraction;
46
55
  private _resumeOnPause;
47
56
  private _resumeOnPauseRetryInterval;
@@ -49,6 +58,7 @@ export declare class _WebAudioEngine extends AudioEngineV2 {
49
58
  private _resumePromise;
50
59
  private readonly _listenerAutoUpdate;
51
60
  private readonly _listenerMinUpdateTime;
61
+ private _unmuteUI;
52
62
  private readonly _validFormats;
53
63
  private _volume;
54
64
  /** @internal */
@@ -105,6 +115,8 @@ export declare class _WebAudioEngine extends AudioEngineV2 {
105
115
  addNode(node: AbstractNamedAudioNode): void;
106
116
  /** @internal */
107
117
  removeNode(node: AbstractNamedAudioNode): void;
118
+ /** @internal */
119
+ _setAudioParam(audioParam: AudioParam, value: number): void;
108
120
  private _initAudioContext;
109
121
  private _onAudioContextStateChange;
110
122
  private _onUserGesture;
@@ -3,6 +3,7 @@ import { AudioEngineV2 } from "../abstractAudio/audioEngineV2.js";
3
3
  import { _HasSpatialAudioListenerOptions } from "../abstractAudio/subProperties/abstractSpatialAudioListener.js";
4
4
  import { _CreateSpatialAudioListener } from "./subProperties/spatialWebAudioListener.js";
5
5
  import { _WebAudioMainOut } from "./webAudioMainOut.js";
6
+ import { _WebAudioUnmuteUI } from "./webAudioUnmuteUI.js";
6
7
  /**
7
8
  * Creates a new v2 audio engine that uses the WebAudio API.
8
9
  * @param options - The options for creating the audio engine.
@@ -28,10 +29,11 @@ const FormatMimeTypes = {
28
29
  export class _WebAudioEngine extends AudioEngineV2 {
29
30
  /** @internal */
30
31
  constructor(options = {}) {
31
- super();
32
+ super(options);
32
33
  this._audioContextStarted = false;
33
34
  this._invalidFormats = new Set();
34
35
  this._listener = null;
36
+ this._pauseCalled = false;
35
37
  this._resumeOnInteraction = true;
36
38
  this._resumeOnPause = true;
37
39
  this._resumeOnPauseRetryInterval = 1000;
@@ -39,6 +41,7 @@ export class _WebAudioEngine extends AudioEngineV2 {
39
41
  this._resumePromise = null;
40
42
  this._listenerAutoUpdate = true;
41
43
  this._listenerMinUpdateTime = 0;
44
+ this._unmuteUI = null;
42
45
  this._validFormats = new Set();
43
46
  this._volume = 1;
44
47
  /** @internal */
@@ -62,7 +65,7 @@ export class _WebAudioEngine extends AudioEngineV2 {
62
65
  this._resumePromise = null;
63
66
  }
64
67
  if (this.state === "suspended" || this.state === "interrupted") {
65
- if (this._audioContextStarted && this._resumeOnPause) {
68
+ if (this._audioContextStarted && this._resumeOnPause && !this._pauseCalled) {
66
69
  clearInterval(this._resumeOnPauseTimerId);
67
70
  this._resumeOnPauseTimerId = setInterval(() => {
68
71
  this.resume();
@@ -85,6 +88,9 @@ export class _WebAudioEngine extends AudioEngineV2 {
85
88
  }
86
89
  this._volume = options.volume ?? 1;
87
90
  this.audioContext = options.audioContext ?? new AudioContext();
91
+ if (!options.disableDefaultUI) {
92
+ this._unmuteUI = new _WebAudioUnmuteUI(this, options.defaultUIParentElement);
93
+ }
88
94
  }
89
95
  /** @internal */
90
96
  async init(options) {
@@ -178,6 +184,8 @@ export class _WebAudioEngine extends AudioEngineV2 {
178
184
  }
179
185
  document.removeEventListener("click", this._onUserGesture);
180
186
  this.audioContext.removeEventListener("statechange", this._onAudioContextStateChange);
187
+ this._unmuteUI?.dispose();
188
+ this._unmuteUI = null;
181
189
  }
182
190
  /** @internal */
183
191
  flagInvalidFormat(format) {
@@ -206,9 +214,11 @@ export class _WebAudioEngine extends AudioEngineV2 {
206
214
  /** @internal */
207
215
  async pause() {
208
216
  await this.audioContext.suspend();
217
+ this._pauseCalled = true;
209
218
  }
210
219
  /** @internal */
211
220
  async resume() {
221
+ this._pauseCalled = false;
212
222
  if (this._resumePromise) {
213
223
  return this._resumePromise;
214
224
  }
@@ -231,5 +241,9 @@ export class _WebAudioEngine extends AudioEngineV2 {
231
241
  removeNode(node) {
232
242
  this._removeNode(node);
233
243
  }
244
+ /** @internal */
245
+ _setAudioParam(audioParam, value) {
246
+ audioParam.linearRampToValueAtTime(value, this.currentTime + this.parameterRampDuration);
247
+ }
234
248
  }
235
249
  //# sourceMappingURL=webAudioEngine.js.map