@driftengine/core 3.61.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 (955) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +9 -0
  3. package/README.md +9 -0
  4. package/dist/behavior/behaviorTree.d.ts +140 -0
  5. package/dist/behavior/behaviorTree.js +289 -0
  6. package/dist/build/shaderComments.d.ts +64 -0
  7. package/dist/build/shaderComments.js +0 -0
  8. package/dist/cinematic/player.d.ts +80 -0
  9. package/dist/cinematic/player.js +184 -0
  10. package/dist/cinematic/script.d.ts +63 -0
  11. package/dist/cinematic/script.js +141 -0
  12. package/dist/core/bootGate.d.ts +37 -0
  13. package/dist/core/bootGate.js +47 -0
  14. package/dist/core/loadTracker.d.ts +78 -0
  15. package/dist/core/loadTracker.js +106 -0
  16. package/dist/core/loop.d.ts +118 -0
  17. package/dist/core/loop.js +84 -0
  18. package/dist/core/messageQueue.d.ts +61 -0
  19. package/dist/core/messageQueue.js +104 -0
  20. package/dist/core/onceSet.d.ts +27 -0
  21. package/dist/core/onceSet.js +62 -0
  22. package/dist/core/preferences.d.ts +47 -0
  23. package/dist/core/preferences.js +140 -0
  24. package/dist/core/remoteSave.d.ts +154 -0
  25. package/dist/core/remoteSave.js +249 -0
  26. package/dist/core/rng.d.ts +64 -0
  27. package/dist/core/rng.js +72 -0
  28. package/dist/core/stepBudget.d.ts +91 -0
  29. package/dist/core/stepBudget.js +105 -0
  30. package/dist/core/storage.d.ts +52 -0
  31. package/dist/core/storage.js +85 -0
  32. package/dist/core/tickTrace.d.ts +72 -0
  33. package/dist/core/tickTrace.js +102 -0
  34. package/dist/core/timeCurve.d.ts +83 -0
  35. package/dist/core/timeCurve.js +107 -0
  36. package/dist/core/withDefaults.d.ts +21 -0
  37. package/dist/core/withDefaults.js +29 -0
  38. package/dist/dev/contactProbe.d.ts +41 -0
  39. package/dist/dev/contactProbe.js +58 -0
  40. package/dist/dev/fpsMeter.d.ts +45 -0
  41. package/dist/dev/fpsMeter.js +86 -0
  42. package/dist/environment/celestialClock.d.ts +141 -0
  43. package/dist/environment/celestialClock.js +262 -0
  44. package/dist/geometry/decal.d.ts +61 -0
  45. package/dist/geometry/decal.js +178 -0
  46. package/dist/geometry/filmPatch.d.ts +35 -0
  47. package/dist/geometry/filmPatch.js +112 -0
  48. package/dist/geometry/growable.d.ts +70 -0
  49. package/dist/geometry/growable.js +167 -0
  50. package/dist/geometry/lightVolume.d.ts +76 -0
  51. package/dist/geometry/lightVolume.js +65 -0
  52. package/dist/geometry/meshBuilder.d.ts +426 -0
  53. package/dist/geometry/meshBuilder.js +1184 -0
  54. package/dist/geometry/pixelFont.d.ts +59 -0
  55. package/dist/geometry/pixelFont.js +179 -0
  56. package/dist/geometry/ribbon.d.ts +101 -0
  57. package/dist/geometry/ribbon.js +546 -0
  58. package/dist/geometry/shellFill.d.ts +101 -0
  59. package/dist/geometry/shellFill.js +203 -0
  60. package/dist/geometry/spline.d.ts +162 -0
  61. package/dist/geometry/spline.js +527 -0
  62. package/dist/geometry/tangents.d.ts +30 -0
  63. package/dist/geometry/tangents.js +142 -0
  64. package/dist/geometry/textMesh.d.ts +51 -0
  65. package/dist/geometry/textMesh.js +57 -0
  66. package/dist/geometry/treeBuilder.d.ts +37 -0
  67. package/dist/geometry/treeBuilder.js +56 -0
  68. package/dist/host/display.d.ts +135 -0
  69. package/dist/host/display.js +114 -0
  70. package/dist/host/files.d.ts +25 -0
  71. package/dist/host/files.js +44 -0
  72. package/dist/host/lifecycle.d.ts +45 -0
  73. package/dist/host/lifecycle.js +28 -0
  74. package/dist/host/platformServices.d.ts +23 -0
  75. package/dist/host/platformServices.js +1 -0
  76. package/dist/host/screen.d.ts +49 -0
  77. package/dist/host/screen.js +90 -0
  78. package/dist/index.d.ts +289 -0
  79. package/dist/index.js +320 -0
  80. package/dist/input/actionMap.d.ts +181 -0
  81. package/dist/input/actionMap.js +314 -0
  82. package/dist/input/activeDevice.d.ts +55 -0
  83. package/dist/input/activeDevice.js +83 -0
  84. package/dist/input/gamepadIdentity.d.ts +43 -0
  85. package/dist/input/gamepadIdentity.js +108 -0
  86. package/dist/input/gamepadMapping.d.ts +56 -0
  87. package/dist/input/gamepadMapping.js +91 -0
  88. package/dist/input/input.d.ts +281 -0
  89. package/dist/input/input.js +703 -0
  90. package/dist/input/inputHarness.d.ts +42 -0
  91. package/dist/input/inputHarness.js +193 -0
  92. package/dist/input/rightGesture.d.ts +57 -0
  93. package/dist/input/rightGesture.js +49 -0
  94. package/dist/input/rumble.d.ts +71 -0
  95. package/dist/input/rumble.js +119 -0
  96. package/dist/input/touchControls.d.ts +138 -0
  97. package/dist/input/touchControls.js +352 -0
  98. package/dist/input/typingTarget.d.ts +6 -0
  99. package/dist/input/typingTarget.js +27 -0
  100. package/dist/math/bounds.d.ts +61 -0
  101. package/dist/math/bounds.js +121 -0
  102. package/dist/math/color.d.ts +8 -0
  103. package/dist/math/color.js +35 -0
  104. package/dist/math/exact.d.ts +66 -0
  105. package/dist/math/exact.js +262 -0
  106. package/dist/math/frustum.d.ts +44 -0
  107. package/dist/math/frustum.js +90 -0
  108. package/dist/math/intersect.d.ts +76 -0
  109. package/dist/math/intersect.js +185 -0
  110. package/dist/math/scalar.d.ts +51 -0
  111. package/dist/math/scalar.js +99 -0
  112. package/dist/math/spring.d.ts +59 -0
  113. package/dist/math/spring.js +88 -0
  114. package/dist/nav/navGraph.d.ts +71 -0
  115. package/dist/nav/navGraph.js +111 -0
  116. package/dist/nav/navPath.d.ts +93 -0
  117. package/dist/nav/navPath.js +162 -0
  118. package/dist/nav/navSearch.d.ts +74 -0
  119. package/dist/nav/navSearch.js +198 -0
  120. package/dist/physics/boxSurface.d.ts +48 -0
  121. package/dist/physics/boxSurface.js +73 -0
  122. package/dist/physics/colliderSurface.d.ts +46 -0
  123. package/dist/physics/colliderSurface.js +146 -0
  124. package/dist/physics/compositeSurface.d.ts +33 -0
  125. package/dist/physics/compositeSurface.js +108 -0
  126. package/dist/physics/heightSurface.d.ts +103 -0
  127. package/dist/physics/heightSurface.js +153 -0
  128. package/dist/physics/ribbonSurface.d.ts +239 -0
  129. package/dist/physics/ribbonSurface.js +522 -0
  130. package/dist/render/ambientOcclusionPass.d.ts +53 -0
  131. package/dist/render/ambientOcclusionPass.js +179 -0
  132. package/dist/render/areaLights.d.ts +116 -0
  133. package/dist/render/areaLights.js +91 -0
  134. package/dist/render/areaShadowSet.d.ts +184 -0
  135. package/dist/render/areaShadowSet.js +277 -0
  136. package/dist/render/atmosphere.d.ts +94 -0
  137. package/dist/render/atmosphere.js +91 -0
  138. package/dist/render/backend/api.d.ts +496 -0
  139. package/dist/render/backend/api.js +1 -0
  140. package/dist/render/backend/budget.d.ts +82 -0
  141. package/dist/render/backend/budget.js +99 -0
  142. package/dist/render/backend/createRenderer.d.ts +135 -0
  143. package/dist/render/backend/createRenderer.js +201 -0
  144. package/dist/render/backend/deadline.d.ts +24 -0
  145. package/dist/render/backend/deadline.js +38 -0
  146. package/dist/render/backend/probe.d.ts +30 -0
  147. package/dist/render/backend/probe.js +129 -0
  148. package/dist/render/backend/select.d.ts +70 -0
  149. package/dist/render/backend/select.js +249 -0
  150. package/dist/render/backend/timer.d.ts +50 -0
  151. package/dist/render/backend/timer.js +1 -0
  152. package/dist/render/backend/webgl2/instanced.d.ts +21 -0
  153. package/dist/render/backend/webgl2/instanced.js +42 -0
  154. package/dist/render/backend/webgl2/morphTexture.d.ts +21 -0
  155. package/dist/render/backend/webgl2/morphTexture.js +55 -0
  156. package/dist/render/backend/webgl2/renderer.d.ts +3027 -0
  157. package/dist/render/backend/webgl2/renderer.js +6041 -0
  158. package/dist/render/backend/webgl2/skinPaletteTexture.d.ts +32 -0
  159. package/dist/render/backend/webgl2/skinPaletteTexture.js +68 -0
  160. package/dist/render/backend/webgpu/boltPass.d.ts +42 -0
  161. package/dist/render/backend/webgpu/boltPass.js +160 -0
  162. package/dist/render/backend/webgpu/buffers.d.ts +159 -0
  163. package/dist/render/backend/webgpu/buffers.js +402 -0
  164. package/dist/render/backend/webgpu/causticsPass.d.ts +36 -0
  165. package/dist/render/backend/webgpu/causticsPass.js +138 -0
  166. package/dist/render/backend/webgpu/clusterBinner.d.ts +51 -0
  167. package/dist/render/backend/webgpu/clusterBinner.js +206 -0
  168. package/dist/render/backend/webgpu/depthPass.d.ts +114 -0
  169. package/dist/render/backend/webgpu/depthPass.js +228 -0
  170. package/dist/render/backend/webgpu/device.d.ts +52 -0
  171. package/dist/render/backend/webgpu/device.js +121 -0
  172. package/dist/render/backend/webgpu/drawCommand.d.ts +43 -0
  173. package/dist/render/backend/webgpu/drawCommand.js +54 -0
  174. package/dist/render/backend/webgpu/environmentTexels.d.ts +28 -0
  175. package/dist/render/backend/webgpu/environmentTexels.js +79 -0
  176. package/dist/render/backend/webgpu/filmPass.d.ts +29 -0
  177. package/dist/render/backend/webgpu/filmPass.js +97 -0
  178. package/dist/render/backend/webgpu/flatPass.d.ts +213 -0
  179. package/dist/render/backend/webgpu/flatPass.js +482 -0
  180. package/dist/render/backend/webgpu/flockPass.d.ts +34 -0
  181. package/dist/render/backend/webgpu/flockPass.js +129 -0
  182. package/dist/render/backend/webgpu/gpuTimestamps.d.ts +94 -0
  183. package/dist/render/backend/webgpu/gpuTimestamps.js +213 -0
  184. package/dist/render/backend/webgpu/insetPass.d.ts +19 -0
  185. package/dist/render/backend/webgpu/insetPass.js +108 -0
  186. package/dist/render/backend/webgpu/instanced.d.ts +27 -0
  187. package/dist/render/backend/webgpu/instanced.js +49 -0
  188. package/dist/render/backend/webgpu/lightVolumePass.d.ts +75 -0
  189. package/dist/render/backend/webgpu/lightVolumePass.js +154 -0
  190. package/dist/render/backend/webgpu/linePass.d.ts +90 -0
  191. package/dist/render/backend/webgpu/linePass.js +220 -0
  192. package/dist/render/backend/webgpu/morphTexture.d.ts +18 -0
  193. package/dist/render/backend/webgpu/morphTexture.js +51 -0
  194. package/dist/render/backend/webgpu/panelPass.d.ts +37 -0
  195. package/dist/render/backend/webgpu/panelPass.js +114 -0
  196. package/dist/render/backend/webgpu/particlePass.d.ts +89 -0
  197. package/dist/render/backend/webgpu/particlePass.js +280 -0
  198. package/dist/render/backend/webgpu/pipelineCache.d.ts +93 -0
  199. package/dist/render/backend/webgpu/pipelineCache.js +140 -0
  200. package/dist/render/backend/webgpu/plumePass.d.ts +69 -0
  201. package/dist/render/backend/webgpu/plumePass.js +213 -0
  202. package/dist/render/backend/webgpu/pointShadowPass.d.ts +88 -0
  203. package/dist/render/backend/webgpu/pointShadowPass.js +280 -0
  204. package/dist/render/backend/webgpu/postPass.d.ts +342 -0
  205. package/dist/render/backend/webgpu/postPass.js +366 -0
  206. package/dist/render/backend/webgpu/probePass.d.ts +108 -0
  207. package/dist/render/backend/webgpu/probePass.js +188 -0
  208. package/dist/render/backend/webgpu/reflectionPass.d.ts +29 -0
  209. package/dist/render/backend/webgpu/reflectionPass.js +87 -0
  210. package/dist/render/backend/webgpu/renderer.d.ts +3082 -0
  211. package/dist/render/backend/webgpu/renderer.js +10911 -0
  212. package/dist/render/backend/webgpu/scatterPass.d.ts +95 -0
  213. package/dist/render/backend/webgpu/scatterPass.js +266 -0
  214. package/dist/render/backend/webgpu/sdfTextPass.d.ts +86 -0
  215. package/dist/render/backend/webgpu/sdfTextPass.js +190 -0
  216. package/dist/render/backend/webgpu/shaderModules.d.ts +9 -0
  217. package/dist/render/backend/webgpu/shaderModules.js +45 -0
  218. package/dist/render/backend/webgpu/shaders/clusterBin.wgsl.d.ts +23 -0
  219. package/dist/render/backend/webgpu/shaders/clusterBin.wgsl.js +208 -0
  220. package/dist/render/backend/webgpu/skinPaletteRing.d.ts +67 -0
  221. package/dist/render/backend/webgpu/skinPaletteRing.js +97 -0
  222. package/dist/render/backend/webgpu/skinPaletteTexture.d.ts +17 -0
  223. package/dist/render/backend/webgpu/skinPaletteTexture.js +68 -0
  224. package/dist/render/backend/webgpu/skyPass.d.ts +102 -0
  225. package/dist/render/backend/webgpu/skyPass.js +70 -0
  226. package/dist/render/backend/webgpu/surfaceTexturePass.d.ts +41 -0
  227. package/dist/render/backend/webgpu/surfaceTexturePass.js +228 -0
  228. package/dist/render/backend/webgpu/textPass.d.ts +73 -0
  229. package/dist/render/backend/webgpu/textPass.js +190 -0
  230. package/dist/render/backend/webgpu/uniformRing.d.ts +133 -0
  231. package/dist/render/backend/webgpu/uniformRing.js +208 -0
  232. package/dist/render/backend/webgpu/waterPass.d.ts +73 -0
  233. package/dist/render/backend/webgpu/waterPass.js +160 -0
  234. package/dist/render/backend/webgpu/windStreakPass.d.ts +46 -0
  235. package/dist/render/backend/webgpu/windStreakPass.js +153 -0
  236. package/dist/render/billboard.d.ts +27 -0
  237. package/dist/render/billboard.js +79 -0
  238. package/dist/render/bloomChain.d.ts +66 -0
  239. package/dist/render/bloomChain.js +83 -0
  240. package/dist/render/bloomPass.d.ts +54 -0
  241. package/dist/render/bloomPass.js +219 -0
  242. package/dist/render/boltBatch.d.ts +39 -0
  243. package/dist/render/boltBatch.js +121 -0
  244. package/dist/render/boltPool.d.ts +135 -0
  245. package/dist/render/boltPool.js +259 -0
  246. package/dist/render/boom.d.ts +46 -0
  247. package/dist/render/boom.js +81 -0
  248. package/dist/render/camera.d.ts +119 -0
  249. package/dist/render/camera.js +304 -0
  250. package/dist/render/causticsRenderer.d.ts +63 -0
  251. package/dist/render/causticsRenderer.js +119 -0
  252. package/dist/render/cinematicCamera.d.ts +102 -0
  253. package/dist/render/cinematicCamera.js +227 -0
  254. package/dist/render/clusteredLights.d.ts +260 -0
  255. package/dist/render/clusteredLights.js +479 -0
  256. package/dist/render/colourGrade.d.ts +62 -0
  257. package/dist/render/colourGrade.js +91 -0
  258. package/dist/render/compute.d.ts +74 -0
  259. package/dist/render/compute.js +8 -0
  260. package/dist/render/contextLoss.d.ts +32 -0
  261. package/dist/render/contextLoss.js +46 -0
  262. package/dist/render/debugLines.d.ts +75 -0
  263. package/dist/render/debugLines.js +281 -0
  264. package/dist/render/decalPass.d.ts +34 -0
  265. package/dist/render/decalPass.js +103 -0
  266. package/dist/render/decalProjector.d.ts +140 -0
  267. package/dist/render/decalProjector.js +282 -0
  268. package/dist/render/decalQueue.d.ts +53 -0
  269. package/dist/render/decalQueue.js +87 -0
  270. package/dist/render/depthConvention.d.ts +314 -0
  271. package/dist/render/depthConvention.js +346 -0
  272. package/dist/render/drawingBuffer.d.ts +52 -0
  273. package/dist/render/drawingBuffer.js +67 -0
  274. package/dist/render/emptyTexture.d.ts +60 -0
  275. package/dist/render/emptyTexture.js +103 -0
  276. package/dist/render/envProbeArray.d.ts +85 -0
  277. package/dist/render/envProbeArray.js +164 -0
  278. package/dist/render/equirectToCube.d.ts +54 -0
  279. package/dist/render/equirectToCube.js +123 -0
  280. package/dist/render/flockGeometry.d.ts +23 -0
  281. package/dist/render/flockGeometry.js +43 -0
  282. package/dist/render/flockRenderer.d.ts +37 -0
  283. package/dist/render/flockRenderer.js +70 -0
  284. package/dist/render/frame/arena.d.ts +32 -0
  285. package/dist/render/frame/arena.js +65 -0
  286. package/dist/render/frame/index.d.ts +18 -0
  287. package/dist/render/frame/index.js +4 -0
  288. package/dist/render/frame/replay.d.ts +34 -0
  289. package/dist/render/frame/replay.js +48 -0
  290. package/dist/render/frame/resources.d.ts +25 -0
  291. package/dist/render/frame/resources.js +55 -0
  292. package/dist/render/frame/schedule.d.ts +37 -0
  293. package/dist/render/frame/schedule.js +61 -0
  294. package/dist/render/frameView.d.ts +19 -0
  295. package/dist/render/frameView.js +1 -0
  296. package/dist/render/gizmo.d.ts +236 -0
  297. package/dist/render/gizmo.js +727 -0
  298. package/dist/render/globalMedium.d.ts +124 -0
  299. package/dist/render/globalMedium.js +100 -0
  300. package/dist/render/globalMediumPass.d.ts +101 -0
  301. package/dist/render/globalMediumPass.js +250 -0
  302. package/dist/render/gpuCapability.d.ts +111 -0
  303. package/dist/render/gpuCapability.js +194 -0
  304. package/dist/render/gpuTimer.d.ts +87 -0
  305. package/dist/render/gpuTimer.js +145 -0
  306. package/dist/render/halfFloat.d.ts +4 -0
  307. package/dist/render/halfFloat.js +38 -0
  308. package/dist/render/handleRegistry.d.ts +54 -0
  309. package/dist/render/handleRegistry.js +84 -0
  310. package/dist/render/iesProfile.d.ts +64 -0
  311. package/dist/render/iesProfile.js +179 -0
  312. package/dist/render/imageTexels.d.ts +50 -0
  313. package/dist/render/imageTexels.js +91 -0
  314. package/dist/render/instancedMesh.d.ts +48 -0
  315. package/dist/render/instancedMesh.js +127 -0
  316. package/dist/render/instances.d.ts +69 -0
  317. package/dist/render/instances.js +52 -0
  318. package/dist/render/lightBudget.d.ts +397 -0
  319. package/dist/render/lightBudget.js +524 -0
  320. package/dist/render/lightMatrix.d.ts +3 -0
  321. package/dist/render/lightMatrix.js +45 -0
  322. package/dist/render/lightVolumeDraw.d.ts +132 -0
  323. package/dist/render/lightVolumeDraw.js +181 -0
  324. package/dist/render/lineBatch.d.ts +60 -0
  325. package/dist/render/lineBatch.js +160 -0
  326. package/dist/render/linePoints.d.ts +33 -0
  327. package/dist/render/linePoints.js +46 -0
  328. package/dist/render/livePointShadowSet.d.ts +72 -0
  329. package/dist/render/livePointShadowSet.js +258 -0
  330. package/dist/render/lod.d.ts +35 -0
  331. package/dist/render/lod.js +65 -0
  332. package/dist/render/mesh.d.ts +177 -0
  333. package/dist/render/mesh.js +466 -0
  334. package/dist/render/occlusion.d.ts +81 -0
  335. package/dist/render/occlusion.js +378 -0
  336. package/dist/render/oitPass.d.ts +67 -0
  337. package/dist/render/oitPass.js +213 -0
  338. package/dist/render/orderIndependent.d.ts +92 -0
  339. package/dist/render/orderIndependent.js +108 -0
  340. package/dist/render/particleBatch.d.ts +140 -0
  341. package/dist/render/particleBatch.js +186 -0
  342. package/dist/render/particleMaterial.d.ts +54 -0
  343. package/dist/render/particleMaterial.js +42 -0
  344. package/dist/render/particlePool.d.ts +124 -0
  345. package/dist/render/particlePool.js +182 -0
  346. package/dist/render/pass.d.ts +195 -0
  347. package/dist/render/pass.js +9 -0
  348. package/dist/render/passTarget.d.ts +86 -0
  349. package/dist/render/passTarget.js +121 -0
  350. package/dist/render/pickable.d.ts +31 -0
  351. package/dist/render/pickable.js +172 -0
  352. package/dist/render/planarReflection.d.ts +59 -0
  353. package/dist/render/planarReflection.js +194 -0
  354. package/dist/render/planarReflectionDraw.d.ts +31 -0
  355. package/dist/render/planarReflectionDraw.js +65 -0
  356. package/dist/render/plumeGeometry.d.ts +25 -0
  357. package/dist/render/plumeGeometry.js +61 -0
  358. package/dist/render/plumeMaterial.d.ts +31 -0
  359. package/dist/render/plumeMaterial.js +64 -0
  360. package/dist/render/plumeRenderer.d.ts +96 -0
  361. package/dist/render/plumeRenderer.js +185 -0
  362. package/dist/render/pointLightSelection.d.ts +175 -0
  363. package/dist/render/pointLightSelection.js +301 -0
  364. package/dist/render/pointShadowArray.d.ts +95 -0
  365. package/dist/render/pointShadowArray.js +219 -0
  366. package/dist/render/pointShadowBudget.d.ts +118 -0
  367. package/dist/render/pointShadowBudget.js +221 -0
  368. package/dist/render/pointShadowImage.d.ts +265 -0
  369. package/dist/render/pointShadowImage.js +339 -0
  370. package/dist/render/pointShadowMap.d.ts +93 -0
  371. package/dist/render/pointShadowMap.js +167 -0
  372. package/dist/render/pointShadowSystem.d.ts +195 -0
  373. package/dist/render/pointShadowSystem.js +336 -0
  374. package/dist/render/prefilterEnvMap.d.ts +124 -0
  375. package/dist/render/prefilterEnvMap.js +146 -0
  376. package/dist/render/prefilterPass.d.ts +44 -0
  377. package/dist/render/prefilterPass.js +98 -0
  378. package/dist/render/probeGrid.d.ts +122 -0
  379. package/dist/render/probeGrid.js +174 -0
  380. package/dist/render/rainField.d.ts +99 -0
  381. package/dist/render/rainField.js +168 -0
  382. package/dist/render/reflectionProbe.d.ts +188 -0
  383. package/dist/render/reflectionProbe.js +437 -0
  384. package/dist/render/renderQuality.d.ts +699 -0
  385. package/dist/render/renderQuality.js +293 -0
  386. package/dist/render/rendererHarness.d.ts +39 -0
  387. package/dist/render/rendererHarness.js +185 -0
  388. package/dist/render/resolutionGovernor.d.ts +107 -0
  389. package/dist/render/resolutionGovernor.js +144 -0
  390. package/dist/render/scatterDeform.d.ts +17 -0
  391. package/dist/render/scatterDeform.js +46 -0
  392. package/dist/render/sceneTarget.d.ts +288 -0
  393. package/dist/render/sceneTarget.js +856 -0
  394. package/dist/render/screenSpaceReflection.d.ts +233 -0
  395. package/dist/render/screenSpaceReflection.js +415 -0
  396. package/dist/render/sdfFont.d.ts +77 -0
  397. package/dist/render/sdfFont.js +86 -0
  398. package/dist/render/sdfTextLayout.d.ts +46 -0
  399. package/dist/render/sdfTextLayout.js +145 -0
  400. package/dist/render/sdfTextRenderer.d.ts +75 -0
  401. package/dist/render/sdfTextRenderer.js +194 -0
  402. package/dist/render/seaState.d.ts +25 -0
  403. package/dist/render/seaState.js +34 -0
  404. package/dist/render/segmentQuads.d.ts +29 -0
  405. package/dist/render/segmentQuads.js +75 -0
  406. package/dist/render/shader.d.ts +5 -0
  407. package/dist/render/shader.js +172 -0
  408. package/dist/render/shaders/ambientOcclusion.d.ts +45 -0
  409. package/dist/render/shaders/ambientOcclusion.js +352 -0
  410. package/dist/render/shaders/arcane.d.ts +19 -0
  411. package/dist/render/shaders/arcane.js +102 -0
  412. package/dist/render/shaders/bloom.d.ts +70 -0
  413. package/dist/render/shaders/bloom.js +227 -0
  414. package/dist/render/shaders/bolt.d.ts +17 -0
  415. package/dist/render/shaders/bolt.js +161 -0
  416. package/dist/render/shaders/caustics.d.ts +38 -0
  417. package/dist/render/shaders/caustics.js +167 -0
  418. package/dist/render/shaders/conditionals.d.ts +21 -0
  419. package/dist/render/shaders/conditionals.js +55 -0
  420. package/dist/render/shaders/decalProject.d.ts +25 -0
  421. package/dist/render/shaders/decalProject.js +125 -0
  422. package/dist/render/shaders/depth.d.ts +14 -0
  423. package/dist/render/shaders/depth.js +114 -0
  424. package/dist/render/shaders/depthOfField.d.ts +41 -0
  425. package/dist/render/shaders/depthOfField.js +139 -0
  426. package/dist/render/shaders/film.d.ts +15 -0
  427. package/dist/render/shaders/film.js +283 -0
  428. package/dist/render/shaders/fire.d.ts +12 -0
  429. package/dist/render/shaders/fire.js +178 -0
  430. package/dist/render/shaders/flat/directionalShadow.d.ts +1 -0
  431. package/dist/render/shaders/flat/directionalShadow.js +195 -0
  432. package/dist/render/shaders/flat/index.d.ts +135 -0
  433. package/dist/render/shaders/flat/index.js +387 -0
  434. package/dist/render/shaders/flat/lobes.d.ts +1 -0
  435. package/dist/render/shaders/flat/lobes.js +398 -0
  436. package/dist/render/shaders/flat/main.d.ts +2 -0
  437. package/dist/render/shaders/flat/main.js +1630 -0
  438. package/dist/render/shaders/flat/pointShadow.d.ts +1 -0
  439. package/dist/render/shaders/flat/pointShadow.js +322 -0
  440. package/dist/render/shaders/flat/preamble.d.ts +15 -0
  441. package/dist/render/shaders/flat/preamble.js +864 -0
  442. package/dist/render/shaders/flat/probeGrid.d.ts +21 -0
  443. package/dist/render/shaders/flat/probeGrid.js +151 -0
  444. package/dist/render/shaders/flat/surface.d.ts +2 -0
  445. package/dist/render/shaders/flat/surface.js +40 -0
  446. package/dist/render/shaders/flock.d.ts +11 -0
  447. package/dist/render/shaders/flock.js +102 -0
  448. package/dist/render/shaders/fog.d.ts +37 -0
  449. package/dist/render/shaders/fog.js +98 -0
  450. package/dist/render/shaders/fullscreen.d.ts +16 -0
  451. package/dist/render/shaders/fullscreen.js +27 -0
  452. package/dist/render/shaders/generated/ambientOcclusion.wgsl.d.ts +65 -0
  453. package/dist/render/shaders/generated/ambientOcclusion.wgsl.js +71 -0
  454. package/dist/render/shaders/generated/arcane.wgsl.d.ts +90 -0
  455. package/dist/render/shaders/generated/arcane.wgsl.js +96 -0
  456. package/dist/render/shaders/generated/bloom.wgsl.d.ts +69 -0
  457. package/dist/render/shaders/generated/bloom.wgsl.js +75 -0
  458. package/dist/render/shaders/generated/bolt.wgsl.d.ts +118 -0
  459. package/dist/render/shaders/generated/bolt.wgsl.js +124 -0
  460. package/dist/render/shaders/generated/caustics.wgsl.d.ts +118 -0
  461. package/dist/render/shaders/generated/caustics.wgsl.js +124 -0
  462. package/dist/render/shaders/generated/decalProject.wgsl.d.ts +61 -0
  463. package/dist/render/shaders/generated/decalProject.wgsl.js +67 -0
  464. package/dist/render/shaders/generated/depth.wgsl.d.ts +131 -0
  465. package/dist/render/shaders/generated/depth.wgsl.js +137 -0
  466. package/dist/render/shaders/generated/film.wgsl.d.ts +134 -0
  467. package/dist/render/shaders/generated/film.wgsl.js +140 -0
  468. package/dist/render/shaders/generated/fire.wgsl.d.ts +128 -0
  469. package/dist/render/shaders/generated/fire.wgsl.js +134 -0
  470. package/dist/render/shaders/generated/flat.wgsl.d.ts +9163 -0
  471. package/dist/render/shaders/generated/flat.wgsl.js +9192 -0
  472. package/dist/render/shaders/generated/flock.wgsl.d.ts +73 -0
  473. package/dist/render/shaders/generated/flock.wgsl.js +79 -0
  474. package/dist/render/shaders/generated/fullscreen.wgsl.d.ts +12 -0
  475. package/dist/render/shaders/generated/fullscreen.wgsl.js +18 -0
  476. package/dist/render/shaders/generated/globalMedium.wgsl.d.ts +130 -0
  477. package/dist/render/shaders/generated/globalMedium.wgsl.js +136 -0
  478. package/dist/render/shaders/generated/lightVolume.wgsl.d.ts +230 -0
  479. package/dist/render/shaders/generated/lightVolume.wgsl.js +239 -0
  480. package/dist/render/shaders/generated/line.wgsl.d.ts +128 -0
  481. package/dist/render/shaders/generated/line.wgsl.js +134 -0
  482. package/dist/render/shaders/generated/octahedralResolve.wgsl.d.ts +51 -0
  483. package/dist/render/shaders/generated/octahedralResolve.wgsl.js +57 -0
  484. package/dist/render/shaders/generated/oitResolve.wgsl.d.ts +23 -0
  485. package/dist/render/shaders/generated/oitResolve.wgsl.js +29 -0
  486. package/dist/render/shaders/generated/panel.wgsl.d.ts +48 -0
  487. package/dist/render/shaders/generated/panel.wgsl.js +54 -0
  488. package/dist/render/shaders/generated/particle.wgsl.d.ts +332 -0
  489. package/dist/render/shaders/generated/particle.wgsl.js +338 -0
  490. package/dist/render/shaders/generated/prefilter.wgsl.d.ts +61 -0
  491. package/dist/render/shaders/generated/prefilter.wgsl.js +67 -0
  492. package/dist/render/shaders/generated/rush.wgsl.d.ts +131 -0
  493. package/dist/render/shaders/generated/rush.wgsl.js +137 -0
  494. package/dist/render/shaders/generated/scatter.wgsl.d.ts +195 -0
  495. package/dist/render/shaders/generated/scatter.wgsl.js +201 -0
  496. package/dist/render/shaders/generated/sdfText.wgsl.d.ts +69 -0
  497. package/dist/render/shaders/generated/sdfText.wgsl.js +75 -0
  498. package/dist/render/shaders/generated/sky.wgsl.d.ts +100 -0
  499. package/dist/render/shaders/generated/sky.wgsl.js +106 -0
  500. package/dist/render/shaders/generated/smoke.wgsl.d.ts +85 -0
  501. package/dist/render/shaders/generated/smoke.wgsl.js +91 -0
  502. package/dist/render/shaders/generated/ssrResolve.wgsl.d.ts +18 -0
  503. package/dist/render/shaders/generated/ssrResolve.wgsl.js +24 -0
  504. package/dist/render/shaders/generated/ssrTrace.wgsl.d.ts +86 -0
  505. package/dist/render/shaders/generated/ssrTrace.wgsl.js +92 -0
  506. package/dist/render/shaders/generated/temporalResolve.wgsl.d.ts +46 -0
  507. package/dist/render/shaders/generated/temporalResolve.wgsl.js +52 -0
  508. package/dist/render/shaders/generated/text.wgsl.d.ts +98 -0
  509. package/dist/render/shaders/generated/text.wgsl.js +104 -0
  510. package/dist/render/shaders/generated/water.wgsl.d.ts +247 -0
  511. package/dist/render/shaders/generated/water.wgsl.js +253 -0
  512. package/dist/render/shaders/generated/windStreaks.wgsl.d.ts +73 -0
  513. package/dist/render/shaders/generated/windStreaks.wgsl.js +79 -0
  514. package/dist/render/shaders/gerstner.d.ts +21 -0
  515. package/dist/render/shaders/gerstner.js +110 -0
  516. package/dist/render/shaders/globalMedium.d.ts +56 -0
  517. package/dist/render/shaders/globalMedium.js +393 -0
  518. package/dist/render/shaders/lightVolume.d.ts +61 -0
  519. package/dist/render/shaders/lightVolume.js +527 -0
  520. package/dist/render/shaders/line.d.ts +18 -0
  521. package/dist/render/shaders/line.js +122 -0
  522. package/dist/render/shaders/morph.d.ts +26 -0
  523. package/dist/render/shaders/morph.js +61 -0
  524. package/dist/render/shaders/octahedral.d.ts +76 -0
  525. package/dist/render/shaders/octahedral.js +161 -0
  526. package/dist/render/shaders/octahedralResolve.d.ts +25 -0
  527. package/dist/render/shaders/octahedralResolve.js +81 -0
  528. package/dist/render/shaders/oitResolve.d.ts +17 -0
  529. package/dist/render/shaders/oitResolve.js +42 -0
  530. package/dist/render/shaders/outputTransform.d.ts +37 -0
  531. package/dist/render/shaders/outputTransform.js +106 -0
  532. package/dist/render/shaders/panel.d.ts +17 -0
  533. package/dist/render/shaders/panel.js +50 -0
  534. package/dist/render/shaders/particle.d.ts +82 -0
  535. package/dist/render/shaders/particle.js +431 -0
  536. package/dist/render/shaders/prefilter.d.ts +37 -0
  537. package/dist/render/shaders/prefilter.js +276 -0
  538. package/dist/render/shaders/rush.d.ts +21 -0
  539. package/dist/render/shaders/rush.js +355 -0
  540. package/dist/render/shaders/scatter.d.ts +14 -0
  541. package/dist/render/shaders/scatter.js +206 -0
  542. package/dist/render/shaders/sdfText.d.ts +9 -0
  543. package/dist/render/shaders/sdfText.js +65 -0
  544. package/dist/render/shaders/skinning.d.ts +17 -0
  545. package/dist/render/shaders/skinning.js +59 -0
  546. package/dist/render/shaders/sky.d.ts +10 -0
  547. package/dist/render/shaders/sky.js +242 -0
  548. package/dist/render/shaders/smoke.d.ts +8 -0
  549. package/dist/render/shaders/smoke.js +88 -0
  550. package/dist/render/shaders/ssrResolve.d.ts +15 -0
  551. package/dist/render/shaders/ssrResolve.js +28 -0
  552. package/dist/render/shaders/ssrTrace.d.ts +22 -0
  553. package/dist/render/shaders/ssrTrace.js +230 -0
  554. package/dist/render/shaders/tangentFrame.d.ts +17 -0
  555. package/dist/render/shaders/tangentFrame.js +70 -0
  556. package/dist/render/shaders/temporalResolve.d.ts +1 -0
  557. package/dist/render/shaders/temporalResolve.js +150 -0
  558. package/dist/render/shaders/text.d.ts +17 -0
  559. package/dist/render/shaders/text.js +155 -0
  560. package/dist/render/shaders/vertexChannel.d.ts +39 -0
  561. package/dist/render/shaders/vertexChannel.js +69 -0
  562. package/dist/render/shaders/water.d.ts +18 -0
  563. package/dist/render/shaders/water.js +354 -0
  564. package/dist/render/shaders/windStreaks.d.ts +14 -0
  565. package/dist/render/shaders/windStreaks.js +129 -0
  566. package/dist/render/shadowCasters.d.ts +107 -0
  567. package/dist/render/shadowCasters.js +1 -0
  568. package/dist/render/shadowMap.d.ts +10 -0
  569. package/dist/render/shadowMap.js +80 -0
  570. package/dist/render/shotPlacement.d.ts +80 -0
  571. package/dist/render/shotPlacement.js +183 -0
  572. package/dist/render/skinPalette.d.ts +90 -0
  573. package/dist/render/skinPalette.js +136 -0
  574. package/dist/render/ssrPass.d.ts +59 -0
  575. package/dist/render/ssrPass.js +196 -0
  576. package/dist/render/surfaceSheet.d.ts +52 -0
  577. package/dist/render/surfaceSheet.js +99 -0
  578. package/dist/render/surfaceTexture.d.ts +197 -0
  579. package/dist/render/surfaceTexture.js +116 -0
  580. package/dist/render/temporalAa.d.ts +104 -0
  581. package/dist/render/temporalAa.js +194 -0
  582. package/dist/render/temporalPass.d.ts +54 -0
  583. package/dist/render/temporalPass.js +135 -0
  584. package/dist/render/textLayout.d.ts +88 -0
  585. package/dist/render/textLayout.js +201 -0
  586. package/dist/render/textRenderer.d.ts +32 -0
  587. package/dist/render/textRenderer.js +176 -0
  588. package/dist/render/thirdPersonCamera.d.ts +272 -0
  589. package/dist/render/thirdPersonCamera.js +479 -0
  590. package/dist/render/trample.d.ts +57 -0
  591. package/dist/render/trample.js +134 -0
  592. package/dist/render/translucentQueue.d.ts +76 -0
  593. package/dist/render/translucentQueue.js +90 -0
  594. package/dist/render/uniformVectorBudget.d.ts +105 -0
  595. package/dist/render/uniformVectorBudget.js +201 -0
  596. package/dist/render/uploadStep.d.ts +14 -0
  597. package/dist/render/uploadStep.js +14 -0
  598. package/dist/render/vertexDefaults.d.ts +48 -0
  599. package/dist/render/vertexDefaults.js +111 -0
  600. package/dist/render/visibility.d.ts +22 -0
  601. package/dist/render/visibility.js +47 -0
  602. package/dist/render/waterDraw.d.ts +57 -0
  603. package/dist/render/waterDraw.js +102 -0
  604. package/dist/render/waterGrid.d.ts +62 -0
  605. package/dist/render/waterGrid.js +151 -0
  606. package/dist/render/waterRenderer.d.ts +163 -0
  607. package/dist/render/waterRenderer.js +165 -0
  608. package/dist/render/wind.d.ts +45 -0
  609. package/dist/render/wind.js +32 -0
  610. package/dist/render/windField.d.ts +34 -0
  611. package/dist/render/windField.js +13 -0
  612. package/dist/render/windStreakDraw.d.ts +73 -0
  613. package/dist/render/windStreakDraw.js +86 -0
  614. package/dist/render/windStreakRenderer.d.ts +37 -0
  615. package/dist/render/windStreakRenderer.js +86 -0
  616. package/dist/scene/node.d.ts +128 -0
  617. package/dist/scene/node.js +319 -0
  618. package/dist/scene/visit.d.ts +38 -0
  619. package/dist/scene/visit.js +43 -0
  620. package/dist/ui/clipMime.d.ts +46 -0
  621. package/dist/ui/clipMime.js +88 -0
  622. package/dist/ui/exportTarget.d.ts +305 -0
  623. package/dist/ui/exportTarget.js +368 -0
  624. package/dist/ui/frameOverlay.d.ts +59 -0
  625. package/dist/ui/frameOverlay.js +76 -0
  626. package/dist/ui/framePacer.d.ts +142 -0
  627. package/dist/ui/framePacer.js +284 -0
  628. package/dist/ui/frameRecorder.d.ts +188 -0
  629. package/dist/ui/frameRecorder.js +221 -0
  630. package/dist/ui/fullscreen.d.ts +72 -0
  631. package/dist/ui/fullscreen.js +92 -0
  632. package/dist/ui/pixelCursor.d.ts +28 -0
  633. package/dist/ui/pixelCursor.js +66 -0
  634. package/dist/ui/splash.d.ts +86 -0
  635. package/dist/ui/splash.js +300 -0
  636. package/dist/ui/stillFrame.d.ts +22 -0
  637. package/dist/ui/stillFrame.js +40 -0
  638. package/package.json +60 -0
  639. package/src/behavior/behaviorTree.ts +346 -0
  640. package/src/build/shaderComments.ts +0 -0
  641. package/src/cinematic/player.ts +209 -0
  642. package/src/cinematic/script.ts +231 -0
  643. package/src/core/bootGate.ts +49 -0
  644. package/src/core/loadTracker.ts +144 -0
  645. package/src/core/loop.ts +211 -0
  646. package/src/core/messageQueue.ts +145 -0
  647. package/src/core/onceSet.ts +65 -0
  648. package/src/core/preferences.ts +177 -0
  649. package/src/core/remoteSave.ts +347 -0
  650. package/src/core/rng.ts +101 -0
  651. package/src/core/stepBudget.ts +136 -0
  652. package/src/core/storage.ts +114 -0
  653. package/src/core/tickTrace.ts +129 -0
  654. package/src/core/timeCurve.ts +175 -0
  655. package/src/core/withDefaults.ts +28 -0
  656. package/src/dev/contactProbe.ts +115 -0
  657. package/src/dev/fpsMeter.ts +101 -0
  658. package/src/environment/celestialClock.ts +385 -0
  659. package/src/geometry/decal.ts +260 -0
  660. package/src/geometry/filmPatch.ts +158 -0
  661. package/src/geometry/growable.ts +165 -0
  662. package/src/geometry/lightVolume.ts +161 -0
  663. package/src/geometry/meshBuilder.ts +1397 -0
  664. package/src/geometry/pixelFont.ts +189 -0
  665. package/src/geometry/ribbon.ts +790 -0
  666. package/src/geometry/shellFill.ts +265 -0
  667. package/src/geometry/spline.ts +659 -0
  668. package/src/geometry/tangents.ts +173 -0
  669. package/src/geometry/textMesh.ts +96 -0
  670. package/src/geometry/treeBuilder.ts +114 -0
  671. package/src/host/display.ts +180 -0
  672. package/src/host/files.ts +77 -0
  673. package/src/host/lifecycle.ts +63 -0
  674. package/src/host/platformServices.ts +23 -0
  675. package/src/host/screen.ts +134 -0
  676. package/src/index.ts +730 -0
  677. package/src/input/actionMap.ts +377 -0
  678. package/src/input/activeDevice.ts +86 -0
  679. package/src/input/gamepadIdentity.ts +131 -0
  680. package/src/input/gamepadMapping.ts +121 -0
  681. package/src/input/input.ts +872 -0
  682. package/src/input/inputHarness.ts +226 -0
  683. package/src/input/rightGesture.ts +76 -0
  684. package/src/input/rumble.ts +138 -0
  685. package/src/input/touchControls.ts +451 -0
  686. package/src/input/typingTarget.ts +26 -0
  687. package/src/math/bounds.ts +153 -0
  688. package/src/math/color.ts +37 -0
  689. package/src/math/exact.ts +274 -0
  690. package/src/math/frustum.ts +115 -0
  691. package/src/math/intersect.ts +228 -0
  692. package/src/math/scalar.ts +109 -0
  693. package/src/math/spring.ts +106 -0
  694. package/src/nav/navGraph.ts +168 -0
  695. package/src/nav/navPath.ts +217 -0
  696. package/src/nav/navSearch.ts +200 -0
  697. package/src/physics/boxSurface.ts +96 -0
  698. package/src/physics/colliderSurface.ts +213 -0
  699. package/src/physics/compositeSurface.ts +111 -0
  700. package/src/physics/heightSurface.ts +234 -0
  701. package/src/physics/ribbonSurface.ts +642 -0
  702. package/src/render/ambientOcclusionPass.ts +200 -0
  703. package/src/render/areaLights.ts +194 -0
  704. package/src/render/areaShadowSet.ts +405 -0
  705. package/src/render/atmosphere.ts +186 -0
  706. package/src/render/backend/api.ts +802 -0
  707. package/src/render/backend/budget.ts +139 -0
  708. package/src/render/backend/createRenderer.ts +343 -0
  709. package/src/render/backend/deadline.ts +37 -0
  710. package/src/render/backend/probe.ts +152 -0
  711. package/src/render/backend/select.ts +288 -0
  712. package/src/render/backend/timer.ts +59 -0
  713. package/src/render/backend/webgl2/instanced.ts +46 -0
  714. package/src/render/backend/webgl2/morphTexture.ts +58 -0
  715. package/src/render/backend/webgl2/renderer.ts +7484 -0
  716. package/src/render/backend/webgl2/skinPaletteTexture.ts +70 -0
  717. package/src/render/backend/webgpu/boltPass.ts +205 -0
  718. package/src/render/backend/webgpu/buffers.ts +553 -0
  719. package/src/render/backend/webgpu/causticsPass.ts +174 -0
  720. package/src/render/backend/webgpu/clusterBinner.ts +259 -0
  721. package/src/render/backend/webgpu/depthPass.ts +261 -0
  722. package/src/render/backend/webgpu/device.ts +148 -0
  723. package/src/render/backend/webgpu/drawCommand.ts +79 -0
  724. package/src/render/backend/webgpu/environmentTexels.ts +96 -0
  725. package/src/render/backend/webgpu/filmPass.ts +123 -0
  726. package/src/render/backend/webgpu/flatPass.ts +635 -0
  727. package/src/render/backend/webgpu/flockPass.ts +163 -0
  728. package/src/render/backend/webgpu/gpuTimestamps.ts +255 -0
  729. package/src/render/backend/webgpu/insetPass.ts +123 -0
  730. package/src/render/backend/webgpu/instanced.ts +55 -0
  731. package/src/render/backend/webgpu/lightVolumePass.ts +203 -0
  732. package/src/render/backend/webgpu/linePass.ts +270 -0
  733. package/src/render/backend/webgpu/morphTexture.ts +61 -0
  734. package/src/render/backend/webgpu/panelPass.ts +138 -0
  735. package/src/render/backend/webgpu/particlePass.ts +370 -0
  736. package/src/render/backend/webgpu/pipelineCache.ts +152 -0
  737. package/src/render/backend/webgpu/plumePass.ts +292 -0
  738. package/src/render/backend/webgpu/pointShadowPass.ts +368 -0
  739. package/src/render/backend/webgpu/postPass.ts +470 -0
  740. package/src/render/backend/webgpu/probePass.ts +218 -0
  741. package/src/render/backend/webgpu/reflectionPass.ts +137 -0
  742. package/src/render/backend/webgpu/renderer.ts +13004 -0
  743. package/src/render/backend/webgpu/scatterPass.ts +354 -0
  744. package/src/render/backend/webgpu/sdfTextPass.ts +220 -0
  745. package/src/render/backend/webgpu/shaderModules.ts +49 -0
  746. package/src/render/backend/webgpu/shaders/clusterBin.wgsl.ts +219 -0
  747. package/src/render/backend/webgpu/skinPaletteRing.ts +105 -0
  748. package/src/render/backend/webgpu/skinPaletteTexture.ts +79 -0
  749. package/src/render/backend/webgpu/skyPass.ts +85 -0
  750. package/src/render/backend/webgpu/surfaceTexturePass.ts +257 -0
  751. package/src/render/backend/webgpu/textPass.ts +224 -0
  752. package/src/render/backend/webgpu/uniformRing.ts +228 -0
  753. package/src/render/backend/webgpu/waterPass.ts +211 -0
  754. package/src/render/backend/webgpu/windStreakPass.ts +196 -0
  755. package/src/render/billboard.ts +108 -0
  756. package/src/render/bloomChain.ts +101 -0
  757. package/src/render/bloomPass.ts +256 -0
  758. package/src/render/boltBatch.ts +141 -0
  759. package/src/render/boltPool.ts +360 -0
  760. package/src/render/boom.ts +123 -0
  761. package/src/render/camera.ts +348 -0
  762. package/src/render/causticsRenderer.ts +171 -0
  763. package/src/render/cinematicCamera.ts +278 -0
  764. package/src/render/clusteredLights.ts +598 -0
  765. package/src/render/colourGrade.ts +109 -0
  766. package/src/render/compute.ts +83 -0
  767. package/src/render/contextLoss.ts +50 -0
  768. package/src/render/debugLines.ts +411 -0
  769. package/src/render/decalPass.ts +124 -0
  770. package/src/render/decalProjector.ts +390 -0
  771. package/src/render/decalQueue.ts +110 -0
  772. package/src/render/depthConvention.ts +383 -0
  773. package/src/render/drawingBuffer.ts +89 -0
  774. package/src/render/emptyTexture.ts +130 -0
  775. package/src/render/envProbeArray.ts +201 -0
  776. package/src/render/equirectToCube.ts +160 -0
  777. package/src/render/flockGeometry.ts +53 -0
  778. package/src/render/flockRenderer.ts +111 -0
  779. package/src/render/frame/arena.ts +93 -0
  780. package/src/render/frame/index.ts +29 -0
  781. package/src/render/frame/replay.ts +50 -0
  782. package/src/render/frame/resources.ts +61 -0
  783. package/src/render/frame/schedule.ts +85 -0
  784. package/src/render/frameView.ts +20 -0
  785. package/src/render/gizmo.ts +923 -0
  786. package/src/render/globalMedium.ts +154 -0
  787. package/src/render/globalMediumPass.ts +323 -0
  788. package/src/render/gpuCapability.ts +244 -0
  789. package/src/render/gpuTimer.ts +182 -0
  790. package/src/render/halfFloat.ts +39 -0
  791. package/src/render/handleRegistry.ts +96 -0
  792. package/src/render/iesProfile.ts +215 -0
  793. package/src/render/imageTexels.ts +109 -0
  794. package/src/render/instancedMesh.ts +187 -0
  795. package/src/render/instances.ts +92 -0
  796. package/src/render/lightBudget.ts +655 -0
  797. package/src/render/lightMatrix.ts +69 -0
  798. package/src/render/lightVolumeDraw.ts +216 -0
  799. package/src/render/lineBatch.ts +180 -0
  800. package/src/render/linePoints.ts +61 -0
  801. package/src/render/livePointShadowSet.ts +285 -0
  802. package/src/render/lod.ts +86 -0
  803. package/src/render/mesh.ts +536 -0
  804. package/src/render/occlusion.ts +406 -0
  805. package/src/render/oitPass.ts +230 -0
  806. package/src/render/orderIndependent.ts +136 -0
  807. package/src/render/particleBatch.ts +299 -0
  808. package/src/render/particleMaterial.ts +84 -0
  809. package/src/render/particlePool.ts +291 -0
  810. package/src/render/pass.ts +203 -0
  811. package/src/render/passTarget.ts +225 -0
  812. package/src/render/pickable.ts +222 -0
  813. package/src/render/planarReflection.ts +233 -0
  814. package/src/render/planarReflectionDraw.ts +87 -0
  815. package/src/render/plumeGeometry.ts +75 -0
  816. package/src/render/plumeMaterial.ts +99 -0
  817. package/src/render/plumeRenderer.ts +272 -0
  818. package/src/render/pointLightSelection.ts +447 -0
  819. package/src/render/pointShadowArray.ts +276 -0
  820. package/src/render/pointShadowBudget.ts +305 -0
  821. package/src/render/pointShadowImage.ts +470 -0
  822. package/src/render/pointShadowMap.ts +228 -0
  823. package/src/render/pointShadowSystem.ts +408 -0
  824. package/src/render/prefilterEnvMap.ts +162 -0
  825. package/src/render/prefilterPass.ts +115 -0
  826. package/src/render/probeGrid.ts +248 -0
  827. package/src/render/rainField.ts +240 -0
  828. package/src/render/reflectionProbe.ts +530 -0
  829. package/src/render/renderQuality.ts +1054 -0
  830. package/src/render/rendererHarness.ts +214 -0
  831. package/src/render/resolutionGovernor.ts +189 -0
  832. package/src/render/scatterDeform.ts +72 -0
  833. package/src/render/sceneTarget.ts +1032 -0
  834. package/src/render/screenSpaceReflection.ts +524 -0
  835. package/src/render/sdfFont.ts +157 -0
  836. package/src/render/sdfTextLayout.ts +206 -0
  837. package/src/render/sdfTextRenderer.ts +233 -0
  838. package/src/render/seaState.ts +55 -0
  839. package/src/render/segmentQuads.ts +92 -0
  840. package/src/render/shader.ts +190 -0
  841. package/src/render/shaders/ambientOcclusion.ts +354 -0
  842. package/src/render/shaders/arcane.ts +103 -0
  843. package/src/render/shaders/bloom.ts +232 -0
  844. package/src/render/shaders/bolt.ts +164 -0
  845. package/src/render/shaders/caustics.ts +169 -0
  846. package/src/render/shaders/conditionals.ts +58 -0
  847. package/src/render/shaders/decalProject.ts +127 -0
  848. package/src/render/shaders/depth.ts +131 -0
  849. package/src/render/shaders/depthOfField.ts +141 -0
  850. package/src/render/shaders/film.ts +285 -0
  851. package/src/render/shaders/fire.ts +180 -0
  852. package/src/render/shaders/flat/directionalShadow.ts +196 -0
  853. package/src/render/shaders/flat/index.ts +502 -0
  854. package/src/render/shaders/flat/lobes.ts +399 -0
  855. package/src/render/shaders/flat/main.ts +1631 -0
  856. package/src/render/shaders/flat/pointShadow.ts +323 -0
  857. package/src/render/shaders/flat/preamble.ts +875 -0
  858. package/src/render/shaders/flat/probeGrid.ts +152 -0
  859. package/src/render/shaders/flat/surface.ts +41 -0
  860. package/src/render/shaders/flock.ts +103 -0
  861. package/src/render/shaders/fog.ts +99 -0
  862. package/src/render/shaders/fullscreen.ts +28 -0
  863. package/src/render/shaders/generated/ambientOcclusion.wgsl.ts +74 -0
  864. package/src/render/shaders/generated/arcane.wgsl.ts +98 -0
  865. package/src/render/shaders/generated/bloom.wgsl.ts +79 -0
  866. package/src/render/shaders/generated/bolt.wgsl.ts +127 -0
  867. package/src/render/shaders/generated/caustics.wgsl.ts +127 -0
  868. package/src/render/shaders/generated/decalProject.wgsl.ts +69 -0
  869. package/src/render/shaders/generated/depth.wgsl.ts +142 -0
  870. package/src/render/shaders/generated/film.wgsl.ts +143 -0
  871. package/src/render/shaders/generated/fire.wgsl.ts +137 -0
  872. package/src/render/shaders/generated/flat.wgsl.ts +9195 -0
  873. package/src/render/shaders/generated/flock.wgsl.ts +82 -0
  874. package/src/render/shaders/generated/fullscreen.wgsl.ts +20 -0
  875. package/src/render/shaders/generated/globalMedium.wgsl.ts +139 -0
  876. package/src/render/shaders/generated/lightVolume.wgsl.ts +242 -0
  877. package/src/render/shaders/generated/line.wgsl.ts +137 -0
  878. package/src/render/shaders/generated/octahedralResolve.wgsl.ts +60 -0
  879. package/src/render/shaders/generated/oitResolve.wgsl.ts +31 -0
  880. package/src/render/shaders/generated/panel.wgsl.ts +57 -0
  881. package/src/render/shaders/generated/particle.wgsl.ts +343 -0
  882. package/src/render/shaders/generated/prefilter.wgsl.ts +69 -0
  883. package/src/render/shaders/generated/rush.wgsl.ts +139 -0
  884. package/src/render/shaders/generated/scatter.wgsl.ts +205 -0
  885. package/src/render/shaders/generated/sdfText.wgsl.ts +78 -0
  886. package/src/render/shaders/generated/sky.wgsl.ts +109 -0
  887. package/src/render/shaders/generated/smoke.wgsl.ts +93 -0
  888. package/src/render/shaders/generated/ssrResolve.wgsl.ts +26 -0
  889. package/src/render/shaders/generated/ssrTrace.wgsl.ts +94 -0
  890. package/src/render/shaders/generated/temporalResolve.wgsl.ts +54 -0
  891. package/src/render/shaders/generated/text.wgsl.ts +107 -0
  892. package/src/render/shaders/generated/water.wgsl.ts +256 -0
  893. package/src/render/shaders/generated/windStreaks.wgsl.ts +82 -0
  894. package/src/render/shaders/gerstner.ts +110 -0
  895. package/src/render/shaders/globalMedium.ts +396 -0
  896. package/src/render/shaders/lightVolume.ts +546 -0
  897. package/src/render/shaders/line.ts +125 -0
  898. package/src/render/shaders/morph.ts +62 -0
  899. package/src/render/shaders/octahedral.ts +170 -0
  900. package/src/render/shaders/octahedralResolve.ts +83 -0
  901. package/src/render/shaders/oitResolve.ts +42 -0
  902. package/src/render/shaders/outputTransform.ts +107 -0
  903. package/src/render/shaders/panel.ts +51 -0
  904. package/src/render/shaders/particle.ts +438 -0
  905. package/src/render/shaders/prefilter.ts +278 -0
  906. package/src/render/shaders/rush.ts +357 -0
  907. package/src/render/shaders/scatter.ts +211 -0
  908. package/src/render/shaders/sdfText.ts +68 -0
  909. package/src/render/shaders/skinning.ts +59 -0
  910. package/src/render/shaders/sky.ts +243 -0
  911. package/src/render/shaders/smoke.ts +89 -0
  912. package/src/render/shaders/ssrResolve.ts +28 -0
  913. package/src/render/shaders/ssrTrace.ts +233 -0
  914. package/src/render/shaders/tangentFrame.ts +70 -0
  915. package/src/render/shaders/temporalResolve.ts +151 -0
  916. package/src/render/shaders/text.ts +156 -0
  917. package/src/render/shaders/vertexChannel.ts +71 -0
  918. package/src/render/shaders/water.ts +356 -0
  919. package/src/render/shaders/windStreaks.ts +130 -0
  920. package/src/render/shadowCasters.ts +124 -0
  921. package/src/render/shadowMap.ts +89 -0
  922. package/src/render/shotPlacement.ts +266 -0
  923. package/src/render/skinPalette.ts +157 -0
  924. package/src/render/ssrPass.ts +241 -0
  925. package/src/render/surfaceSheet.ts +158 -0
  926. package/src/render/surfaceTexture.ts +310 -0
  927. package/src/render/temporalAa.ts +221 -0
  928. package/src/render/temporalPass.ts +153 -0
  929. package/src/render/textLayout.ts +239 -0
  930. package/src/render/textRenderer.ts +201 -0
  931. package/src/render/thirdPersonCamera.ts +578 -0
  932. package/src/render/trample.ts +140 -0
  933. package/src/render/translucentQueue.ts +161 -0
  934. package/src/render/uniformVectorBudget.ts +246 -0
  935. package/src/render/uploadStep.ts +14 -0
  936. package/src/render/vertexDefaults.ts +115 -0
  937. package/src/render/visibility.ts +56 -0
  938. package/src/render/waterDraw.ts +167 -0
  939. package/src/render/waterGrid.ts +180 -0
  940. package/src/render/waterRenderer.ts +352 -0
  941. package/src/render/wind.ts +79 -0
  942. package/src/render/windField.ts +50 -0
  943. package/src/render/windStreakDraw.ts +131 -0
  944. package/src/render/windStreakRenderer.ts +130 -0
  945. package/src/scene/node.ts +336 -0
  946. package/src/scene/visit.ts +82 -0
  947. package/src/ui/clipMime.ts +109 -0
  948. package/src/ui/exportTarget.ts +491 -0
  949. package/src/ui/frameOverlay.ts +159 -0
  950. package/src/ui/framePacer.ts +351 -0
  951. package/src/ui/frameRecorder.ts +333 -0
  952. package/src/ui/fullscreen.ts +113 -0
  953. package/src/ui/pixelCursor.ts +99 -0
  954. package/src/ui/splash.ts +347 -0
  955. package/src/ui/stillFrame.ts +44 -0
