@driftengine/core 4.8.6 → 4.9.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 (253) hide show
  1. package/CHANGELOG.json +132 -0
  2. package/README.md +1 -1
  3. package/dist/index.d.ts +7 -2
  4. package/dist/index.js +8 -1
  5. package/dist/render/anisotropicLobe.d.ts +10 -0
  6. package/dist/render/anisotropicLobe.js +19 -0
  7. package/dist/render/areaLights.d.ts +35 -0
  8. package/dist/render/areaLights.js +35 -0
  9. package/dist/render/atmosphere.d.ts +13 -0
  10. package/dist/render/atmosphere.js +9 -1
  11. package/dist/render/backend/api.d.ts +41 -3
  12. package/dist/render/backend/createRenderer.d.ts +6 -0
  13. package/dist/render/backend/createRenderer.js +4 -1
  14. package/dist/render/backend/webgl2/renderer.d.ts +140 -16
  15. package/dist/render/backend/webgl2/renderer.js +436 -44
  16. package/dist/render/backend/webgl2/sceneCaptureTarget.d.ts +29 -0
  17. package/dist/render/backend/webgl2/sceneCaptureTarget.js +96 -0
  18. package/dist/render/backend/webgpu/device.d.ts +7 -1
  19. package/dist/render/backend/webgpu/device.js +31 -3
  20. package/dist/render/backend/webgpu/flatPass.d.ts +16 -1
  21. package/dist/render/backend/webgpu/flatPass.js +58 -26
  22. package/dist/render/backend/webgpu/particlePass.js +2 -1
  23. package/dist/render/backend/webgpu/postPass.d.ts +51 -9
  24. package/dist/render/backend/webgpu/postPass.js +16 -2
  25. package/dist/render/backend/webgpu/reflectionSurfacePass.d.ts +30 -0
  26. package/dist/render/backend/webgpu/reflectionSurfacePass.js +100 -0
  27. package/dist/render/backend/webgpu/renderer.d.ts +166 -3
  28. package/dist/render/backend/webgpu/renderer.js +738 -83
  29. package/dist/render/backend/webgpu/sceneCaptureTarget.d.ts +24 -0
  30. package/dist/render/backend/webgpu/sceneCaptureTarget.js +59 -0
  31. package/dist/render/backend/webgpu/shaders/clusterBin.wgsl.d.ts +1 -1
  32. package/dist/render/backend/webgpu/surfaceTexturePass.d.ts +4 -1
  33. package/dist/render/backend/webgpu/surfaceTexturePass.js +34 -8
  34. package/dist/render/backend/webgpu/waterPass.d.ts +1 -1
  35. package/dist/render/clusteredLights.d.ts +23 -5
  36. package/dist/render/clusteredLights.js +35 -8
  37. package/dist/render/displayRange.d.ts +31 -0
  38. package/dist/render/displayRange.js +47 -0
  39. package/dist/render/driftLight/bake.d.ts +2 -0
  40. package/dist/render/driftLight/bake.js +1 -1
  41. package/dist/render/driftLight/falloff.d.ts +4 -2
  42. package/dist/render/driftLight/falloff.js +8 -2
  43. package/dist/render/filmicCurve.d.ts +74 -0
  44. package/dist/render/filmicCurve.js +203 -0
  45. package/dist/render/fog.d.ts +4 -1
  46. package/dist/render/fog.js +12 -2
  47. package/dist/render/frame/resources.d.ts +2 -2
  48. package/dist/render/frame/resources.js +6 -0
  49. package/dist/render/frameReflections.d.ts +40 -0
  50. package/dist/render/frameReflections.js +48 -0
  51. package/dist/render/gi/bounceLights.d.ts +3 -2
  52. package/dist/render/gi/bounceLights.js +8 -3
  53. package/dist/render/instanceCull.js +5 -0
  54. package/dist/render/instances.d.ts +19 -5
  55. package/dist/render/instances.js +9 -3
  56. package/dist/render/lightBudget.d.ts +12 -1
  57. package/dist/render/lightBudget.js +23 -3
  58. package/dist/render/lightmap.d.ts +23 -9
  59. package/dist/render/lightmap.js +40 -18
  60. package/dist/render/particlePool.d.ts +21 -0
  61. package/dist/render/particlePool.js +7 -0
  62. package/dist/render/pass.d.ts +49 -0
  63. package/dist/render/pointLightSelection.d.ts +13 -0
  64. package/dist/render/pointLightSelection.js +3 -1
  65. package/dist/render/reflectionSurfaceTargets.d.ts +28 -0
  66. package/dist/render/reflectionSurfaceTargets.js +99 -0
  67. package/dist/render/renderQuality.d.ts +47 -15
  68. package/dist/render/renderQuality.js +4 -0
  69. package/dist/render/rendererHarness.js +3 -0
  70. package/dist/render/rgb9e5.d.ts +22 -0
  71. package/dist/render/rgb9e5.js +47 -0
  72. package/dist/render/sceneCapture.d.ts +29 -0
  73. package/dist/render/sceneCapture.js +36 -0
  74. package/dist/render/sceneTarget.d.ts +5 -0
  75. package/dist/render/sceneTarget.js +24 -1
  76. package/dist/render/screenSpaceReflection.d.ts +32 -1
  77. package/dist/render/screenSpaceReflection.js +14 -0
  78. package/dist/render/shaders/arcane.d.ts +1 -1
  79. package/dist/render/shaders/bolt.d.ts +1 -1
  80. package/dist/render/shaders/bolt.js +7 -1
  81. package/dist/render/shaders/caustics.d.ts +1 -1
  82. package/dist/render/shaders/depth.js +11 -0
  83. package/dist/render/shaders/film.d.ts +1 -1
  84. package/dist/render/shaders/filmLook.js +2 -1
  85. package/dist/render/shaders/fire.d.ts +1 -1
  86. package/dist/render/shaders/flat/anisotropic.d.ts +1 -1
  87. package/dist/render/shaders/flat/anisotropic.js +37 -3
  88. package/dist/render/shaders/flat/areaLight.d.ts +1 -1
  89. package/dist/render/shaders/flat/areaLight.js +46 -0
  90. package/dist/render/shaders/flat/glassTint.d.ts +3 -2
  91. package/dist/render/shaders/flat/glassTint.js +5 -1
  92. package/dist/render/shaders/flat/index.d.ts +15 -0
  93. package/dist/render/shaders/flat/index.js +22 -2
  94. package/dist/render/shaders/flat/lobes.d.ts +6 -0
  95. package/dist/render/shaders/flat/lobes.js +49 -43
  96. package/dist/render/shaders/flat/main.d.ts +1 -1
  97. package/dist/render/shaders/flat/main.js +85 -22
  98. package/dist/render/shaders/flat/models.d.ts +5 -2
  99. package/dist/render/shaders/flat/models.js +100 -16
  100. package/dist/render/shaders/flat/overlay.d.ts +16 -0
  101. package/dist/render/shaders/flat/overlay.js +117 -0
  102. package/dist/render/shaders/flat/pointShadow.js +1 -1
  103. package/dist/render/shaders/flat/preamble.js +10 -3
  104. package/dist/render/shaders/flat/reflectionSurface.d.ts +21 -0
  105. package/dist/render/shaders/flat/reflectionSurface.js +61 -0
  106. package/dist/render/shaders/fog.d.ts +1 -1
  107. package/dist/render/shaders/fog.js +9 -2
  108. package/dist/render/shaders/fringe.d.ts +29 -0
  109. package/dist/render/shaders/fringe.js +55 -0
  110. package/dist/render/shaders/generated/arcane.wgsl.d.ts +1 -1
  111. package/dist/render/shaders/generated/arcane.wgsl.js +1 -1
  112. package/dist/render/shaders/generated/bolt.wgsl.d.ts +1 -1
  113. package/dist/render/shaders/generated/bolt.wgsl.js +1 -1
  114. package/dist/render/shaders/generated/caustics.wgsl.d.ts +1 -1
  115. package/dist/render/shaders/generated/caustics.wgsl.js +1 -1
  116. package/dist/render/shaders/generated/depth.wgsl.d.ts +4 -4
  117. package/dist/render/shaders/generated/depth.wgsl.js +4 -4
  118. package/dist/render/shaders/generated/film.wgsl.d.ts +1 -1
  119. package/dist/render/shaders/generated/film.wgsl.js +1 -1
  120. package/dist/render/shaders/generated/fire.wgsl.d.ts +1 -1
  121. package/dist/render/shaders/generated/fire.wgsl.js +1 -1
  122. package/dist/render/shaders/generated/flat.wgsl.d.ts +192 -16
  123. package/dist/render/shaders/generated/flat.wgsl.js +230 -54
  124. package/dist/render/shaders/generated/line.wgsl.d.ts +1 -1
  125. package/dist/render/shaders/generated/line.wgsl.js +1 -1
  126. package/dist/render/shaders/generated/particle.wgsl.d.ts +4 -4
  127. package/dist/render/shaders/generated/particle.wgsl.js +4 -4
  128. package/dist/render/shaders/generated/rush.wgsl.d.ts +56 -26
  129. package/dist/render/shaders/generated/rush.wgsl.js +56 -26
  130. package/dist/render/shaders/generated/scatter.wgsl.d.ts +1 -1
  131. package/dist/render/shaders/generated/scatter.wgsl.js +1 -1
  132. package/dist/render/shaders/generated/smoke.wgsl.d.ts +1 -1
  133. package/dist/render/shaders/generated/smoke.wgsl.js +1 -1
  134. package/dist/render/shaders/generated/ssrResolve.wgsl.d.ts +29 -0
  135. package/dist/render/shaders/generated/ssrResolve.wgsl.js +29 -0
  136. package/dist/render/shaders/generated/ssrTrace.wgsl.d.ts +32 -7
  137. package/dist/render/shaders/generated/ssrTrace.wgsl.js +32 -7
  138. package/dist/render/shaders/generated/water.wgsl.d.ts +23 -16
  139. package/dist/render/shaders/generated/water.wgsl.js +23 -16
  140. package/dist/render/shaders/gi/probeBake.wgsl.js +9 -5
  141. package/dist/render/shaders/gpudriven/fog.wgsl.d.ts +2 -2
  142. package/dist/render/shaders/gpudriven/fog.wgsl.js +11 -3
  143. package/dist/render/shaders/line.d.ts +1 -1
  144. package/dist/render/shaders/particle.d.ts +3 -3
  145. package/dist/render/shaders/recon/motion.wgsl.d.ts +1 -1
  146. package/dist/render/shaders/recon/motion.wgsl.js +13 -2
  147. package/dist/render/shaders/rush.js +54 -11
  148. package/dist/render/shaders/scatter.d.ts +1 -1
  149. package/dist/render/shaders/smoke.d.ts +1 -1
  150. package/dist/render/shaders/ssrResolve.d.ts +17 -0
  151. package/dist/render/shaders/ssrResolve.js +51 -0
  152. package/dist/render/shaders/ssrTrace.js +46 -1
  153. package/dist/render/shaders/water.d.ts +1 -1
  154. package/dist/render/shaders/water.js +12 -3
  155. package/dist/render/skinScatter.d.ts +3 -1
  156. package/dist/render/skinScatter.js +3 -1
  157. package/dist/render/ssrPass.d.ts +16 -0
  158. package/dist/render/ssrPass.js +107 -1
  159. package/dist/render/surfaceModel.d.ts +29 -8
  160. package/dist/render/surfaceModel.js +33 -9
  161. package/dist/render/surfaceOverlay.d.ts +132 -0
  162. package/dist/render/surfaceOverlay.js +85 -0
  163. package/dist/render/surfaceTexture.d.ts +44 -1
  164. package/dist/render/surfaceTexture.js +96 -5
  165. package/dist/render/temporalAa.d.ts +14 -0
  166. package/dist/render/temporalAa.js +20 -0
  167. package/dist/render/vertexDefaults.d.ts +17 -0
  168. package/dist/render/vertexDefaults.js +24 -0
  169. package/package.json +6 -6
  170. package/src/index.ts +22 -2
  171. package/src/render/anisotropicLobe.ts +29 -0
  172. package/src/render/areaLights.ts +58 -0
  173. package/src/render/atmosphere.ts +22 -1
  174. package/src/render/backend/api.ts +58 -2
  175. package/src/render/backend/createRenderer.ts +18 -1
  176. package/src/render/backend/webgl2/renderer.ts +548 -50
  177. package/src/render/backend/webgl2/sceneCaptureTarget.ts +130 -0
  178. package/src/render/backend/webgpu/device.ts +42 -3
  179. package/src/render/backend/webgpu/flatPass.ts +63 -26
  180. package/src/render/backend/webgpu/particlePass.ts +2 -1
  181. package/src/render/backend/webgpu/postPass.ts +18 -0
  182. package/src/render/backend/webgpu/reflectionSurfacePass.ts +114 -0
  183. package/src/render/backend/webgpu/renderer.ts +927 -100
  184. package/src/render/backend/webgpu/sceneCaptureTarget.ts +63 -0
  185. package/src/render/backend/webgpu/surfaceTexturePass.ts +44 -14
  186. package/src/render/clusteredLights.ts +41 -8
  187. package/src/render/displayRange.ts +61 -0
  188. package/src/render/driftLight/bake.ts +3 -1
  189. package/src/render/driftLight/falloff.ts +13 -2
  190. package/src/render/filmicCurve.ts +229 -0
  191. package/src/render/fog.ts +19 -3
  192. package/src/render/frame/resources.ts +6 -0
  193. package/src/render/frameReflections.ts +72 -0
  194. package/src/render/gi/bounceLights.ts +12 -3
  195. package/src/render/instanceCull.ts +4 -0
  196. package/src/render/instances.ts +26 -6
  197. package/src/render/lightBudget.ts +40 -2
  198. package/src/render/lightmap.ts +64 -23
  199. package/src/render/particlePool.ts +23 -0
  200. package/src/render/pass.ts +53 -1
  201. package/src/render/pointLightSelection.ts +20 -1
  202. package/src/render/reflectionSurfaceTargets.ts +105 -0
  203. package/src/render/renderQuality.ts +52 -15
  204. package/src/render/rendererHarness.ts +3 -0
  205. package/src/render/rgb9e5.ts +52 -0
  206. package/src/render/sceneCapture.ts +56 -0
  207. package/src/render/sceneTarget.ts +30 -2
  208. package/src/render/screenSpaceReflection.ts +38 -1
  209. package/src/render/shaders/bolt.ts +7 -1
  210. package/src/render/shaders/depth.ts +11 -0
  211. package/src/render/shaders/filmLook.ts +2 -1
  212. package/src/render/shaders/flat/anisotropic.ts +37 -3
  213. package/src/render/shaders/flat/areaLight.ts +46 -0
  214. package/src/render/shaders/flat/glassTint.ts +13 -2
  215. package/src/render/shaders/flat/index.ts +37 -2
  216. package/src/render/shaders/flat/lobes.ts +50 -43
  217. package/src/render/shaders/flat/main.ts +85 -22
  218. package/src/render/shaders/flat/models.ts +100 -16
  219. package/src/render/shaders/flat/overlay.ts +117 -0
  220. package/src/render/shaders/flat/pointShadow.ts +1 -1
  221. package/src/render/shaders/flat/preamble.ts +10 -3
  222. package/src/render/shaders/flat/reflectionSurface.ts +61 -0
  223. package/src/render/shaders/fog.ts +9 -2
  224. package/src/render/shaders/fringe.ts +59 -0
  225. package/src/render/shaders/generated/arcane.wgsl.ts +1 -1
  226. package/src/render/shaders/generated/bolt.wgsl.ts +1 -1
  227. package/src/render/shaders/generated/caustics.wgsl.ts +1 -1
  228. package/src/render/shaders/generated/depth.wgsl.ts +4 -4
  229. package/src/render/shaders/generated/film.wgsl.ts +1 -1
  230. package/src/render/shaders/generated/fire.wgsl.ts +1 -1
  231. package/src/render/shaders/generated/flat.wgsl.ts +230 -54
  232. package/src/render/shaders/generated/line.wgsl.ts +1 -1
  233. package/src/render/shaders/generated/particle.wgsl.ts +4 -4
  234. package/src/render/shaders/generated/rush.wgsl.ts +56 -26
  235. package/src/render/shaders/generated/scatter.wgsl.ts +1 -1
  236. package/src/render/shaders/generated/smoke.wgsl.ts +1 -1
  237. package/src/render/shaders/generated/ssrResolve.wgsl.ts +30 -0
  238. package/src/render/shaders/generated/ssrTrace.wgsl.ts +32 -7
  239. package/src/render/shaders/generated/water.wgsl.ts +23 -16
  240. package/src/render/shaders/gi/probeBake.wgsl.ts +9 -5
  241. package/src/render/shaders/gpudriven/fog.wgsl.ts +11 -3
  242. package/src/render/shaders/recon/motion.wgsl.ts +13 -2
  243. package/src/render/shaders/rush.ts +54 -11
  244. package/src/render/shaders/ssrResolve.ts +52 -0
  245. package/src/render/shaders/ssrTrace.ts +46 -1
  246. package/src/render/shaders/water.ts +12 -3
  247. package/src/render/skinScatter.ts +3 -1
  248. package/src/render/ssrPass.ts +139 -1
  249. package/src/render/surfaceModel.ts +47 -10
  250. package/src/render/surfaceOverlay.ts +195 -0
  251. package/src/render/surfaceTexture.ts +136 -9
  252. package/src/render/temporalAa.ts +20 -0
  253. package/src/render/vertexDefaults.ts +28 -0
