@babylonjs/core 7.17.2 → 7.19.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 (434) hide show
  1. package/Animations/animatable.d.ts +2 -1
  2. package/Animations/animatable.js +8 -3
  3. package/Animations/animatable.js.map +1 -1
  4. package/Animations/animationGroup.d.ts +2 -1
  5. package/Animations/animationGroup.js +14 -5
  6. package/Animations/animationGroup.js.map +1 -1
  7. package/Collisions/gpuPicker.d.ts +1 -0
  8. package/Collisions/gpuPicker.js +35 -17
  9. package/Collisions/gpuPicker.js.map +1 -1
  10. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -58
  11. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +26 -75
  12. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  13. package/Engines/abstractEngine.js +2 -2
  14. package/Engines/abstractEngine.js.map +1 -1
  15. package/Lights/Shadows/shadowGenerator.js +1 -1
  16. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  17. package/Materials/Background/backgroundMaterial.d.ts +5 -3
  18. package/Materials/Background/backgroundMaterial.js +26 -3
  19. package/Materials/Background/backgroundMaterial.js.map +1 -1
  20. package/Materials/Background/index.d.ts +4 -0
  21. package/Materials/Background/index.js +6 -0
  22. package/Materials/Background/index.js.map +1 -1
  23. package/Materials/GreasedLine/greasedLineMaterialInterfaces.d.ts +3 -1
  24. package/Materials/GreasedLine/greasedLineMaterialInterfaces.js +3 -1
  25. package/Materials/GreasedLine/greasedLineMaterialInterfaces.js.map +1 -1
  26. package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +1 -0
  27. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +22 -0
  28. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
  29. package/Materials/Node/Blocks/Dual/fogBlock.d.ts +2 -1
  30. package/Materials/Node/Blocks/Dual/fogBlock.js +14 -1
  31. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  32. package/Materials/Node/Blocks/Dual/index.d.ts +28 -0
  33. package/Materials/Node/Blocks/Dual/index.js +33 -0
  34. package/Materials/Node/Blocks/Dual/index.js.map +1 -1
  35. package/Materials/Node/Blocks/Dual/lightBlock.d.ts +2 -9
  36. package/Materials/Node/Blocks/Dual/lightBlock.js +32 -9
  37. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  38. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +2 -1
  39. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +14 -1
  40. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  41. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.d.ts +1 -3
  42. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +20 -3
  43. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  44. package/Materials/Node/Blocks/Fragment/index.d.ts +18 -0
  45. package/Materials/Node/Blocks/Fragment/index.js +22 -0
  46. package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
  47. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.d.ts +2 -3
  48. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +65 -35
  49. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  50. package/Materials/Node/Blocks/Fragment/shadowMapBlock.d.ts +1 -0
  51. package/Materials/Node/Blocks/Fragment/shadowMapBlock.js +20 -0
  52. package/Materials/Node/Blocks/Fragment/shadowMapBlock.js.map +1 -1
  53. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +8 -7
  54. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  55. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +9 -6
  56. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  57. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +1 -0
  58. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +28 -18
  59. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  60. package/Materials/Node/Blocks/PBR/refractionBlock.js +14 -12
  61. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  62. package/Materials/Node/Blocks/Vertex/bonesBlock.d.ts +1 -2
  63. package/Materials/Node/Blocks/Vertex/bonesBlock.js +12 -2
  64. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  65. package/Materials/Node/Blocks/Vertex/index.d.ts +12 -0
  66. package/Materials/Node/Blocks/Vertex/index.js +15 -0
  67. package/Materials/Node/Blocks/Vertex/index.js.map +1 -1
  68. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.d.ts +1 -2
  69. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +22 -2
  70. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  71. package/Materials/Node/nodeMaterial.d.ts +1 -0
  72. package/Materials/Node/nodeMaterial.js +19 -0
  73. package/Materials/Node/nodeMaterial.js.map +1 -1
  74. package/Materials/Node/nodeMaterialBlock.d.ts +10 -0
  75. package/Materials/Node/nodeMaterialBlock.js +13 -0
  76. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  77. package/Materials/PBR/index.d.ts +4 -0
  78. package/Materials/PBR/index.js +5 -0
  79. package/Materials/PBR/index.js.map +1 -1
  80. package/Materials/PBR/pbrBaseMaterial.d.ts +12 -3
  81. package/Materials/PBR/pbrBaseMaterial.js +62 -20
  82. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  83. package/Materials/PBR/pbrMaterial.d.ts +2 -1
  84. package/Materials/PBR/pbrMaterial.js +3 -2
  85. package/Materials/PBR/pbrMaterial.js.map +1 -1
  86. package/Materials/index.d.ts +4 -0
  87. package/Materials/index.js +6 -0
  88. package/Materials/index.js.map +1 -1
  89. package/Materials/material.d.ts +7 -0
  90. package/Materials/material.js +8 -0
  91. package/Materials/material.js.map +1 -1
  92. package/Materials/materialPluginManager.js +19 -1
  93. package/Materials/materialPluginManager.js.map +1 -1
  94. package/Materials/standardMaterial.d.ts +9 -3
  95. package/Materials/standardMaterial.js +30 -3
  96. package/Materials/standardMaterial.js.map +1 -1
  97. package/Meshes/Builders/greasedLineBuilder.js +2 -2
  98. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  99. package/Meshes/Builders/linesBuilder.js +1 -0
  100. package/Meshes/Builders/linesBuilder.js.map +1 -1
  101. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +1 -1
  102. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
  103. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +1 -1
  104. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
  105. package/Shaders/shadowMap.fragment.js +6 -3
  106. package/Shaders/shadowMap.fragment.js.map +1 -1
  107. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.d.ts +6 -0
  108. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js +12 -0
  109. package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js.map +1 -0
  110. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
  111. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +1 -1
  112. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
  113. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
  114. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
  115. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
  116. package/ShadersWGSL/ShadersInclude/bonesDeclaration.d.ts +1 -1
  117. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
  118. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
  119. package/ShadersWGSL/ShadersInclude/bonesVertex.d.ts +1 -1
  120. package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
  121. package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
  122. package/ShadersWGSL/ShadersInclude/bumpFragment.d.ts +1 -1
  123. package/ShadersWGSL/ShadersInclude/bumpFragment.js +17 -17
  124. package/ShadersWGSL/ShadersInclude/bumpFragment.js.map +1 -1
  125. package/ShadersWGSL/ShadersInclude/bumpFragmentFunctions.d.ts +1 -1
  126. package/ShadersWGSL/ShadersInclude/bumpFragmentFunctions.js +3 -3
  127. package/ShadersWGSL/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
  128. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.d.ts +1 -1
  129. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js +22 -42
  130. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  131. package/ShadersWGSL/ShadersInclude/bumpVertex.d.ts +5 -0
  132. package/ShadersWGSL/ShadersInclude/bumpVertex.js +14 -0
  133. package/ShadersWGSL/ShadersInclude/bumpVertex.js.map +1 -0
  134. package/ShadersWGSL/ShadersInclude/bumpVertexDeclaration.d.ts +5 -0
  135. package/ShadersWGSL/ShadersInclude/bumpVertexDeclaration.js +14 -0
  136. package/ShadersWGSL/ShadersInclude/bumpVertexDeclaration.js.map +1 -0
  137. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +1 -1
  138. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +1 -1
  139. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
  140. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
  141. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
  142. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
  143. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +1 -1
  144. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +1 -1
  145. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
  146. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
  147. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
  148. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
  149. package/ShadersWGSL/ShadersInclude/decalFragment.d.ts +1 -1
  150. package/ShadersWGSL/ShadersInclude/decalFragment.js +5 -4
  151. package/ShadersWGSL/ShadersInclude/decalFragment.js.map +1 -1
  152. package/ShadersWGSL/ShadersInclude/decalFragmentDeclaration.d.ts +5 -0
  153. package/ShadersWGSL/ShadersInclude/decalFragmentDeclaration.js +12 -0
  154. package/ShadersWGSL/ShadersInclude/decalFragmentDeclaration.js.map +1 -0
  155. package/ShadersWGSL/ShadersInclude/decalVertexDeclaration.d.ts +5 -0
  156. package/ShadersWGSL/ShadersInclude/decalVertexDeclaration.js +12 -0
  157. package/ShadersWGSL/ShadersInclude/decalVertexDeclaration.js.map +1 -0
  158. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.d.ts +7 -0
  159. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +15 -0
  160. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -0
  161. package/ShadersWGSL/ShadersInclude/depthPrePass.d.ts +1 -1
  162. package/ShadersWGSL/ShadersInclude/depthPrePass.js +1 -1
  163. package/ShadersWGSL/ShadersInclude/depthPrePass.js.map +1 -1
  164. package/ShadersWGSL/ShadersInclude/fogFragment.d.ts +5 -0
  165. package/ShadersWGSL/ShadersInclude/fogFragment.js +16 -0
  166. package/ShadersWGSL/ShadersInclude/fogFragment.js.map +1 -0
  167. package/ShadersWGSL/ShadersInclude/fogFragmentDeclaration.d.ts +1 -1
  168. package/ShadersWGSL/ShadersInclude/fogFragmentDeclaration.js +2 -3
  169. package/ShadersWGSL/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
  170. package/ShadersWGSL/ShadersInclude/fogVertex.d.ts +1 -1
  171. package/ShadersWGSL/ShadersInclude/fogVertex.js +2 -2
  172. package/ShadersWGSL/ShadersInclude/fogVertex.js.map +1 -1
  173. package/ShadersWGSL/ShadersInclude/fogVertexDeclaration.d.ts +1 -1
  174. package/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js +1 -1
  175. package/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js.map +1 -1
  176. package/ShadersWGSL/ShadersInclude/fresnelFunction.d.ts +1 -1
  177. package/ShadersWGSL/ShadersInclude/fresnelFunction.js +1 -1
  178. package/ShadersWGSL/ShadersInclude/fresnelFunction.js.map +1 -1
  179. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.d.ts +1 -1
  180. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js +1 -1
  181. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js.map +1 -1
  182. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.d.ts +1 -1
  183. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +1 -1
  184. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  185. package/ShadersWGSL/ShadersInclude/helperFunctions.d.ts +1 -1
  186. package/ShadersWGSL/ShadersInclude/helperFunctions.js +15 -6
  187. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  188. package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.d.ts +1 -1
  189. package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js +3 -3
  190. package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
  191. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.d.ts +1 -1
  192. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +5 -5
  193. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  194. package/ShadersWGSL/ShadersInclude/importanceSampling.d.ts +1 -1
  195. package/ShadersWGSL/ShadersInclude/importanceSampling.js +1 -1
  196. package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -1
  197. package/ShadersWGSL/ShadersInclude/instancesDeclaration.d.ts +1 -1
  198. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
  199. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  200. package/ShadersWGSL/ShadersInclude/instancesVertex.d.ts +1 -1
  201. package/ShadersWGSL/ShadersInclude/instancesVertex.js +4 -4
  202. package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
  203. package/ShadersWGSL/ShadersInclude/lightFragment.d.ts +1 -1
  204. package/ShadersWGSL/ShadersInclude/lightFragment.js +8 -8
  205. package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
  206. package/ShadersWGSL/ShadersInclude/lightUboDeclaration.d.ts +1 -1
  207. package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js +2 -2
  208. package/ShadersWGSL/ShadersInclude/lightUboDeclaration.js.map +1 -1
  209. package/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.d.ts +5 -0
  210. package/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.js +33 -0
  211. package/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -0
  212. package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.d.ts +1 -1
  213. package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js +1 -1
  214. package/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
  215. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.d.ts +1 -1
  216. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js +3 -3
  217. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  218. package/ShadersWGSL/ShadersInclude/logDepthDeclaration.d.ts +1 -1
  219. package/ShadersWGSL/ShadersInclude/logDepthDeclaration.js +1 -1
  220. package/ShadersWGSL/ShadersInclude/logDepthDeclaration.js.map +1 -1
  221. package/ShadersWGSL/ShadersInclude/logDepthFragment.d.ts +5 -0
  222. package/ShadersWGSL/ShadersInclude/logDepthFragment.js +12 -0
  223. package/ShadersWGSL/ShadersInclude/logDepthFragment.js.map +1 -0
  224. package/ShadersWGSL/ShadersInclude/logDepthVertex.d.ts +1 -1
  225. package/ShadersWGSL/ShadersInclude/logDepthVertex.js +2 -2
  226. package/ShadersWGSL/ShadersInclude/logDepthVertex.js.map +1 -1
  227. package/ShadersWGSL/ShadersInclude/mainUVVaryingDeclaration.d.ts +5 -0
  228. package/ShadersWGSL/ShadersInclude/mainUVVaryingDeclaration.js +12 -0
  229. package/ShadersWGSL/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -0
  230. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.d.ts +1 -1
  231. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +1 -1
  232. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
  233. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.d.ts +1 -1
  234. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +6 -6
  235. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
  236. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
  237. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
  238. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  239. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
  240. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
  241. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
  242. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
  243. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
  244. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  245. package/ShadersWGSL/ShadersInclude/oitDeclaration.d.ts +5 -0
  246. package/ShadersWGSL/ShadersInclude/oitDeclaration.js +13 -0
  247. package/ShadersWGSL/ShadersInclude/oitDeclaration.js.map +1 -0
  248. package/ShadersWGSL/ShadersInclude/oitFragment.d.ts +5 -0
  249. package/ShadersWGSL/ShadersInclude/oitFragment.js +34 -0
  250. package/ShadersWGSL/ShadersInclude/oitFragment.js.map +1 -0
  251. package/ShadersWGSL/ShadersInclude/packingFunctions.d.ts +1 -1
  252. package/ShadersWGSL/ShadersInclude/packingFunctions.js +1 -1
  253. package/ShadersWGSL/ShadersInclude/packingFunctions.js.map +1 -1
  254. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.d.ts +1 -1
  255. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +12 -8
  256. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  257. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +1 -1
  258. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js +5 -6
  259. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  260. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.d.ts +1 -1
  261. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js +7 -8
  262. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
  263. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.d.ts +1 -1
  264. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js +1 -1
  265. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
  266. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.d.ts +1 -1
  267. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js +5 -5
  268. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
  269. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.d.ts +1 -1
  270. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js +5 -5
  271. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
  272. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.d.ts +1 -1
  273. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js +1 -1
  274. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
  275. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.d.ts +1 -1
  276. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js +3 -3
  277. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
  278. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.d.ts +1 -1
  279. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js +6 -6
  280. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
  281. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.d.ts +1 -1
  282. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js +7 -7
  283. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  284. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.d.ts +1 -1
  285. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js +1 -1
  286. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
  287. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.d.ts +1 -1
  288. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js +4 -4
  289. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
  290. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.d.ts +1 -1
  291. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js +3 -5
  292. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js.map +1 -1
  293. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.d.ts +1 -1
  294. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js +5 -5
  295. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
  296. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.d.ts +1 -1
  297. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js +4 -4
  298. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
  299. package/ShadersWGSL/ShadersInclude/pbrBlockNormalGeometric.d.ts +5 -0
  300. package/ShadersWGSL/ShadersInclude/pbrBlockNormalGeometric.js +19 -0
  301. package/ShadersWGSL/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -0
  302. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.d.ts +1 -1
  303. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js +1 -1
  304. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js.map +1 -1
  305. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.d.ts +1 -1
  306. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js +1 -1
  307. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
  308. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.d.ts +1 -1
  309. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +6 -6
  310. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -1
  311. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.d.ts +1 -1
  312. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js +1 -1
  313. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  314. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.d.ts +1 -1
  315. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js +4 -4
  316. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js.map +1 -1
  317. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.d.ts +1 -1
  318. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js +4 -4
  319. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  320. package/ShadersWGSL/ShadersInclude/pbrDebug.d.ts +1 -1
  321. package/ShadersWGSL/ShadersInclude/pbrDebug.js +10 -10
  322. package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
  323. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.d.ts +1 -1
  324. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js +1 -1
  325. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
  326. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.d.ts +1 -1
  327. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  328. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  329. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.d.ts +1 -1
  330. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
  331. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
  332. package/ShadersWGSL/ShadersInclude/pbrFragmentExtraDeclaration.d.ts +6 -0
  333. package/ShadersWGSL/ShadersInclude/pbrFragmentExtraDeclaration.js +24 -0
  334. package/ShadersWGSL/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -0
  335. package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.d.ts +7 -0
  336. package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js +96 -0
  337. package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -0
  338. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.d.ts +1 -1
  339. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +3 -3
  340. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  341. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.d.ts +1 -1
  342. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js +3 -3
  343. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js.map +1 -1
  344. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.d.ts +7 -0
  345. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +15 -0
  346. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -0
  347. package/ShadersWGSL/ShadersInclude/prePassDeclaration.d.ts +5 -0
  348. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +17 -0
  349. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -0
  350. package/ShadersWGSL/ShadersInclude/prePassVertex.d.ts +5 -0
  351. package/ShadersWGSL/ShadersInclude/prePassVertex.js +42 -0
  352. package/ShadersWGSL/ShadersInclude/prePassVertex.js.map +1 -0
  353. package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.d.ts +5 -0
  354. package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js +17 -0
  355. package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js.map +1 -0
  356. package/ShadersWGSL/ShadersInclude/reflectionFunction.d.ts +1 -1
  357. package/ShadersWGSL/ShadersInclude/reflectionFunction.js +12 -10
  358. package/ShadersWGSL/ShadersInclude/reflectionFunction.js.map +1 -1
  359. package/ShadersWGSL/ShadersInclude/samplerFragmentAlternateDeclaration.d.ts +5 -0
  360. package/ShadersWGSL/ShadersInclude/samplerFragmentAlternateDeclaration.js +26 -0
  361. package/ShadersWGSL/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -0
  362. package/ShadersWGSL/ShadersInclude/samplerFragmentDeclaration.d.ts +1 -1
  363. package/ShadersWGSL/ShadersInclude/samplerFragmentDeclaration.js +2 -2
  364. package/ShadersWGSL/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
  365. package/ShadersWGSL/ShadersInclude/samplerVertexDeclaration.d.ts +5 -0
  366. package/ShadersWGSL/ShadersInclude/samplerVertexDeclaration.js +12 -0
  367. package/ShadersWGSL/ShadersInclude/samplerVertexDeclaration.js.map +1 -0
  368. package/ShadersWGSL/ShadersInclude/samplerVertexImplementation.d.ts +5 -0
  369. package/ShadersWGSL/ShadersInclude/samplerVertexImplementation.js +33 -0
  370. package/ShadersWGSL/ShadersInclude/samplerVertexImplementation.js.map +1 -0
  371. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
  372. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +1 -1
  373. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  374. package/ShadersWGSL/ShadersInclude/shadowMapFragment.d.ts +1 -1
  375. package/ShadersWGSL/ShadersInclude/shadowMapFragment.js +1 -1
  376. package/ShadersWGSL/ShadersInclude/shadowMapFragment.js.map +1 -1
  377. package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.d.ts +1 -1
  378. package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js +1 -1
  379. package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
  380. package/ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.d.ts +1 -1
  381. package/ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.js +1 -1
  382. package/ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
  383. package/ShadersWGSL/ShadersInclude/shadowsVertex.d.ts +1 -1
  384. package/ShadersWGSL/ShadersInclude/shadowsVertex.js +2 -2
  385. package/ShadersWGSL/ShadersInclude/shadowsVertex.js.map +1 -1
  386. package/ShadersWGSL/ShadersInclude/subSurfaceScatteringFunctions.d.ts +5 -0
  387. package/ShadersWGSL/ShadersInclude/subSurfaceScatteringFunctions.js +10 -0
  388. package/ShadersWGSL/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -0
  389. package/ShadersWGSL/ShadersInclude/uvAttributeDeclaration.d.ts +5 -0
  390. package/ShadersWGSL/ShadersInclude/uvAttributeDeclaration.js +12 -0
  391. package/ShadersWGSL/ShadersInclude/uvAttributeDeclaration.js.map +1 -0
  392. package/ShadersWGSL/ShadersInclude/uvVariableDeclaration.d.ts +5 -0
  393. package/ShadersWGSL/ShadersInclude/uvVariableDeclaration.js +17 -0
  394. package/ShadersWGSL/ShadersInclude/uvVariableDeclaration.js.map +1 -0
  395. package/ShadersWGSL/ShadersInclude/vertexColorMixing.d.ts +5 -0
  396. package/ShadersWGSL/ShadersInclude/vertexColorMixing.js +22 -0
  397. package/ShadersWGSL/ShadersInclude/vertexColorMixing.js.map +1 -0
  398. package/ShadersWGSL/background.fragment.d.ts +20 -0
  399. package/ShadersWGSL/background.fragment.js +225 -0
  400. package/ShadersWGSL/background.fragment.js.map +1 -0
  401. package/ShadersWGSL/background.vertex.d.ts +21 -0
  402. package/ShadersWGSL/background.vertex.js +123 -0
  403. package/ShadersWGSL/background.vertex.js.map +1 -0
  404. package/ShadersWGSL/boundingInfo.compute.d.ts +1 -1
  405. package/ShadersWGSL/boundingInfo.compute.js +1 -1
  406. package/ShadersWGSL/boundingInfo.compute.js.map +1 -1
  407. package/ShadersWGSL/clearQuad.fragment.d.ts +1 -1
  408. package/ShadersWGSL/clearQuad.fragment.js +1 -1
  409. package/ShadersWGSL/clearQuad.fragment.js.map +1 -1
  410. package/ShadersWGSL/clearQuad.vertex.d.ts +1 -1
  411. package/ShadersWGSL/clearQuad.vertex.js +1 -1
  412. package/ShadersWGSL/clearQuad.vertex.js.map +1 -1
  413. package/ShadersWGSL/default.fragment.d.ts +31 -0
  414. package/ShadersWGSL/default.fragment.js +381 -0
  415. package/ShadersWGSL/default.fragment.js.map +1 -0
  416. package/ShadersWGSL/default.vertex.d.ts +36 -0
  417. package/ShadersWGSL/default.vertex.js +169 -0
  418. package/ShadersWGSL/default.vertex.js.map +1 -0
  419. package/ShadersWGSL/gpuUpdateParticles.compute.d.ts +1 -1
  420. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  421. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  422. package/ShadersWGSL/particles.vertex.d.ts +1 -1
  423. package/ShadersWGSL/particles.vertex.js +1 -1
  424. package/ShadersWGSL/particles.vertex.js.map +1 -1
  425. package/ShadersWGSL/pbr.fragment.d.ts +60 -0
  426. package/ShadersWGSL/pbr.fragment.js +667 -0
  427. package/ShadersWGSL/pbr.fragment.js.map +1 -0
  428. package/ShadersWGSL/pbr.vertex.d.ts +36 -0
  429. package/ShadersWGSL/pbr.vertex.js +232 -0
  430. package/ShadersWGSL/pbr.vertex.js.map +1 -0
  431. package/ShadersWGSL/postprocess.vertex.d.ts +1 -1
  432. package/ShadersWGSL/postprocess.vertex.js +1 -1
  433. package/ShadersWGSL/postprocess.vertex.js.map +1 -1
  434. package/package.json +1 -1