@@ -0,0 +1,343 @@
1
+ /*
2
+ * Generated from ../particle.ts by `npm run wgsl`. Do not edit.
3
+ *
4
+ * The GLSL beside this file is the source of truth. A hand edit here is discarded by
5
+ * the next generation, and `npm run wgsl:check` fails the build when this is stale.
6
+ */
7
+
8
+ export const PARTICLE_MOTE_FRAG_WGSL = "struct Uniforms {\n uCameraPos: vec3<f32>,\n uFogEnabled: i32,\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 uOutputTransform: i32,\n uOutputExposure: f32,\n}\n\n@group(0) @binding(1) \nvar<uniform> unnamed: Uniforms;\nvar<private> vUv_1: vec2<f32>;\nvar<private> vAlpha_1: f32;\nvar<private> vColor_1: vec3<f32>;\nvar<private> vWorldPos_1: vec3<f32>;\nvar<private> outColor: vec4<f32>;\nvar<private> vAge_1: f32;\nvar<private> vSeed_1: f32;\nvar<private> vNormal_1: vec3<f32>;\n\nfn linearToSrgb_u0028_vf3_u003b(c: ptr<function, vec3<f32>>) -> vec3<f32> {\n var low: vec3<f32>;\n var high: vec3<f32>;\n\n let _e72 = (*c);\n low = (_e72 * 12.92f);\n let _e74 = (*c);\n high = ((pow(max(_e74, vec3<f32>(0f, 0f, 0f)), vec3<f32>(0.41666666f, 0.41666666f, 0.41666666f)) * 1.055f) - vec3(0.055f));\n let _e80 = high;\n let _e81 = low;\n let _e82 = (*c);\n return mix(_e80, _e81, step(_e82, vec3<f32>(0.0031308f, 0.0031308f, 0.0031308f)));\n}\n\nfn rrtAndOdtFit_u0028_vf3_u003b(v: ptr<function, vec3<f32>>) -> vec3<f32> {\n var a: vec3<f32>;\n var b: vec3<f32>;\n\n let _e72 = (*v);\n let _e73 = (*v);\n a = ((_e72 * (_e73 + vec3(0.0245786f))) - vec3(0.000090537f));\n let _e79 = (*v);\n let _e80 = (*v);\n b = ((_e79 * ((_e80 * 0.983729f) + vec3(0.432951f))) + vec3(0.238081f));\n let _e87 = a;\n let _e88 = b;\n return (_e87 / _e88);\n}\n\nfn acesFilmic_u0028_vf3_u003b(x: ptr<function, vec3<f32>>) -> vec3<f32> {\n var param: vec3<f32>;\n\n let _e72 = unnamed.uOutputExposure;\n let _e73 = (*x);\n (*x) = (_e73 * _e72);\n let _e75 = (*x);\n param = (mat3x3<f32>(vec3<f32>(0.59719f, 0.076f, 0.0284f), vec3<f32>(0.35458f, 0.90834f, 0.13383f), vec3<f32>(0.04823f, 0.01566f, 0.83777f)) * _e75);\n let _e77 = rrtAndOdtFit_u0028_vf3_u003b((&param));\n return clamp((mat3x3<f32>(vec3<f32>(1.60475f, -0.10208f, -0.00327f), vec3<f32>(-0.53108f, 1.10813f, -0.07276f), vec3<f32>(-0.07367f, -0.00605f, 1.07602f)) * _e77), vec3(0f), vec3(1f));\n}\n\nfn applyOutputTransform_u0028_vf3_u003b(c_1: ptr<function, vec3<f32>>) -> vec3<f32> {\n var param_1: vec3<f32>;\n var param_2: vec3<f32>;\n\n let _e73 = unnamed.uOutputTransform;\n if (_e73 == 0i) {\n let _e75 = (*c_1);\n return _e75;\n }\n let _e77 = unnamed.uOutputTransform;\n if (_e77 == 2i) {\n let _e79 = (*c_1);\n param_1 = _e79;\n let _e80 = acesFilmic_u0028_vf3_u003b((&param_1));\n (*c_1) = _e80;\n }\n let _e81 = (*c_1);\n param_2 = _e81;\n let _e82 = linearToSrgb_u0028_vf3_u003b((&param_2));\n return _e82;\n}\n\nfn mediumColor_u0028_() -> vec3<f32> {\n let _e70 = unnamed.uFogColor;\n let _e72 = unnamed.uUnderwaterColor;\n let _e74 = unnamed.uUnderwaterFactor;\n return mix(_e70, _e72, vec3(_e74));\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 _e79 = unnamed.uFogMode;\n if (_e79 == 1i) {\n let _e82 = unnamed.uFogFar;\n let _e84 = unnamed.uFogNear;\n span = max((_e82 - _e84), 0.0001f);\n let _e87 = (*dist);\n let _e89 = unnamed.uFogNear;\n let _e91 = span;\n ramp = clamp(((_e87 - _e89) / _e91), 0f, 1f);\n let _e95 = unnamed.uUnderwaterFactor;\n if (_e95 <= 0f) {\n let _e97 = ramp;\n return _e97;\n }\n let _e99 = unnamed.uUnderwaterFogDensity;\n let _e100 = (*dist);\n wetLinear = (_e99 * _e100);\n let _e102 = ramp;\n let _e103 = wetLinear;\n let _e105 = wetLinear;\n let _e111 = unnamed.uUnderwaterFactor;\n return mix(_e102, (1f - exp2(((-(_e103) * _e105) * 1.442695f))), _e111);\n }\n let _e113 = (*pointY);\n let _e115 = unnamed.uFogEyeY;\n let _e118 = unnamed.uFogHeightFalloff;\n t = ((_e113 - _e115) * _e118);\n let _e120 = t;\n let _e123 = t;\n denom = select(_e123, 0.0001f, (abs(_e120) < 0.0001f));\n let _e126 = unnamed.uFogDensity;\n let _e128 = (*dist);\n let _e130 = denom;\n let _e135 = denom;\n air = (1f - exp((((-(_e126) * _e128) * (1f - exp(-(_e130)))) / _e135)));\n let _e140 = unnamed.uUnderwaterFactor;\n if (_e140 <= 0f) {\n let _e142 = air;\n return _e142;\n }\n let _e144 = unnamed.uUnderwaterFogDensity;\n let _e145 = (*dist);\n wet = (_e144 * _e145);\n let _e147 = air;\n let _e148 = wet;\n let _e150 = wet;\n let _e156 = unnamed.uUnderwaterFactor;\n return mix(_e147, (1f - exp2(((-(_e148) * _e150) * 1.442695f))), _e156);\n}\n\nfn main_1() {\n var r: f32;\n var body: f32;\n var alpha: f32;\n var color: vec3<f32>;\n var fog: f32;\n var param_3: f32;\n var param_4: f32;\n var param_5: vec3<f32>;\n\n let _e77 = vUv_1;\n r = length(_e77);\n let _e79 = r;\n body = (1f - smoothstep(0.4f, 1f, _e79));\n let _e82 = body;\n if (_e82 <= 0f) {\n discard;\n }\n let _e84 = body;\n let _e85 = body;\n let _e87 = vAlpha_1;\n alpha = ((_e84 * _e85) * _e87);\n let _e89 = alpha;\n if (_e89 <= 0.002f) {\n discard;\n }\n let _e91 = vColor_1;\n color = _e91;\n let _e93 = unnamed.uFogEnabled;\n if (_e93 != 0i) {\n let _e95 = vWorldPos_1;\n let _e97 = unnamed.uCameraPos;\n param_3 = distance(_e95, _e97);\n let _e100 = vWorldPos_1[1u];\n param_4 = _e100;\n let _e101 = mediumFog_u0028_f1_u003b_f1_u003b((&param_3), (&param_4));\n fog = _e101;\n let _e102 = color;\n let _e103 = mediumColor_u0028_();\n let _e104 = fog;\n color = mix(_e102, _e103, vec3(_e104));\n }\n let _e107 = color;\n param_5 = _e107;\n let _e108 = applyOutputTransform_u0028_vf3_u003b((&param_5));\n let _e109 = alpha;\n outColor = vec4<f32>(_e108.x, _e108.y, _e108.z, _e109);\n return;\n}\n\n@fragment \nfn main(@location(0) vUv: vec2<f32>, @location(2) vAlpha: f32, @location(1) vColor: vec3<f32>, @location(5) vWorldPos: vec3<f32>, @location(3) vAge: f32, @location(4) vSeed: f32, @location(6) vNormal: vec3<f32>) -> @location(0) vec4<f32> {\n vUv_1 = vUv;\n vAlpha_1 = vAlpha;\n vColor_1 = vColor;\n vWorldPos_1 = vWorldPos;\n vAge_1 = vAge;\n vSeed_1 = vSeed;\n vNormal_1 = vNormal;\n main_1();\n let _e15 = outColor;\n return _e15;\n}\n";
9
+
10
+ export const PARTICLE_SMOKE_FRAG_WGSL = "struct Uniforms {\n uTime: f32,\n uDirectionalDir: vec3<f32>,\n uDirectionalColor: vec3<f32>,\n uAmbient: vec3<f32>,\n uCameraPos: vec3<f32>,\n uNoiseOctaves: i32,\n uErosion: f32,\n uLightCount: i32,\n uLightPos: array<vec3<f32>, 16>,\n uLightColor: array<vec3<f32>, 16>,\n uLightRadius: array<vec4<f32>, 16>,\n uLightWeight: array<vec4<f32>, 16>,\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 uOutputTransform: i32,\n uOutputExposure: f32,\n}\n\n@group(0) @binding(1) \nvar<uniform> unnamed: Uniforms;\nvar<private> vUv_1: vec2<f32>;\nvar<private> vSeed_1: f32;\nvar<private> vAge_1: f32;\nvar<private> vNormal_1: vec3<f32>;\nvar<private> vWorldPos_1: vec3<f32>;\nvar<private> vColor_1: vec3<f32>;\nvar<private> outColor: vec4<f32>;\nvar<private> vAlpha_1: f32;\n\nfn linearToSrgb_u0028_vf3_u003b(c: ptr<function, vec3<f32>>) -> vec3<f32> {\n var low: vec3<f32>;\n var high: vec3<f32>;\n\n let _e107 = (*c);\n low = (_e107 * 12.92f);\n let _e109 = (*c);\n high = ((pow(max(_e109, vec3<f32>(0f, 0f, 0f)), vec3<f32>(0.41666666f, 0.41666666f, 0.41666666f)) * 1.055f) - vec3(0.055f));\n let _e115 = high;\n let _e116 = low;\n let _e117 = (*c);\n return mix(_e115, _e116, step(_e117, vec3<f32>(0.0031308f, 0.0031308f, 0.0031308f)));\n}\n\nfn rrtAndOdtFit_u0028_vf3_u003b(v: ptr<function, vec3<f32>>) -> vec3<f32> {\n var a: vec3<f32>;\n var b: vec3<f32>;\n\n let _e107 = (*v);\n let _e108 = (*v);\n a = ((_e107 * (_e108 + vec3(0.0245786f))) - vec3(0.000090537f));\n let _e114 = (*v);\n let _e115 = (*v);\n b = ((_e114 * ((_e115 * 0.983729f) + vec3(0.432951f))) + vec3(0.238081f));\n let _e122 = a;\n let _e123 = b;\n return (_e122 / _e123);\n}\n\nfn acesFilmic_u0028_vf3_u003b(x: ptr<function, vec3<f32>>) -> vec3<f32> {\n var param: vec3<f32>;\n\n let _e107 = unnamed.uOutputExposure;\n let _e108 = (*x);\n (*x) = (_e108 * _e107);\n let _e110 = (*x);\n param = (mat3x3<f32>(vec3<f32>(0.59719f, 0.076f, 0.0284f), vec3<f32>(0.35458f, 0.90834f, 0.13383f), vec3<f32>(0.04823f, 0.01566f, 0.83777f)) * _e110);\n let _e112 = rrtAndOdtFit_u0028_vf3_u003b((&param));\n return clamp((mat3x3<f32>(vec3<f32>(1.60475f, -0.10208f, -0.00327f), vec3<f32>(-0.53108f, 1.10813f, -0.07276f), vec3<f32>(-0.07367f, -0.00605f, 1.07602f)) * _e112), vec3(0f), vec3(1f));\n}\n\nfn applyOutputTransform_u0028_vf3_u003b(c_1: ptr<function, vec3<f32>>) -> vec3<f32> {\n var param_1: vec3<f32>;\n var param_2: vec3<f32>;\n\n let _e108 = unnamed.uOutputTransform;\n if (_e108 == 0i) {\n let _e110 = (*c_1);\n return _e110;\n }\n let _e112 = unnamed.uOutputTransform;\n if (_e112 == 2i) {\n let _e114 = (*c_1);\n param_1 = _e114;\n let _e115 = acesFilmic_u0028_vf3_u003b((&param_1));\n (*c_1) = _e115;\n }\n let _e116 = (*c_1);\n param_2 = _e116;\n let _e117 = linearToSrgb_u0028_vf3_u003b((&param_2));\n return _e117;\n}\n\nfn mediumColor_u0028_() -> vec3<f32> {\n let _e105 = unnamed.uFogColor;\n let _e107 = unnamed.uUnderwaterColor;\n let _e109 = unnamed.uUnderwaterFactor;\n return mix(_e105, _e107, vec3(_e109));\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 _e114 = unnamed.uFogMode;\n if (_e114 == 1i) {\n let _e117 = unnamed.uFogFar;\n let _e119 = unnamed.uFogNear;\n span = max((_e117 - _e119), 0.0001f);\n let _e122 = (*dist);\n let _e124 = unnamed.uFogNear;\n let _e126 = span;\n ramp = clamp(((_e122 - _e124) / _e126), 0f, 1f);\n let _e130 = unnamed.uUnderwaterFactor;\n if (_e130 <= 0f) {\n let _e132 = ramp;\n return _e132;\n }\n let _e134 = unnamed.uUnderwaterFogDensity;\n let _e135 = (*dist);\n wetLinear = (_e134 * _e135);\n let _e137 = ramp;\n let _e138 = wetLinear;\n let _e140 = wetLinear;\n let _e146 = unnamed.uUnderwaterFactor;\n return mix(_e137, (1f - exp2(((-(_e138) * _e140) * 1.442695f))), _e146);\n }\n let _e148 = (*pointY);\n let _e150 = unnamed.uFogEyeY;\n let _e153 = unnamed.uFogHeightFalloff;\n t = ((_e148 - _e150) * _e153);\n let _e155 = t;\n let _e158 = t;\n denom = select(_e158, 0.0001f, (abs(_e155) < 0.0001f));\n let _e161 = unnamed.uFogDensity;\n let _e163 = (*dist);\n let _e165 = denom;\n let _e170 = denom;\n air = (1f - exp((((-(_e161) * _e163) * (1f - exp(-(_e165)))) / _e170)));\n let _e175 = unnamed.uUnderwaterFactor;\n if (_e175 <= 0f) {\n let _e177 = air;\n return _e177;\n }\n let _e179 = unnamed.uUnderwaterFogDensity;\n let _e180 = (*dist);\n wet = (_e179 * _e180);\n let _e182 = air;\n let _e183 = wet;\n let _e185 = wet;\n let _e191 = unnamed.uUnderwaterFactor;\n return mix(_e182, (1f - exp2(((-(_e183) * _e185) * 1.442695f))), _e191);\n}\n\nfn hash21_u0028_vf2_u003b(p: ptr<function, vec2<f32>>) -> f32 {\n let _e105 = (*p);\n return fract((sin(dot(_e105, 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_3: vec2<f32>;\n var param_4: vec2<f32>;\n var param_5: vec2<f32>;\n var param_6: vec2<f32>;\n\n let _e112 = (*p_1);\n i = floor(_e112);\n let _e114 = (*p_1);\n f = fract(_e114);\n let _e116 = f;\n let _e117 = f;\n let _e119 = f;\n u = ((_e116 * _e117) * (vec2(3f) - (_e119 * 2f)));\n let _e124 = i;\n param_3 = _e124;\n let _e125 = hash21_u0028_vf2_u003b((&param_3));\n let _e126 = i;\n param_4 = (_e126 + vec2<f32>(1f, 0f));\n let _e128 = hash21_u0028_vf2_u003b((&param_4));\n let _e130 = u[0u];\n let _e132 = i;\n param_5 = (_e132 + vec2<f32>(0f, 1f));\n let _e134 = hash21_u0028_vf2_u003b((&param_5));\n let _e135 = i;\n param_6 = (_e135 + vec2<f32>(1f, 1f));\n let _e137 = hash21_u0028_vf2_u003b((&param_6));\n let _e139 = u[0u];\n let _e142 = u[1u];\n return mix(mix(_e125, _e128, _e130), mix(_e134, _e137, _e139), _e142);\n}\n\nfn billow_u0028_vf2_u003b_f1_u003b_i1_u003b(p_2: ptr<function, vec2<f32>>, t_1: ptr<function, f32>, octaves: ptr<function, i32>) -> f32 {\n var v_1: f32;\n var param_7: vec2<f32>;\n var param_8: vec2<f32>;\n\n let _e110 = (*p_2);\n let _e112 = (*t_1);\n param_7 = ((_e110 * 2.4f) + vec2<f32>(0f, (-(_e112) * 0.5f)));\n let _e117 = valueNoise_u0028_vf2_u003b((&param_7));\n v_1 = (_e117 * 0.62f);\n let _e119 = (*octaves);\n if (_e119 == 1i) {\n let _e121 = v_1;\n return (_e121 / 0.62f);\n }\n let _e123 = (*p_2);\n let _e125 = (*t_1);\n let _e127 = (*t_1);\n param_8 = ((_e123 * 5.1f) + vec2<f32>((_e125 * 0.15f), (-(_e127) * 0.8f)));\n let _e132 = valueNoise_u0028_vf2_u003b((&param_8));\n let _e134 = v_1;\n v_1 = (_e134 + (_e132 * 0.38f));\n let _e136 = v_1;\n return (_e136 / 1f);\n}\n\nfn main_1() {\n var r: f32;\n var body: f32;\n var t_2: f32;\n var n: f32;\n var param_9: vec2<f32>;\n var param_10: f32;\n var param_11: i32;\n var erode: f32;\n var mask: f32;\n var n3_: vec3<f32>;\n var ndl: f32;\n var lit: vec3<f32>;\n var i_1: i32;\n var toLight: vec3<f32>;\n var dist_1: f32;\n var radius: f32;\n var falloff: f32;\n var wrapped: f32;\n var shaded: vec3<f32>;\n var fog: f32;\n var param_12: f32;\n var param_13: f32;\n var param_14: vec3<f32>;\n\n let _e127 = vUv_1;\n r = length(_e127);\n let _e129 = r;\n body = (1f - smoothstep(0.35f, 1f, _e129));\n let _e132 = body;\n if (_e132 <= 0f) {\n discard;\n }\n let _e135 = unnamed.uTime;\n let _e137 = vSeed_1;\n t_2 = ((_e135 * 0.55f) + (_e137 * 7.31f));\n let _e140 = vUv_1;\n let _e141 = vAge_1;\n let _e145 = vSeed_1;\n param_9 = ((_e140 * (0.9f + (_e141 * 1.4f))) + vec2<f32>((_e145 * 3.7f), 0f));\n let _e149 = t_2;\n param_10 = _e149;\n let _e151 = unnamed.uNoiseOctaves;\n param_11 = _e151;\n let _e152 = billow_u0028_vf2_u003b_f1_u003b_i1_u003b((&param_9), (&param_10), (&param_11));\n n = _e152;\n let _e153 = n;\n let _e155 = unnamed.uErosion;\n let _e156 = vAge_1;\n erode = mix(1f, _e153, (_e155 * (0.35f + (_e156 * 0.65f))));\n let _e161 = body;\n let _e162 = erode;\n mask = clamp((_e161 * _e162), 0f, 1f);\n let _e165 = mask;\n let _e167 = mask;\n mask = (_e167 * smoothstep(0f, 0.25f, _e165));\n let _e169 = mask;\n if (_e169 <= 0.002f) {\n discard;\n }\n let _e171 = vNormal_1;\n n3_ = normalize(_e171);\n let _e173 = n3_;\n let _e175 = unnamed.uDirectionalDir;\n ndl = ((dot(_e173, _e175) * 0.5f) + 0.5f);\n let _e180 = unnamed.uAmbient;\n let _e182 = unnamed.uDirectionalColor;\n let _e183 = ndl;\n lit = (_e180 + (_e182 * _e183));\n i_1 = 0i;\n loop {\n let _e186 = i_1;\n if (_e186 < 16i) {\n let _e188 = i_1;\n let _e190 = unnamed.uLightCount;\n if (_e188 >= _e190) {\n break;\n }\n let _e192 = i_1;\n let _e195 = unnamed.uLightPos[_e192];\n let _e196 = vWorldPos_1;\n toLight = (_e195 - _e196);\n let _e198 = toLight;\n dist_1 = length(_e198);\n let _e200 = i_1;\n let _e204 = unnamed.uLightRadius[_e200][0u];\n radius = _e204;\n let _e205 = radius;\n let _e207 = dist_1;\n let _e208 = radius;\n if ((_e205 <= 0f) || (_e207 >= _e208)) {\n continue;\n }\n let _e211 = dist_1;\n let _e212 = radius;\n falloff = (1f - (_e211 / _e212));\n let _e215 = n3_;\n let _e216 = toLight;\n let _e217 = dist_1;\n wrapped = ((dot(_e215, (_e216 / vec3(max(_e217, 0.0001f)))) * 0.5f) + 0.5f);\n let _e224 = i_1;\n let _e227 = unnamed.uLightColor[_e224];\n let _e228 = falloff;\n let _e230 = falloff;\n let _e232 = wrapped;\n let _e234 = i_1;\n let _e238 = unnamed.uLightWeight[_e234][0u];\n let _e240 = lit;\n lit = (_e240 + ((((_e227 * _e228) * _e230) * _e232) * _e238));\n continue;\n } else {\n break;\n }\n continuing {\n let _e242 = i_1;\n i_1 = (_e242 + 1i);\n }\n }\n let _e244 = vColor_1;\n let _e245 = lit;\n shaded = (_e244 * _e245);\n let _e247 = vWorldPos_1;\n let _e249 = unnamed.uCameraPos;\n param_12 = distance(_e247, _e249);\n let _e252 = vWorldPos_1[1u];\n param_13 = _e252;\n let _e253 = mediumFog_u0028_f1_u003b_f1_u003b((&param_12), (&param_13));\n fog = _e253;\n let _e254 = shaded;\n let _e255 = mediumColor_u0028_();\n let _e256 = fog;\n param_14 = mix(_e254, _e255, vec3(_e256));\n let _e259 = applyOutputTransform_u0028_vf3_u003b((&param_14));\n let _e260 = mask;\n let _e261 = vAlpha_1;\n outColor = vec4<f32>(_e259.x, _e259.y, _e259.z, (_e260 * _e261));\n return;\n}\n\n@fragment \nfn main(@location(0) vUv: vec2<f32>, @location(4) vSeed: f32, @location(3) vAge: f32, @location(6) vNormal: vec3<f32>, @location(5) vWorldPos: vec3<f32>, @location(1) vColor: vec3<f32>, @location(2) vAlpha: f32) -> @location(0) vec4<f32> {\n vUv_1 = vUv;\n vSeed_1 = vSeed;\n vAge_1 = vAge;\n vNormal_1 = vNormal;\n vWorldPos_1 = vWorldPos;\n vColor_1 = vColor;\n vAlpha_1 = vAlpha;\n main_1();\n let _e15 = outColor;\n return _e15;\n}\n";
11
+
12
+ export const PARTICLE_SPARK_FRAG_WGSL = "struct Uniforms {\n uTime: f32,\n uCameraPos: vec3<f32>,\n uCoreGain: 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 uOutputTransform: i32,\n uOutputExposure: f32,\n}\n\n@group(0) @binding(1) \nvar<uniform> unnamed: Uniforms;\nvar<private> vUv_1: vec2<f32>;\nvar<private> vSeed_1: f32;\nvar<private> vAge_1: f32;\nvar<private> vAlpha_1: f32;\nvar<private> vWorldPos_1: vec3<f32>;\nvar<private> outColor: vec4<f32>;\nvar<private> vColor_1: vec3<f32>;\nvar<private> vNormal_1: vec3<f32>;\n\nfn linearToSrgb_u0028_vf3_u003b(c: ptr<function, vec3<f32>>) -> vec3<f32> {\n var low: vec3<f32>;\n var high: vec3<f32>;\n\n let _e86 = (*c);\n low = (_e86 * 12.92f);\n let _e88 = (*c);\n high = ((pow(max(_e88, vec3<f32>(0f, 0f, 0f)), vec3<f32>(0.41666666f, 0.41666666f, 0.41666666f)) * 1.055f) - vec3(0.055f));\n let _e94 = high;\n let _e95 = low;\n let _e96 = (*c);\n return mix(_e94, _e95, step(_e96, vec3<f32>(0.0031308f, 0.0031308f, 0.0031308f)));\n}\n\nfn rrtAndOdtFit_u0028_vf3_u003b(v: ptr<function, vec3<f32>>) -> vec3<f32> {\n var a: vec3<f32>;\n var b: vec3<f32>;\n\n let _e86 = (*v);\n let _e87 = (*v);\n a = ((_e86 * (_e87 + vec3(0.0245786f))) - vec3(0.000090537f));\n let _e93 = (*v);\n let _e94 = (*v);\n b = ((_e93 * ((_e94 * 0.983729f) + vec3(0.432951f))) + vec3(0.238081f));\n let _e101 = a;\n let _e102 = b;\n return (_e101 / _e102);\n}\n\nfn acesFilmic_u0028_vf3_u003b(x: ptr<function, vec3<f32>>) -> vec3<f32> {\n var param: vec3<f32>;\n\n let _e86 = unnamed.uOutputExposure;\n let _e87 = (*x);\n (*x) = (_e87 * _e86);\n let _e89 = (*x);\n param = (mat3x3<f32>(vec3<f32>(0.59719f, 0.076f, 0.0284f), vec3<f32>(0.35458f, 0.90834f, 0.13383f), vec3<f32>(0.04823f, 0.01566f, 0.83777f)) * _e89);\n let _e91 = rrtAndOdtFit_u0028_vf3_u003b((&param));\n return clamp((mat3x3<f32>(vec3<f32>(1.60475f, -0.10208f, -0.00327f), vec3<f32>(-0.53108f, 1.10813f, -0.07276f), vec3<f32>(-0.07367f, -0.00605f, 1.07602f)) * _e91), vec3(0f), vec3(1f));\n}\n\nfn applyOutputTransform_u0028_vf3_u003b(c_1: ptr<function, vec3<f32>>) -> vec3<f32> {\n var param_1: vec3<f32>;\n var param_2: vec3<f32>;\n\n let _e87 = unnamed.uOutputTransform;\n if (_e87 == 0i) {\n let _e89 = (*c_1);\n return _e89;\n }\n let _e91 = unnamed.uOutputTransform;\n if (_e91 == 2i) {\n let _e93 = (*c_1);\n param_1 = _e93;\n let _e94 = acesFilmic_u0028_vf3_u003b((&param_1));\n (*c_1) = _e94;\n }\n let _e95 = (*c_1);\n param_2 = _e95;\n let _e96 = linearToSrgb_u0028_vf3_u003b((&param_2));\n return _e96;\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 _e93 = unnamed.uFogMode;\n if (_e93 == 1i) {\n let _e96 = unnamed.uFogFar;\n let _e98 = unnamed.uFogNear;\n span = max((_e96 - _e98), 0.0001f);\n let _e101 = (*dist);\n let _e103 = unnamed.uFogNear;\n let _e105 = span;\n ramp = clamp(((_e101 - _e103) / _e105), 0f, 1f);\n let _e109 = unnamed.uUnderwaterFactor;\n if (_e109 <= 0f) {\n let _e111 = ramp;\n return _e111;\n }\n let _e113 = unnamed.uUnderwaterFogDensity;\n let _e114 = (*dist);\n wetLinear = (_e113 * _e114);\n let _e116 = ramp;\n let _e117 = wetLinear;\n let _e119 = wetLinear;\n let _e125 = unnamed.uUnderwaterFactor;\n return mix(_e116, (1f - exp2(((-(_e117) * _e119) * 1.442695f))), _e125);\n }\n let _e127 = (*pointY);\n let _e129 = unnamed.uFogEyeY;\n let _e132 = unnamed.uFogHeightFalloff;\n t = ((_e127 - _e129) * _e132);\n let _e134 = t;\n let _e137 = t;\n denom = select(_e137, 0.0001f, (abs(_e134) < 0.0001f));\n let _e140 = unnamed.uFogDensity;\n let _e142 = (*dist);\n let _e144 = denom;\n let _e149 = denom;\n air = (1f - exp((((-(_e140) * _e142) * (1f - exp(-(_e144)))) / _e149)));\n let _e154 = unnamed.uUnderwaterFactor;\n if (_e154 <= 0f) {\n let _e156 = air;\n return _e156;\n }\n let _e158 = unnamed.uUnderwaterFogDensity;\n let _e159 = (*dist);\n wet = (_e158 * _e159);\n let _e161 = air;\n let _e162 = wet;\n let _e164 = wet;\n let _e170 = unnamed.uUnderwaterFactor;\n return mix(_e161, (1f - exp2(((-(_e162) * _e164) * 1.442695f))), _e170);\n}\n\nfn hash21_u0028_vf2_u003b(p: ptr<function, vec2<f32>>) -> f32 {\n let _e84 = (*p);\n return fract((sin(dot(_e84, 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_3: vec2<f32>;\n var param_4: vec2<f32>;\n var param_5: vec2<f32>;\n var param_6: vec2<f32>;\n\n let _e91 = (*p_1);\n i = floor(_e91);\n let _e93 = (*p_1);\n f = fract(_e93);\n let _e95 = f;\n let _e96 = f;\n let _e98 = f;\n u = ((_e95 * _e96) * (vec2(3f) - (_e98 * 2f)));\n let _e103 = i;\n param_3 = _e103;\n let _e104 = hash21_u0028_vf2_u003b((&param_3));\n let _e105 = i;\n param_4 = (_e105 + vec2<f32>(1f, 0f));\n let _e107 = hash21_u0028_vf2_u003b((&param_4));\n let _e109 = u[0u];\n let _e111 = i;\n param_5 = (_e111 + vec2<f32>(0f, 1f));\n let _e113 = hash21_u0028_vf2_u003b((&param_5));\n let _e114 = i;\n param_6 = (_e114 + vec2<f32>(1f, 1f));\n let _e116 = hash21_u0028_vf2_u003b((&param_6));\n let _e118 = u[0u];\n let _e121 = u[1u];\n return mix(mix(_e104, _e107, _e109), mix(_e113, _e116, _e118), _e121);\n}\n\nfn main_1() {\n var r: f32;\n var core: f32;\n var halo: f32;\n var flick: f32;\n var param_7: vec2<f32>;\n var cool: f32;\n var energy: f32;\n var fog: f32;\n var param_8: f32;\n var param_9: f32;\n var param_10: vec3<f32>;\n\n let _e94 = vUv_1;\n r = length(_e94);\n let _e96 = r;\n if (_e96 > 1f) {\n discard;\n }\n let _e98 = r;\n core = pow((1f - clamp(_e98, 0f, 1f)), 6f);\n let _e102 = r;\n halo = pow((1f - clamp(_e102, 0f, 1f)), 1.6f);\n let _e107 = unnamed.uTime;\n let _e109 = vSeed_1;\n let _e112 = vSeed_1;\n param_7 = vec2<f32>(((_e107 * 9f) + (_e109 * 13f)), _e112);\n let _e114 = valueNoise_u0028_vf2_u003b((&param_7));\n flick = (0.7f + (0.3f * _e114));\n let _e117 = vAge_1;\n let _e118 = vAge_1;\n cool = (1f - (_e117 * _e118));\n let _e121 = halo;\n let _e123 = core;\n let _e125 = unnamed.uCoreGain;\n let _e128 = flick;\n let _e130 = cool;\n let _e132 = vAlpha_1;\n energy = (((((_e121 * 0.55f) + (_e123 * _e125)) * _e128) * _e130) * _e132);\n let _e134 = vWorldPos_1;\n let _e136 = unnamed.uCameraPos;\n param_8 = distance(_e134, _e136);\n let _e139 = vWorldPos_1[1u];\n param_9 = _e139;\n let _e140 = mediumFog_u0028_f1_u003b_f1_u003b((&param_8), (&param_9));\n fog = _e140;\n let _e141 = fog;\n let _e143 = energy;\n energy = (_e143 * (1f - _e141));\n let _e145 = vColor_1;\n let _e146 = energy;\n param_10 = (_e145 * _e146);\n let _e148 = applyOutputTransform_u0028_vf3_u003b((&param_10));\n outColor = vec4<f32>(_e148.x, _e148.y, _e148.z, 1f);\n return;\n}\n\n@fragment \nfn main(@location(0) vUv: vec2<f32>, @location(4) vSeed: f32, @location(3) vAge: f32, @location(2) vAlpha: f32, @location(5) vWorldPos: vec3<f32>, @location(1) vColor: vec3<f32>, @location(6) vNormal: vec3<f32>) -> @location(0) vec4<f32> {\n vUv_1 = vUv;\n vSeed_1 = vSeed;\n vAge_1 = vAge;\n vAlpha_1 = vAlpha;\n vWorldPos_1 = vWorldPos;\n vColor_1 = vColor;\n vNormal_1 = vNormal;\n main_1();\n let _e15 = outColor;\n return _e15;\n}\n";
13
+
14
+ export const PARTICLE_VERT_WGSL = "struct Uniforms {\n uViewProj: mat4x4<f32>,\n uCameraPos: vec3<f32>,\n uStretchSec: f32,\n uCameraFacing: 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: vec3<f32>,\n @location(2) member_2: f32,\n @location(3) member_3: f32,\n @location(4) member_4: f32,\n @location(5) member_5: vec3<f32>,\n @location(6) member_6: vec3<f32>,\n @builtin(position) gl_Position: vec4<f32>,\n}\n\nvar<private> aSpin_1: f32;\nvar<private> aCorner_1: vec2<f32>;\n@group(0) @binding(0) \nvar<uniform> unnamed: Uniforms;\nvar<private> aPos_1: vec3<f32>;\nvar<private> aBlade_1: f32;\nvar<private> aSize_1: f32;\nvar<private> aVelocity_1: vec3<f32>;\nvar<private> vUv: vec2<f32>;\nvar<private> vColor: vec3<f32>;\nvar<private> aColor_1: vec3<f32>;\nvar<private> vAlpha: f32;\nvar<private> aAlpha_1: f32;\nvar<private> vAge: f32;\nvar<private> aAge_1: f32;\nvar<private> vSeed: f32;\nvar<private> aSeed_1: f32;\nvar<private> vWorldPos: vec3<f32>;\nvar<private> vNormal: vec3<f32>;\nvar<private> unnamed_1: gl_PerVertex = gl_PerVertex(vec4<f32>(0f, 0f, 0f, 1f), 1f);\n\nfn main_1() {\n var s: f32;\n var c: f32;\n var rolled: vec2<f32>;\n var toCamera: vec3<f32>;\n var reference: vec3<f32>;\n var across: vec3<f32>;\n var up: vec3<f32>;\n var bladeGain: f32;\n var offset: vec3<f32>;\n var travel: vec3<f32>;\n var along: f32;\n var world: vec3<f32>;\n var face: vec3<f32>;\n var toEye: vec3<f32>;\n var local: vec3<f32>;\n\n let _e49 = aSpin_1;\n s = sin(_e49);\n let _e51 = aSpin_1;\n c = cos(_e51);\n let _e54 = aCorner_1[0u];\n let _e55 = c;\n let _e58 = aCorner_1[1u];\n let _e59 = s;\n let _e63 = aCorner_1[0u];\n let _e64 = s;\n let _e67 = aCorner_1[1u];\n let _e68 = c;\n rolled = vec2<f32>(((_e54 * _e55) - (_e58 * _e59)), ((_e63 * _e64) + (_e67 * _e68)));\n let _e73 = unnamed.uCameraFacing;\n if (_e73 > 0.5f) {\n let _e76 = unnamed.uCameraPos;\n let _e77 = aPos_1;\n toCamera = normalize((_e76 - _e77));\n let _e81 = toCamera[1u];\n reference = select(vec3<f32>(0f, 1f, 0f), vec3<f32>(0f, 0f, 1f), vec3((abs(_e81) > 0.999f)));\n let _e86 = reference;\n let _e87 = toCamera;\n across = normalize(cross(_e86, _e87));\n let _e90 = toCamera;\n let _e91 = across;\n up = cross(_e90, _e91);\n let _e93 = aBlade_1;\n bladeGain = select(0f, 1f, (_e93 < 0.5f));\n } else {\n let _e96 = aBlade_1;\n across = select(vec3<f32>(0f, 0f, 1f), vec3<f32>(1f, 0f, 0f), vec3((_e96 < 0.5f)));\n up = vec3<f32>(0f, 1f, 0f);\n bladeGain = 1f;\n }\n let _e100 = across;\n let _e102 = rolled[0u];\n let _e104 = up;\n let _e106 = rolled[1u];\n let _e109 = aSize_1;\n offset = (((_e100 * _e102) + (_e104 * _e106)) * _e109);\n let _e112 = unnamed.uStretchSec;\n if (_e112 > 0f) {\n let _e114 = aVelocity_1;\n let _e116 = unnamed.uStretchSec;\n travel = (_e114 * _e116);\n let _e118 = offset;\n let _e121 = travel;\n along = dot(normalize((_e118 + vec3<f32>(0.000001f, 0.000001f, 0.000001f))), normalize((_e121 + vec3<f32>(0.000001f, 0.000001f, 0.000001f))));\n let _e125 = travel;\n let _e126 = along;\n let _e129 = offset;\n offset = (_e129 + ((_e125 * _e126) * 0.5f));\n }\n let _e131 = aPos_1;\n let _e132 = offset;\n let _e133 = bladeGain;\n world = (_e131 + (_e132 * _e133));\n let _e136 = aCorner_1;\n vUv = _e136;\n let _e137 = aColor_1;\n vColor = _e137;\n let _e138 = aAlpha_1;\n vAlpha = _e138;\n let _e139 = aAge_1;\n vAge = _e139;\n let _e140 = aSeed_1;\n vSeed = _e140;\n let _e141 = world;\n vWorldPos = _e141;\n let _e142 = across;\n let _e143 = up;\n face = cross(_e142, _e143);\n let _e146 = unnamed.uCameraPos;\n let _e147 = world;\n toEye = normalize((_e146 - _e147));\n let _e150 = face;\n let _e151 = toEye;\n if (dot(_e150, _e151) < 0f) {\n let _e154 = face;\n local = -(_e154);\n } else {\n let _e156 = face;\n local = _e156;\n }\n let _e157 = local;\n vNormal = _e157;\n let _e159 = unnamed.uViewProj;\n let _e160 = world;\n unnamed_1.gl_Position = (_e159 * vec4<f32>(_e160.x, _e160.y, _e160.z, 1f));\n return;\n}\n\n@vertex \nfn main(@location(4) aSpin: f32, @location(0) aCorner: vec2<f32>, @location(2) aPos: vec3<f32>, @location(1) aBlade: f32, @location(3) aSize: f32, @location(9) aVelocity: vec3<f32>, @location(5) aColor: vec3<f32>, @location(6) aAlpha: f32, @location(7) aAge: f32, @location(8) aSeed: f32) -> VertexOutput {\n aSpin_1 = aSpin;\n aCorner_1 = aCorner;\n aPos_1 = aPos;\n aBlade_1 = aBlade;\n aSize_1 = aSize;\n aVelocity_1 = aVelocity;\n aColor_1 = aColor;\n aAlpha_1 = aAlpha;\n aAge_1 = aAge;\n aSeed_1 = aSeed;\n main_1();\n let _e30 = unnamed_1.gl_Position.y;\n unnamed_1.gl_Position.y = -(_e30);\n let _e32 = vUv;\n let _e33 = vColor;\n let _e34 = vAlpha;\n let _e35 = vAge;\n let _e36 = vSeed;\n let _e37 = vWorldPos;\n let _e38 = vNormal;\n let _e39 = unnamed_1.gl_Position;\n return VertexOutput(_e32, _e33, _e34, _e35, _e36, _e37, _e38, _e39);\n}\n";
15
+
16
+ /**
17
+ * What the transform assigned, so the renderer binds the same numbers.
18
+ *
19
+ * A permuted shader has one entry per variant, keyed as `FLAT_FRAG_WGSL` is.
20
+ */
21
+ export const PARTICLE_BINDINGS = {
22
+ "PARTICLE_MOTE_FRAG": {
23
+ "uniforms": 1,
24
+ "uniformSize": 96,
25
+ "fields": {
26
+ "uCameraPos": {
27
+ "offset": 0,
28
+ "size": 12,
29
+ "type": "vec3"
30
+ },
31
+ "uFogEnabled": {
32
+ "offset": 12,
33
+ "size": 4,
34
+ "type": "int"
35
+ },
36
+ "uFogColor": {
37
+ "offset": 16,
38
+ "size": 12,
39
+ "type": "vec3"
40
+ },
41
+ "uFogDensity": {
42
+ "offset": 28,
43
+ "size": 4,
44
+ "type": "float"
45
+ },
46
+ "uFogHeightFalloff": {
47
+ "offset": 32,
48
+ "size": 4,
49
+ "type": "float"
50
+ },
51
+ "uFogEyeY": {
52
+ "offset": 36,
53
+ "size": 4,
54
+ "type": "float"
55
+ },
56
+ "uUnderwaterColor": {
57
+ "offset": 48,
58
+ "size": 12,
59
+ "type": "vec3"
60
+ },
61
+ "uUnderwaterFogDensity": {
62
+ "offset": 60,
63
+ "size": 4,
64
+ "type": "float"
65
+ },
66
+ "uUnderwaterFactor": {
67
+ "offset": 64,
68
+ "size": 4,
69
+ "type": "float"
70
+ },
71
+ "uFogMode": {
72
+ "offset": 68,
73
+ "size": 4,
74
+ "type": "int"
75
+ },
76
+ "uFogNear": {
77
+ "offset": 72,
78
+ "size": 4,
79
+ "type": "float"
80
+ },
81
+ "uFogFar": {
82
+ "offset": 76,
83
+ "size": 4,
84
+ "type": "float"
85
+ },
86
+ "uOutputTransform": {
87
+ "offset": 80,
88
+ "size": 4,
89
+ "type": "int"
90
+ },
91
+ "uOutputExposure": {
92
+ "offset": 84,
93
+ "size": 4,
94
+ "type": "float"
95
+ }
96
+ },
97
+ "textures": {}
98
+ },
99
+ "PARTICLE_SMOKE_FRAG": {
100
+ "uniforms": 1,
101
+ "uniformSize": 1200,
102
+ "fields": {
103
+ "uTime": {
104
+ "offset": 0,
105
+ "size": 4,
106
+ "type": "float"
107
+ },
108
+ "uDirectionalDir": {
109
+ "offset": 16,
110
+ "size": 12,
111
+ "type": "vec3"
112
+ },
113
+ "uDirectionalColor": {
114
+ "offset": 32,
115
+ "size": 12,
116
+ "type": "vec3"
117
+ },
118
+ "uAmbient": {
119
+ "offset": 48,
120
+ "size": 12,
121
+ "type": "vec3"
122
+ },
123
+ "uCameraPos": {
124
+ "offset": 64,
125
+ "size": 12,
126
+ "type": "vec3"
127
+ },
128
+ "uNoiseOctaves": {
129
+ "offset": 76,
130
+ "size": 4,
131
+ "type": "int"
132
+ },
133
+ "uErosion": {
134
+ "offset": 80,
135
+ "size": 4,
136
+ "type": "float"
137
+ },
138
+ "uLightCount": {
139
+ "offset": 84,
140
+ "size": 4,
141
+ "type": "int"
142
+ },
143
+ "uLightPos": {
144
+ "offset": 96,
145
+ "size": 256,
146
+ "type": "vec3",
147
+ "length": 16,
148
+ "stride": 16
149
+ },
150
+ "uLightColor": {
151
+ "offset": 352,
152
+ "size": 256,
153
+ "type": "vec3",
154
+ "length": 16,
155
+ "stride": 16
156
+ },
157
+ "uLightRadius": {
158
+ "offset": 608,
159
+ "size": 256,
160
+ "type": "vec4",
161
+ "length": 16,
162
+ "stride": 16
163
+ },
164
+ "uLightWeight": {
165
+ "offset": 864,
166
+ "size": 256,
167
+ "type": "vec4",
168
+ "length": 16,
169
+ "stride": 16
170
+ },
171
+ "uFogColor": {
172
+ "offset": 1120,
173
+ "size": 12,
174
+ "type": "vec3"
175
+ },
176
+ "uFogDensity": {
177
+ "offset": 1132,
178
+ "size": 4,
179
+ "type": "float"
180
+ },
181
+ "uFogHeightFalloff": {
182
+ "offset": 1136,
183
+ "size": 4,
184
+ "type": "float"
185
+ },
186
+ "uFogEyeY": {
187
+ "offset": 1140,
188
+ "size": 4,
189
+ "type": "float"
190
+ },
191
+ "uUnderwaterColor": {
192
+ "offset": 1152,
193
+ "size": 12,
194
+ "type": "vec3"
195
+ },
196
+ "uUnderwaterFogDensity": {
197
+ "offset": 1164,
198
+ "size": 4,
199
+ "type": "float"
200
+ },
201
+ "uUnderwaterFactor": {
202
+ "offset": 1168,
203
+ "size": 4,
204
+ "type": "float"
205
+ },
206
+ "uFogMode": {
207
+ "offset": 1172,
208
+ "size": 4,
209
+ "type": "int"
210
+ },
211
+ "uFogNear": {
212
+ "offset": 1176,
213
+ "size": 4,
214
+ "type": "float"
215
+ },
216
+ "uFogFar": {
217
+ "offset": 1180,
218
+ "size": 4,
219
+ "type": "float"
220
+ },
221
+ "uOutputTransform": {
222
+ "offset": 1184,
223
+ "size": 4,
224
+ "type": "int"
225
+ },
226
+ "uOutputExposure": {
227
+ "offset": 1188,
228
+ "size": 4,
229
+ "type": "float"
230
+ }
231
+ },
232
+ "textures": {}
233
+ },
234
+ "PARTICLE_SPARK_FRAG": {
235
+ "uniforms": 1,
236
+ "uniformSize": 112,
237
+ "fields": {
238
+ "uTime": {
239
+ "offset": 0,
240
+ "size": 4,
241
+ "type": "float"
242
+ },
243
+ "uCameraPos": {
244
+ "offset": 16,
245
+ "size": 12,
246
+ "type": "vec3"
247
+ },
248
+ "uCoreGain": {
249
+ "offset": 28,
250
+ "size": 4,
251
+ "type": "float"
252
+ },
253
+ "uFogColor": {
254
+ "offset": 32,
255
+ "size": 12,
256
+ "type": "vec3"
257
+ },
258
+ "uFogDensity": {
259
+ "offset": 44,
260
+ "size": 4,
261
+ "type": "float"
262
+ },
263
+ "uFogHeightFalloff": {
264
+ "offset": 48,
265
+ "size": 4,
266
+ "type": "float"
267
+ },
268
+ "uFogEyeY": {
269
+ "offset": 52,
270
+ "size": 4,
271
+ "type": "float"
272
+ },
273
+ "uUnderwaterColor": {
274
+ "offset": 64,
275
+ "size": 12,
276
+ "type": "vec3"
277
+ },
278
+ "uUnderwaterFogDensity": {
279
+ "offset": 76,
280
+ "size": 4,
281
+ "type": "float"
282
+ },
283
+ "uUnderwaterFactor": {
284
+ "offset": 80,
285
+ "size": 4,
286
+ "type": "float"
287
+ },
288
+ "uFogMode": {
289
+ "offset": 84,
290
+ "size": 4,
291
+ "type": "int"
292
+ },
293
+ "uFogNear": {
294
+ "offset": 88,
295
+ "size": 4,
296
+ "type": "float"
297
+ },
298
+ "uFogFar": {
299
+ "offset": 92,
300
+ "size": 4,
301
+ "type": "float"
302
+ },
303
+ "uOutputTransform": {
304
+ "offset": 96,
305
+ "size": 4,
306
+ "type": "int"
307
+ },
308
+ "uOutputExposure": {
309
+ "offset": 100,
310
+ "size": 4,
311
+ "type": "float"
312
+ }
313
+ },
314
+ "textures": {}
315
+ },
316
+ "PARTICLE_VERT": {
317
+ "uniforms": 0,
318
+ "uniformSize": 96,
319
+ "fields": {
320
+ "uViewProj": {
321
+ "offset": 0,
322
+ "size": 64,
323
+ "type": "mat4"
324
+ },
325
+ "uCameraPos": {
326
+ "offset": 64,
327
+ "size": 12,
328
+ "type": "vec3"
329
+ },
330
+ "uStretchSec": {
331
+ "offset": 76,
332
+ "size": 4,
333
+ "type": "float"
334
+ },
335
+ "uCameraFacing": {
336
+ "offset": 80,
337
+ "size": 4,
338
+ "type": "float"
339
+ }
340
+ },
341
+ "textures": {}
342
+ }
343
+ } as const;
@@ -0,0 +1,69 @@
1
+ /*
2
+ * Generated from ../prefilter.ts by `npm run wgsl`. Do not edit.
3
+ *
4
+ * The GLSL beside this file is the source of truth. A hand edit here is discarded by
5
+ * the next generation, and `npm run wgsl:check` fails the build when this is stale.
6
+ */
7
+
8
+ export const PREFILTER_FRAG_WGSL = "struct Uniforms {\n uPrefilterEdge: f32,\n uPrefilterIrradiance: f32,\n uPrefilterBox: f32,\n uPrefilterLevel: f32,\n uPrefilterRoughness: f32,\n uPrefilterSamples: f32,\n uPrefilterSourceTexels: f32,\n uPrefilterSourceMaxLod: f32,\n}\n\nvar<private> vUv_1: vec2<f32>;\n@group(0) @binding(1) \nvar<uniform> unnamed: Uniforms;\nvar<private> fragColor: vec4<f32>;\n@group(0) @binding(32) \nvar uPrefilterSource_t: texture_cube<f32>;\n@group(0) @binding(33) \nvar uPrefilterSource_s: sampler;\n\nfn ggxDistribution_u0028_f1_u003b_f1_u003b(ndh: ptr<function, f32>, roughness: ptr<function, f32>) -> f32 {\n var a: f32;\n var a2_: f32;\n var d: f32;\n\n let _e50 = (*roughness);\n let _e51 = (*roughness);\n a = (_e50 * _e51);\n let _e53 = a;\n let _e54 = a;\n a2_ = (_e53 * _e54);\n let _e56 = (*ndh);\n let _e57 = (*ndh);\n let _e59 = a2_;\n d = (((_e56 * _e57) * (_e59 - 1f)) + 1f);\n let _e63 = a2_;\n let _e64 = d;\n let _e66 = d;\n return (_e63 / max(((3.1415927f * _e64) * _e66), 0.00000001f));\n}\n\nfn importanceSampleGgx_u0028_vf2_u003b_vf3_u003b_f1_u003b(xi: ptr<function, vec2<f32>>, n: ptr<function, vec3<f32>>, roughness_1: ptr<function, f32>) -> vec3<f32> {\n var a_1: f32;\n var phi: f32;\n var cosTheta: f32;\n var sinTheta: f32;\n var h: vec3<f32>;\n var up: vec3<f32>;\n var tangentX: vec3<f32>;\n var tangentY: vec3<f32>;\n\n let _e56 = (*roughness_1);\n let _e57 = (*roughness_1);\n a_1 = (_e56 * _e57);\n let _e60 = (*xi)[0u];\n phi = (6.2831855f * _e60);\n let _e63 = (*xi)[1u];\n let _e65 = a_1;\n let _e66 = a_1;\n let _e70 = (*xi)[1u];\n cosTheta = sqrt(((1f - _e63) / (1f + (((_e65 * _e66) - 1f) * _e70))));\n let _e75 = cosTheta;\n let _e76 = cosTheta;\n sinTheta = sqrt((1f - (_e75 * _e76)));\n let _e80 = sinTheta;\n let _e81 = phi;\n let _e84 = sinTheta;\n let _e85 = phi;\n let _e88 = cosTheta;\n h = vec3<f32>((_e80 * cos(_e81)), (_e84 * sin(_e85)), _e88);\n let _e91 = (*n)[2u];\n up = select(vec3<f32>(1f, 0f, 0f), vec3<f32>(0f, 0f, 1f), vec3((abs(_e91) < 0.999f)));\n let _e96 = up;\n let _e97 = (*n);\n tangentX = normalize(cross(_e96, _e97));\n let _e100 = (*n);\n let _e101 = tangentX;\n tangentY = cross(_e100, _e101);\n let _e103 = tangentX;\n let _e105 = h[0u];\n let _e107 = tangentY;\n let _e109 = h[1u];\n let _e112 = (*n);\n let _e114 = h[2u];\n return normalize((((_e103 * _e105) + (_e107 * _e109)) + (_e112 * _e114)));\n}\n\nfn importanceSampleCosine_u0028_vf2_u003b_vf3_u003b(xi_1: ptr<function, vec2<f32>>, n_1: ptr<function, vec3<f32>>) -> vec3<f32> {\n var phi_1: f32;\n var cosTheta_1: f32;\n var sinTheta_1: f32;\n var h_1: vec3<f32>;\n var up_1: vec3<f32>;\n var tangentX_1: vec3<f32>;\n var tangentY_1: vec3<f32>;\n\n let _e55 = (*xi_1)[0u];\n phi_1 = (6.2831855f * _e55);\n let _e58 = (*xi_1)[1u];\n cosTheta_1 = sqrt(max((1f - _e58), 0f));\n let _e63 = (*xi_1)[1u];\n sinTheta_1 = sqrt(_e63);\n let _e65 = sinTheta_1;\n let _e66 = phi_1;\n let _e69 = sinTheta_1;\n let _e70 = phi_1;\n let _e73 = cosTheta_1;\n h_1 = vec3<f32>((_e65 * cos(_e66)), (_e69 * sin(_e70)), _e73);\n let _e76 = (*n_1)[2u];\n up_1 = select(vec3<f32>(1f, 0f, 0f), vec3<f32>(0f, 0f, 1f), vec3((abs(_e76) < 0.999f)));\n let _e81 = up_1;\n let _e82 = (*n_1);\n tangentX_1 = normalize(cross(_e81, _e82));\n let _e85 = (*n_1);\n let _e86 = tangentX_1;\n tangentY_1 = cross(_e85, _e86);\n let _e88 = tangentX_1;\n let _e90 = h_1[0u];\n let _e92 = tangentY_1;\n let _e94 = h_1[1u];\n let _e97 = (*n_1);\n let _e99 = h_1[2u];\n return normalize((((_e88 * _e90) + (_e92 * _e94)) + (_e97 * _e99)));\n}\n\nfn radicalInverse_u0028_u1_u003b(bits: ptr<function, u32>) -> f32 {\n let _e46 = (*bits);\n let _e49 = (*bits);\n (*bits) = ((_e46 << bitcast<u32>(16u)) | (_e49 >> bitcast<u32>(16u)));\n let _e53 = (*bits);\n let _e57 = (*bits);\n (*bits) = (((_e53 & 1431655765u) << bitcast<u32>(1u)) | ((_e57 & 2863311530u) >> bitcast<u32>(1u)));\n let _e62 = (*bits);\n let _e66 = (*bits);\n (*bits) = (((_e62 & 858993459u) << bitcast<u32>(2u)) | ((_e66 & 3435973836u) >> bitcast<u32>(2u)));\n let _e71 = (*bits);\n let _e75 = (*bits);\n (*bits) = (((_e71 & 252645135u) << bitcast<u32>(4u)) | ((_e75 & 4042322160u) >> bitcast<u32>(4u)));\n let _e80 = (*bits);\n let _e84 = (*bits);\n (*bits) = (((_e80 & 16711935u) << bitcast<u32>(8u)) | ((_e84 & 4278255360u) >> bitcast<u32>(8u)));\n let _e89 = (*bits);\n return (f32(_e89) * 0.00000000023283064f);\n}\n\nfn octDecode_u0028_vf2_u003b(uv: ptr<function, vec2<f32>>) -> vec3<f32> {\n var f: vec2<f32>;\n var n_2: vec3<f32>;\n var t: f32;\n var local: f32;\n var local_1: f32;\n\n let _e51 = (*uv);\n f = ((_e51 * 2f) - vec2(1f));\n let _e56 = f[0u];\n let _e58 = f[1u];\n let _e60 = f[0u];\n let _e64 = f[1u];\n n_2 = vec3<f32>(_e56, _e58, ((1f - abs(_e60)) - abs(_e64)));\n let _e69 = n_2[2u];\n t = max(-(_e69), 0f);\n let _e73 = n_2[0u];\n if (_e73 >= 0f) {\n let _e75 = t;\n local = -(_e75);\n } else {\n let _e77 = t;\n local = _e77;\n }\n let _e78 = local;\n let _e80 = n_2[0u];\n n_2[0u] = (_e80 + _e78);\n let _e84 = n_2[1u];\n if (_e84 >= 0f) {\n let _e86 = t;\n local_1 = -(_e86);\n } else {\n let _e88 = t;\n local_1 = _e88;\n }\n let _e89 = local_1;\n let _e91 = n_2[1u];\n n_2[1u] = (_e91 + _e89);\n let _e94 = n_2;\n return normalize(_e94);\n}\n\nfn octWrapUv_u0028_vf2_u003b(uv_1: ptr<function, vec2<f32>>) -> vec2<f32> {\n var f_1: vec2<f32>;\n var phi_127_: bool;\n var phi_152_: bool;\n\n let _e47 = (*uv_1);\n f_1 = ((_e47 * 2f) - vec2(1f));\n let _e52 = f_1[0u];\n let _e53 = (_e52 < -1f);\n phi_127_ = _e53;\n if !(_e53) {\n let _e56 = f_1[0u];\n phi_127_ = (_e56 > 1f);\n }\n let _e59 = phi_127_;\n if _e59 {\n let _e61 = f_1[0u];\n let _e65 = f_1[0u];\n f_1[0u] = (select(-2f, 2f, (_e61 > 0f)) - _e65);\n let _e69 = f_1[1u];\n f_1[1u] = -(_e69);\n }\n let _e73 = f_1[1u];\n let _e74 = (_e73 < -1f);\n phi_152_ = _e74;\n if !(_e74) {\n let _e77 = f_1[1u];\n phi_152_ = (_e77 > 1f);\n }\n let _e80 = phi_152_;\n if _e80 {\n let _e82 = f_1[1u];\n let _e86 = f_1[1u];\n f_1[1u] = (select(-2f, 2f, (_e82 > 0f)) - _e86);\n let _e90 = f_1[0u];\n f_1[0u] = -(_e90);\n }\n let _e93 = f_1;\n return ((_e93 * 0.5f) + vec2(0.5f));\n}\n\nfn octInsetDir_u0028_vf2_u003b_f1_u003b(uv_2: ptr<function, vec2<f32>>, edge: ptr<function, f32>) -> vec3<f32> {\n var param: vec2<f32>;\n var param_1: vec2<f32>;\n\n let _e49 = (*uv_2);\n let _e50 = (*edge);\n let _e54 = (*edge);\n param = (((_e49 * _e50) - vec2(1f)) / vec2((_e54 - 2f)));\n let _e58 = octWrapUv_u0028_vf2_u003b((&param));\n param_1 = _e58;\n let _e59 = octDecode_u0028_vf2_u003b((&param_1));\n return _e59;\n}\n\nfn main_1() {\n var n_3: vec3<f32>;\n var param_2: vec2<f32>;\n var param_3: f32;\n var texelSolidAngle: f32;\n var diffuse: vec3<f32>;\n var cosineSamples: i32;\n var i: i32;\n var xi_2: vec2<f32>;\n var param_4: u32;\n var l: vec3<f32>;\n var param_5: vec2<f32>;\n var param_6: vec3<f32>;\n var pdf: f32;\n var sampleSolidAngle: f32;\n var lod: f32;\n var sum: vec3<f32>;\n var weight: f32;\n var samples: i32;\n var i_1: i32;\n var xi_3: vec2<f32>;\n var param_7: u32;\n var h_2: vec3<f32>;\n var param_8: vec2<f32>;\n var param_9: vec3<f32>;\n var param_10: f32;\n var l_1: vec3<f32>;\n var ndl: f32;\n var ndh_1: f32;\n var pdf_1: f32;\n var param_11: f32;\n var param_12: f32;\n var sampleSolidAngle_1: f32;\n var lod_1: f32;\n var phi_437_: bool;\n\n let _e78 = vUv_1;\n param_2 = _e78;\n let _e80 = unnamed.uPrefilterEdge;\n param_3 = _e80;\n let _e81 = octInsetDir_u0028_vf2_u003b_f1_u003b((&param_2), (&param_3));\n n_3 = _e81;\n let _e83 = unnamed.uPrefilterSourceTexels;\n let _e86 = unnamed.uPrefilterSourceTexels;\n texelSolidAngle = (12.566371f / ((6f * _e83) * _e86));\n let _e90 = unnamed.uPrefilterBox;\n let _e91 = (_e90 > 0.5f);\n phi_437_ = _e91;\n if _e91 {\n let _e93 = unnamed.uPrefilterIrradiance;\n phi_437_ = (_e93 <= 0.5f);\n }\n let _e96 = phi_437_;\n if _e96 {\n let _e97 = n_3;\n let _e99 = unnamed.uPrefilterLevel;\n let _e101 = unnamed.uPrefilterSourceMaxLod;\n let _e103 = textureSampleLevel(uPrefilterSource_t, uPrefilterSource_s, _e97, min(_e99, _e101));\n let _e104 = _e103.xyz;\n fragColor = vec4<f32>(_e104.x, _e104.y, _e104.z, 1f);\n return;\n }\n let _e110 = unnamed.uPrefilterIrradiance;\n if (_e110 > 0.5f) {\n diffuse = vec3<f32>(0f, 0f, 0f);\n let _e113 = unnamed.uPrefilterSamples;\n cosineSamples = i32(_e113);\n i = 0i;\n loop {\n let _e115 = i;\n let _e116 = cosineSamples;\n if (_e115 < _e116) {\n let _e118 = i;\n let _e121 = unnamed.uPrefilterSamples;\n let _e123 = i;\n param_4 = bitcast<u32>(_e123);\n let _e125 = radicalInverse_u0028_u1_u003b((&param_4));\n xi_2 = vec2<f32>((f32(_e118) / _e121), _e125);\n let _e127 = xi_2;\n param_5 = _e127;\n let _e128 = n_3;\n param_6 = _e128;\n let _e129 = importanceSampleCosine_u0028_vf2_u003b_vf3_u003b((&param_5), (&param_6));\n l = _e129;\n let _e130 = n_3;\n let _e131 = l;\n pdf = max((dot(_e130, _e131) / 3.1415927f), 0.0001f);\n let _e136 = unnamed.uPrefilterSamples;\n let _e137 = pdf;\n sampleSolidAngle = (1f / (_e136 * _e137));\n let _e140 = sampleSolidAngle;\n let _e141 = texelSolidAngle;\n let _e146 = unnamed.uPrefilterSourceMaxLod;\n lod = clamp((0.5f * log2((_e140 / _e141))), 0f, _e146);\n let _e148 = l;\n let _e149 = lod;\n let _e150 = textureSampleLevel(uPrefilterSource_t, uPrefilterSource_s, _e148, _e149);\n let _e152 = diffuse;\n diffuse = (_e152 + _e150.xyz);\n continue;\n } else {\n break;\n }\n continuing {\n let _e154 = i;\n i = (_e154 + 1i);\n }\n }\n let _e156 = diffuse;\n let _e158 = unnamed.uPrefilterSamples;\n let _e161 = (_e156 / vec3(max(_e158, 1f)));\n fragColor = vec4<f32>(_e161.x, _e161.y, _e161.z, 1f);\n return;\n }\n let _e167 = unnamed.uPrefilterRoughness;\n if (_e167 <= 0f) {\n let _e169 = n_3;\n let _e170 = textureSampleLevel(uPrefilterSource_t, uPrefilterSource_s, _e169, 0f);\n let _e171 = _e170.xyz;\n fragColor = vec4<f32>(_e171.x, _e171.y, _e171.z, 1f);\n return;\n }\n sum = vec3<f32>(0f, 0f, 0f);\n weight = 0f;\n let _e177 = unnamed.uPrefilterSamples;\n samples = i32(_e177);\n i_1 = 0i;\n loop {\n let _e179 = i_1;\n let _e180 = samples;\n if (_e179 < _e180) {\n let _e182 = i_1;\n let _e185 = unnamed.uPrefilterSamples;\n let _e187 = i_1;\n param_7 = bitcast<u32>(_e187);\n let _e189 = radicalInverse_u0028_u1_u003b((&param_7));\n xi_3 = vec2<f32>((f32(_e182) / _e185), _e189);\n let _e191 = xi_3;\n param_8 = _e191;\n let _e192 = n_3;\n param_9 = _e192;\n let _e194 = unnamed.uPrefilterRoughness;\n param_10 = _e194;\n let _e195 = importanceSampleGgx_u0028_vf2_u003b_vf3_u003b_f1_u003b((&param_8), (&param_9), (&param_10));\n h_2 = _e195;\n let _e196 = n_3;\n let _e197 = h_2;\n let _e200 = h_2;\n let _e202 = n_3;\n l_1 = normalize(((_e200 * (2f * dot(_e196, _e197))) - _e202));\n let _e205 = n_3;\n let _e206 = l_1;\n ndl = dot(_e205, _e206);\n let _e208 = ndl;\n if (_e208 <= 0f) {\n continue;\n }\n let _e210 = n_3;\n let _e211 = h_2;\n ndh_1 = max(dot(_e210, _e211), 0f);\n let _e214 = ndh_1;\n param_11 = _e214;\n let _e216 = unnamed.uPrefilterRoughness;\n param_12 = _e216;\n let _e217 = ggxDistribution_u0028_f1_u003b_f1_u003b((&param_11), (&param_12));\n pdf_1 = max((_e217 * 0.25f), 0.00000001f);\n let _e221 = unnamed.uPrefilterSamples;\n let _e222 = pdf_1;\n sampleSolidAngle_1 = (1f / (_e221 * _e222));\n let _e225 = sampleSolidAngle_1;\n let _e226 = texelSolidAngle;\n let _e231 = unnamed.uPrefilterSourceMaxLod;\n lod_1 = clamp((0.5f * log2((_e225 / _e226))), 0f, _e231);\n let _e233 = l_1;\n let _e234 = lod_1;\n let _e235 = textureSampleLevel(uPrefilterSource_t, uPrefilterSource_s, _e233, _e234);\n let _e237 = ndl;\n let _e239 = sum;\n sum = (_e239 + (_e235.xyz * _e237));\n let _e241 = ndl;\n let _e242 = weight;\n weight = (_e242 + _e241);\n continue;\n } else {\n break;\n }\n continuing {\n let _e244 = i_1;\n i_1 = (_e244 + 1i);\n }\n }\n let _e246 = sum;\n let _e247 = weight;\n let _e250 = (_e246 / vec3(max(_e247, 0.0001f)));\n fragColor = vec4<f32>(_e250.x, _e250.y, _e250.z, 1f);\n return;\n}\n\n@fragment \nfn main(@location(0) vUv: vec2<f32>) -> @location(0) vec4<f32> {\n vUv_1 = vUv;\n main_1();\n let _e3 = fragColor;\n return _e3;\n}\n";
9
+
10
+ /**
11
+ * What the transform assigned, so the renderer binds the same numbers.
12
+ *
13
+ * A permuted shader has one entry per variant, keyed as `FLAT_FRAG_WGSL` is.
14
+ */
15
+ export const PREFILTER_BINDINGS = {
16
+ "PREFILTER_FRAG": {
17
+ "uniforms": 1,
18
+ "uniformSize": 32,
19
+ "fields": {
20
+ "uPrefilterEdge": {
21
+ "offset": 0,
22
+ "size": 4,
23
+ "type": "float"
24
+ },
25
+ "uPrefilterIrradiance": {
26
+ "offset": 4,
27
+ "size": 4,
28
+ "type": "float"
29
+ },
30
+ "uPrefilterBox": {
31
+ "offset": 8,
32
+ "size": 4,
33
+ "type": "float"
34
+ },
35
+ "uPrefilterLevel": {
36
+ "offset": 12,
37
+ "size": 4,
38
+ "type": "float"
39
+ },
40
+ "uPrefilterRoughness": {
41
+ "offset": 16,
42
+ "size": 4,
43
+ "type": "float"
44
+ },
45
+ "uPrefilterSamples": {
46
+ "offset": 20,
47
+ "size": 4,
48
+ "type": "float"
49
+ },
50
+ "uPrefilterSourceTexels": {
51
+ "offset": 24,
52
+ "size": 4,
53
+ "type": "float"
54
+ },
55
+ "uPrefilterSourceMaxLod": {
56
+ "offset": 28,
57
+ "size": 4,
58
+ "type": "float"
59
+ }
60
+ },
61
+ "textures": {
62
+ "uPrefilterSource": {
63
+ "texture": 32,
64
+ "sampler": 33,
65
+ "type": "samplerCube"
66
+ }
67
+ }
68
+ }
69
+ } as const;