@@ -1,4 +1,4 @@
1
- export declare const FIRE_FRAG_WGSL = "struct Uniforms {\n uTime: f32,\n uFogColor: vec3<f32>,\n uFogDensity: f32,\n uFogHeightFalloff: f32,\n uFogEyeY: f32,\n uUnderwaterColor: vec3<f32>,\n uUnderwaterFogDensity: f32,\n uUnderwaterFactor: f32,\n uFogMode: i32,\n uFogNear: f32,\n uFogFar: f32,\n uNoiseOctaves: i32,\n uClipPlane: vec4<f32>,\n uClipEnabled: i32,\n}\n\n@group(0) @binding(1) \nvar<uniform> unnamed: Uniforms;\nvar<private> vWorldPos_1: vec3<f32>;\nvar<private> vUv_1: vec2<f32>;\nvar<private> vSeed_1: f32;\nvar<private> vDistance_1: f32;\nvar<private> outColor: vec4<f32>;\n\nfn mediumColor_u0028_() -> vec3<f32> {\n let _e68 = unnamed.uFogColor;\n let _e70 = unnamed.uUnderwaterColor;\n let _e72 = unnamed.uUnderwaterFactor;\n return mix(_e68, _e70, vec3(_e72));\n}\n\nfn mediumFog_u0028_f1_u003b_f1_u003b(dist: ptr<function, f32>, pointY: ptr<function, f32>) -> f32 {\n var span: f32;\n var ramp: f32;\n var wetLinear: f32;\n var t: f32;\n var denom: f32;\n var air: f32;\n var wet: f32;\n\n let _e77 = unnamed.uFogMode;\n if (_e77 == 1i) {\n let _e80 = unnamed.uFogFar;\n let _e82 = unnamed.uFogNear;\n span = max((_e80 - _e82), 0.0001f);\n let _e85 = (*dist);\n let _e87 = unnamed.uFogNear;\n let _e89 = span;\n ramp = clamp(((_e85 - _e87) / _e89), 0f, 1f);\n let _e93 = unnamed.uUnderwaterFactor;\n if (_e93 <= 0f) {\n let _e95 = ramp;\n return _e95;\n }\n let _e97 = unnamed.uUnderwaterFogDensity;\n let _e98 = (*dist);\n wetLinear = (_e97 * _e98);\n let _e100 = ramp;\n let _e101 = wetLinear;\n let _e103 = wetLinear;\n let _e109 = unnamed.uUnderwaterFactor;\n return mix(_e100, (1f - exp2(((-(_e101) * _e103) * 1.442695f))), _e109);\n }\n let _e111 = (*pointY);\n let _e113 = unnamed.uFogEyeY;\n let _e116 = unnamed.uFogHeightFalloff;\n t = ((_e111 - _e113) * _e116);\n let _e118 = t;\n let _e121 = t;\n denom = select(_e121, 0.0001f, (abs(_e118) < 0.0001f));\n let _e124 = unnamed.uFogDensity;\n let _e126 = (*dist);\n let _e128 = denom;\n let _e133 = denom;\n air = (1f - exp((((-(_e124) * _e126) * (1f - exp(-(_e128)))) / _e133)));\n let _e138 = unnamed.uUnderwaterFactor;\n if (_e138 <= 0f) {\n let _e140 = air;\n return _e140;\n }\n let _e142 = unnamed.uUnderwaterFogDensity;\n let _e143 = (*dist);\n wet = (_e142 * _e143);\n let _e145 = air;\n let _e146 = wet;\n let _e148 = wet;\n let _e154 = unnamed.uUnderwaterFactor;\n return mix(_e145, (1f - exp2(((-(_e146) * _e148) * 1.442695f))), _e154);\n}\n\nfn hash21_u0028_vf2_u003b(p: ptr<function, vec2<f32>>) -> f32 {\n let _e68 = (*p);\n return fract((sin(dot(_e68, vec2<f32>(127.1f, 311.7f))) * 43758.547f));\n}\n\nfn valueNoise_u0028_vf2_u003b(p_1: ptr<function, vec2<f32>>) -> f32 {\n var i: vec2<f32>;\n var f: vec2<f32>;\n var u: vec2<f32>;\n var param: vec2<f32>;\n var param_1: vec2<f32>;\n var param_2: vec2<f32>;\n var param_3: vec2<f32>;\n\n let _e75 = (*p_1);\n i = floor(_e75);\n let _e77 = (*p_1);\n f = fract(_e77);\n let _e79 = f;\n let _e80 = f;\n let _e82 = f;\n u = ((_e79 * _e80) * (vec2(3f) - (_e82 * 2f)));\n let _e87 = i;\n param = _e87;\n let _e88 = hash21_u0028_vf2_u003b((&param));\n let _e89 = i;\n param_1 = (_e89 + vec2<f32>(1f, 0f));\n let _e91 = hash21_u0028_vf2_u003b((&param_1));\n let _e93 = u[0u];\n let _e95 = i;\n param_2 = (_e95 + vec2<f32>(0f, 1f));\n let _e97 = hash21_u0028_vf2_u003b((&param_2));\n let _e98 = i;\n param_3 = (_e98 + vec2<f32>(1f, 1f));\n let _e100 = hash21_u0028_vf2_u003b((&param_3));\n let _e102 = u[0u];\n let _e105 = u[1u];\n return mix(mix(_e88, _e91, _e93), mix(_e97, _e100, _e102), _e105);\n}\n\nfn turbulence_u0028_vf2_u003b_f1_u003b(p_2: ptr<function, vec2<f32>>, t_1: ptr<function, f32>) -> f32 {\n var v: f32;\n var param_4: vec2<f32>;\n var param_5: vec2<f32>;\n var param_6: vec2<f32>;\n\n let _e73 = (*p_2);\n let _e75 = (*t_1);\n param_4 = ((_e73 * 3f) + vec2<f32>(0f, (-(_e75) * 1.9f)));\n let _e80 = valueNoise_u0028_vf2_u003b((&param_4));\n v = (_e80 * 0.55f);\n let _e83 = unnamed.uNoiseOctaves;\n if (_e83 == 1i) {\n let _e85 = v;\n return (_e85 / 0.55f);\n }\n let _e87 = (*p_2);\n let _e89 = (*t_1);\n let _e91 = (*t_1);\n param_5 = ((_e87 * 6.5f) + vec2<f32>((_e89 * 0.3f), (-(_e91) * 3.1f)));\n let _e96 = valueNoise_u0028_vf2_u003b((&param_5));\n let _e98 = v;\n v = (_e98 + (_e96 * 0.28f));\n let _e101 = unnamed.uNoiseOctaves;\n if (_e101 == 2i) {\n let _e103 = v;\n return (_e103 / 0.83f);\n }\n let _e105 = v;\n let _e106 = (*p_2);\n let _e108 = (*t_1);\n let _e111 = (*t_1);\n param_6 = ((_e106 * 13f) + vec2<f32>((-(_e108) * 0.2f), (-(_e111) * 4.6f)));\n let _e116 = valueNoise_u0028_vf2_u003b((&param_6));\n return (_e105 + (_e116 * 0.17f));\n}\n\nfn main_1() {\n var uv: vec2<f32>;\n var t_2: f32;\n var sides: f32;\n var taper: f32;\n var sway: f32;\n var param_7: vec2<f32>;\n var p_3: vec2<f32>;\n var n: f32;\n var param_8: vec2<f32>;\n var param_9: f32;\n var body: f32;\n var heat: f32;\n var col: vec3<f32>;\n var alpha: f32;\n var fog: f32;\n var param_10: f32;\n var param_11: f32;\n var phi_312_: bool;\n\n let _e85 = unnamed.uClipEnabled;\n let _e86 = (_e85 != 0i);\n phi_312_ = _e86;\n if _e86 {\n let _e87 = vWorldPos_1;\n let _e93 = unnamed.uClipPlane;\n phi_312_ = (dot(vec4<f32>(_e87.x, _e87.y, _e87.z, 1f), _e93) < 0f);\n }\n let _e97 = phi_312_;\n if _e97 {\n discard;\n }\n let _e98 = vUv_1;\n uv = _e98;\n let _e100 = unnamed.uTime;\n let _e101 = vSeed_1;\n t_2 = (_e100 + (_e101 * 37f));\n let _e105 = uv[0u];\n sides = (1f - (abs((_e105 - 0.5f)) * 2f));\n let _e110 = sides;\n let _e112 = uv[1u];\n taper = (_e110 * (1f - (_e112 * 0.72f)));\n let _e116 = taper;\n if (_e116 <= 0f) {\n discard;\n }\n let _e118 = t_2;\n let _e120 = vSeed_1;\n param_7 = vec2<f32>((_e118 * 0.55f), (_e120 * 11f));\n let _e123 = valueNoise_u0028_vf2_u003b((&param_7));\n let _e127 = uv[1u];\n sway = (((_e123 - 0.5f) * 0.34f) * _e127);\n let _e130 = uv[0u];\n let _e131 = sway;\n let _e134 = uv[1u];\n p_3 = vec2<f32>((_e130 + _e131), _e134);\n let _e136 = p_3;\n param_8 = _e136;\n let _e137 = t_2;\n param_9 = _e137;\n let _e138 = turbulence_u0028_vf2_u003b_f1_u003b((&param_8), (&param_9));\n n = _e138;\n let _e139 = n;\n let _e140 = taper;\n let _e144 = uv[1u];\n body = (((_e139 * _e140) * 1.9f) - (_e144 * 0.55f));\n let _e147 = body;\n if (_e147 <= 0.02f) {\n discard;\n }\n let _e149 = body;\n heat = clamp((_e149 * 1.5f), 0f, 1f);\n let _e152 = heat;\n col = mix(vec3<f32>(0.62f, 0.06f, 0.02f), vec3<f32>(1f, 0.45f, 0.06f), vec3(smoothstep(0f, 0.45f, _e152)));\n let _e156 = col;\n let _e157 = heat;\n col = mix(_e156, vec3<f32>(1f, 0.85f, 0.35f), vec3(smoothstep(0.45f, 0.75f, _e157)));\n let _e161 = col;\n let _e162 = heat;\n col = mix(_e161, vec3<f32>(1f, 0.98f, 0.88f), vec3(smoothstep(0.78f, 1f, _e162)));\n let _e166 = body;\n let _e170 = uv[1u];\n alpha = (clamp((_e166 * 2.2f), 0f, 1f) * (1f - smoothstep(0.72f, 1f, _e170)));\n let _e174 = vDistance_1;\n param_10 = _e174;\n let _e176 = vWorldPos_1[1u];\n param_11 = _e176;\n let _e177 = mediumFog_u0028_f1_u003b_f1_u003b((&param_10), (&param_11));\n fog = _e177;\n let _e178 = col;\n let _e179 = mediumColor_u0028_();\n let _e180 = fog;\n col = mix(_e178, _e179, vec3(_e180));\n let _e183 = fog;\n let _e185 = alpha;\n alpha = (_e185 * (1f - _e183));\n let _e187 = col;\n let _e188 = alpha;\n outColor = vec4<f32>(_e187.x, _e187.y, _e187.z, _e188);\n return;\n}\n\n@fragment \nfn main(@location(3) vWorldPos: vec3<f32>, @location(0) vUv: vec2<f32>, @location(1) vSeed: f32, @location(2) vDistance: f32) -> @location(0) vec4<f32> {\n vWorldPos_1 = vWorldPos;\n vUv_1 = vUv;\n vSeed_1 = vSeed;\n vDistance_1 = vDistance;\n main_1();\n let _e9 = outColor;\n return _e9;\n}\n";
1
+ export declare const FIRE_FRAG_WGSL = "struct Uniforms {\n uTime: f32,\n uFogColor: vec3<f32>,\n uFogDensity: f32,\n uFogHeightFalloff: f32,\n uFogEyeY: f32,\n uUnderwaterColor: vec3<f32>,\n uUnderwaterFogDensity: f32,\n uUnderwaterFactor: f32,\n uFogMode: i32,\n uFogNear: f32,\n uFogFar: f32,\n uNoiseOctaves: i32,\n uClipPlane: vec4<f32>,\n uClipEnabled: i32,\n}\n\n@group(0) @binding(1) \nvar<uniform> unnamed: Uniforms;\nvar<private> vWorldPos_1: vec3<f32>;\nvar<private> vUv_1: vec2<f32>;\nvar<private> vSeed_1: f32;\nvar<private> vDistance_1: f32;\nvar<private> outColor: vec4<f32>;\n\nfn mediumColor_u0028_() -> vec3<f32> {\n let _e68 = unnamed.uFogColor;\n let _e70 = unnamed.uUnderwaterColor;\n let _e72 = unnamed.uUnderwaterFactor;\n return mix(_e68, _e70, vec3(_e72));\n}\n\nfn mediumFog_u0028_f1_u003b_f1_u003b(dist: ptr<function, f32>, pointY: ptr<function, f32>) -> f32 {\n var span: f32;\n var ramp: f32;\n var wetLinear: f32;\n var start: f32;\n var before: f32;\n var local: f32;\n var t: f32;\n var rest: f32;\n var denom: f32;\n var air: f32;\n var wet: f32;\n\n let _e81 = unnamed.uFogMode;\n if (_e81 == 1i) {\n let _e84 = unnamed.uFogFar;\n let _e86 = unnamed.uFogNear;\n span = max((_e84 - _e86), 0.0001f);\n let _e89 = (*dist);\n let _e91 = unnamed.uFogNear;\n let _e93 = span;\n ramp = clamp(((_e89 - _e91) / _e93), 0f, 1f);\n let _e97 = unnamed.uUnderwaterFactor;\n if (_e97 <= 0f) {\n let _e99 = ramp;\n return _e99;\n }\n let _e101 = unnamed.uUnderwaterFogDensity;\n let _e102 = (*dist);\n wetLinear = (_e101 * _e102);\n let _e104 = ramp;\n let _e105 = wetLinear;\n let _e107 = wetLinear;\n let _e113 = unnamed.uUnderwaterFactor;\n return mix(_e104, (1f - exp2(((-(_e105) * _e107) * 1.442695f))), _e113);\n }\n let _e116 = unnamed.uFogNear;\n let _e117 = (*dist);\n start = min(_e116, _e117);\n let _e119 = (*dist);\n if (_e119 > 0f) {\n let _e121 = start;\n let _e122 = (*dist);\n local = (_e121 / _e122);\n } else {\n local = 0f;\n }\n let _e124 = local;\n before = _e124;\n let _e125 = (*pointY);\n let _e127 = unnamed.uFogEyeY;\n let _e130 = unnamed.uFogHeightFalloff;\n t = ((_e125 - _e127) * _e130);\n let _e132 = t;\n let _e133 = before;\n rest = (_e132 * (1f - _e133));\n let _e136 = rest;\n let _e139 = rest;\n denom = select(_e139, 0.0001f, (abs(_e136) < 0.0001f));\n let _e142 = unnamed.uFogDensity;\n let _e144 = t;\n let _e146 = before;\n let _e150 = (*dist);\n let _e151 = start;\n let _e154 = denom;\n let _e159 = denom;\n air = (1f - exp(((((-(_e142) * exp((-(_e144) * _e146))) * (_e150 - _e151)) * (1f - exp(-(_e154)))) / _e159)));\n let _e164 = unnamed.uUnderwaterFactor;\n if (_e164 <= 0f) {\n let _e166 = air;\n return _e166;\n }\n let _e168 = unnamed.uUnderwaterFogDensity;\n let _e169 = (*dist);\n wet = (_e168 * _e169);\n let _e171 = air;\n let _e172 = wet;\n let _e174 = wet;\n let _e180 = unnamed.uUnderwaterFactor;\n return mix(_e171, (1f - exp2(((-(_e172) * _e174) * 1.442695f))), _e180);\n}\n\nfn hash21_u0028_vf2_u003b(p: ptr<function, vec2<f32>>) -> f32 {\n let _e68 = (*p);\n return fract((sin(dot(_e68, vec2<f32>(127.1f, 311.7f))) * 43758.547f));\n}\n\nfn valueNoise_u0028_vf2_u003b(p_1: ptr<function, vec2<f32>>) -> f32 {\n var i: vec2<f32>;\n var f: vec2<f32>;\n var u: vec2<f32>;\n var param: vec2<f32>;\n var param_1: vec2<f32>;\n var param_2: vec2<f32>;\n var param_3: vec2<f32>;\n\n let _e75 = (*p_1);\n i = floor(_e75);\n let _e77 = (*p_1);\n f = fract(_e77);\n let _e79 = f;\n let _e80 = f;\n let _e82 = f;\n u = ((_e79 * _e80) * (vec2(3f) - (_e82 * 2f)));\n let _e87 = i;\n param = _e87;\n let _e88 = hash21_u0028_vf2_u003b((&param));\n let _e89 = i;\n param_1 = (_e89 + vec2<f32>(1f, 0f));\n let _e91 = hash21_u0028_vf2_u003b((&param_1));\n let _e93 = u[0u];\n let _e95 = i;\n param_2 = (_e95 + vec2<f32>(0f, 1f));\n let _e97 = hash21_u0028_vf2_u003b((&param_2));\n let _e98 = i;\n param_3 = (_e98 + vec2<f32>(1f, 1f));\n let _e100 = hash21_u0028_vf2_u003b((&param_3));\n let _e102 = u[0u];\n let _e105 = u[1u];\n return mix(mix(_e88, _e91, _e93), mix(_e97, _e100, _e102), _e105);\n}\n\nfn turbulence_u0028_vf2_u003b_f1_u003b(p_2: ptr<function, vec2<f32>>, t_1: ptr<function, f32>) -> f32 {\n var v: f32;\n var param_4: vec2<f32>;\n var param_5: vec2<f32>;\n var param_6: vec2<f32>;\n\n let _e73 = (*p_2);\n let _e75 = (*t_1);\n param_4 = ((_e73 * 3f) + vec2<f32>(0f, (-(_e75) * 1.9f)));\n let _e80 = valueNoise_u0028_vf2_u003b((&param_4));\n v = (_e80 * 0.55f);\n let _e83 = unnamed.uNoiseOctaves;\n if (_e83 == 1i) {\n let _e85 = v;\n return (_e85 / 0.55f);\n }\n let _e87 = (*p_2);\n let _e89 = (*t_1);\n let _e91 = (*t_1);\n param_5 = ((_e87 * 6.5f) + vec2<f32>((_e89 * 0.3f), (-(_e91) * 3.1f)));\n let _e96 = valueNoise_u0028_vf2_u003b((&param_5));\n let _e98 = v;\n v = (_e98 + (_e96 * 0.28f));\n let _e101 = unnamed.uNoiseOctaves;\n if (_e101 == 2i) {\n let _e103 = v;\n return (_e103 / 0.83f);\n }\n let _e105 = v;\n let _e106 = (*p_2);\n let _e108 = (*t_1);\n let _e111 = (*t_1);\n param_6 = ((_e106 * 13f) + vec2<f32>((-(_e108) * 0.2f), (-(_e111) * 4.6f)));\n let _e116 = valueNoise_u0028_vf2_u003b((&param_6));\n return (_e105 + (_e116 * 0.17f));\n}\n\nfn main_1() {\n var uv: vec2<f32>;\n var t_2: f32;\n var sides: f32;\n var taper: f32;\n var sway: f32;\n var param_7: vec2<f32>;\n var p_3: vec2<f32>;\n var n: f32;\n var param_8: vec2<f32>;\n var param_9: f32;\n var body: f32;\n var heat: f32;\n var col: vec3<f32>;\n var alpha: f32;\n var fog: f32;\n var param_10: f32;\n var param_11: f32;\n var phi_341_: bool;\n\n let _e85 = unnamed.uClipEnabled;\n let _e86 = (_e85 != 0i);\n phi_341_ = _e86;\n if _e86 {\n let _e87 = vWorldPos_1;\n let _e93 = unnamed.uClipPlane;\n phi_341_ = (dot(vec4<f32>(_e87.x, _e87.y, _e87.z, 1f), _e93) < 0f);\n }\n let _e97 = phi_341_;\n if _e97 {\n discard;\n }\n let _e98 = vUv_1;\n uv = _e98;\n let _e100 = unnamed.uTime;\n let _e101 = vSeed_1;\n t_2 = (_e100 + (_e101 * 37f));\n let _e105 = uv[0u];\n sides = (1f - (abs((_e105 - 0.5f)) * 2f));\n let _e110 = sides;\n let _e112 = uv[1u];\n taper = (_e110 * (1f - (_e112 * 0.72f)));\n let _e116 = taper;\n if (_e116 <= 0f) {\n discard;\n }\n let _e118 = t_2;\n let _e120 = vSeed_1;\n param_7 = vec2<f32>((_e118 * 0.55f), (_e120 * 11f));\n let _e123 = valueNoise_u0028_vf2_u003b((&param_7));\n let _e127 = uv[1u];\n sway = (((_e123 - 0.5f) * 0.34f) * _e127);\n let _e130 = uv[0u];\n let _e131 = sway;\n let _e134 = uv[1u];\n p_3 = vec2<f32>((_e130 + _e131), _e134);\n let _e136 = p_3;\n param_8 = _e136;\n let _e137 = t_2;\n param_9 = _e137;\n let _e138 = turbulence_u0028_vf2_u003b_f1_u003b((&param_8), (&param_9));\n n = _e138;\n let _e139 = n;\n let _e140 = taper;\n let _e144 = uv[1u];\n body = (((_e139 * _e140) * 1.9f) - (_e144 * 0.55f));\n let _e147 = body;\n if (_e147 <= 0.02f) {\n discard;\n }\n let _e149 = body;\n heat = clamp((_e149 * 1.5f), 0f, 1f);\n let _e152 = heat;\n col = mix(vec3<f32>(0.62f, 0.06f, 0.02f), vec3<f32>(1f, 0.45f, 0.06f), vec3(smoothstep(0f, 0.45f, _e152)));\n let _e156 = col;\n let _e157 = heat;\n col = mix(_e156, vec3<f32>(1f, 0.85f, 0.35f), vec3(smoothstep(0.45f, 0.75f, _e157)));\n let _e161 = col;\n let _e162 = heat;\n col = mix(_e161, vec3<f32>(1f, 0.98f, 0.88f), vec3(smoothstep(0.78f, 1f, _e162)));\n let _e166 = body;\n let _e170 = uv[1u];\n alpha = (clamp((_e166 * 2.2f), 0f, 1f) * (1f - smoothstep(0.72f, 1f, _e170)));\n let _e174 = vDistance_1;\n param_10 = _e174;\n let _e176 = vWorldPos_1[1u];\n param_11 = _e176;\n let _e177 = mediumFog_u0028_f1_u003b_f1_u003b((&param_10), (&param_11));\n fog = _e177;\n let _e178 = col;\n let _e179 = mediumColor_u0028_();\n let _e180 = fog;\n col = mix(_e178, _e179, vec3(_e180));\n let _e183 = fog;\n let _e185 = alpha;\n alpha = (_e185 * (1f - _e183));\n let _e187 = col;\n let _e188 = alpha;\n outColor = vec4<f32>(_e187.x, _e187.y, _e187.z, _e188);\n return;\n}\n\n@fragment \nfn main(@location(3) vWorldPos: vec3<f32>, @location(0) vUv: vec2<f32>, @location(1) vSeed: f32, @location(2) vDistance: f32) -> @location(0) vec4<f32> {\n vWorldPos_1 = vWorldPos;\n vUv_1 = vUv;\n vSeed_1 = vSeed;\n vDistance_1 = vDistance;\n main_1();\n let _e9 = outColor;\n return _e9;\n}\n";
2
2
  export declare const PLUME_VERT_WGSL = "struct Uniforms {\n uViewProj: mat4x4<f32>,\n uCameraPos: vec3<f32>,\n uTime: f32,\n uSizePulse: f32,\n uWind: vec2<f32>,\n uOrigin: vec3<f32>,\n uWindResponse: f32,\n}\n\nstruct gl_PerVertex {\n @builtin(position) gl_Position: vec4<f32>,\n gl_PointSize: f32,\n}\n\nstruct VertexOutput {\n @location(0) member: vec2<f32>,\n @location(1) member_1: f32,\n @location(2) member_2: f32,\n @location(3) member_3: vec3<f32>,\n @builtin(position) gl_Position: vec4<f32>,\n}\n\n@group(0) @binding(0) \nvar<uniform> unnamed: Uniforms;\nvar<private> aCenter_1: vec3<f32>;\nvar<private> aSeed_1: f32;\nvar<private> aBlade_1: f32;\nvar<private> aSize_1: vec2<f32>;\nvar<private> aCorner_1: vec2<f32>;\nvar<private> vUv: vec2<f32>;\nvar<private> vSeed: f32;\nvar<private> vDistance: f32;\nvar<private> vWorldPos: vec3<f32>;\nvar<private> unnamed_1: gl_PerVertex = gl_PerVertex(vec4<f32>(0f, 0f, 0f, 1f), 1f);\n\nfn sizePulse_u0028_f1_u003b(seed: ptr<function, f32>) -> f32 {\n let _e35 = unnamed.uSizePulse;\n let _e37 = unnamed.uTime;\n let _e39 = (*seed);\n let _e45 = unnamed.uTime;\n let _e47 = (*seed);\n return (1f + (_e35 * ((sin(((_e37 * 1.7f) + (_e39 * 9.1f))) * 0.62f) + (sin(((_e45 * 3.3f) + (_e47 * 4.7f))) * 0.38f))));\n}\n\nfn main_1() {\n var anchor: vec3<f32>;\n var up: vec3<f32>;\n var yaw: f32;\n var right: vec3<f32>;\n var pulse: f32;\n var param: f32;\n var size: vec2<f32>;\n var rise: f32;\n var world: vec3<f32>;\n\n let _e42 = aCenter_1;\n let _e44 = unnamed.uOrigin;\n anchor = (_e42 + _e44);\n up = vec3<f32>(0f, 1f, 0f);\n let _e46 = aSeed_1;\n let _e48 = aBlade_1;\n yaw = ((_e46 * 6.2831855f) + (_e48 * 1.5707964f));\n let _e51 = yaw;\n let _e53 = yaw;\n right = vec3<f32>(cos(_e51), 0f, sin(_e53));\n let _e56 = aSeed_1;\n param = _e56;\n let _e57 = sizePulse_u0028_f1_u003b((&param));\n pulse = _e57;\n let _e59 = aSize_1[0u];\n let _e60 = pulse;\n let _e64 = aSize_1[1u];\n let _e65 = pulse;\n size = vec2<f32>((_e59 * mix(1f, _e60, 0.55f)), (_e64 * _e65));\n let _e69 = aCorner_1[1u];\n rise = ((_e69 * 0.5f) + 0.5f);\n let _e72 = anchor;\n let _e73 = right;\n let _e75 = aCorner_1[0u];\n let _e77 = size[0u];\n let _e81 = up;\n let _e82 = rise;\n let _e84 = size[1u];\n world = ((_e72 + (_e73 * (_e75 * _e77))) + (_e81 * (_e82 * _e84)));\n let _e89 = unnamed.uWind;\n let _e91 = unnamed.uWindResponse;\n let _e92 = rise;\n let _e94 = rise;\n let _e97 = size[1u];\n let _e100 = world;\n let _e102 = (_e100.xz + (_e89 * (((_e91 * _e92) * _e94) * _e97)));\n let _e103 = world;\n world = vec3<f32>(_e102.x, _e103.y, _e102.y);\n let _e109 = aCorner_1[0u];\n let _e113 = aCorner_1[1u];\n vUv = vec2<f32>(((_e109 * 0.5f) + 0.5f), ((_e113 * 0.5f) + 0.5f));\n let _e117 = aSeed_1;\n vSeed = _e117;\n let _e118 = world;\n let _e120 = unnamed.uCameraPos;\n vDistance = distance(_e118, _e120);\n let _e122 = world;\n vWorldPos = _e122;\n let _e124 = unnamed.uViewProj;\n let _e125 = world;\n unnamed_1.gl_Position = (_e124 * vec4<f32>(_e125.x, _e125.y, _e125.z, 1f));\n return;\n}\n\n@vertex \nfn main(@location(0) aCenter: vec3<f32>, @location(3) aSeed: f32, @location(4) aBlade: f32, @location(2) aSize: vec2<f32>, @location(1) aCorner: vec2<f32>) -> VertexOutput {\n aCenter_1 = aCenter;\n aSeed_1 = aSeed;\n aBlade_1 = aBlade;\n aSize_1 = aSize;\n aCorner_1 = aCorner;\n main_1();\n let _e17 = unnamed_1.gl_Position.y;\n unnamed_1.gl_Position.y = -(_e17);\n let _e19 = vUv;\n let _e20 = vSeed;\n let _e21 = vDistance;\n let _e22 = vWorldPos;\n let _e23 = unnamed_1.gl_Position;\n return VertexOutput(_e19, _e20, _e21, _e22, _e23);\n}\n";