@@ -0,0 +1,169 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../Engines/shaderStore.js";
3
+ import "./ShadersInclude/defaultUboDeclaration.js";
4
+ import "./ShadersInclude/uvAttributeDeclaration.js";
5
+ import "./ShadersInclude/helperFunctions.js";
6
+ import "./ShadersInclude/bonesDeclaration.js";
7
+ import "./ShadersInclude/bakedVertexAnimationDeclaration.js";
8
+ import "./ShadersInclude/instancesDeclaration.js";
9
+ import "./ShadersInclude/prePassVertexDeclaration.js";
10
+ import "./ShadersInclude/mainUVVaryingDeclaration.js";
11
+ import "./ShadersInclude/samplerVertexDeclaration.js";
12
+ import "./ShadersInclude/bumpVertexDeclaration.js";
13
+ import "./ShadersInclude/clipPlaneVertexDeclaration.js";
14
+ import "./ShadersInclude/fogVertexDeclaration.js";
15
+ import "./ShadersInclude/lightVxFragmentDeclaration.js";
16
+ import "./ShadersInclude/lightVxUboDeclaration.js";
17
+ import "./ShadersInclude/morphTargetsVertexGlobalDeclaration.js";
18
+ import "./ShadersInclude/morphTargetsVertexDeclaration.js";
19
+ import "./ShadersInclude/logDepthDeclaration.js";
20
+ import "./ShadersInclude/morphTargetsVertexGlobal.js";
21
+ import "./ShadersInclude/morphTargetsVertex.js";
22
+ import "./ShadersInclude/instancesVertex.js";
23
+ import "./ShadersInclude/bonesVertex.js";
24
+ import "./ShadersInclude/bakedVertexAnimation.js";
25
+ import "./ShadersInclude/prePassVertex.js";
26
+ import "./ShadersInclude/uvVariableDeclaration.js";
27
+ import "./ShadersInclude/samplerVertexImplementation.js";
28
+ import "./ShadersInclude/bumpVertex.js";
29
+ import "./ShadersInclude/clipPlaneVertex.js";
30
+ import "./ShadersInclude/fogVertex.js";
31
+ import "./ShadersInclude/shadowsVertex.js";
32
+ import "./ShadersInclude/vertexColorMixing.js";
33
+ import "./ShadersInclude/logDepthVertex.js";
34
+ const name = "defaultVertexShader";
35
+ const shader = `#include<defaultUboDeclaration>
36
+ #define CUSTOM_VERTEX_BEGIN
37
+ attribute position: vec3f;
38
+ #ifdef NORMAL
39
+ attribute normal: vec3f;
40
+ #endif
41
+ #ifdef TANGENT
42
+ attribute tangent: vec4f;
43
+ #endif
44
+ #ifdef UV1
45
+ attribute uv: vec2f;
46
+ #endif
47
+ #include<uvAttributeDeclaration>[2..7]
48
+ #ifdef VERTEXCOLOR
49
+ attribute color: vec4f;
50
+ #endif
51
+ #include<helperFunctions>
52
+ #include<bonesDeclaration>
53
+ #include<bakedVertexAnimationDeclaration>
54
+ #include<instancesDeclaration>
55
+ #include<prePassVertexDeclaration>
56
+ #include<mainUVVaryingDeclaration>[1..7]
57
+ #include<samplerVertexDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse)
58
+ #include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)
59
+ #include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)
60
+ #include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)
61
+ #include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)
62
+ #include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)
63
+ #if defined(SPECULARTERM)
64
+ #include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular)
65
+ #endif
66
+ #include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)
67
+ #include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)
68
+ varying vPositionW: vec3f;
69
+ #ifdef NORMAL
70
+ varying vNormalW: vec3f;
71
+ #endif
72
+ #if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
73
+ varying vColor: vec4f;
74
+ #endif
75
+ #include<bumpVertexDeclaration>
76
+ #include<clipPlaneVertexDeclaration>
77
+ #include<fogVertexDeclaration>
78
+ #include<__decl__lightVxFragment>[0..maxSimultaneousLights]
79
+ #include<morphTargetsVertexGlobalDeclaration>
80
+ #include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
81
+ #ifdef REFLECTIONMAP_SKYBOX
82
+ varying vPositionUVW: vec3f;
83
+ #endif
84
+ #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
85
+ varying vDirectionW: vec3f;
86
+ #endif
87
+ #include<logDepthDeclaration>
88
+ #define CUSTOM_VERTEX_DEFINITIONS
89
+ @vertex
90
+ fn main(input : VertexInputs)->FragmentInputs {
91
+ #define CUSTOM_VERTEX_MAIN_BEGIN
92
+ var positionUpdated: vec3f=vertexInputs.position;
93
+ #ifdef NORMAL
94
+ var normalUpdated: vec3f=vertexInputs.normal;
95
+ #endif
96
+ #ifdef TANGENT
97
+ var tangentUpdated: vec4f=vertexInputs.tangent;
98
+ #endif
99
+ #ifdef UV1
100
+ var uvUpdated: vec2f=vertexInputs.uv;
101
+ #endif
102
+ #include<morphTargetsVertexGlobal>
103
+ #include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
104
+ #ifdef REFLECTIONMAP_SKYBOX
105
+ vertexOutputs.vPositionUVW=positionUpdated;
106
+ #endif
107
+ #define CUSTOM_VERTEX_UPDATE_POSITION
108
+ #define CUSTOM_VERTEX_UPDATE_NORMAL
109
+ #include<instancesVertex>
110
+ #if defined(PREPASS) && defined(PREPASS_VELOCITY) && !defined(BONES_VELOCITY_ENABLED)
111
+ vertexOutputs.vCurrentPosition=scene.viewProjection*finalWorld* vec4f(positionUpdated,1.0);vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld* vec4f(positionUpdated,1.0);
112
+ #endif
113
+ #include<bonesVertex>
114
+ #include<bakedVertexAnimation>
115
+ var worldPos: vec4f=finalWorld*vec4f(positionUpdated,1.0);
116
+ #ifdef NORMAL
117
+ var normalWorld: mat3x3f= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);
118
+ #if defined(INSTANCES) && defined(THIN_INSTANCES)
119
+ vertexOutputs.vNormalW=normalUpdated/ vec3f(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vertexOutputs.vNormalW=normalize(normalWorld*vertexOutputs.vNormalW);
120
+ #else
121
+ #ifdef NONUNIFORMSCALING
122
+ normalWorld=transposeMat3(inverseMat3(normalWorld));
123
+ #endif
124
+ vertexOutputs.vNormalW=normalize(normalWorld*normalUpdated);
125
+ #endif
126
+ #endif
127
+ #define CUSTOM_VERTEX_UPDATE_WORLDPOS
128
+ #ifdef MULTIVIEW
129
+ if (gl_ViewID_OVR==0u) {vertexOutputs.position=scene.viewProjection*worldPos;} else {vertexOutputs.position=scene.viewProjectionR*worldPos;}
130
+ #else
131
+ vertexOutputs.position=scene.viewProjection*worldPos;
132
+ #endif
133
+ vertexOutputs.vPositionW= worldPos.xyz;
134
+ #include<prePassVertex>
135
+ #if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
136
+ vertexOutputs.vDirectionW=normalize((finalWorld* vec4f(positionUpdated,0.0)).xyz);
137
+ #endif
138
+ #ifndef UV1
139
+ var uvUpdated: vec2f=vec2f(0.,0.);
140
+ #endif
141
+ #ifdef MAINUV1
142
+ vertexOutputs.vMainUV1=uvUpdated;
143
+ #endif
144
+ #include<uvVariableDeclaration>[2..7]
145
+ #include<samplerVertexImplementation>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_MATRIXNAME_,diffuse,_INFONAME_,DiffuseInfos.x)
146
+ #include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)
147
+ #include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)
148
+ #include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)
149
+ #include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)
150
+ #include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)
151
+ #if defined(SPECULARTERM)
152
+ #include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_MATRIXNAME_,specular,_INFONAME_,SpecularInfos.x)
153
+ #endif
154
+ #include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)
155
+ #include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)
156
+ #include<bumpVertex>
157
+ #include<clipPlaneVertex>
158
+ #include<fogVertex>
159
+ #include<shadowsVertex>[0..maxSimultaneousLights]
160
+ #include<vertexColorMixing>
161
+ #include<logDepthVertex>
162
+ #define CUSTOM_VERTEX_MAIN_END
163
+ }
164
+ `;
165
+ // Sideeffect
166
+ ShaderStore.ShadersStoreWGSL[name] = shader;
167
+ /** @internal */
168
+ export const defaultVertexShaderWGSL = { name, shader };
169
+ //# sourceMappingURL=default.vertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.vertex.js","sourceRoot":"","sources":["../../../../dev/core/src/ShadersWGSL/default.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,wCAAwC,CAAC;AAChD,OAAO,yCAAyC,CAAC;AACjD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kDAAkD,CAAC;AAC1D,OAAO,uCAAuC,CAAC;AAC/C,OAAO,2CAA2C,CAAC;AACnD,OAAO,2CAA2C,CAAC;AACnD,OAAO,2CAA2C,CAAC;AACnD,OAAO,wCAAwC,CAAC;AAChD,OAAO,6CAA6C,CAAC;AACrD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,6CAA6C,CAAC;AACrD,OAAO,wCAAwC,CAAC;AAChD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,gDAAgD,CAAC;AACxD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,2CAA2C,CAAC;AACnD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gCAAgC,CAAC;AACxC,OAAO,wCAAwC,CAAC;AAChD,OAAO,8CAA8C,CAAC;AACtD,OAAO,6BAA6B,CAAC;AACrC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,4BAA4B,CAAC;AACpC,OAAO,gCAAgC,CAAC;AACxC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,iCAAiC,CAAC;AAEzC,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiId,CAAC;AACF,aAAa;AACb,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,gBAAgB;AAChB,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/defaultUboDeclaration\";\nimport \"./ShadersInclude/uvAttributeDeclaration\";\nimport \"./ShadersInclude/helperFunctions\";\nimport \"./ShadersInclude/bonesDeclaration\";\nimport \"./ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"./ShadersInclude/instancesDeclaration\";\nimport \"./ShadersInclude/prePassVertexDeclaration\";\nimport \"./ShadersInclude/mainUVVaryingDeclaration\";\nimport \"./ShadersInclude/samplerVertexDeclaration\";\nimport \"./ShadersInclude/bumpVertexDeclaration\";\nimport \"./ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"./ShadersInclude/fogVertexDeclaration\";\nimport \"./ShadersInclude/lightVxFragmentDeclaration\";\nimport \"./ShadersInclude/lightVxUboDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexGlobalDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexDeclaration\";\nimport \"./ShadersInclude/logDepthDeclaration\";\nimport \"./ShadersInclude/morphTargetsVertexGlobal\";\nimport \"./ShadersInclude/morphTargetsVertex\";\nimport \"./ShadersInclude/instancesVertex\";\nimport \"./ShadersInclude/bonesVertex\";\nimport \"./ShadersInclude/bakedVertexAnimation\";\nimport \"./ShadersInclude/prePassVertex\";\nimport \"./ShadersInclude/uvVariableDeclaration\";\nimport \"./ShadersInclude/samplerVertexImplementation\";\nimport \"./ShadersInclude/bumpVertex\";\nimport \"./ShadersInclude/clipPlaneVertex\";\nimport \"./ShadersInclude/fogVertex\";\nimport \"./ShadersInclude/shadowsVertex\";\nimport \"./ShadersInclude/vertexColorMixing\";\nimport \"./ShadersInclude/logDepthVertex\";\n\nconst name = \"defaultVertexShader\";\nconst shader = `#include<defaultUboDeclaration>\n#define CUSTOM_VERTEX_BEGIN\nattribute position: vec3f;\n#ifdef NORMAL\nattribute normal: vec3f;\n#endif\n#ifdef TANGENT\nattribute tangent: vec4f;\n#endif\n#ifdef UV1\nattribute uv: vec2f;\n#endif\n#include<uvAttributeDeclaration>[2..7]\n#ifdef VERTEXCOLOR\nattribute color: vec4f;\n#endif\n#include<helperFunctions>\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\n#include<prePassVertexDeclaration>\n#include<mainUVVaryingDeclaration>[1..7]\n#include<samplerVertexDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse)\n#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)\n#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)\n#include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)\n#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)\n#include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)\n#if defined(SPECULARTERM)\n#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular)\n#endif\n#include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)\n#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)\nvarying vPositionW: vec3f;\n#ifdef NORMAL\nvarying vNormalW: vec3f;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vColor: vec4f;\n#endif\n#include<bumpVertexDeclaration>\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\n#include<morphTargetsVertexGlobalDeclaration>\n#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vPositionUVW: vec3f;\n#endif\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vDirectionW: vec3f;\n#endif\n#include<logDepthDeclaration>\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvar positionUpdated: vec3f=vertexInputs.position;\n#ifdef NORMAL\nvar normalUpdated: vec3f=vertexInputs.normal;\n#endif\n#ifdef TANGENT\nvar tangentUpdated: vec4f=vertexInputs.tangent;\n#endif\n#ifdef UV1\nvar uvUpdated: vec2f=vertexInputs.uv;\n#endif\n#include<morphTargetsVertexGlobal>\n#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\n#ifdef REFLECTIONMAP_SKYBOX\nvertexOutputs.vPositionUVW=positionUpdated;\n#endif\n#define CUSTOM_VERTEX_UPDATE_POSITION\n#define CUSTOM_VERTEX_UPDATE_NORMAL\n#include<instancesVertex>\n#if defined(PREPASS) && defined(PREPASS_VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\nvertexOutputs.vCurrentPosition=scene.viewProjection*finalWorld* vec4f(positionUpdated,1.0);vertexOutputs.vPreviousPosition=uniforms.previousViewProjection*finalPreviousWorld* vec4f(positionUpdated,1.0);\n#endif\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvar worldPos: vec4f=finalWorld*vec4f(positionUpdated,1.0);\n#ifdef NORMAL\nvar normalWorld: mat3x3f= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz);\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\nvertexOutputs.vNormalW=normalUpdated/ vec3f(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));vertexOutputs.vNormalW=normalize(normalWorld*vertexOutputs.vNormalW);\n#else\n#ifdef NONUNIFORMSCALING\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\n#endif\nvertexOutputs.vNormalW=normalize(normalWorld*normalUpdated);\n#endif\n#endif\n#define CUSTOM_VERTEX_UPDATE_WORLDPOS\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {vertexOutputs.position=scene.viewProjection*worldPos;} else {vertexOutputs.position=scene.viewProjectionR*worldPos;}\n#else\nvertexOutputs.position=scene.viewProjection*worldPos;\n#endif\nvertexOutputs.vPositionW= worldPos.xyz;\n#include<prePassVertex>\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvertexOutputs.vDirectionW=normalize((finalWorld* vec4f(positionUpdated,0.0)).xyz);\n#endif\n#ifndef UV1\nvar uvUpdated: vec2f=vec2f(0.,0.);\n#endif\n#ifdef MAINUV1\nvertexOutputs.vMainUV1=uvUpdated;\n#endif\n#include<uvVariableDeclaration>[2..7]\n#include<samplerVertexImplementation>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_MATRIXNAME_,diffuse,_INFONAME_,DiffuseInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)\n#if defined(SPECULARTERM)\n#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_MATRIXNAME_,specular,_INFONAME_,SpecularInfos.x)\n#endif\n#include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)\n#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)\n#include<bumpVertex>\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const defaultVertexShaderWGSL = { name, shader };\n"]}
@@ -1,5 +1,5 @@
1
1
  /** @internal */