3
3
  /**
4
4
  * What the transform assigned, so the renderer binds the same numbers.
@@ -4,7 +4,7 @@
4
4
  * The GLSL beside this file is the source of truth. A hand edit here is discarded by
5
5
  * the next generation, and `npm run wgsl:check` fails the build when this is stale.
6
6
  */
7
- export const FIRE_FRAG_WGSL = "struct Uniforms {\n uTime: f32,\n uFogColor: vec3<f32>,\n uFogDensity: f32,\n uFogHeightFalloff: f32,\n uFogEyeY: f32,\n uUnderwaterColor: vec3<f32>,\n uUnderwaterFogDensity: f32,\n uUnderwaterFactor: f32,\n uFogMode: i32,\n uFogNear: f32,\n uFogFar: f32,\n uNoiseOctaves: i32,\n uClipPlane: vec4<f32>,\n uClipEnabled: i32,\n}\n\n@group(0) @binding(1) \nvar<uniform> unnamed: Uniforms;\nvar<private> vWorldPos_1: vec3<f32>;\nvar<private> vUv_1: vec2<f32>;\nvar<private> vSeed_1: f32;\nvar<private> vDistance_1: f32;\nvar<private> outColor: vec4<f32>;\n\nfn mediumColor_u0028_() -> vec3<f32> {\n let _e68 = unnamed.uFogColor;\n let _e70 = unnamed.uUnderwaterColor;\n let _e72 = unnamed.uUnderwaterFactor;\n return mix(_e68, _e70, vec3(_e72));\n}\n\nfn mediumFog_u0028_f1_u003b_f1_u003b(dist: ptr<function, f32>, pointY: ptr<function, f32>) -> f32 {\n var span: f32;\n var ramp: f32;\n var wetLinear: f32;\n var t: f32;\n var denom: f32;\n var air: f32;\n var wet: f32;\n\n let _e77 = unnamed.uFogMode;\n if (_e77 == 1i) {\n let _e80 = unnamed.uFogFar;\n let _e82 = unnamed.uFogNear;\n span = max((_e80 - _e82), 0.0001f);\n let _e85 = (*dist);\n let _e87 = unnamed.uFogNear;\n let _e89 = span;\n ramp = clamp(((_e85 - _e87) / _e89), 0f, 1f);\n let _e93 = unnamed.uUnderwaterFactor;\n if (_e93 <= 0f) {\n let _e95 = ramp;\n return _e95;\n }\n let _e97 = unnamed.uUnderwaterFogDensity;\n let _e98 = (*dist);\n wetLinear = (_e97 * _e98);\n let _e100 = ramp;\n let _e101 = wetLinear;\n let _e103 = wetLinear;\n let _e109 = unnamed.uUnderwaterFactor;\n return mix(_e100, (1f - exp2(((-(_e101) * _e103) * 1.442695f))), _e109);\n }\n let _e111 = (*pointY);\n let _e113 = unnamed.uFogEyeY;\n let _e116 = unnamed.uFogHeightFalloff;\n t = ((_e111 - _e113) * _e116);\n let _e118 = t;\n let _e121 = t;\n denom = select(_e121, 0.0001f, (abs(_e118) < 0.0001f));\n let _e124 = unnamed.uFogDensity;\n let _e126 = (*dist);\n let _e128 = denom;\n let _e133 = denom;\n air = (1f - exp((((-(_e124) * _e126) * (1f - exp(-(_e128)))) / _e133)));\n let _e138 = unnamed.uUnderwaterFactor;\n if (_e138 <= 0f) {\n let _e140 = air;\n return _e140;\n }\n let _e142 = unnamed.uUnderwaterFogDensity;\n let _e143 = (*dist);\n wet = (_e142 * _e143);\n let _e145 = air;\n let _e146 = wet;\n let _e148 = wet;\n let _e154 = unnamed.uUnderwaterFactor;\n return mix(_e145, (1f - exp2(((-(_e146) * _e148) * 1.442695f))), _e154);\n}\n\nfn hash21_u0028_vf2_u003b(p: ptr<function, vec2<f32>>) -> f32 {\n let _e68 = (*p);\n return fract((sin(dot(_e68, vec2<f32>(127.1f, 311.7f))) * 43758.547f));\n}\n\nfn valueNoise_u0028_vf2_u003b(p_1: ptr<function, vec2<f32>>) -> f32 {\n var i: vec2<f32>;\n var f: vec2<f32>;\n var u: vec2<f32>;\n var param: vec2<f32>;\n var param_1: vec2<f32>;\n var param_2: vec2<f32>;\n var param_3: vec2<f32>;\n\n let _e75 = (*p_1);\n i = floor(_e75);\n let _e77 = (*p_1);\n f = fract(_e77);\n let _e79 = f;\n let _e80 = f;\n let _e82 = f;\n u = ((_e79 * _e80) * (vec2(3f) - (_e82 * 2f)));\n let _e87 = i;\n param = _e87;\n let _e88 = hash21_u0028_vf2_u003b((&param));\n let _e89 = i;\n param_1 = (_e89 + vec2<f32>(1f, 0f));\n let _e91 = hash21_u0028_vf2_u003b((&param_1));\n let _e93 = u[0u];\n let _e95 = i;\n param_2 = (_e95 + vec2<f32>(0f, 1f));\n let _e97 = hash21_u0028_vf2_u003b((&param_2));\n let _e98 = i;\n param_3 = (_e98 + vec2<f32>(1f, 1f));\n let _e100 = hash21_u0028_vf2_u003b((&param_3));\n let _e102 = u[0u];\n let _e105 = u[1u];\n return mix(mix(_e88, _e91, _e93), mix(_e97, _e100, _e102), _e105);\n}\n\nfn turbulence_u0028_vf2_u003b_f1_u003b(p_2: ptr<function, vec2<f32>>, t_1: ptr<function, f32>) -> f32 {\n var v: f32;\n var param_4: vec2<f32>;\n var param_5: vec2<f32>;\n var param_6: vec2<f32>;\n\n let _e73 = (*p_2);\n let _e75 = (*t_1);\n param_4 = ((_e73 * 3f) + vec2<f32>(0f, (-(_e75) * 1.9f)));\n let _e80 = valueNoise_u0028_vf2_u003b((&param_4));\n v = (_e80 * 0.55f);\n let _e83 = unnamed.uNoiseOctaves;\n if (_e83 == 1i) {\n let _e85 = v;\n return (_e85 / 0.55f);\n }\n let _e87 = (*p_2);\n let _e89 = (*t_1);\n let _e91 = (*t_1);\n param_5 = ((_e87 * 6.5f) + vec2<f32>((_e89 * 0.3f), (-(_e91) * 3.1f)));\n let _e96 = valueNoise_u0028_vf2_u003b((&param_5));\n let _e98 = v;\n v = (_e98 + (_e96 * 0.28f));\n let _e101 = unnamed.uNoiseOctaves;\n if (_e101 == 2i) {\n let _e103 = v;\n return (_e103 / 0.83f);\n }\n let _e105 = v;\n let _e106 = (*p_2);\n let _e108 = (*t_1);\n let _e111 = (*t_1);\n param_6 = ((_e106 * 13f) + vec2<f32>((-(_e108) * 0.2f), (-(_e111) * 4.6f)));\n let _e116 = valueNoise_u0028_vf2_u003b((&param_6));\n return (_e105 + (_e116 * 0.17f));\n}\n\nfn main_1() {\n var uv: vec2<f32>;\n var t_2: f32;\n var sides: f32;\n var taper: f32;\n var sway: f32;\n var param_7: vec2<f32>;\n var p_3: vec2<f32>;\n var n: f32;\n var param_8: vec2<f32>;\n var param_9: f32;\n var body: f32;\n var heat: f32;\n var col: vec3<f32>;\n var alpha: f32;\n var fog: f32;\n var param_10: f32;\n var param_11: f32;\n var phi_312_: bool;\n\n let _e85 = unnamed.uClipEnabled;\n let _e86 = (_e85 != 0i);\n phi_312_ = _e86;\n if _e86 {\n let _e87 = vWorldPos_1;\n let _e93 = unnamed.uClipPlane;\n phi_312_ = (dot(vec4<f32>(_e87.x, _e87.y, _e87.z, 1f), _e93) < 0f);\n }\n let _e97 = phi_312_;\n if _e97 {\n discard;\n }\n let _e98 = vUv_1;\n uv = _e98;\n let _e100 = unnamed.uTime;\n let _e101 = vSeed_1;\n t_2 = (_e100 + (_e101 * 37f));\n let _e105 = uv[0u];\n sides = (1f - (abs((_e105 - 0.5f)) * 2f));\n let _e110 = sides;\n let _e112 = uv[1u];\n taper = (_e110 * (1f - (_e112 * 0.72f)));\n let _e116 = taper;\n if (_e116 <= 0f) {\n discard;\n }\n let _e118 = t_2;\n let _e120 = vSeed_1;\n param_7 = vec2<f32>((_e118 * 0.55f), (_e120 * 11f));\n let _e123 = valueNoise_u0028_vf2_u003b((&param_7));\n let _e127 = uv[1u];\n sway = (((_e123 - 0.5f) * 0.34f) * _e127);\n let _e130 = uv[0u];\n let _e131 = sway;\n let _e134 = uv[1u];\n p_3 = vec2<f32>((_e130 + _e131), _e134);\n let _e136 = p_3;\n param_8 = _e136;\n let _e137 = t_2;\n param_9 = _e137;\n let _e138 = turbulence_u0028_vf2_u003b_f1_u003b((&param_8), (&param_9));\n n = _e138;\n let _e139 = n;\n let _e140 = taper;\n let _e144 = uv[1u];\n body = (((_e139 * _e140) * 1.9f) - (_e144 * 0.55f));\n let _e147 = body;\n if (_e147 <= 0.02f) {\n discard;\n }\n let _e149 = body;\n heat = clamp((_e149 * 1.5f), 0f, 1f);\n let _e152 = heat;\n col = mix(vec3<f32>(0.62f, 0.06f, 0.02f), vec3<f32>(1f, 0.45f, 0.06f), vec3(smoothstep(0f, 0.45f, _e152)));\n let _e156 = col;\n let _e157 = heat;\n col = mix(_e156, vec3<f32>(1f, 0.85f, 0.35f), vec3(smoothstep(0.45f, 0.75f, _e157)));\n let _e161 = col;\n let _e162 = heat;\n col = mix(_e161, vec3<f32>(1f, 0.98f, 0.88f), vec3(smoothstep(0.78f, 1f, _e162)));\n let _e166 = body;\n let _e170 = uv[1u];\n alpha = (clamp((_e166 * 2.2f), 0f, 1f) * (1f - smoothstep(0.72f, 1f, _e170)));\n let _e174 = vDistance_1;\n param_10 = _e174;\n let _e176 = vWorldPos_1[1u];\n param_11 = _e176;\n let _e177 = mediumFog_u0028_f1_u003b_f1_u003b((&param_10), (&param_11));\n fog = _e177;\n let _e178 = col;\n let _e179 = mediumColor_u0028_();\n let _e180 = fog;\n col = mix(_e178, _e179, vec3(_e180));\n let _e183 = fog;\n let _e185 = alpha;\n alpha = (_e185 * (1f - _e183));\n let _e187 = col;\n let _e188 = alpha;\n outColor = vec4<f32>(_e187.x, _e187.y, _e187.z, _e188);\n return;\n}\n\n@fragment \nfn main(@location(3) vWorldPos: vec3<f32>, @location(0) vUv: vec2<f32>, @location(1) vSeed: f32, @location(2) vDistance: f32) -> @location(0) vec4<f32> {\n vWorldPos_1 = vWorldPos;\n vUv_1 = vUv;\n vSeed_1 = vSeed;\n vDistance_1 = vDistance;\n main_1();\n let _e9 = outColor;\n return _e9;\n}\n";
7
+ export const FIRE_FRAG_WGSL = "struct Uniforms {\n uTime: f32,\n uFogColor: vec3<f32>,\n uFogDensity: f32,\n uFogHeightFalloff: f32,\n uFogEyeY: f32,\n uUnderwaterColor: vec3<f32>,\n uUnderwaterFogDensity: f32,\n uUnderwaterFactor: f32,\n uFogMode: i32,\n uFogNear: f32,\n uFogFar: f32,\n uNoiseOctaves: i32,\n uClipPlane: vec4<f32>,\n uClipEnabled: i32,\n}\n\n@group(0) @binding(1) \nvar<uniform> unnamed: Uniforms;\nvar<private> vWorldPos_1: vec3<f32>;\nvar<private> vUv_1: vec2<f32>;\nvar<private> vSeed_1: f32;\nvar<private> vDistance_1: f32;\nvar<private> outColor: vec4<f32>;\n\nfn mediumColor_u0028_() -> vec3<f32> {\n let _e68 = unnamed.uFogColor;\n let _e70 = unnamed.uUnderwaterColor;\n let _e72 = unnamed.uUnderwaterFactor;\n return mix(_e68, _e70, vec3(_e72));\n}\n\nfn mediumFog_u0028_f1_u003b_f1_u003b(dist: ptr<function, f32>, pointY: ptr<function, f32>) -> f32 {\n var span: f32;\n var ramp: f32;\n var wetLinear: f32;\n var start: f32;\n var before: f32;\n var local: f32;\n var t: f32;\n var rest: f32;\n var denom: f32;\n var air: f32;\n var wet: f32;\n\n let _e81 = unnamed.uFogMode;\n if (_e81 == 1i) {\n let _e84 = unnamed.uFogFar;\n let _e86 = unnamed.uFogNear;\n span = max((_e84 - _e86), 0.0001f);\n let _e89 = (*dist);\n let _e91 = unnamed.uFogNear;\n let _e93 = span;\n ramp = clamp(((_e89 - _e91) / _e93), 0f, 1f);\n let _e97 = unnamed.uUnderwaterFactor;\n if (_e97 <= 0f) {\n let _e99 = ramp;\n return _e99;\n }\n let _e101 = unnamed.uUnderwaterFogDensity;\n let _e102 = (*dist);\n wetLinear = (_e101 * _e102);\n let _e104 = ramp;\n let _e105 = wetLinear;\n let _e107 = wetLinear;\n let _e113 = unnamed.uUnderwaterFactor;\n return mix(_e104, (1f - exp2(((-(_e105) * _e107) * 1.442695f))), _e113);\n }\n let _e116 = unnamed.uFogNear;\n let _e117 = (*dist);\n start = min(_e116, _e117);\n let _e119 = (*dist);\n if (_e119 > 0f) {\n let _e121 = start;\n let _e122 = (*dist);\n local = (_e121 / _e122);\n } else {\n local = 0f;\n }\n let _e124 = local;\n before = _e124;\n let _e125 = (*pointY);\n let _e127 = unnamed.uFogEyeY;\n let _e130 = unnamed.uFogHeightFalloff;\n t = ((_e125 - _e127) * _e130);\n let _e132 = t;\n let _e133 = before;\n rest = (_e132 * (1f - _e133));\n let _e136 = rest;\n let _e139 = rest;\n denom = select(_e139, 0.0001f, (abs(_e136) < 0.0001f));\n let _e142 = unnamed.uFogDensity;\n let _e144 = t;\n let _e146 = before;\n let _e150 = (*dist);\n let _e151 = start;\n let _e154 = denom;\n let _e159 = denom;\n air = (1f - exp(((((-(_e142) * exp((-(_e144) * _e146))) * (_e150 - _e151)) * (1f - exp(-(_e154)))) / _e159)));\n let _e164 = unnamed.uUnderwaterFactor;\n if (_e164 <= 0f) {\n let _e166 = air;\n return _e166;\n }\n let _e168 = unnamed.uUnderwaterFogDensity;\n let _e169 = (*dist);\n wet = (_e168 * _e169);\n let _e171 = air;\n let _e172 = wet;\n let _e174 = wet;\n let _e180 = unnamed.uUnderwaterFactor;\n return mix(_e171, (1f - exp2(((-(_e172) * _e174) * 1.442695f))), _e180);\n}\n\nfn hash21_u0028_vf2_u003b(p: ptr<function, vec2<f32>>) -> f32 {\n let _e68 = (*p);\n return fract((sin(dot(_e68, vec2<f32>(127.1f, 311.7f))) * 43758.547f));\n}\n\nfn valueNoise_u0028_vf2_u003b(p_1: ptr<function, vec2<f32>>) -> f32 {\n var i: vec2<f32>;\n var f: vec2<f32>;\n var u: vec2<f32>;\n var param: vec2<f32>;\n var param_1: vec2<f32>;\n var param_2: vec2<f32>;\n var param_3: vec2<f32>;\n\n let _e75 = (*p_1);\n i = floor(_e75);\n let _e77 = (*p_1);\n f = fract(_e77);\n let _e79 = f;\n let _e80 = f;\n let _e82 = f;\n u = ((_e79 * _e80) * (vec2(3f) - (_e82 * 2f)));\n let _e87 = i;\n param = _e87;\n let _e88 = hash21_u0028_vf2_u003b((&param));\n let _e89 = i;\n param_1 = (_e89 + vec2<f32>(1f, 0f));\n let _e91 = hash21_u0028_vf2_u003b((&param_1));\n let _e93 = u[0u];\n let _e95 = i;\n param_2 = (_e95 + vec2<f32>(0f, 1f));\n let _e97 = hash21_u0028_vf2_u003b((&param_2));\n let _e98 = i;\n param_3 = (_e98 + vec2<f32>(1f, 1f));\n let _e100 = hash21_u0028_vf2_u003b((&param_3));\n let _e102 = u[0u];\n let _e105 = u[1u];\n return mix(mix(_e88, _e91, _e93), mix(_e97, _e100, _e102), _e105);\n}\n\nfn turbulence_u0028_vf2_u003b_f1_u003b(p_2: ptr<function, vec2<f32>>, t_1: ptr<function, f32>) -> f32 {\n var v: f32;\n var param_4: vec2<f32>;\n var param_5: vec2<f32>;\n var param_6: vec2<f32>;\n\n let _e73 = (*p_2);\n let _e75 = (*t_1);\n param_4 = ((_e73 * 3f) + vec2<f32>(0f, (-(_e75) * 1.9f)));\n let _e80 = valueNoise_u0028_vf2_u003b((&param_4));\n v = (_e80 * 0.55f);\n let _e83 = unnamed.uNoiseOctaves;\n if (_e83 == 1i) {\n let _e85 = v;\n return (_e85 / 0.55f);\n }\n let _e87 = (*p_2);\n let _e89 = (*t_1);\n let _e91 = (*t_1);\n param_5 = ((_e87 * 6.5f) + vec2<f32>((_e89 * 0.3f), (-(_e91) * 3.1f)));\n let _e96 = valueNoise_u0028_vf2_u003b((&param_5));\n let _e98 = v;\n v = (_e98 + (_e96 * 0.28f));\n let _e101 = unnamed.uNoiseOctaves;\n if (_e101 == 2i) {\n let _e103 = v;\n return (_e103 / 0.83f);\n }\n let _e105 = v;\n let _e106 = (*p_2);\n let _e108 = (*t_1);\n let _e111 = (*t_1);\n param_6 = ((_e106 * 13f) + vec2<f32>((-(_e108) * 0.2f), (-(_e111) * 4.6f)));\n let _e116 = valueNoise_u0028_vf2_u003b((&param_6));\n return (_e105 + (_e116 * 0.17f));\n}\n\nfn main_1() {\n var uv: vec2<f32>;\n var t_2: f32;\n var sides: f32;\n var taper: f32;\n var sway: f32;\n var param_7: vec2<f32>;\n var p_3: vec2<f32>;\n var n: f32;\n var param_8: vec2<f32>;\n var param_9: f32;\n var body: f32;\n var heat: f32;\n var col: vec3<f32>;\n var alpha: f32;\n var fog: f32;\n var param_10: f32;\n var param_11: f32;\n var phi_341_: bool;\n\n let _e85 = unnamed.uClipEnabled;\n let _e86 = (_e85 != 0i);\n phi_341_ = _e86;\n if _e86 {\n let _e87 = vWorldPos_1;\n let _e93 = unnamed.uClipPlane;\n phi_341_ = (dot(vec4<f32>(_e87.x, _e87.y, _e87.z, 1f), _e93) < 0f);\n }\n let _e97 = phi_341_;\n if _e97 {\n discard;\n }\n let _e98 = vUv_1;\n uv = _e98;\n let _e100 = unnamed.uTime;\n let _e101 = vSeed_1;\n t_2 = (_e100 + (_e101 * 37f));\n let _e105 = uv[0u];\n sides = (1f - (abs((_e105 - 0.5f)) * 2f));\n let _e110 = sides;\n let _e112 = uv[1u];\n taper = (_e110 * (1f - (_e112 * 0.72f)));\n let _e116 = taper;\n if (_e116 <= 0f) {\n discard;\n }\n let _e118 = t_2;\n let _e120 = vSeed_1;\n param_7 = vec2<f32>((_e118 * 0.55f), (_e120 * 11f));\n let _e123 = valueNoise_u0028_vf2_u003b((&param_7));\n let _e127 = uv[1u];\n sway = (((_e123 - 0.5f) * 0.34f) * _e127);\n let _e130 = uv[0u];\n let _e131 = sway;\n let _e134 = uv[1u];\n p_3 = vec2<f32>((_e130 + _e131), _e134);\n let _e136 = p_3;\n param_8 = _e136;\n let _e137 = t_2;\n param_9 = _e137;\n let _e138 = turbulence_u0028_vf2_u003b_f1_u003b((&param_8), (&param_9));\n n = _e138;\n let _e139 = n;\n let _e140 = taper;\n let _e144 = uv[1u];\n body = (((_e139 * _e140) * 1.9f) - (_e144 * 0.55f));\n let _e147 = body;\n if (_e147 <= 0.02f) {\n discard;\n }\n let _e149 = body;\n heat = clamp((_e149 * 1.5f), 0f, 1f);\n let _e152 = heat;\n col = mix(vec3<f32>(0.62f, 0.06f, 0.02f), vec3<f32>(1f, 0.45f, 0.06f), vec3(smoothstep(0f, 0.45f, _e152)));\n let _e156 = col;\n let _e157 = heat;\n col = mix(_e156, vec3<f32>(1f, 0.85f, 0.35f), vec3(smoothstep(0.45f, 0.75f, _e157)));\n let _e161 = col;\n let _e162 = heat;\n col = mix(_e161, vec3<f32>(1f, 0.98f, 0.88f), vec3(smoothstep(0.78f, 1f, _e162)));\n let _e166 = body;\n let _e170 = uv[1u];\n alpha = (clamp((_e166 * 2.2f), 0f, 1f) * (1f - smoothstep(0.72f, 1f, _e170)));\n let _e174 = vDistance_1;\n param_10 = _e174;\n let _e176 = vWorldPos_1[1u];\n param_11 = _e176;\n let _e177 = mediumFog_u0028_f1_u003b_f1_u003b((&param_10), (&param_11));\n fog = _e177;\n let _e178 = col;\n let _e179 = mediumColor_u0028_();\n let _e180 = fog;\n col = mix(_e178, _e179, vec3(_e180));\n let _e183 = fog;\n let _e185 = alpha;\n alpha = (_e185 * (1f - _e183));\n let _e187 = col;\n let _e188 = alpha;\n outColor = vec4<f32>(_e187.x, _e187.y, _e187.z, _e188);\n return;\n}\n\n@fragment \nfn main(@location(3) vWorldPos: vec3<f32>, @location(0) vUv: vec2<f32>, @location(1) vSeed: f32, @location(2) vDistance: f32) -> @location(0) vec4<f32> {\n vWorldPos_1 = vWorldPos;\n vUv_1 = vUv;\n vSeed_1 = vSeed;\n vDistance_1 = vDistance;\n main_1();\n let _e9 = outColor;\n return _e9;\n}\n";
8
8
  export const PLUME_VERT_WGSL = "struct Uniforms {\n uViewProj: mat4x4<f32>,\n uCameraPos: vec3<f32>,\n uTime: f32,\n uSizePulse: f32,\n uWind: vec2<f32>,\n uOrigin: vec3<f32>,\n uWindResponse: f32,\n}\n\nstruct gl_PerVertex {\n @builtin(position) gl_Position: vec4<f32>,\n gl_PointSize: f32,\n}\n\nstruct VertexOutput {\n @location(0) member: vec2<f32>,\n @location(1) member_1: f32,\n @location(2) member_2: f32,\n @location(3) member_3: vec3<f32>,\n @builtin(position) gl_Position: vec4<f32>,\n}\n\n@group(0) @binding(0) \nvar<uniform> unnamed: Uniforms;\nvar<private> aCenter_1: vec3<f32>;\nvar<private> aSeed_1: f32;\nvar<private> aBlade_1: f32;\nvar<private> aSize_1: vec2<f32>;\nvar<private> aCorner_1: vec2<f32>;\nvar<private> vUv: vec2<f32>;\nvar<private> vSeed: f32;\nvar<private> vDistance: f32;\nvar<private> vWorldPos: vec3<f32>;\nvar<private> unnamed_1: gl_PerVertex = gl_PerVertex(vec4<f32>(0f, 0f, 0f, 1f), 1f);\n\nfn sizePulse_u0028_f1_u003b(seed: ptr<function, f32>) -> f32 {\n let _e35 = unnamed.uSizePulse;\n let _e37 = unnamed.uTime;\n let _e39 = (*seed);\n let _e45 = unnamed.uTime;\n let _e47 = (*seed);\n return (1f + (_e35 * ((sin(((_e37 * 1.7f) + (_e39 * 9.1f))) * 0.62f) + (sin(((_e45 * 3.3f) + (_e47 * 4.7f))) * 0.38f))));\n}\n\nfn main_1() {\n var anchor: vec3<f32>;\n var up: vec3<f32>;\n var yaw: f32;\n var right: vec3<f32>;\n var pulse: f32;\n var param: f32;\n var size: vec2<f32>;\n var rise: f32;\n var world: vec3<f32>;\n\n let _e42 = aCenter_1;\n let _e44 = unnamed.uOrigin;\n anchor = (_e42 + _e44);\n up = vec3<f32>(0f, 1f, 0f);\n let _e46 = aSeed_1;\n let _e48 = aBlade_1;\n yaw = ((_e46 * 6.2831855f) + (_e48 * 1.5707964f));\n let _e51 = yaw;\n let _e53 = yaw;\n right = vec3<f32>(cos(_e51), 0f, sin(_e53));\n let _e56 = aSeed_1;\n param = _e56;\n let _e57 = sizePulse_u0028_f1_u003b((&param));\n pulse = _e57;\n let _e59 = aSize_1[0u];\n let _e60 = pulse;\n let _e64 = aSize_1[1u];\n let _e65 = pulse;\n size = vec2<f32>((_e59 * mix(1f, _e60, 0.55f)), (_e64 * _e65));\n let _e69 = aCorner_1[1u];\n rise = ((_e69 * 0.5f) + 0.5f);\n let _e72 = anchor;\n let _e73 = right;\n let _e75 = aCorner_1[0u];\n let _e77 = size[0u];\n let _e81 = up;\n let _e82 = rise;\n let _e84 = size[1u];\n world = ((_e72 + (_e73 * (_e75 * _e77))) + (_e81 * (_e82 * _e84)));\n let _e89 = unnamed.uWind;\n let _e91 = unnamed.uWindResponse;\n let _e92 = rise;\n let _e94 = rise;\n let _e97 = size[1u];\n let _e100 = world;\n let _e102 = (_e100.xz + (_e89 * (((_e91 * _e92) * _e94) * _e97)));\n let _e103 = world;\n world = vec3<f32>(_e102.x, _e103.y, _e102.y);\n let _e109 = aCorner_1[0u];\n let _e113 = aCorner_1[1u];\n vUv = vec2<f32>(((_e109 * 0.5f) + 0.5f), ((_e113 * 0.5f) + 0.5f));\n let _e117 = aSeed_1;\n vSeed = _e117;\n let _e118 = world;\n let _e120 = unnamed.uCameraPos;\n vDistance = distance(_e118, _e120);\n let _e122 = world;\n vWorldPos = _e122;\n let _e124 = unnamed.uViewProj;\n let _e125 = world;\n unnamed_1.gl_Position = (_e124 * vec4<f32>(_e125.x, _e125.y, _e125.z, 1f));\n return;\n}\n\n@vertex \nfn main(@location(0) aCenter: vec3<f32>, @location(3) aSeed: f32, @location(4) aBlade: f32, @location(2) aSize: vec2<f32>, @location(1) aCorner: vec2<f32>) -> VertexOutput {\n aCenter_1 = aCenter;\n aSeed_1 = aSeed;\n aBlade_1 = aBlade;\n aSize_1 = aSize;\n aCorner_1 = aCorner;\n main_1();\n let _e17 = unnamed_1.gl_Position.y;\n unnamed_1.gl_Position.y = -(_e17);\n let _e19 = vUv;\n let _e20 = vSeed;\n let _e21 = vDistance;\n let _e22 = vWorldPos;\n let _e23 = unnamed_1.gl_Position;\n return VertexOutput(_e19, _e20, _e21, _e22, _e23);\n}\n";
9
9
  /**
10
10
  * What the transform assigned, so the renderer binds the same numbers.
@@ -11,7 +11,7 @@ export declare const FLAT_BINDINGS: {
11
11
  readonly flatFrag: {
12
12
  readonly none: {
13
13
  readonly uniforms: 1;
14
- readonly uniformSize: 3664;
14
+ readonly uniformSize: 3904;
15
15
  readonly fields: {
16
16
  readonly uSeeThrough: {
17
17
  readonly offset: 0;
@@ -379,6 +379,13 @@ export declare const FLAT_BINDINGS: {
379
379
  readonly length: 2;
380
380
  readonly stride: 16;
381
381
  };
382
+ readonly uOverlay: {
383
+ readonly offset: 3664;
384
+ readonly size: 240;
385
+ readonly type: "vec4";
386
+ readonly length: 15;
387
+ readonly stride: 16;
388
+ };
382
389
  };
383
390
  readonly textures: {
384
391
  readonly uRefractScene: {
@@ -453,11 +460,15 @@ export declare const FLAT_BINDINGS: {
453
460
  readonly SKIN_DIFFUSE: 10;
454
461
  readonly SKIN_ALBEDO: 11;
455
462
  readonly MODEL_LIGHTMAP: 12;
463
+ readonly PHYSICAL_SPECULAR: 13;
464
+ readonly SURFACE_OVERLAY: 14;
465
+ readonly REFLECTION_SURFACE: 15;
466
+ readonly REFLECTION_MAPS: 16;
456
467
  };
457
468
  };
458
469
  readonly pointShadows: {
459
470
  readonly uniforms: 1;
460
- readonly uniformSize: 6736;
471
+ readonly uniformSize: 6976;
461
472
  readonly fields: {
462
473
  readonly uSeeThrough: {
463
474
  readonly offset: 0;
@@ -951,6 +962,13 @@ export declare const FLAT_BINDINGS: {
951
962
  readonly length: 2;
952
963
  readonly stride: 16;
953
964
  };
965
+ readonly uOverlay: {
966
+ readonly offset: 6736;
967
+ readonly size: 240;
968
+ readonly type: "vec4";
969
+ readonly length: 15;
970
+ readonly stride: 16;
971
+ };
954
972
  };
955
973
  readonly textures: {
956
974
  readonly uRefractScene: {
@@ -1037,11 +1055,15 @@ export declare const FLAT_BINDINGS: {
1037
1055
  readonly SKIN_DIFFUSE: 10;
1038
1056
  readonly SKIN_ALBEDO: 11;
1039
1057
  readonly MODEL_LIGHTMAP: 12;
1058
+ readonly PHYSICAL_SPECULAR: 13;
1059
+ readonly SURFACE_OVERLAY: 14;
1060
+ readonly REFLECTION_SURFACE: 15;
1061
+ readonly REFLECTION_MAPS: 16;
1040
1062
  };
1041
1063
  };
1042
1064
  readonly directionalShadows: {
1043
1065
  readonly uniforms: 1;
1044
- readonly uniformSize: 3696;
1066
+ readonly uniformSize: 3936;
1045
1067
  readonly fields: {
1046
1068
  readonly uSeeThrough: {
1047
1069
  readonly offset: 0;
@@ -1439,6 +1461,13 @@ export declare const FLAT_BINDINGS: {
1439
1461
  readonly length: 2;
1440
1462
  readonly stride: 16;
1441
1463
  };
1464
+ readonly uOverlay: {
1465
+ readonly offset: 3696;
1466
+ readonly size: 240;
1467
+ readonly type: "vec4";
1468
+ readonly length: 15;
1469
+ readonly stride: 16;
1470
+ };
1442
1471
  };
1443
1472
  readonly textures: {
1444
1473
  readonly uRefractScene: {
@@ -1525,11 +1554,15 @@ export declare const FLAT_BINDINGS: {
1525
1554
  readonly SKIN_DIFFUSE: 10;
1526
1555
  readonly SKIN_ALBEDO: 11;
1527
1556
  readonly MODEL_LIGHTMAP: 12;
1557
+ readonly PHYSICAL_SPECULAR: 13;
1558
+ readonly SURFACE_OVERLAY: 14;
1559
+ readonly REFLECTION_SURFACE: 15;
1560
+ readonly REFLECTION_MAPS: 16;
1528
1561
  };
1529
1562
  };
1530
1563
  readonly "directionalShadows+pointShadows": {
1531
1564
  readonly uniforms: 1;
1532
- readonly uniformSize: 6768;
1565
+ readonly uniformSize: 7008;
1533
1566
  readonly fields: {
1534
1567
  readonly uSeeThrough: {
1535
1568
  readonly offset: 0;
@@ -2053,6 +2086,13 @@ export declare const FLAT_BINDINGS: {
2053
2086
  readonly length: 2;
2054
2087
  readonly stride: 16;
2055
2088
  };
2089
+ readonly uOverlay: {
2090
+ readonly offset: 6768;
2091
+ readonly size: 240;
2092
+ readonly type: "vec4";
2093
+ readonly length: 15;
2094
+ readonly stride: 16;
2095
+ };
2056
2096
  };
2057
2097
  readonly textures: {
2058
2098
  readonly uRefractScene: {
@@ -2151,11 +2191,15 @@ export declare const FLAT_BINDINGS: {
2151
2191
  readonly SKIN_DIFFUSE: 10;
2152
2192
  readonly SKIN_ALBEDO: 11;
2153
2193
  readonly MODEL_LIGHTMAP: 12;
2194
+ readonly PHYSICAL_SPECULAR: 13;
2195
+ readonly SURFACE_OVERLAY: 14;
2196
+ readonly REFLECTION_SURFACE: 15;
2197
+ readonly REFLECTION_MAPS: 16;
2154
2198
  };
2155
2199
  };
2156
2200
  readonly environmentProbe: {
2157
2201
  readonly uniforms: 1;
2158
- readonly uniformSize: 3744;
2202
+ readonly uniformSize: 3984;
2159
2203
  readonly fields: {
2160
2204
  readonly uSeeThrough: {
2161
2205
  readonly offset: 0;
@@ -2573,6 +2617,13 @@ export declare const FLAT_BINDINGS: {
2573
2617
  readonly length: 2;
2574
2618
  readonly stride: 16;
2575
2619
  };
2620
+ readonly uOverlay: {
2621
+ readonly offset: 3744;
2622
+ readonly size: 240;
2623
+ readonly type: "vec4";
2624
+ readonly length: 15;
2625
+ readonly stride: 16;
2626
+ };
2576
2627
  };
2577
2628
  readonly textures: {
2578
2629
  readonly uRefractScene: {
@@ -2652,11 +2703,15 @@ export declare const FLAT_BINDINGS: {
2652
2703
  readonly SKIN_DIFFUSE: 10;
2653
2704
  readonly SKIN_ALBEDO: 11;
2654
2705
  readonly MODEL_LIGHTMAP: 12;
2706
+ readonly PHYSICAL_SPECULAR: 13;
2707
+ readonly SURFACE_OVERLAY: 14;
2708
+ readonly REFLECTION_SURFACE: 15;
2709
+ readonly REFLECTION_MAPS: 16;
2655
2710
  };
2656
2711
  };
2657
2712
  readonly "environmentProbe+pointShadows": {
2658
2713
  readonly uniforms: 1;
2659
- readonly uniformSize: 6816;
2714
+ readonly uniformSize: 7056;
2660
2715
  readonly fields: {
2661
2716
  readonly uSeeThrough: {
2662
2717
  readonly offset: 0;
@@ -3200,6 +3255,13 @@ export declare const FLAT_BINDINGS: {
3200
3255
  readonly length: 2;
3201
3256
  readonly stride: 16;
3202
3257
  };
3258
+ readonly uOverlay: {
3259
+ readonly offset: 6816;
3260
+ readonly size: 240;
3261
+ readonly type: "vec4";
3262
+ readonly length: 15;
3263
+ readonly stride: 16;
3264
+ };
3203
3265
  };
3204
3266
  readonly textures: {
3205
3267
  readonly uRefractScene: {
@@ -3291,11 +3353,15 @@ export declare const FLAT_BINDINGS: {
3291
3353
  readonly SKIN_DIFFUSE: 10;
3292
3354
  readonly SKIN_ALBEDO: 11;
3293
3355
  readonly MODEL_LIGHTMAP: 12;
3356
+ readonly PHYSICAL_SPECULAR: 13;
3357
+ readonly SURFACE_OVERLAY: 14;
3358
+ readonly REFLECTION_SURFACE: 15;
3359
+ readonly REFLECTION_MAPS: 16;
3294
3360
  };
3295
3361
  };
3296
3362
  readonly "directionalShadows+environmentProbe": {
3297
3363
  readonly uniforms: 1;
3298
- readonly uniformSize: 3776;
3364
+ readonly uniformSize: 4016;
3299
3365
  readonly fields: {
3300
3366
  readonly uSeeThrough: {
3301
3367
  readonly offset: 0;
@@ -3743,6 +3809,13 @@ export declare const FLAT_BINDINGS: {
3743
3809
  readonly length: 2;
3744
3810
  readonly stride: 16;
3745
3811
  };
3812
+ readonly uOverlay: {
3813
+ readonly offset: 3776;
3814
+ readonly size: 240;
3815
+ readonly type: "vec4";
3816
+ readonly length: 15;
3817
+ readonly stride: 16;
3818
+ };
3746
3819
  };
3747
3820
  readonly textures: {
3748
3821
  readonly uRefractScene: {
@@ -3834,11 +3907,15 @@ export declare const FLAT_BINDINGS: {
3834
3907
  readonly SKIN_DIFFUSE: 10;
3835
3908
  readonly SKIN_ALBEDO: 11;
3836
3909
  readonly MODEL_LIGHTMAP: 12;
3910
+ readonly PHYSICAL_SPECULAR: 13;
3911
+ readonly SURFACE_OVERLAY: 14;
3912
+ readonly REFLECTION_SURFACE: 15;
3913
+ readonly REFLECTION_MAPS: 16;
3837
3914
  };
3838
3915
  };
3839
3916
  readonly "directionalShadows+environmentProbe+pointShadows": {
3840
3917
  readonly uniforms: 1;
3841
- readonly uniformSize: 6848;
3918
+ readonly uniformSize: 7088;
3842
3919
  readonly fields: {
3843
3920
  readonly uSeeThrough: {
3844
3921
  readonly offset: 0;
@@ -4412,6 +4489,13 @@ export declare const FLAT_BINDINGS: {
4412
4489
  readonly length: 2;
4413
4490
  readonly stride: 16;
4414
4491
  };
4492
+ readonly uOverlay: {
4493
+ readonly offset: 6848;
4494
+ readonly size: 240;
4495
+ readonly type: "vec4";
4496
+ readonly length: 15;
4497
+ readonly stride: 16;
4498
+ };
4415
4499
  };
4416
4500
  readonly textures: {
4417
4501
  readonly uRefractScene: {
@@ -4515,11 +4599,15 @@ export declare const FLAT_BINDINGS: {
4515
4599
  readonly SKIN_DIFFUSE: 10;
4516
4600
  readonly SKIN_ALBEDO: 11;
4517
4601
  readonly MODEL_LIGHTMAP: 12;
4602
+ readonly PHYSICAL_SPECULAR: 13;
4603
+ readonly SURFACE_OVERLAY: 14;
4604
+ readonly REFLECTION_SURFACE: 15;
4605
+ readonly REFLECTION_MAPS: 16;
4518
4606
  };
4519
4607
  };
4520
4608
  readonly nightEmissive: {
4521
4609
  readonly uniforms: 1;
4522
- readonly uniformSize: 3664;
4610
+ readonly uniformSize: 3904;
4523
4611
  readonly fields: {
4524
4612
  readonly uSeeThrough: {
4525
4613
  readonly offset: 0;
@@ -4892,6 +4980,13 @@ export declare const FLAT_BINDINGS: {
4892
4980
  readonly length: 2;
4893
4981
  readonly stride: 16;
4894
4982
  };
4983
+ readonly uOverlay: {
4984
+ readonly offset: 3664;
4985
+ readonly size: 240;
4986
+ readonly type: "vec4";
4987
+ readonly length: 15;
4988
+ readonly stride: 16;
4989
+ };
4895
4990
  };
4896
4991
  readonly textures: {
4897
4992
  readonly uRefractScene: {
@@ -4966,11 +5061,15 @@ export declare const FLAT_BINDINGS: {
4966
5061
  readonly SKIN_DIFFUSE: 10;
4967
5062
  readonly SKIN_ALBEDO: 11;
4968
5063
  readonly MODEL_LIGHTMAP: 12;
5064
+ readonly PHYSICAL_SPECULAR: 13;
5065
+ readonly SURFACE_OVERLAY: 14;
5066
+ readonly REFLECTION_SURFACE: 15;
5067
+ readonly REFLECTION_MAPS: 16;
4969
5068
  };
4970
5069
  };
4971
5070
  readonly "nightEmissive+pointShadows": {
4972
5071
  readonly uniforms: 1;
4973
- readonly uniformSize: 6736;
5072
+ readonly uniformSize: 6976;
4974
5073
  readonly fields: {
4975
5074
  readonly uSeeThrough: {
4976
5075
  readonly offset: 0;
@@ -5469,6 +5568,13 @@ export declare const FLAT_BINDINGS: {
5469
5568
  readonly length: 2;
5470
5569
  readonly stride: 16;
5471
5570
  };
5571
+ readonly uOverlay: {
5572
+ readonly offset: 6736;
5573
+ readonly size: 240;
5574
+ readonly type: "vec4";
5575
+ readonly length: 15;
5576
+ readonly stride: 16;
5577
+ };
5472
5578
  };
5473
5579
  readonly textures: {
5474
5580
  readonly uRefractScene: {
@@ -5555,11 +5661,15 @@ export declare const FLAT_BINDINGS: {
5555
5661
  readonly SKIN_DIFFUSE: 10;
5556
5662
  readonly SKIN_ALBEDO: 11;
5557
5663
  readonly MODEL_LIGHTMAP: 12;
5664
+ readonly PHYSICAL_SPECULAR: 13;
5665
+ readonly SURFACE_OVERLAY: 14;
5666
+ readonly REFLECTION_SURFACE: 15;
5667
+ readonly REFLECTION_MAPS: 16;
5558
5668
  };
5559
5669
  };
5560
5670
  readonly "directionalShadows+nightEmissive": {
5561
5671
  readonly uniforms: 1;
5562
- readonly uniformSize: 3696;
5672
+ readonly uniformSize: 3936;
5563
5673
  readonly fields: {
5564
5674
  readonly uSeeThrough: {
5565
5675
  readonly offset: 0;
@@ -5962,6 +6072,13 @@ export declare const FLAT_BINDINGS: {
5962
6072
  readonly length: 2;
5963
6073
  readonly stride: 16;
5964
6074
  };
6075
+ readonly uOverlay: {
6076
+ readonly offset: 3696;
6077
+ readonly size: 240;
6078
+ readonly type: "vec4";
6079
+ readonly length: 15;
6080
+ readonly stride: 16;
6081
+ };
5965
6082
  };
5966
6083
  readonly textures: {
5967
6084
  readonly uRefractScene: {
@@ -6048,11 +6165,15 @@ export declare const FLAT_BINDINGS: {
6048
6165
  readonly SKIN_DIFFUSE: 10;
6049
6166
  readonly SKIN_ALBEDO: 11;
6050
6167
  readonly MODEL_LIGHTMAP: 12;
6168
+ readonly PHYSICAL_SPECULAR: 13;
6169
+ readonly SURFACE_OVERLAY: 14;
6170
+ readonly REFLECTION_SURFACE: 15;
6171
+ readonly REFLECTION_MAPS: 16;
6051
6172
  };
6052
6173
  };
6053
6174
  readonly "directionalShadows+nightEmissive+pointShadows": {
6054
6175
  readonly uniforms: 1;
6055
- readonly uniformSize: 6768;
6176
+ readonly uniformSize: 7008;
6056
6177
  readonly fields: {
6057
6178
  readonly uSeeThrough: {
6058
6179
  readonly offset: 0;
@@ -6581,6 +6702,13 @@ export declare const FLAT_BINDINGS: {
6581
6702
  readonly length: 2;
6582
6703
  readonly stride: 16;
6583
6704
  };
6705
+ readonly uOverlay: {
6706
+ readonly offset: 6768;
6707
+ readonly size: 240;
6708
+ readonly type: "vec4";
6709
+ readonly length: 15;
6710
+ readonly stride: 16;
6711
+ };
6584
6712
  };
6585
6713
  readonly textures: {
6586
6714
  readonly uRefractScene: {
@@ -6679,11 +6807,15 @@ export declare const FLAT_BINDINGS: {
6679
6807
  readonly SKIN_DIFFUSE: 10;
6680
6808
  readonly SKIN_ALBEDO: 11;
6681
6809
  readonly MODEL_LIGHTMAP: 12;
6810
+ readonly PHYSICAL_SPECULAR: 13;
6811
+ readonly SURFACE_OVERLAY: 14;
6812
+ readonly REFLECTION_SURFACE: 15;
6813
+ readonly REFLECTION_MAPS: 16;
6682
6814
  };
6683
6815
  };
6684
6816
  readonly "environmentProbe+nightEmissive": {
6685
6817
  readonly uniforms: 1;
6686
- readonly uniformSize: 3744;
6818
+ readonly uniformSize: 3984;
6687
6819
  readonly fields: {
6688
6820
  readonly uSeeThrough: {
6689
6821
  readonly offset: 0;
@@ -7106,6 +7238,13 @@ export declare const FLAT_BINDINGS: {
7106
7238
  readonly length: 2;
7107
7239
  readonly stride: 16;
7108
7240
  };
7241
+ readonly uOverlay: {
7242
+ readonly offset: 3744;
7243
+ readonly size: 240;
7244
+ readonly type: "vec4";
7245
+ readonly length: 15;
7246
+ readonly stride: 16;
7247
+ };
7109
7248
  };
7110
7249
  readonly textures: {
7111
7250
  readonly uRefractScene: {
@@ -7185,11 +7324,15 @@ export declare const FLAT_BINDINGS: {
7185
7324
  readonly SKIN_DIFFUSE: 10;
7186
7325
  readonly SKIN_ALBEDO: 11;
7187
7326
  readonly MODEL_LIGHTMAP: 12;
7327
+ readonly PHYSICAL_SPECULAR: 13;
7328
+ readonly SURFACE_OVERLAY: 14;
7329
+ readonly REFLECTION_SURFACE: 15;
7330
+ readonly REFLECTION_MAPS: 16;
7188
7331
  };
7189
7332
  };
7190
7333
  readonly "environmentProbe+nightEmissive+pointShadows": {
7191
7334
  readonly uniforms: 1;
7192
- readonly uniformSize: 6816;
7335
+ readonly uniformSize: 7056;
7193
7336
  readonly fields: {
7194
7337
  readonly uSeeThrough: {
7195
7338
  readonly offset: 0;
@@ -7738,6 +7881,13 @@ export declare const FLAT_BINDINGS: {
7738
7881
  readonly length: 2;
7739
7882
  readonly stride: 16;
7740
7883
  };
7884
+ readonly uOverlay: {
7885
+ readonly offset: 6816;
7886
+ readonly size: 240;
7887
+ readonly type: "vec4";
7888
+ readonly length: 15;
7889
+ readonly stride: 16;
7890
+ };
7741
7891
  };
7742
7892
  readonly textures: {
7743
7893
  readonly uRefractScene: {
@@ -7829,11 +7979,15 @@ export declare const FLAT_BINDINGS: {
7829
7979
  readonly SKIN_DIFFUSE: 10;
7830
7980
  readonly SKIN_ALBEDO: 11;
7831
7981
  readonly MODEL_LIGHTMAP: 12;
7982
+ readonly PHYSICAL_SPECULAR: 13;
7983
+ readonly SURFACE_OVERLAY: 14;
7984
+ readonly REFLECTION_SURFACE: 15;
7985
+ readonly REFLECTION_MAPS: 16;
7832
7986
  };
7833
7987
  };
7834
7988
  readonly "directionalShadows+environmentProbe+nightEmissive": {
7835
7989
  readonly uniforms: 1;
7836
- readonly uniformSize: 3776;
7990
+ readonly uniformSize: 4016;
7837
7991
  readonly fields: {
7838
7992
  readonly uSeeThrough: {
7839
7993
  readonly offset: 0;
@@ -8286,6 +8440,13 @@ export declare const FLAT_BINDINGS: {
8286
8440
  readonly length: 2;
8287
8441
  readonly stride: 16;
8288
8442
  };
8443
+ readonly uOverlay: {
8444
+ readonly offset: 3776;
8445
+ readonly size: 240;
8446
+ readonly type: "vec4";
8447
+ readonly length: 15;
8448
+ readonly stride: 16;
8449
+ };
8289
8450
  };
8290
8451
  readonly textures: {
8291
8452
  readonly uRefractScene: {
@@ -8377,11 +8538,15 @@ export declare const FLAT_BINDINGS: {
8377
8538
  readonly SKIN_DIFFUSE: 10;
8378
8539
  readonly SKIN_ALBEDO: 11;
8379
8540
  readonly MODEL_LIGHTMAP: 12;
8541
+ readonly PHYSICAL_SPECULAR: 13;
8542
+ readonly SURFACE_OVERLAY: 14;
8543
+ readonly REFLECTION_SURFACE: 15;
8544
+ readonly REFLECTION_MAPS: 16;
8380
8545
  };
8381
8546
  };
8382
8547
  readonly "directionalShadows+environmentProbe+nightEmissive+pointShadows": {
8383
8548
  readonly uniforms: 1;
8384
- readonly uniformSize: 6848;
8549
+ readonly uniformSize: 7088;
8385
8550
  readonly fields: {
8386
8551
  readonly uSeeThrough: {
8387
8552
  readonly offset: 0;
@@ -8960,6 +9125,13 @@ export declare const FLAT_BINDINGS: {
8960
9125
  readonly length: 2;
8961
9126
  readonly stride: 16;
8962
9127
  };
9128
+ readonly uOverlay: {
9129
+ readonly offset: 6848;
9130
+ readonly size: 240;
9131
+ readonly type: "vec4";
9132
+ readonly length: 15;
9133
+ readonly stride: 16;
9134
+ };
8963
9135
  };
8964
9136
  readonly textures: {
8965
9137
  readonly uRefractScene: {
@@ -9063,6 +9235,10 @@ export declare const FLAT_BINDINGS: {
9063
9235
  readonly SKIN_DIFFUSE: 10;
9064
9236
  readonly SKIN_ALBEDO: 11;
9065
9237
  readonly MODEL_LIGHTMAP: 12;
9238
+ readonly PHYSICAL_SPECULAR: 13;
9239
+ readonly SURFACE_OVERLAY: 14;
9240
+ readonly REFLECTION_SURFACE: 15;
9241
+ readonly REFLECTION_MAPS: 16;
9066
9242
  };
9067
9243
  };
9068
9244
  };