2
- export declare const gpuUpdateParticlesComputeShader: {
2
+ export declare const gpuUpdateParticlesComputeShaderWGSL: {
3
3
  name: string;
4
4
  shader: string;
5
5
  };
@@ -283,5 +283,5 @@ particlesOut.particles[index].cellIndex=f32(i32(params.cellInfos.x+ratio*dist));
283
283
  // Sideeffect
284
284
  ShaderStore.ShadersStoreWGSL[name] = shader;
285
285
  /** @internal */
286
- export const gpuUpdateParticlesComputeShader = { name, shader };
286
+ export const gpuUpdateParticlesComputeShaderWGSL = { name, shader };
287
287
  //# sourceMappingURL=gpuUpdateParticles.compute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpuUpdateParticles.compute.js","sourceRoot":"","sources":["../../../../dev/core/src/ShadersWGSL/gpuUpdateParticles.compute.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,IAAI,GAAG,iCAAiC,CAAC;AAC/C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsRd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,gBAAgB;AAChB,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\n\nconst name = \"gpuUpdateParticlesComputeShader\";\nconst shader = `struct Particle {position : vec3<f32>,\nage : f32,\nsize : vec3<f32>,\nlife : f32,\nseed : vec4<f32>,\ndirection : vec3<f32>,\ndummy0: f32,\n#ifdef CUSTOMEMITTER\ninitialPosition : vec3<f32>,\ndummy1: f32,\n#endif\n#ifndef COLORGRADIENTS\ncolor : vec4<f32>,\n#endif\n#ifndef BILLBOARD\ninitialDirection : vec3<f32>,\ndummy2: f32,\n#endif\n#ifdef NOISE\nnoiseCoordinates1 : vec3<f32>,\ndummy3: f32,\nnoiseCoordinates2 : vec3<f32>,\ndummy4: f32,\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nangle : f32,\n#else\nangle : vec2<f32>,\n#endif\n#ifdef ANIMATESHEET\ncellIndex : f32,\n#ifdef ANIMATESHEETRANDOMSTART\ncellStartOffset : f32,\n#endif\n#endif\n};struct Particles {particles : array<Particle>,};struct SimParams {currentCount : f32,\ntimeDelta : f32,\nstopFactor : f32,\nrandomTextureSize: i32,\nlifeTime : vec2<f32>,\nemitPower : vec2<f32>,\n#ifndef COLORGRADIENTS\ncolor1 : vec4<f32>,\ncolor2 : vec4<f32>,\n#endif\nsizeRange : vec2<f32>,\nscaleRange : vec4<f32>,\nangleRange : vec4<f32>,\ngravity : vec3<f32>,\n#ifdef LIMITVELOCITYGRADIENTS\nlimitVelocityDamping : f32,\n#endif\n#ifdef ANIMATESHEET\ncellInfos : vec4<f32>,\n#endif\n#ifdef NOISE\nnoiseStrength : vec3<f32>,\n#endif\n#ifndef LOCAL\nemitterWM : mat4x4<f32>,\n#endif\n#ifdef BOXEMITTER\ndirection1 : vec3<f32>,\ndirection2 : vec3<f32>,\nminEmitBox : vec3<f32>,\nmaxEmitBox : vec3<f32>,\n#endif\n#ifdef CONEEMITTER\nradius : vec2<f32>,\nconeAngle : f32,\nheight : vec2<f32>,\n#ifdef DIRECTEDCONEEMITTER\ndirection1 : vec3<f32>,\ndirection2 : vec3<f32>,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n#ifdef CYLINDEREMITTER\nradius : f32,\nheight : f32,\nradiusRange : f32,\n#ifdef DIRECTEDCYLINDEREMITTER\ndirection1 : vec3<f32>,\ndirection2 : vec3<f32>,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n#ifdef HEMISPHERICEMITTER\nradius : f32,\nradiusRange : f32,\ndirectionRandomizer : f32,\n#endif\n#ifdef POINTEMITTER\ndirection1 : vec3<f32>,\ndirection2 : vec3<f32>,\n#endif\n#ifdef SPHEREEMITTER\nradius : f32,\nradiusRange : f32,\n#ifdef DIRECTEDSPHEREEMITTER\ndirection1 : vec3<f32>,\ndirection2 : vec3<f32>,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n};@binding(0) @group(0) var<uniform> params : SimParams;@binding(1) @group(0) var<storage,read> particlesIn : Particles;@binding(2) @group(0) var<storage,read_write> particlesOut : Particles;@binding(3) @group(0) var randomTexture : texture_2d<f32>;@binding(4) @group(0) var randomTexture2 : texture_2d<f32>;\n#ifdef SIZEGRADIENTS\n@binding(0) @group(1) var sizeGradientSampler : sampler;@binding(1) @group(1) var sizeGradientTexture : texture_2d<f32>;\n#endif \n#ifdef ANGULARSPEEDGRADIENTS\n@binding(2) @group(1) var angularSpeedGradientSampler : sampler;@binding(3) @group(1) var angularSpeedGradientTexture : texture_2d<f32>;\n#endif \n#ifdef VELOCITYGRADIENTS\n@binding(4) @group(1) var velocityGradientSampler : sampler;@binding(5) @group(1) var velocityGradientTexture : texture_2d<f32>;\n#endif\n#ifdef LIMITVELOCITYGRADIENTS\n@binding(6) @group(1) var limitVelocityGradientSampler : sampler;@binding(7) @group(1) var limitVelocityGradientTexture : texture_2d<f32>;\n#endif\n#ifdef DRAGGRADIENTS\n@binding(8) @group(1) var dragGradientSampler : sampler;@binding(9) @group(1) var dragGradientTexture : texture_2d<f32>;\n#endif\n#ifdef NOISE\n@binding(10) @group(1) var noiseSampler : sampler;@binding(11) @group(1) var noiseTexture : texture_2d<f32>;\n#endif\nfn getRandomVec3(offset : f32,vertexID : f32)->vec3<f32> {return textureLoad(randomTexture2,vec2<i32>(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize)) % params.randomTextureSize,0),0).rgb;}\nfn getRandomVec4(offset : f32,vertexID : f32)->vec4<f32> {return textureLoad(randomTexture,vec2<i32>(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize)) % params.randomTextureSize,0),0);}\n@compute @workgroup_size(64)\nfn main(@builtin(global_invocation_id) GlobalInvocationID : vec3<u32>) {let index : u32=GlobalInvocationID.x;let vertexID : f32=f32(index);if (index>=u32(params.currentCount)) {return;}\nlet PI : f32=3.14159;let timeDelta : f32=params.timeDelta;let newAge : f32=particlesIn.particles[index].age+timeDelta;let life : f32=particlesIn.particles[index].life;let seed : vec4<f32>=particlesIn.particles[index].seed;let direction : vec3<f32>=particlesIn.particles[index].direction;if (newAge>=life && params.stopFactor != 0.) {var newPosition : vec3<f32>;var newDirection : vec3<f32>;let randoms : vec4<f32>=getRandomVec4(seed.x,vertexID);let outLife : f32=params.lifeTime.x+(params.lifeTime.y-params.lifeTime.x)*randoms.r;particlesOut.particles[index].life=outLife;particlesOut.particles[index].age=newAge-life;particlesOut.particles[index].seed=seed;var sizex : f32;\n#ifdef SIZEGRADIENTS \nsizex=textureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2<f32>(0.,0.),0.).r;\n#else\nsizex=params.sizeRange.x+(params.sizeRange.y-params.sizeRange.x)*randoms.g;\n#endif\nparticlesOut.particles[index].size=vec3<f32>(\nsizex,\nparams.scaleRange.x+(params.scaleRange.y-params.scaleRange.x)*randoms.b,\nparams.scaleRange.z+(params.scaleRange.w-params.scaleRange.z)*randoms.a);\n#ifndef COLORGRADIENTS\nparticlesOut.particles[index].color=params.color1+(params.color2-params.color1)*randoms.b;\n#endif\n#ifndef ANGULARSPEEDGRADIENTS \nparticlesOut.particles[index].angle=vec2<f32>(\nparams.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r,\nparams.angleRange.x+(params.angleRange.y-params.angleRange.x)*randoms.a);\n#else\nparticlesOut.particles[index].angle=params.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r;\n#endif \n#if defined(POINTEMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);newPosition=vec3<f32>(0.,0.,0.);newDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#elif defined(BOXEMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);newPosition=params.minEmitBox+(params.maxEmitBox-params.minEmitBox)*randoms2;newDirection=params.direction1+(params.direction2-params.direction1)*randoms3; \n#elif defined(HEMISPHERICEMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);let phi : f32=2.0*PI*randoms2.x;let theta : f32=acos(-1.0+2.0*randoms2.y);let randX : f32=cos(phi)*sin(theta);let randY : f32=cos(theta);let randZ : f32=sin(phi)*sin(theta);newPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3<f32>(randX,abs(randY),randZ);newDirection=normalize(newPosition+params.directionRandomizer*randoms3);\n#elif defined(SPHEREEMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);let phi : f32=2.0*PI*randoms2.x;let theta : f32=acos(-1.0+2.0*randoms2.y);let randX : f32=cos(phi)*sin(theta);let randY : f32=cos(theta);let randZ : f32=sin(phi)*sin(theta);newPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3<f32>(randX,randY,randZ);\n#ifdef DIRECTEDSPHEREEMITTER\nnewDirection=normalize(params.direction1+(params.direction2-params.direction1)*randoms3);\n#else\nnewDirection=normalize(newPosition+params.directionRandomizer*randoms3);\n#endif\n#elif defined(CYLINDEREMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);let yPos : f32=(-0.5+randoms2.x)*params.height;var angle : f32=randoms2.y*PI*2.;let inverseRadiusRangeSquared : f32=(1.-params.radiusRange)*(1.-params.radiusRange);let positionRadius : f32=params.radius*sqrt(inverseRadiusRangeSquared+randoms2.z*(1.-inverseRadiusRangeSquared));let xPos : f32=positionRadius*cos(angle);let zPos : f32=positionRadius*sin(angle);newPosition=vec3<f32>(xPos,yPos,zPos);\n#ifdef DIRECTEDCYLINDEREMITTER\nnewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#else\nangle=angle+(-0.5+randoms3.x)*PI*params.directionRandomizer;newDirection=vec3<f32>(cos(angle),(-0.5+randoms3.y)*params.directionRandomizer,sin(angle));newDirection=normalize(newDirection);\n#endif\n#elif defined(CONEEMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let s : f32=2.0*PI*randoms2.x;\n#ifdef CONEEMITTERSPAWNPOINT\nlet h : f32=0.0001;\n#else\nvar h : f32=randoms2.y*params.height.y;h=1.-h*h; \n#endif\nvar lRadius : f32=params.radius.x-params.radius.x*randoms2.z*params.radius.y;lRadius=lRadius*h;let randX : f32=lRadius*sin(s);let randZ : f32=lRadius*cos(s);let randY : f32=h *params.height.x;newPosition=vec3<f32>(randX,randY,randZ); \nlet randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);\n#ifdef DIRECTEDCONEEMITTER\nnewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#else\nif (abs(cos(params.coneAngle))==1.0) {newDirection=vec3<f32>(0.,1.0,0.);} else {newDirection=normalize(newPosition+params.directionRandomizer*randoms3); }\n#endif\n#elif defined(CUSTOMEMITTER)\nnewPosition=particlesIn.particles[index].initialPosition;particlesOut.particles[index].initialPosition=newPosition;\n#else \nnewPosition=vec3<f32>(0.,0.,0.);newDirection=2.0*(getRandomVec3(seed.w,vertexID)-vec3<f32>(0.5,0.5,0.5));\n#endif\nlet power : f32=params.emitPower.x+(params.emitPower.y-params.emitPower.x)*randoms.a;\n#ifdef LOCAL\nparticlesOut.particles[index].position=newPosition;\n#else\nparticlesOut.particles[index].position=(params.emitterWM*vec4<f32>(newPosition,1.)).xyz;\n#endif\n#ifdef CUSTOMEMITTER\nparticlesOut.particles[index].direction=direction;\n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=direction;\n#endif\n#else\n#ifdef LOCAL\nlet initial : vec3<f32>=newDirection;\n#else \nlet initial : vec3<f32>=(params.emitterWM*vec4<f32>(newDirection,0.)).xyz;\n#endif\nparticlesOut.particles[index].direction=initial*power;\n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=initial;\n#endif\n#endif\n#ifdef ANIMATESHEET \nparticlesOut.particles[index].cellIndex=params.cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\nparticlesOut.particles[index].cellStartOffset=randoms.a*outLife;\n#endif \n#endif\n#ifdef NOISE\nparticlesOut.particles[index].noiseCoordinates1=particlesIn.particles[index].noiseCoordinates1;particlesOut.particles[index].noiseCoordinates2=particlesIn.particles[index].noiseCoordinates2;\n#endif\n} else {var directionScale : f32=timeDelta;particlesOut.particles[index].age=newAge;let ageGradient : f32=newAge/life;\n#ifdef VELOCITYGRADIENTS\ndirectionScale=directionScale*textureSampleLevel(velocityGradientTexture,velocityGradientSampler,vec2<f32>(ageGradient,0.),0.).r;\n#endif\n#ifdef DRAGGRADIENTS\ndirectionScale=directionScale*(1.0-textureSampleLevel(dragGradientTexture,dragGradientSampler,vec2<f32>(ageGradient,0.),0.).r);\n#endif\nlet position : vec3<f32>=particlesIn.particles[index].position;\n#if defined(CUSTOMEMITTER)\nparticlesOut.particles[index].position=position+(direction-position)*ageGradient; \nparticlesOut.particles[index].initialPosition=particlesIn.particles[index].initialPosition;\n#else\nparticlesOut.particles[index].position=position+direction*directionScale;\n#endif\nparticlesOut.particles[index].life=life;particlesOut.particles[index].seed=seed;\n#ifndef COLORGRADIENTS \nparticlesOut.particles[index].color=particlesIn.particles[index].color;\n#endif\n#ifdef SIZEGRADIENTS\nparticlesOut.particles[index].size=vec3<f32>(\ntextureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2<f32>(ageGradient,0.),0.).r,\nparticlesIn.particles[index].size.yz);\n#else\nparticlesOut.particles[index].size=particlesIn.particles[index].size;\n#endif \n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=particlesIn.particles[index].initialDirection;\n#endif\n#ifdef CUSTOMEMITTER\nparticlesOut.particles[index].direction=direction;\n#else\nvar updatedDirection : vec3<f32>=direction+params.gravity*timeDelta;\n#ifdef LIMITVELOCITYGRADIENTS\nlet limitVelocity : f32=textureSampleLevel(limitVelocityGradientTexture,limitVelocityGradientSampler,vec2<f32>(ageGradient,0.),0.).r;let currentVelocity : f32=length(updatedDirection);if (currentVelocity>limitVelocity) {updatedDirection=updatedDirection*params.limitVelocityDamping;}\n#endif\nparticlesOut.particles[index].direction=updatedDirection;\n#ifdef NOISE\nlet noiseCoordinates1 : vec3<f32>=particlesIn.particles[index].noiseCoordinates1;let noiseCoordinates2 : vec3<f32>=particlesIn.particles[index].noiseCoordinates2;let fetchedR : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates1.x,noiseCoordinates1.y)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;let fetchedG : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates1.z,noiseCoordinates2.x)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;let fetchedB : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates2.y,noiseCoordinates2.z)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;let force : vec3<f32>=vec3<f32>(-1.+2.*fetchedR,-1.+2.*fetchedG,-1.+2.*fetchedB)*params.noiseStrength;particlesOut.particles[index].direction=particlesOut.particles[index].direction+force*timeDelta;particlesOut.particles[index].noiseCoordinates1=noiseCoordinates1;particlesOut.particles[index].noiseCoordinates2=noiseCoordinates2;\n#endif \n#endif \n#ifdef ANGULARSPEEDGRADIENTS\nlet angularSpeed : f32=textureSampleLevel(angularSpeedGradientTexture,angularSpeedGradientSampler,vec2<f32>(ageGradient,0.),0.).r;particlesOut.particles[index].angle=particlesIn.particles[index].angle+angularSpeed*timeDelta;\n#else\nlet angle : vec2<f32>=particlesIn.particles[index].angle;particlesOut.particles[index].angle=vec2<f32>(angle.x+angle.y*timeDelta,angle.y);\n#endif\n#ifdef ANIMATESHEET \nvar offsetAge : f32=particlesOut.particles[index].age;let dist : f32=params.cellInfos.y-params.cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\nlet cellStartOffset : f32=particlesIn.particles[index].cellStartOffset;particlesOut.particles[index].cellStartOffset=cellStartOffset;offsetAge=offsetAge+cellStartOffset;\n#else\nlet cellStartOffset : f32=0.;\n#endif \nvar ratio : f32;if (params.cellInfos.w==1.0) {ratio=clamp(((cellStartOffset+params.cellInfos.z*offsetAge) % life)/life,0.,1.0);}\nelse {ratio=clamp((cellStartOffset+params.cellInfos.z*offsetAge)/life,0.,1.0);}\nparticlesOut.particles[index].cellIndex=f32(i32(params.cellInfos.x+ratio*dist));\n#endif\n}}\n`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const gpuUpdateParticlesComputeShader = { name, shader };\n"]}
1
+ {"version":3,"file":"gpuUpdateParticles.compute.js","sourceRoot":"","sources":["../../../../dev/core/src/ShadersWGSL/gpuUpdateParticles.compute.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,IAAI,GAAG,iCAAiC,CAAC;AAC/C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsRd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,gBAAgB;AAChB,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\n\nconst name = \"gpuUpdateParticlesComputeShader\";\nconst shader = `struct Particle {position : vec3<f32>,\nage : f32,\nsize : vec3<f32>,\nlife : f32,\nseed : vec4<f32>,\ndirection : vec3<f32>,\ndummy0: f32,\n#ifdef CUSTOMEMITTER\ninitialPosition : vec3<f32>,\ndummy1: f32,\n#endif\n#ifndef COLORGRADIENTS\ncolor : vec4<f32>,\n#endif\n#ifndef BILLBOARD\ninitialDirection : vec3<f32>,\ndummy2: f32,\n#endif\n#ifdef NOISE\nnoiseCoordinates1 : vec3<f32>,\ndummy3: f32,\nnoiseCoordinates2 : vec3<f32>,\ndummy4: f32,\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nangle : f32,\n#else\nangle : vec2<f32>,\n#endif\n#ifdef ANIMATESHEET\ncellIndex : f32,\n#ifdef ANIMATESHEETRANDOMSTART\ncellStartOffset : f32,\n#endif\n#endif\n};struct Particles {particles : array<Particle>,};struct SimParams {currentCount : f32,\ntimeDelta : f32,\nstopFactor : f32,\nrandomTextureSize: i32,\nlifeTime : vec2<f32>,\nemitPower : vec2<f32>,\n#ifndef COLORGRADIENTS\ncolor1 : vec4<f32>,\ncolor2 : vec4<f32>,\n#endif\nsizeRange : vec2<f32>,\nscaleRange : vec4<f32>,\nangleRange : vec4<f32>,\ngravity : vec3<f32>,\n#ifdef LIMITVELOCITYGRADIENTS\nlimitVelocityDamping : f32,\n#endif\n#ifdef ANIMATESHEET\ncellInfos : vec4<f32>,\n#endif\n#ifdef NOISE\nnoiseStrength : vec3<f32>,\n#endif\n#ifndef LOCAL\nemitterWM : mat4x4<f32>,\n#endif\n#ifdef BOXEMITTER\ndirection1 : vec3<f32>,\ndirection2 : vec3<f32>,\nminEmitBox : vec3<f32>,\nmaxEmitBox : vec3<f32>,\n#endif\n#ifdef CONEEMITTER\nradius : vec2<f32>,\nconeAngle : f32,\nheight : vec2<f32>,\n#ifdef DIRECTEDCONEEMITTER\ndirection1 : vec3<f32>,\ndirection2 : vec3<f32>,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n#ifdef CYLINDEREMITTER\nradius : f32,\nheight : f32,\nradiusRange : f32,\n#ifdef DIRECTEDCYLINDEREMITTER\ndirection1 : vec3<f32>,\ndirection2 : vec3<f32>,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n#ifdef HEMISPHERICEMITTER\nradius : f32,\nradiusRange : f32,\ndirectionRandomizer : f32,\n#endif\n#ifdef POINTEMITTER\ndirection1 : vec3<f32>,\ndirection2 : vec3<f32>,\n#endif\n#ifdef SPHEREEMITTER\nradius : f32,\nradiusRange : f32,\n#ifdef DIRECTEDSPHEREEMITTER\ndirection1 : vec3<f32>,\ndirection2 : vec3<f32>,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n};@binding(0) @group(0) var<uniform> params : SimParams;@binding(1) @group(0) var<storage,read> particlesIn : Particles;@binding(2) @group(0) var<storage,read_write> particlesOut : Particles;@binding(3) @group(0) var randomTexture : texture_2d<f32>;@binding(4) @group(0) var randomTexture2 : texture_2d<f32>;\n#ifdef SIZEGRADIENTS\n@binding(0) @group(1) var sizeGradientSampler : sampler;@binding(1) @group(1) var sizeGradientTexture : texture_2d<f32>;\n#endif \n#ifdef ANGULARSPEEDGRADIENTS\n@binding(2) @group(1) var angularSpeedGradientSampler : sampler;@binding(3) @group(1) var angularSpeedGradientTexture : texture_2d<f32>;\n#endif \n#ifdef VELOCITYGRADIENTS\n@binding(4) @group(1) var velocityGradientSampler : sampler;@binding(5) @group(1) var velocityGradientTexture : texture_2d<f32>;\n#endif\n#ifdef LIMITVELOCITYGRADIENTS\n@binding(6) @group(1) var limitVelocityGradientSampler : sampler;@binding(7) @group(1) var limitVelocityGradientTexture : texture_2d<f32>;\n#endif\n#ifdef DRAGGRADIENTS\n@binding(8) @group(1) var dragGradientSampler : sampler;@binding(9) @group(1) var dragGradientTexture : texture_2d<f32>;\n#endif\n#ifdef NOISE\n@binding(10) @group(1) var noiseSampler : sampler;@binding(11) @group(1) var noiseTexture : texture_2d<f32>;\n#endif\nfn getRandomVec3(offset : f32,vertexID : f32)->vec3<f32> {return textureLoad(randomTexture2,vec2<i32>(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize)) % params.randomTextureSize,0),0).rgb;}\nfn getRandomVec4(offset : f32,vertexID : f32)->vec4<f32> {return textureLoad(randomTexture,vec2<i32>(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize)) % params.randomTextureSize,0),0);}\n@compute @workgroup_size(64)\nfn main(@builtin(global_invocation_id) GlobalInvocationID : vec3<u32>) {let index : u32=GlobalInvocationID.x;let vertexID : f32=f32(index);if (index>=u32(params.currentCount)) {return;}\nlet PI : f32=3.14159;let timeDelta : f32=params.timeDelta;let newAge : f32=particlesIn.particles[index].age+timeDelta;let life : f32=particlesIn.particles[index].life;let seed : vec4<f32>=particlesIn.particles[index].seed;let direction : vec3<f32>=particlesIn.particles[index].direction;if (newAge>=life && params.stopFactor != 0.) {var newPosition : vec3<f32>;var newDirection : vec3<f32>;let randoms : vec4<f32>=getRandomVec4(seed.x,vertexID);let outLife : f32=params.lifeTime.x+(params.lifeTime.y-params.lifeTime.x)*randoms.r;particlesOut.particles[index].life=outLife;particlesOut.particles[index].age=newAge-life;particlesOut.particles[index].seed=seed;var sizex : f32;\n#ifdef SIZEGRADIENTS \nsizex=textureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2<f32>(0.,0.),0.).r;\n#else\nsizex=params.sizeRange.x+(params.sizeRange.y-params.sizeRange.x)*randoms.g;\n#endif\nparticlesOut.particles[index].size=vec3<f32>(\nsizex,\nparams.scaleRange.x+(params.scaleRange.y-params.scaleRange.x)*randoms.b,\nparams.scaleRange.z+(params.scaleRange.w-params.scaleRange.z)*randoms.a);\n#ifndef COLORGRADIENTS\nparticlesOut.particles[index].color=params.color1+(params.color2-params.color1)*randoms.b;\n#endif\n#ifndef ANGULARSPEEDGRADIENTS \nparticlesOut.particles[index].angle=vec2<f32>(\nparams.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r,\nparams.angleRange.x+(params.angleRange.y-params.angleRange.x)*randoms.a);\n#else\nparticlesOut.particles[index].angle=params.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r;\n#endif \n#if defined(POINTEMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);newPosition=vec3<f32>(0.,0.,0.);newDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#elif defined(BOXEMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);newPosition=params.minEmitBox+(params.maxEmitBox-params.minEmitBox)*randoms2;newDirection=params.direction1+(params.direction2-params.direction1)*randoms3; \n#elif defined(HEMISPHERICEMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);let phi : f32=2.0*PI*randoms2.x;let theta : f32=acos(-1.0+2.0*randoms2.y);let randX : f32=cos(phi)*sin(theta);let randY : f32=cos(theta);let randZ : f32=sin(phi)*sin(theta);newPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3<f32>(randX,abs(randY),randZ);newDirection=normalize(newPosition+params.directionRandomizer*randoms3);\n#elif defined(SPHEREEMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);let phi : f32=2.0*PI*randoms2.x;let theta : f32=acos(-1.0+2.0*randoms2.y);let randX : f32=cos(phi)*sin(theta);let randY : f32=cos(theta);let randZ : f32=sin(phi)*sin(theta);newPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3<f32>(randX,randY,randZ);\n#ifdef DIRECTEDSPHEREEMITTER\nnewDirection=normalize(params.direction1+(params.direction2-params.direction1)*randoms3);\n#else\nnewDirection=normalize(newPosition+params.directionRandomizer*randoms3);\n#endif\n#elif defined(CYLINDEREMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);let yPos : f32=(-0.5+randoms2.x)*params.height;var angle : f32=randoms2.y*PI*2.;let inverseRadiusRangeSquared : f32=(1.-params.radiusRange)*(1.-params.radiusRange);let positionRadius : f32=params.radius*sqrt(inverseRadiusRangeSquared+randoms2.z*(1.-inverseRadiusRangeSquared));let xPos : f32=positionRadius*cos(angle);let zPos : f32=positionRadius*sin(angle);newPosition=vec3<f32>(xPos,yPos,zPos);\n#ifdef DIRECTEDCYLINDEREMITTER\nnewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#else\nangle=angle+(-0.5+randoms3.x)*PI*params.directionRandomizer;newDirection=vec3<f32>(cos(angle),(-0.5+randoms3.y)*params.directionRandomizer,sin(angle));newDirection=normalize(newDirection);\n#endif\n#elif defined(CONEEMITTER)\nlet randoms2 : vec3<f32>=getRandomVec3(seed.y,vertexID);let s : f32=2.0*PI*randoms2.x;\n#ifdef CONEEMITTERSPAWNPOINT\nlet h : f32=0.0001;\n#else\nvar h : f32=randoms2.y*params.height.y;h=1.-h*h; \n#endif\nvar lRadius : f32=params.radius.x-params.radius.x*randoms2.z*params.radius.y;lRadius=lRadius*h;let randX : f32=lRadius*sin(s);let randZ : f32=lRadius*cos(s);let randY : f32=h *params.height.x;newPosition=vec3<f32>(randX,randY,randZ); \nlet randoms3 : vec3<f32>=getRandomVec3(seed.z,vertexID);\n#ifdef DIRECTEDCONEEMITTER\nnewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#else\nif (abs(cos(params.coneAngle))==1.0) {newDirection=vec3<f32>(0.,1.0,0.);} else {newDirection=normalize(newPosition+params.directionRandomizer*randoms3); }\n#endif\n#elif defined(CUSTOMEMITTER)\nnewPosition=particlesIn.particles[index].initialPosition;particlesOut.particles[index].initialPosition=newPosition;\n#else \nnewPosition=vec3<f32>(0.,0.,0.);newDirection=2.0*(getRandomVec3(seed.w,vertexID)-vec3<f32>(0.5,0.5,0.5));\n#endif\nlet power : f32=params.emitPower.x+(params.emitPower.y-params.emitPower.x)*randoms.a;\n#ifdef LOCAL\nparticlesOut.particles[index].position=newPosition;\n#else\nparticlesOut.particles[index].position=(params.emitterWM*vec4<f32>(newPosition,1.)).xyz;\n#endif\n#ifdef CUSTOMEMITTER\nparticlesOut.particles[index].direction=direction;\n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=direction;\n#endif\n#else\n#ifdef LOCAL\nlet initial : vec3<f32>=newDirection;\n#else \nlet initial : vec3<f32>=(params.emitterWM*vec4<f32>(newDirection,0.)).xyz;\n#endif\nparticlesOut.particles[index].direction=initial*power;\n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=initial;\n#endif\n#endif\n#ifdef ANIMATESHEET \nparticlesOut.particles[index].cellIndex=params.cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\nparticlesOut.particles[index].cellStartOffset=randoms.a*outLife;\n#endif \n#endif\n#ifdef NOISE\nparticlesOut.particles[index].noiseCoordinates1=particlesIn.particles[index].noiseCoordinates1;particlesOut.particles[index].noiseCoordinates2=particlesIn.particles[index].noiseCoordinates2;\n#endif\n} else {var directionScale : f32=timeDelta;particlesOut.particles[index].age=newAge;let ageGradient : f32=newAge/life;\n#ifdef VELOCITYGRADIENTS\ndirectionScale=directionScale*textureSampleLevel(velocityGradientTexture,velocityGradientSampler,vec2<f32>(ageGradient,0.),0.).r;\n#endif\n#ifdef DRAGGRADIENTS\ndirectionScale=directionScale*(1.0-textureSampleLevel(dragGradientTexture,dragGradientSampler,vec2<f32>(ageGradient,0.),0.).r);\n#endif\nlet position : vec3<f32>=particlesIn.particles[index].position;\n#if defined(CUSTOMEMITTER)\nparticlesOut.particles[index].position=position+(direction-position)*ageGradient; \nparticlesOut.particles[index].initialPosition=particlesIn.particles[index].initialPosition;\n#else\nparticlesOut.particles[index].position=position+direction*directionScale;\n#endif\nparticlesOut.particles[index].life=life;particlesOut.particles[index].seed=seed;\n#ifndef COLORGRADIENTS \nparticlesOut.particles[index].color=particlesIn.particles[index].color;\n#endif\n#ifdef SIZEGRADIENTS\nparticlesOut.particles[index].size=vec3<f32>(\ntextureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2<f32>(ageGradient,0.),0.).r,\nparticlesIn.particles[index].size.yz);\n#else\nparticlesOut.particles[index].size=particlesIn.particles[index].size;\n#endif \n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=particlesIn.particles[index].initialDirection;\n#endif\n#ifdef CUSTOMEMITTER\nparticlesOut.particles[index].direction=direction;\n#else\nvar updatedDirection : vec3<f32>=direction+params.gravity*timeDelta;\n#ifdef LIMITVELOCITYGRADIENTS\nlet limitVelocity : f32=textureSampleLevel(limitVelocityGradientTexture,limitVelocityGradientSampler,vec2<f32>(ageGradient,0.),0.).r;let currentVelocity : f32=length(updatedDirection);if (currentVelocity>limitVelocity) {updatedDirection=updatedDirection*params.limitVelocityDamping;}\n#endif\nparticlesOut.particles[index].direction=updatedDirection;\n#ifdef NOISE\nlet noiseCoordinates1 : vec3<f32>=particlesIn.particles[index].noiseCoordinates1;let noiseCoordinates2 : vec3<f32>=particlesIn.particles[index].noiseCoordinates2;let fetchedR : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates1.x,noiseCoordinates1.y)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;let fetchedG : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates1.z,noiseCoordinates2.x)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;let fetchedB : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates2.y,noiseCoordinates2.z)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;let force : vec3<f32>=vec3<f32>(-1.+2.*fetchedR,-1.+2.*fetchedG,-1.+2.*fetchedB)*params.noiseStrength;particlesOut.particles[index].direction=particlesOut.particles[index].direction+force*timeDelta;particlesOut.particles[index].noiseCoordinates1=noiseCoordinates1;particlesOut.particles[index].noiseCoordinates2=noiseCoordinates2;\n#endif \n#endif \n#ifdef ANGULARSPEEDGRADIENTS\nlet angularSpeed : f32=textureSampleLevel(angularSpeedGradientTexture,angularSpeedGradientSampler,vec2<f32>(ageGradient,0.),0.).r;particlesOut.particles[index].angle=particlesIn.particles[index].angle+angularSpeed*timeDelta;\n#else\nlet angle : vec2<f32>=particlesIn.particles[index].angle;particlesOut.particles[index].angle=vec2<f32>(angle.x+angle.y*timeDelta,angle.y);\n#endif\n#ifdef ANIMATESHEET \nvar offsetAge : f32=particlesOut.particles[index].age;let dist : f32=params.cellInfos.y-params.cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\nlet cellStartOffset : f32=particlesIn.particles[index].cellStartOffset;particlesOut.particles[index].cellStartOffset=cellStartOffset;offsetAge=offsetAge+cellStartOffset;\n#else\nlet cellStartOffset : f32=0.;\n#endif \nvar ratio : f32;if (params.cellInfos.w==1.0) {ratio=clamp(((cellStartOffset+params.cellInfos.z*offsetAge) % life)/life,0.,1.0);}\nelse {ratio=clamp((cellStartOffset+params.cellInfos.z*offsetAge)/life,0.,1.0);}\nparticlesOut.particles[index].cellIndex=f32(i32(params.cellInfos.x+ratio*dist));\n#endif\n}}\n`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const gpuUpdateParticlesComputeShaderWGSL = { name, shader };\n"]}
@@ -5,7 +5,7 @@ import "./ShadersInclude/clipPlaneVertex";
5
5
  import "./ShadersInclude/fogVertex";
6
6
  import "./ShadersInclude/logDepthVertex";
7
7
  /** @internal */
8
- export declare const particlesVertexShader: {
8
+ export declare const particlesVertexShaderWGSL: {
9
9
  name: string;
10
10
  shader: string;
11
11
  };
@@ -85,5 +85,5 @@ var worldPos: vec4f= vec4f(vertexOutputs.vPositionW,1.0);
85
85
  // Sideeffect
86
86
  ShaderStore.ShadersStoreWGSL[name] = shader;
87
87
  /** @internal */
88
- export const particlesVertexShader = { name, shader };
88
+ export const particlesVertexShaderWGSL = { name, shader };
89
89
  //# sourceMappingURL=particles.vertex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"particles.vertex.js","sourceRoot":"","sources":["../../../../dev/core/src/ShadersWGSL/particles.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,6CAA6C,CAAC;AACrD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,4BAA4B,CAAC;AACpC,OAAO,iCAAiC,CAAC;AAEzC,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0Eb,CAAC;AACH,aAAa;AACb,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"./ShadersInclude/fogVertexDeclaration\";\nimport \"./ShadersInclude/logDepthDeclaration\";\nimport \"./ShadersInclude/clipPlaneVertex\";\nimport \"./ShadersInclude/fogVertex\";\nimport \"./ShadersInclude/logDepthVertex\";\n\nconst name = \"particlesVertexShader\";\nconst shader = `attribute position: vec3f;attribute color: vec4f;attribute angle: f32;attribute size: vec2f;\n#ifdef ANIMATESHEET\nattribute cellIndex: f32;\n#endif\n#ifndef BILLBOARD\nattribute direction: vec3f;\n#endif\n#ifdef BILLBOARDSTRETCHED\nattribute direction: vec3f;\n#endif\n#ifdef RAMPGRADIENT\nattribute remapData: vec4f;\n#endif\nattribute offset: vec2f;uniform view: mat4x4f;uniform projection: mat4x4f;uniform translationPivot: vec2f;\n#ifdef ANIMATESHEET\nuniform particlesInfos: vec3f; \n#endif\nvarying vUV: vec2f;varying vColor: vec4f;varying vPositionW: vec3f;\n#ifdef RAMPGRADIENT\nvarying remapRanges: vec4f;\n#endif\n#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)\nuniform invView: mat4x4f;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<logDepthDeclaration>\n#ifdef BILLBOARD\nuniform eyePosition: vec3f;\n#endif\nfn rotate(yaxis: vec3f,rotatedCorner: vec3f)->vec3f {var xaxis: vec3f=normalize(cross( vec3f(0.,1.0,0.),yaxis));var zaxis: vec3f=normalize(cross(yaxis,xaxis));var row0: vec3f= vec3f(xaxis.x,xaxis.y,xaxis.z);var row1: vec3f= vec3f(yaxis.x,yaxis.y,yaxis.z);var row2: vec3f= vec3f(zaxis.x,zaxis.y,zaxis.z);var rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}\n#ifdef BILLBOARDSTRETCHED\nfn rotateAlign(toCamera: vec3f,rotatedCorner: vec3f)->vec3f {var normalizedToCamera: vec3f=normalize(toCamera);var normalizedCrossDirToCamera: vec3f=normalize(cross(normalize(direction),normalizedToCamera));var row0: vec3f= vec3f(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);var row2: vec3f= vec3f(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\n#ifdef BILLBOARDSTRETCHED_LOCAL\nvar row1: vec3f=direction;\n#else\nvar crossProduct: vec3f=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));var row1: vec3f= vec3f(crossProduct.x,crossProduct.y,crossProduct.z);\n#endif\nvar rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input: VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvar cornerPos: vec2f;cornerPos=( vec2f(vertexInputs.offset.x-0.5,vertexInputs.offset.y -0.5)-uniforms.translationPivot)*vertexInputs.size;\n#ifdef BILLBOARD\nvar rotatedCorner: vec3f;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.ngle);rotatedCorner.z=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.y=0.;rotatedCorner.xz+=uniforms.translationPivot;var yaxis: vec3f=vertexInputs.position-eyePosition;yaxis.y=0.;vertexOutputs.vPositionW=rotate(normalize(yaxis),rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.y=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.z=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var toCamera: vec3f=vertexInputs.position-eyePosition;vertexOutputs.vPositionW=rotateAlign(toCamera,rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;\n#else\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.y=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.z=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var viewPos: vec3f=(uniforms.view* vec4f(vertexInputs.position,1.0)).xyz+rotatedCorner;vertexOutputs.vPositionW=(uniforms.invView* vec4f(viewPos,1)).xyz;\n#endif\n#ifdef RAMPGRADIENT\nremapRanges=remapData;\n#endif\nvertexOutputs.position=uniforms.projection* vec4f(viewPos,1.0);\n#else\nvar rotatedCorner: vec3f;rotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.z=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.y=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var yaxis: vec3f=normalize(direction);vertexOutputs.vPositionW=rotate(yaxis,rotatedCorner);vertexOutputs.position=uniforms.projection*view* vec4f(vertexOutputs.vPositionW,1.0);\n#endif\nvertexOutputs.vColor=vertexInputs.color;\n#ifdef ANIMATESHEET\nvar rowOffset: f32=floor(cellIndex*particlesInfos.z);var columnOffset: f32=cellIndex-rowOffset/particlesInfos.z;var uvScale: vec2f=particlesInfos.xy;var uvOffset: vec2f= vec2f(vertexInputs.offset.x ,1.0-vertexInputs.offset.y);vertexOutputs.vUV=(uvOffset+ vec2f(columnOffset,rowOffset))*uvScale;\n#else\nvertexOutputs.vUV=vertexInputs.offset;\n#endif\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)\nvar worldPos: vec4f= vec4f(vertexOutputs.vPositionW,1.0);\n#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const particlesVertexShader = { name, shader };\n"]}
1
+ {"version":3,"file":"particles.vertex.js","sourceRoot":"","sources":["../../../../dev/core/src/ShadersWGSL/particles.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,6CAA6C,CAAC;AACrD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,4BAA4B,CAAC;AACpC,OAAO,iCAAiC,CAAC;AAEzC,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0Eb,CAAC;AACH,aAAa;AACb,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,gBAAgB;AAChB,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"./ShadersInclude/fogVertexDeclaration\";\nimport \"./ShadersInclude/logDepthDeclaration\";\nimport \"./ShadersInclude/clipPlaneVertex\";\nimport \"./ShadersInclude/fogVertex\";\nimport \"./ShadersInclude/logDepthVertex\";\n\nconst name = \"particlesVertexShader\";\nconst shader = `attribute position: vec3f;attribute color: vec4f;attribute angle: f32;attribute size: vec2f;\n#ifdef ANIMATESHEET\nattribute cellIndex: f32;\n#endif\n#ifndef BILLBOARD\nattribute direction: vec3f;\n#endif\n#ifdef BILLBOARDSTRETCHED\nattribute direction: vec3f;\n#endif\n#ifdef RAMPGRADIENT\nattribute remapData: vec4f;\n#endif\nattribute offset: vec2f;uniform view: mat4x4f;uniform projection: mat4x4f;uniform translationPivot: vec2f;\n#ifdef ANIMATESHEET\nuniform particlesInfos: vec3f; \n#endif\nvarying vUV: vec2f;varying vColor: vec4f;varying vPositionW: vec3f;\n#ifdef RAMPGRADIENT\nvarying remapRanges: vec4f;\n#endif\n#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)\nuniform invView: mat4x4f;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<logDepthDeclaration>\n#ifdef BILLBOARD\nuniform eyePosition: vec3f;\n#endif\nfn rotate(yaxis: vec3f,rotatedCorner: vec3f)->vec3f {var xaxis: vec3f=normalize(cross( vec3f(0.,1.0,0.),yaxis));var zaxis: vec3f=normalize(cross(yaxis,xaxis));var row0: vec3f= vec3f(xaxis.x,xaxis.y,xaxis.z);var row1: vec3f= vec3f(yaxis.x,yaxis.y,yaxis.z);var row2: vec3f= vec3f(zaxis.x,zaxis.y,zaxis.z);var rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}\n#ifdef BILLBOARDSTRETCHED\nfn rotateAlign(toCamera: vec3f,rotatedCorner: vec3f)->vec3f {var normalizedToCamera: vec3f=normalize(toCamera);var normalizedCrossDirToCamera: vec3f=normalize(cross(normalize(direction),normalizedToCamera));var row0: vec3f= vec3f(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);var row2: vec3f= vec3f(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\n#ifdef BILLBOARDSTRETCHED_LOCAL\nvar row1: vec3f=direction;\n#else\nvar crossProduct: vec3f=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));var row1: vec3f= vec3f(crossProduct.x,crossProduct.y,crossProduct.z);\n#endif\nvar rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input: VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvar cornerPos: vec2f;cornerPos=( vec2f(vertexInputs.offset.x-0.5,vertexInputs.offset.y -0.5)-uniforms.translationPivot)*vertexInputs.size;\n#ifdef BILLBOARD\nvar rotatedCorner: vec3f;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.ngle);rotatedCorner.z=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.y=0.;rotatedCorner.xz+=uniforms.translationPivot;var yaxis: vec3f=vertexInputs.position-eyePosition;yaxis.y=0.;vertexOutputs.vPositionW=rotate(normalize(yaxis),rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.y=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.z=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var toCamera: vec3f=vertexInputs.position-eyePosition;vertexOutputs.vPositionW=rotateAlign(toCamera,rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;\n#else\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.y=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.z=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var viewPos: vec3f=(uniforms.view* vec4f(vertexInputs.position,1.0)).xyz+rotatedCorner;vertexOutputs.vPositionW=(uniforms.invView* vec4f(viewPos,1)).xyz;\n#endif\n#ifdef RAMPGRADIENT\nremapRanges=remapData;\n#endif\nvertexOutputs.position=uniforms.projection* vec4f(viewPos,1.0);\n#else\nvar rotatedCorner: vec3f;rotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.z=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.y=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var yaxis: vec3f=normalize(direction);vertexOutputs.vPositionW=rotate(yaxis,rotatedCorner);vertexOutputs.position=uniforms.projection*view* vec4f(vertexOutputs.vPositionW,1.0);\n#endif\nvertexOutputs.vColor=vertexInputs.color;\n#ifdef ANIMATESHEET\nvar rowOffset: f32=floor(cellIndex*particlesInfos.z);var columnOffset: f32=cellIndex-rowOffset/particlesInfos.z;var uvScale: vec2f=particlesInfos.xy;var uvOffset: vec2f= vec2f(vertexInputs.offset.x ,1.0-vertexInputs.offset.y);vertexOutputs.vUV=(uvOffset+ vec2f(columnOffset,rowOffset))*uvScale;\n#else\nvertexOutputs.vUV=vertexInputs.offset;\n#endif\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)\nvar worldPos: vec4f= vec4f(vertexOutputs.vPositionW,1.0);\n#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const particlesVertexShaderWGSL = { name, shader };\n"]}
@@ -0,0 +1,60 @@
1
+ import "./ShadersInclude/prePassDeclaration";
2
+ import "./ShadersInclude/oitDeclaration";
3
+ import "./ShadersInclude/pbrUboDeclaration";
4
+ import "./ShadersInclude/pbrFragmentExtraDeclaration";
5
+ import "./ShadersInclude/lightUboDeclaration";
6
+ import "./ShadersInclude/pbrFragmentSamplersDeclaration";
7
+ import "./ShadersInclude/imageProcessingDeclaration";
8
+ import "./ShadersInclude/clipPlaneFragmentDeclaration";
9
+ import "./ShadersInclude/logDepthDeclaration";
10
+ import "./ShadersInclude/fogFragmentDeclaration";
11
+ import "./ShadersInclude/helperFunctions";
12
+ import "./ShadersInclude/subSurfaceScatteringFunctions";
13
+ import "./ShadersInclude/importanceSampling";
14
+ import "./ShadersInclude/pbrHelperFunctions";
15
+ import "./ShadersInclude/imageProcessingFunctions";
16
+ import "./ShadersInclude/shadowsFragmentFunctions";
17
+ import "./ShadersInclude/harmonicsFunctions";
18
+ import "./ShadersInclude/pbrDirectLightingSetupFunctions";
19
+ import "./ShadersInclude/pbrDirectLightingFalloffFunctions";
20
+ import "./ShadersInclude/pbrBRDFFunctions";
21
+ import "./ShadersInclude/hdrFilteringFunctions";
22
+ import "./ShadersInclude/pbrDirectLightingFunctions";
23
+ import "./ShadersInclude/pbrIBLFunctions";
24
+ import "./ShadersInclude/bumpFragmentMainFunctions";
25
+ import "./ShadersInclude/bumpFragmentFunctions";
26
+ import "./ShadersInclude/reflectionFunction";
27
+ import "./ShadersInclude/pbrBlockAlbedoOpacity";
28
+ import "./ShadersInclude/pbrBlockReflectivity";
29
+ import "./ShadersInclude/pbrBlockAmbientOcclusion";
30
+ import "./ShadersInclude/pbrBlockAlphaFresnel";
31
+ import "./ShadersInclude/pbrBlockAnisotropic";
32
+ import "./ShadersInclude/pbrBlockReflection";
33
+ import "./ShadersInclude/pbrBlockSheen";
34
+ import "./ShadersInclude/pbrBlockClearcoat";
35
+ import "./ShadersInclude/pbrBlockIridescence";
36
+ import "./ShadersInclude/pbrBlockSubSurface";
37
+ import "./ShadersInclude/clipPlaneFragment";
38
+ import "./ShadersInclude/pbrBlockNormalGeometric";
39
+ import "./ShadersInclude/bumpFragment";
40
+ import "./ShadersInclude/pbrBlockNormalFinal";
41
+ import "./ShadersInclude/depthPrePass";
42
+ import "./ShadersInclude/pbrBlockLightmapInit";
43
+ import "./ShadersInclude/pbrBlockGeometryInfo";
44
+ import "./ShadersInclude/pbrBlockReflectance0";
45
+ import "./ShadersInclude/pbrBlockReflectance";
46
+ import "./ShadersInclude/pbrBlockDirectLighting";
47
+ import "./ShadersInclude/lightFragment";
48
+ import "./ShadersInclude/pbrBlockFinalLitComponents";
49
+ import "./ShadersInclude/pbrBlockFinalUnlitComponents";
50
+ import "./ShadersInclude/pbrBlockFinalColorComposition";
51
+ import "./ShadersInclude/logDepthFragment";
52
+ import "./ShadersInclude/fogFragment";
53
+ import "./ShadersInclude/pbrBlockImageProcessing";
54
+ import "./ShadersInclude/oitFragment";
55
+ import "./ShadersInclude/pbrDebug";
56
+ /** @internal */
57
+ export declare const pbrPixelShaderWGSL: {
58
+ name: string;
59
+ shader: string;
60
+ };