@woosh/meep-engine 3.67.0 → 3.69.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 (498) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts +2 -17
  3. package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts.map +1 -1
  4. package/editor/ecs/component/editors/ecs/Trail3DEditor.js +3 -18
  5. package/package.json +1 -1
  6. package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts +33 -65
  7. package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts.map +1 -1
  8. package/src/engine/graphics/ecs/trail3d/Trail3D.js +37 -245
  9. package/src/engine/graphics/ecs/trail3d/Trail3DFlags.d.ts +0 -4
  10. package/src/engine/graphics/ecs/trail3d/Trail3DFlags.js +4 -10
  11. package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.d.ts +13 -10
  12. package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.d.ts.map +1 -1
  13. package/src/engine/graphics/ecs/trail3d/seed_trail_stroke.js +28 -37
  14. package/src/engine/graphics/ecs/trail3d/trail_knot_count.d.ts +10 -0
  15. package/src/engine/graphics/ecs/trail3d/trail_knot_count.d.ts.map +1 -0
  16. package/src/engine/graphics/ecs/trail3d/trail_knot_count.js +27 -0
  17. package/src/engine/graphics/trail/TrailKnots.d.ts +62 -0
  18. package/src/engine/graphics/trail/TrailKnots.d.ts.map +1 -0
  19. package/src/engine/graphics/trail/TrailKnots.js +137 -0
  20. package/src/engine/graphics/trail/tube/TubeXMaterialSpec.d.ts +1 -1
  21. package/src/engine/graphics/trail/tube/TubeXMaterialSpec.js +1 -1
  22. package/src/engine/graphics3/EntityRowHold.d.ts +48 -0
  23. package/src/engine/graphics3/EntityRowHold.d.ts.map +1 -0
  24. package/src/engine/graphics3/EntityRowHold.js +128 -0
  25. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +6 -2
  26. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  27. package/src/engine/graphics3/GPUParticleEmitterSystem.js +11 -44
  28. package/src/engine/graphics3/GraphicsEngine.d.ts.map +1 -1
  29. package/src/engine/graphics3/GraphicsEngine.js +4 -9
  30. package/src/engine/graphics3/Trail3DSystem.d.ts +69 -35
  31. package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
  32. package/src/engine/graphics3/Trail3DSystem.js +380 -81
  33. package/src/engine/graphics3/load_cube_environment.js +3 -3
  34. package/src/engine/physics/fluid/ecs/FluidObstacle.d.ts +17 -0
  35. package/src/engine/physics/fluid/ecs/FluidObstacle.d.ts.map +1 -1
  36. package/src/engine/physics/fluid/ecs/FluidObstacle.js +22 -2
  37. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +6 -5
  38. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
  39. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.js +14 -3
  40. package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts +9 -1
  41. package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.d.ts.map +1 -1
  42. package/src/engine/physics/fluid/obstacle/FLUID_OBSTACLE_RECORD_STRUCT.js +11 -1
  43. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts +5 -0
  44. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.d.ts.map +1 -1
  45. package/src/engine/physics/fluid/obstacle/fluid_obstacle_record_create.js +2 -0
  46. package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts +4 -3
  47. package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.d.ts.map +1 -1
  48. package/src/engine/physics/fluid/obstacle/fluid_obstacle_write_gpu_record.js +11 -3
  49. package/src/shade/playground/probe_clipmap/index.html +43 -0
  50. package/src/shade/playground/probe_clipmap/main.d.ts.map +1 -1
  51. package/src/shade/playground/probe_clipmap/main.js +29 -0
  52. package/src/shade/playground/trails/index.html +50 -0
  53. package/src/shade/playground/trails/main.d.ts +2 -0
  54. package/src/shade/playground/trails/main.d.ts.map +1 -0
  55. package/src/shade/playground/trails/main.js +258 -0
  56. package/src/shade/renderer/Renderer.d.ts +7 -0
  57. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  58. package/src/shade/renderer/Renderer.js +213 -15
  59. package/src/shade/renderer/ShadeIndirectLightingMode.d.ts +1 -0
  60. package/src/shade/renderer/ShadeIndirectLightingMode.js +9 -0
  61. package/src/shade/renderer/animation/animation_curve_write_keys.d.ts +18 -0
  62. package/src/shade/renderer/animation/animation_curve_write_keys.d.ts.map +1 -0
  63. package/src/shade/renderer/animation/animation_curve_write_keys.js +34 -0
  64. package/src/shade/renderer/atmosphere/ATMOSPHERE_PARAMETERS_STRUCT.d.ts +22 -0
  65. package/src/shade/renderer/atmosphere/ATMOSPHERE_PARAMETERS_STRUCT.d.ts.map +1 -0
  66. package/src/shade/renderer/atmosphere/ATMOSPHERE_PARAMETERS_STRUCT.js +160 -0
  67. package/src/shade/renderer/atmosphere/ATMOSPHERE_UNIT_SCALE.d.ts +45 -0
  68. package/src/shade/renderer/atmosphere/ATMOSPHERE_UNIT_SCALE.d.ts.map +1 -0
  69. package/src/shade/renderer/atmosphere/ATMOSPHERE_UNIT_SCALE.js +57 -0
  70. package/src/shade/renderer/atmosphere/GPUSky.d.ts +23 -8
  71. package/src/shade/renderer/atmosphere/GPUSky.d.ts.map +1 -1
  72. package/src/shade/renderer/atmosphere/GPUSky.js +91 -34
  73. package/src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.d.ts +17 -0
  74. package/src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.d.ts.map +1 -1
  75. package/src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.js +55 -25
  76. package/src/shade/renderer/atmosphere/SceneAtmosphere.d.ts +164 -0
  77. package/src/shade/renderer/atmosphere/SceneAtmosphere.d.ts.map +1 -0
  78. package/src/shade/renderer/atmosphere/SceneAtmosphere.js +308 -0
  79. package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.d.ts +3 -12
  80. package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.d.ts.map +1 -1
  81. package/src/shade/renderer/atmosphere/chunk_get_multiscatter_values.js +52 -89
  82. package/src/shade/renderer/atmosphere/chunk_raymarch_sky_scattering.d.ts +14 -0
  83. package/src/shade/renderer/atmosphere/chunk_raymarch_sky_scattering.d.ts.map +1 -0
  84. package/src/shade/renderer/atmosphere/chunk_raymarch_sky_scattering.js +103 -0
  85. package/src/shade/renderer/atmosphere/chunk_sample_multiscatter_lut.d.ts +10 -4
  86. package/src/shade/renderer/atmosphere/chunk_sample_multiscatter_lut.d.ts.map +1 -1
  87. package/src/shade/renderer/atmosphere/chunk_sample_multiscatter_lut.js +95 -57
  88. package/src/shade/renderer/atmosphere/chunk_sample_transmittance_lut.d.ts +10 -14
  89. package/src/shade/renderer/atmosphere/chunk_sample_transmittance_lut.d.ts.map +1 -1
  90. package/src/shade/renderer/atmosphere/chunk_sample_transmittance_lut.js +97 -69
  91. package/src/shade/renderer/atmosphere/chunk_sky_irradiance_lut_encode_uv.d.ts +17 -0
  92. package/src/shade/renderer/atmosphere/chunk_sky_irradiance_lut_encode_uv.d.ts.map +1 -1
  93. package/src/shade/renderer/atmosphere/chunk_sky_irradiance_lut_encode_uv.js +117 -48
  94. package/src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.d.ts +8 -0
  95. package/src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.d.ts.map +1 -1
  96. package/src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.js +65 -35
  97. package/src/shade/renderer/atmosphere/compute_mie_absorption.d.ts +2 -1
  98. package/src/shade/renderer/atmosphere/compute_mie_absorption.d.ts.map +1 -1
  99. package/src/shade/renderer/atmosphere/compute_mie_absorption.js +6 -6
  100. package/src/shade/renderer/atmosphere/resolve_atmosphere_sun.d.ts +41 -0
  101. package/src/shade/renderer/atmosphere/resolve_atmosphere_sun.d.ts.map +1 -0
  102. package/src/shade/renderer/atmosphere/resolve_atmosphere_sun.js +123 -0
  103. package/src/shade/renderer/atmosphere/shader_multiscatter_lut.d.ts.map +1 -1
  104. package/src/shade/renderer/atmosphere/shader_multiscatter_lut.js +21 -64
  105. package/src/shade/renderer/atmosphere/shader_sky_irradiance_lut.d.ts +6 -2
  106. package/src/shade/renderer/atmosphere/shader_sky_irradiance_lut.d.ts.map +1 -1
  107. package/src/shade/renderer/atmosphere/shader_sky_irradiance_lut.js +55 -179
  108. package/src/shade/renderer/atmosphere/shader_sky_view_lut.d.ts +7 -0
  109. package/src/shade/renderer/atmosphere/shader_sky_view_lut.d.ts.map +1 -0
  110. package/src/shade/renderer/atmosphere/shader_sky_view_lut.js +111 -0
  111. package/src/shade/renderer/atmosphere/shader_transmittance_lut.d.ts +0 -1
  112. package/src/shade/renderer/atmosphere/shader_transmittance_lut.d.ts.map +1 -1
  113. package/src/shade/renderer/atmosphere/shader_transmittance_lut.js +68 -79
  114. package/src/shade/renderer/deferred/shader_background.js +1 -1
  115. package/src/shade/renderer/deferred/shader_background_sky.d.ts +5 -0
  116. package/src/shade/renderer/deferred/shader_background_sky.d.ts.map +1 -0
  117. package/src/shade/renderer/deferred/shader_background_sky.js +130 -0
  118. package/src/shade/renderer/deferred/tonemap/ColorGrade.d.ts.map +1 -1
  119. package/src/shade/renderer/deferred/tonemap/ColorGrade.js +13 -36
  120. package/src/shade/renderer/deferred/tonemap/chunk_tonemap_purkinje.d.ts +2 -1
  121. package/src/shade/renderer/deferred/tonemap/chunk_tonemap_purkinje.d.ts.map +1 -1
  122. package/src/shade/renderer/deferred/tonemap/chunk_tonemap_purkinje.js +6 -2
  123. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +2 -2
  124. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts +2 -13
  125. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.d.ts.map +1 -1
  126. package/src/shade/renderer/dynamic/chunk_dynamic_mesh_avboit_vertex.js +6 -21
  127. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts +17 -6
  128. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.d.ts.map +1 -1
  129. package/src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.js +38 -178
  130. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts +7 -9
  131. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.d.ts.map +1 -1
  132. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.js +17 -106
  133. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts +7 -17
  134. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.d.ts.map +1 -1
  135. package/src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.js +18 -118
  136. package/src/shade/renderer/extension/ViewTextures.d.ts +3 -2
  137. package/src/shade/renderer/extension/ViewTextures.d.ts.map +1 -1
  138. package/src/shade/renderer/extension/ViewTextures.js +3 -2
  139. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +3 -3
  140. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +1 -1
  141. package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts +14 -0
  142. package/src/shade/renderer/fluid/forcing/FLUID_FORCING.d.ts.map +1 -1
  143. package/src/shade/renderer/fluid/forcing/FLUID_FORCING.js +18 -0
  144. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts +3 -1
  145. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.d.ts.map +1 -1
  146. package/src/shade/renderer/fluid/forcing/FLUID_FORCING_APPLY_STRUCT.js +4 -1
  147. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +15 -6
  148. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts.map +1 -1
  149. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.js +20 -4
  150. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts +11 -2
  151. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.d.ts.map +1 -1
  152. package/src/shade/renderer/fluid/forcing/chunk_fluid_forcing_cell.js +59 -2
  153. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts +4 -1
  154. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.d.ts.map +1 -1
  155. package/src/shade/renderer/fluid/forcing/shader_fluid_forcing_apply.js +367 -341
  156. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts +6 -2
  157. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.d.ts.map +1 -1
  158. package/src/shade/renderer/fluid/mac/shader_fluid_mac_advect_correct.js +339 -282
  159. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +1 -1
  160. package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +1 -1
  161. package/src/shade/renderer/global_illumination/probe/octahedral/shader_lpv_build_gbuffer.js +1 -1
  162. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts +20 -1
  163. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.d.ts.map +1 -1
  164. package/src/shade/renderer/global_illumination/probe_clipmap/GPUProbeClipmapGI.js +29 -0
  165. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_light.d.ts +47 -0
  166. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_light.d.ts.map +1 -0
  167. package/src/shade/renderer/global_illumination/probe_clipmap/probe/chunk_probe_clipmap_hit_light.js +246 -0
  168. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.d.ts +4 -15
  169. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.d.ts.map +1 -1
  170. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_light.js +8 -148
  171. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.d.ts +4 -9
  172. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.d.ts.map +1 -1
  173. package/src/shade/renderer/global_illumination/probe_clipmap/probe/shader_probe_clipmap_trace.js +9 -58
  174. package/src/shade/renderer/global_illumination/screen_probe/GPUScreenProbeGI.d.ts +142 -0
  175. package/src/shade/renderer/global_illumination/screen_probe/GPUScreenProbeGI.d.ts.map +1 -0
  176. package/src/shade/renderer/global_illumination/screen_probe/GPUScreenProbeGI.js +938 -0
  177. package/src/shade/renderer/global_illumination/screen_probe/SCREEN_PROBE.d.ts +192 -0
  178. package/src/shade/renderer/global_illumination/screen_probe/SCREEN_PROBE.d.ts.map +1 -0
  179. package/src/shade/renderer/global_illumination/screen_probe/SCREEN_PROBE.js +231 -0
  180. package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeDebugView.d.ts +11 -0
  181. package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeDebugView.d.ts.map +1 -0
  182. package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeDebugView.js +25 -0
  183. package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeSettings.d.ts +110 -0
  184. package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeSettings.d.ts.map +1 -0
  185. package/src/shade/renderer/global_illumination/screen_probe/ScreenProbeSettings.js +197 -0
  186. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe.d.ts +150 -0
  187. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe.d.ts.map +1 -0
  188. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe.js +408 -0
  189. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brdf_density.d.ts +23 -0
  190. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brdf_density.d.ts.map +1 -0
  191. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brdf_density.js +63 -0
  192. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brick_origin.d.ts +24 -0
  193. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brick_origin.d.ts.map +1 -0
  194. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_brick_origin.js +61 -0
  195. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_interpolate.d.ts +39 -0
  196. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_interpolate.d.ts.map +1 -0
  197. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_interpolate.js +126 -0
  198. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_lighting_history.d.ts +21 -0
  199. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_lighting_history.d.ts.map +1 -0
  200. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_lighting_history.js +74 -0
  201. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_march_distance.d.ts +20 -0
  202. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_march_distance.d.ts.map +1 -0
  203. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_march_distance.js +26 -0
  204. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_ray_sort.d.ts +24 -0
  205. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_ray_sort.d.ts.map +1 -0
  206. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_ray_sort.js +57 -0
  207. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_screen_march.d.ts +22 -0
  208. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_screen_march.d.ts.map +1 -0
  209. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_screen_march.js +53 -0
  210. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_surface.d.ts +62 -0
  211. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_surface.d.ts.map +1 -0
  212. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_surface.js +156 -0
  213. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_workgroup_sum.d.ts +18 -0
  214. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_workgroup_sum.d.ts.map +1 -0
  215. package/src/shade/renderer/global_illumination/screen_probe/chunk_screen_probe_workgroup_sum.js +50 -0
  216. package/src/shade/renderer/global_illumination/screen_probe/graph_screen_probe_debug_view.d.ts +21 -0
  217. package/src/shade/renderer/global_illumination/screen_probe/graph_screen_probe_debug_view.d.ts.map +1 -0
  218. package/src/shade/renderer/global_illumination/screen_probe/graph_screen_probe_debug_view.js +54 -0
  219. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_brick.d.ts +67 -0
  220. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_brick.d.ts.map +1 -0
  221. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_brick.js +509 -0
  222. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_debug.d.ts +20 -0
  223. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_debug.d.ts.map +1 -0
  224. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_debug.js +128 -0
  225. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_gather.d.ts +62 -0
  226. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_gather.d.ts.map +1 -0
  227. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_gather.js +478 -0
  228. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_importance.d.ts +69 -0
  229. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_importance.d.ts.map +1 -0
  230. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_importance.js +457 -0
  231. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_indirect_lighting.d.ts +27 -0
  232. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_indirect_lighting.d.ts.map +1 -0
  233. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_indirect_lighting.js +219 -0
  234. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_pick.d.ts +22 -0
  235. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_pick.d.ts.map +1 -0
  236. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_pick.js +151 -0
  237. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_place.d.ts +66 -0
  238. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_place.d.ts.map +1 -0
  239. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_place.js +301 -0
  240. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_resolve.d.ts +59 -0
  241. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_resolve.d.ts.map +1 -0
  242. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_resolve.js +364 -0
  243. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_trace_screen.d.ts +40 -0
  244. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_trace_screen.d.ts.map +1 -0
  245. package/src/shade/renderer/global_illumination/screen_probe/shader_screen_probe_trace_screen.js +275 -0
  246. package/src/shade/renderer/grass/blade/GPUGrassBlades.d.ts.map +1 -1
  247. package/src/shade/renderer/grass/blade/GPUGrassBlades.js +17 -2
  248. package/src/shade/renderer/grass/blade/grass_blade_resolve.d.ts +18 -8
  249. package/src/shade/renderer/grass/blade/grass_blade_resolve.d.ts.map +1 -1
  250. package/src/shade/renderer/grass/blade/grass_blade_resolve.js +114 -32
  251. package/src/shade/renderer/grass/press/shader_grass_press_mark.d.ts +3 -2
  252. package/src/shade/renderer/grass/press/shader_grass_press_mark.d.ts.map +1 -1
  253. package/src/shade/renderer/grass/press/shader_grass_press_mark.js +5 -3
  254. package/src/shade/renderer/light/GPULightCollection.d.ts +1 -1
  255. package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
  256. package/src/shade/renderer/light/GPULightCollection.js +213 -80
  257. package/src/shade/renderer/{atmosphere → light/environment}/chunk_sample_environment_color.d.ts +1 -2
  258. package/src/shade/renderer/light/environment/chunk_sample_environment_color.d.ts.map +1 -0
  259. package/src/shade/renderer/{atmosphere → light/environment}/chunk_sample_environment_color.js +3 -4
  260. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  261. package/src/shade/renderer/path_tracer/shader/chunk_render_trace_path.js +1 -1
  262. package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.js +1 -1
  263. package/src/shade/renderer/postprocess/motion_blur/MotionBlur.d.ts +1 -1
  264. package/src/shade/renderer/postprocess/motion_blur/MotionBlur.js +1 -1
  265. package/src/shade/renderer/postprocess/motion_blur/graph_postprocess_motion_blur.d.ts +1 -1
  266. package/src/shade/renderer/postprocess/motion_blur/graph_postprocess_motion_blur.js +1 -1
  267. package/src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.js +1 -1
  268. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  269. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_add_hit_irradiance.js +2 -0
  270. package/src/shade/renderer/postprocess/ssr/resolve/chunk_ssr_sample_radiance.js +2 -0
  271. package/src/shade/renderer/postprocess/taa/chunk_fsr2_compute_depth_clip.d.ts +6 -0
  272. package/src/shade/renderer/postprocess/taa/chunk_fsr2_compute_depth_clip.d.ts.map +1 -1
  273. package/src/shade/renderer/postprocess/taa/chunk_fsr2_compute_depth_clip.js +9 -1
  274. package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.d.ts.map +1 -1
  275. package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.js +4 -3
  276. package/src/shade/renderer/postprocess/velocity/VELOCITY_BUFFER.d.ts +17 -0
  277. package/src/shade/renderer/postprocess/velocity/VELOCITY_BUFFER.d.ts.map +1 -0
  278. package/src/shade/renderer/postprocess/velocity/VELOCITY_BUFFER.js +16 -0
  279. package/src/shade/renderer/postprocess/velocity/chunk_velocity_texel.d.ts +21 -0
  280. package/src/shade/renderer/postprocess/velocity/chunk_velocity_texel.d.ts.map +1 -0
  281. package/src/shade/renderer/postprocess/velocity/chunk_velocity_texel.js +30 -0
  282. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts +7 -5
  283. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.d.ts.map +1 -1
  284. package/src/shade/renderer/postprocess/velocity/graph_add_per_object_velocity.js +19 -17
  285. package/src/shade/renderer/rasterize/forward/chunk_forward_sample_indirect.js +2 -0
  286. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.d.ts +49 -0
  287. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.d.ts.map +1 -0
  288. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_draw.js +144 -0
  289. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.d.ts +71 -0
  290. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.d.ts.map +1 -0
  291. package/src/shade/renderer/rasterize/native/avboit/avboit_unlit_splat.js +152 -0
  292. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.d.ts +21 -0
  293. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.d.ts.map +1 -0
  294. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unlit_varyings.js +30 -0
  295. package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.d.ts +101 -0
  296. package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.d.ts.map +1 -0
  297. package/src/shade/renderer/rasterize/native/avboit/graph_avboit_unlit.js +306 -0
  298. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts +9 -0
  299. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts.map +1 -1
  300. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +11 -4
  301. package/src/shade/renderer/scene/GPUSceneContext.d.ts.map +1 -1
  302. package/src/shade/renderer/scene/GPUSceneContext.js +2 -1
  303. package/src/shade/renderer/scene/Scene.d.ts +9 -2
  304. package/src/shade/renderer/scene/Scene.d.ts.map +1 -1
  305. package/src/shade/renderer/scene/Scene.js +10 -2
  306. package/src/shade/renderer/shader/ImageShader.d.ts +24 -12
  307. package/src/shade/renderer/shader/ImageShader.d.ts.map +1 -1
  308. package/src/shade/renderer/shader/ImageShader.js +11 -8
  309. package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_HEIGHT_DECLARATION.d.ts +3 -1
  310. package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_HEIGHT_DECLARATION.d.ts.map +1 -1
  311. package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_HEIGHT_DECLARATION.js +11 -3
  312. package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_RADII_DECLARATION.d.ts +2 -11
  313. package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_RADII_DECLARATION.d.ts.map +1 -1
  314. package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_RADII_DECLARATION.js +23 -32
  315. package/src/shade/renderer/shader/chunk/atmosphere/PLANET_RADIUS_DECLARATION.d.ts +6 -0
  316. package/src/shade/renderer/shader/chunk/atmosphere/PLANET_RADIUS_DECLARATION.d.ts.map +1 -1
  317. package/src/shade/renderer/shader/chunk/atmosphere/PLANET_RADIUS_DECLARATION.js +14 -2
  318. package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_height.d.ts.map +1 -1
  319. package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_height.js +4 -2
  320. package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_intersection.d.ts.map +1 -1
  321. package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_intersection.js +11 -3
  322. package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_ray_bounds.d.ts.map +1 -1
  323. package/src/shade/renderer/shader/chunk/atmosphere/chunk_atmosphere_ray_bounds.js +68 -69
  324. package/src/shade/renderer/shader/chunk/atmosphere/chunk_get_sun_transmittance.d.ts +4 -1
  325. package/src/shade/renderer/shader/chunk/atmosphere/chunk_get_sun_transmittance.d.ts.map +1 -1
  326. package/src/shade/renderer/shader/chunk/atmosphere/chunk_get_sun_transmittance.js +46 -39
  327. package/src/shade/renderer/shader/chunk/atmosphere/chunk_position_relative_to_planet_center.d.ts.map +1 -1
  328. package/src/shade/renderer/shader/chunk/atmosphere/chunk_position_relative_to_planet_center.js +5 -3
  329. package/src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.d.ts +18 -10
  330. package/src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.d.ts.map +1 -1
  331. package/src/shade/renderer/shader/chunk/color/tonemap/purkinje/chunk_apply_purkinje_shift.js +30 -27
  332. package/src/shade/renderer/shader/chunk/depth/chunk_get_device_depth.d.ts +14 -0
  333. package/src/shade/renderer/shader/chunk/depth/chunk_get_device_depth.d.ts.map +1 -0
  334. package/src/shade/renderer/shader/chunk/depth/chunk_get_device_depth.js +30 -0
  335. package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_equal_area_sphere.d.ts +21 -0
  336. package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_equal_area_sphere.d.ts.map +1 -0
  337. package/src/shade/renderer/shader/chunk/geometry/octahedron/chunk_uv_equal_area_sphere.js +60 -0
  338. package/src/shade/renderer/shader/chunk/light/{sky/chunk_sample_sky_color.d.ts → io/chunk_light_get_sun.d.ts} +3 -6
  339. package/src/shade/renderer/shader/chunk/light/io/chunk_light_get_sun.d.ts.map +1 -0
  340. package/src/shade/renderer/shader/chunk/light/{sky/chunk_sample_sky_color.js → io/chunk_light_get_sun.js} +6 -26
  341. package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_soft_shadows.js +1 -1
  342. package/src/shade/renderer/trails/GPUTrailAVBOITChannel.d.ts +69 -0
  343. package/src/shade/renderer/trails/GPUTrailAVBOITChannel.d.ts.map +1 -0
  344. package/src/shade/renderer/trails/GPUTrailAVBOITChannel.js +129 -0
  345. package/src/shade/renderer/trails/GPUTrailSystem.d.ts +164 -0
  346. package/src/shade/renderer/trails/GPUTrailSystem.d.ts.map +1 -0
  347. package/src/shade/renderer/trails/GPUTrailSystem.js +725 -0
  348. package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.d.ts +14 -0
  349. package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.d.ts.map +1 -0
  350. package/src/shade/renderer/trails/data/TRAIL_DATABASE_SPEC.js +38 -0
  351. package/src/shade/renderer/trails/data/TRAIL_KNOT.d.ts +66 -0
  352. package/src/shade/renderer/trails/data/TRAIL_KNOT.d.ts.map +1 -0
  353. package/src/shade/renderer/trails/data/TRAIL_KNOT.js +154 -0
  354. package/src/shade/renderer/trails/data/TRAIL_RECORD.d.ts +19 -0
  355. package/src/shade/renderer/trails/data/TRAIL_RECORD.d.ts.map +1 -0
  356. package/src/shade/renderer/trails/data/TRAIL_RECORD.js +68 -0
  357. package/src/shade/renderer/trails/data/TRAIL_STATE.d.ts +18 -0
  358. package/src/shade/renderer/trails/data/TRAIL_STATE.d.ts.map +1 -0
  359. package/src/shade/renderer/trails/data/TRAIL_STATE.js +43 -0
  360. package/src/shade/renderer/trails/graph_trails.d.ts +58 -0
  361. package/src/shade/renderer/trails/graph_trails.d.ts.map +1 -0
  362. package/src/shade/renderer/trails/graph_trails.js +155 -0
  363. package/src/shade/renderer/trails/graph_trails_avboit.d.ts +126 -0
  364. package/src/shade/renderer/trails/graph_trails_avboit.d.ts.map +1 -0
  365. package/src/shade/renderer/trails/graph_trails_avboit.js +300 -0
  366. package/src/shade/renderer/trails/runtime/TrailFadeCurves.d.ts +56 -0
  367. package/src/shade/renderer/trails/runtime/TrailFadeCurves.d.ts.map +1 -0
  368. package/src/shade/renderer/trails/runtime/TrailFadeCurves.js +220 -0
  369. package/src/shade/renderer/trails/runtime/TrailKnotPool.d.ts +49 -0
  370. package/src/shade/renderer/trails/runtime/TrailKnotPool.d.ts.map +1 -0
  371. package/src/shade/renderer/trails/runtime/TrailKnotPool.js +162 -0
  372. package/src/shade/renderer/trails/runtime/TrailParameters.d.ts +52 -0
  373. package/src/shade/renderer/trails/runtime/TrailParameters.d.ts.map +1 -0
  374. package/src/shade/renderer/trails/runtime/TrailParameters.js +126 -0
  375. package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.d.ts +23 -0
  376. package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.d.ts.map +1 -0
  377. package/src/shade/renderer/trails/shaders/chunk_trail_frame_transport.js +57 -0
  378. package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.d.ts +14 -0
  379. package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.d.ts.map +1 -0
  380. package/src/shade/renderer/trails/shaders/chunk_trail_knot_alpha.js +40 -0
  381. package/src/shade/renderer/trails/shaders/chunk_trail_seed.d.ts +18 -0
  382. package/src/shade/renderer/trails/shaders/chunk_trail_seed.d.ts.map +1 -0
  383. package/src/shade/renderer/trails/shaders/chunk_trail_seed.js +64 -0
  384. package/src/shade/renderer/trails/shaders/chunk_trail_segment.d.ts +14 -0
  385. package/src/shade/renderer/trails/shaders/chunk_trail_segment.d.ts.map +1 -0
  386. package/src/shade/renderer/trails/shaders/chunk_trail_segment.js +51 -0
  387. package/src/shade/renderer/trails/shaders/chunk_trail_update.d.ts +48 -0
  388. package/src/shade/renderer/trails/shaders/chunk_trail_update.d.ts.map +1 -0
  389. package/src/shade/renderer/trails/shaders/chunk_trail_update.js +197 -0
  390. package/src/shade/renderer/trails/shaders/chunk_trail_vertex.d.ts +34 -0
  391. package/src/shade/renderer/trails/shaders/chunk_trail_vertex.d.ts.map +1 -0
  392. package/src/shade/renderer/trails/shaders/chunk_trail_vertex.js +111 -0
  393. package/src/shade/renderer/trails/shaders/shader_trail_avboit.d.ts +24 -0
  394. package/src/shade/renderer/trails/shaders/shader_trail_avboit.d.ts.map +1 -0
  395. package/src/shade/renderer/trails/shaders/shader_trail_avboit.js +78 -0
  396. package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.d.ts +23 -0
  397. package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.d.ts.map +1 -0
  398. package/src/shade/renderer/trails/shaders/shader_trail_avboit_segments.js +130 -0
  399. package/src/shade/renderer/trails/shaders/shader_trail_draw_args.d.ts +29 -0
  400. package/src/shade/renderer/trails/shaders/shader_trail_draw_args.d.ts.map +1 -0
  401. package/src/shade/renderer/trails/shaders/shader_trail_draw_args.js +78 -0
  402. package/src/shade/renderer/trails/shaders/shader_trail_seed.d.ts +18 -0
  403. package/src/shade/renderer/trails/shaders/shader_trail_seed.d.ts.map +1 -0
  404. package/src/shade/renderer/trails/shaders/shader_trail_seed.js +79 -0
  405. package/src/shade/renderer/trails/shaders/shader_trail_update.d.ts +20 -0
  406. package/src/shade/renderer/trails/shaders/shader_trail_update.d.ts.map +1 -0
  407. package/src/shade/renderer/trails/shaders/shader_trail_update.js +101 -0
  408. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +3 -1
  409. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  410. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +4 -2
  411. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
  412. package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +743 -739
  413. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.js +2 -0
  414. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
  415. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +19 -17
  416. package/src/shade/renderer/volumetrics/shader_volumetrics_build_scattering_lut.d.ts.map +1 -1
  417. package/src/shade/renderer/volumetrics/shader_volumetrics_build_scattering_lut.js +5 -3
  418. package/src/shade/renderer/water/chunk_water_gi.js +2 -0
  419. package/src/shade/renderer/water/query/GPUWaterQueries.d.ts +1 -1
  420. package/src/shade/renderer/wind/GPUSceneWind.d.ts +1 -1
  421. package/src/engine/graphics/ecs/trail3d/advance_trail.d.ts +0 -18
  422. package/src/engine/graphics/ecs/trail3d/advance_trail.d.ts.map +0 -1
  423. package/src/engine/graphics/ecs/trail3d/advance_trail.js +0 -42
  424. package/src/engine/graphics/ecs/trail3d/seed_trail_tube.d.ts +0 -14
  425. package/src/engine/graphics/ecs/trail3d/seed_trail_tube.d.ts.map +0 -1
  426. package/src/engine/graphics/ecs/trail3d/seed_trail_tube.js +0 -75
  427. package/src/engine/graphics/ecs/trail3d/trail_head_position.d.ts +0 -17
  428. package/src/engine/graphics/ecs/trail3d/trail_head_position.d.ts.map +0 -1
  429. package/src/engine/graphics/ecs/trail3d/trail_head_position.js +0 -19
  430. package/src/engine/graphics/sh3/path_tracer/make_sky_hosek.d.ts +0 -2
  431. package/src/engine/graphics/sh3/path_tracer/make_sky_hosek.d.ts.map +0 -1
  432. package/src/engine/graphics/sh3/path_tracer/make_sky_hosek.js +0 -45
  433. package/src/engine/graphics/sh3/path_tracer/make_sky_rtiw.d.ts +0 -2
  434. package/src/engine/graphics/sh3/path_tracer/make_sky_rtiw.d.ts.map +0 -1
  435. package/src/engine/graphics/sh3/path_tracer/make_sky_rtiw.js +0 -17
  436. package/src/engine/graphics/sh3/sky/hosek/README.md +0 -4
  437. package/src/engine/graphics/sh3/sky/hosek/data.d.ts +0 -17
  438. package/src/engine/graphics/sh3/sky/hosek/data.d.ts.map +0 -1
  439. package/src/engine/graphics/sh3/sky/hosek/data.js +0 -3744
  440. package/src/engine/graphics/sh3/sky/hosek/prototype_hosek.d.ts +0 -2
  441. package/src/engine/graphics/sh3/sky/hosek/prototype_hosek.d.ts.map +0 -1
  442. package/src/engine/graphics/sh3/sky/hosek/prototype_hosek.js +0 -71
  443. package/src/engine/graphics/sh3/sky/hosek/render_hosek_sky_to_equirectangular.d.ts +0 -26
  444. package/src/engine/graphics/sh3/sky/hosek/render_hosek_sky_to_equirectangular.d.ts.map +0 -1
  445. package/src/engine/graphics/sh3/sky/hosek/render_hosek_sky_to_equirectangular.js +0 -70
  446. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.d.ts +0 -22
  447. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.d.ts.map +0 -1
  448. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.js +0 -388
  449. package/src/engine/graphics/trail/tube/TubeX.d.ts +0 -186
  450. package/src/engine/graphics/trail/tube/TubeX.d.ts.map +0 -1
  451. package/src/engine/graphics/trail/tube/TubeX.js +0 -575
  452. package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts +0 -16
  453. package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.d.ts.map +0 -1
  454. package/src/engine/graphics/trail/tube/simulator/TubeXFixedPhysicsSimulator.js +0 -34
  455. package/src/engine/graphics/trail/tube/tube_attributes_spec.d.ts +0 -27
  456. package/src/engine/graphics/trail/tube/tube_attributes_spec.d.ts.map +0 -1
  457. package/src/engine/graphics/trail/tube/tube_attributes_spec.js +0 -70
  458. package/src/engine/graphics3/make_default_environment.d.ts +0 -15
  459. package/src/engine/graphics3/make_default_environment.d.ts.map +0 -1
  460. package/src/engine/graphics3/make_default_environment.js +0 -111
  461. package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts +0 -38
  462. package/src/engine/graphics3/trail/trail_tube_write_geometry.d.ts.map +0 -1
  463. package/src/engine/graphics3/trail/trail_tube_write_geometry.js +0 -119
  464. package/src/shade/renderer/atmosphere/MIE_G.d.ts +0 -6
  465. package/src/shade/renderer/atmosphere/MIE_G.d.ts.map +0 -1
  466. package/src/shade/renderer/atmosphere/MIE_G.js +0 -5
  467. package/src/shade/renderer/atmosphere/chunk_sample_environment_color.d.ts.map +0 -1
  468. package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_EARTH.d.ts +0 -4
  469. package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_EARTH.d.ts.map +0 -1
  470. package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_EARTH.js +0 -44
  471. package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_PARAMETERS_STRUCT.d.ts +0 -2
  472. package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_PARAMETERS_STRUCT.d.ts.map +0 -1
  473. package/src/shade/renderer/atmosphere/hillaire/ATMOSPHERE_PARAMETERS_STRUCT.js +0 -43
  474. package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_DENSITY_DECLARATION.d.ts +0 -3
  475. package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_DENSITY_DECLARATION.d.ts.map +0 -1
  476. package/src/shade/renderer/shader/chunk/atmosphere/ATMOSPHERE_DENSITY_DECLARATION.js +0 -6
  477. package/src/shade/renderer/shader/chunk/atmosphere/chunk_absorb.d.ts +0 -3
  478. package/src/shade/renderer/shader/chunk/atmosphere/chunk_absorb.d.ts.map +0 -1
  479. package/src/shade/renderer/shader/chunk/atmosphere/chunk_absorb.js +0 -18
  480. package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_optical_depth.d.ts +0 -14
  481. package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_optical_depth.d.ts.map +0 -1
  482. package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_optical_depth.js +0 -86
  483. package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_scattering.d.ts +0 -8
  484. package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_scattering.d.ts.map +0 -1
  485. package/src/shade/renderer/shader/chunk/atmosphere/chunk_integrate_scattering.js +0 -125
  486. package/src/shade/renderer/shader/chunk/atmosphere/chunk_planet_intersection.d.ts +0 -3
  487. package/src/shade/renderer/shader/chunk/atmosphere/chunk_planet_intersection.d.ts.map +0 -1
  488. package/src/shade/renderer/shader/chunk/atmosphere/chunk_planet_intersection.js +0 -17
  489. package/src/shade/renderer/shader/chunk/atmosphere/chunk_sphere_intersection_nearest.d.ts +0 -3
  490. package/src/shade/renderer/shader/chunk/atmosphere/chunk_sphere_intersection_nearest.d.ts.map +0 -1
  491. package/src/shade/renderer/shader/chunk/atmosphere/chunk_sphere_intersection_nearest.js +0 -38
  492. package/src/shade/renderer/shader/chunk/atmosphere/hillaire/DENSITY_PROFILE_LAYER_STRUCT.d.ts +0 -16
  493. package/src/shade/renderer/shader/chunk/atmosphere/hillaire/DENSITY_PROFILE_LAYER_STRUCT.d.ts.map +0 -1
  494. package/src/shade/renderer/shader/chunk/atmosphere/hillaire/DENSITY_PROFILE_LAYER_STRUCT.js +0 -28
  495. package/src/shade/renderer/shader/chunk/light/sky/chunk_sample_sky_color.d.ts.map +0 -1
  496. package/src/shade/renderer/view/GPUViewSkyContext.d.ts +0 -26
  497. package/src/shade/renderer/view/GPUViewSkyContext.d.ts.map +0 -1
  498. package/src/shade/renderer/view/GPUViewSkyContext.js +0 -170
@@ -1,3 +1,16 @@
1
+ /**
2
+ * The dynamic meshes' three contributions to the AVBOIT transparency pipeline — the
3
+ * `AVBOITSideChannel` contract, recorded into the frame graph the way the AVBOIT orchestrator records
4
+ * its own passes. `DynamicMeshAVBOITChannel` calls these with what it decided for the frame — the
5
+ * occupancy with the meshes it found live, the splat and the draw with the list the occupancy writes
6
+ * their draws into — and the handles the orchestrator hands it.
7
+ *
8
+ * One draw per mesh in the splat and in the draw, as in the pass over the scene, out of one
9
+ * {@link GPUDynamicMeshDrawList} per frame: the occupancy writes it, the splat and the draw both draw
10
+ * it, so the meshes' constants go up once a frame and the two passes read the same ones. Order does
11
+ * not matter to any of them — the volume and the accumulators are sums — which is why nothing here
12
+ * sorts.
13
+ */
1
14
  /**
2
15
  * Upload the live meshes and write their draws, then mark the depth slices their world boxes span
3
16
  * (`shader_dynamic_mesh_avboit_occupancy`).
@@ -29,11 +42,8 @@ export function graph_dynamic_mesh_avboit_occupancy({ graph, camera, cluster_par
29
42
  draws: GPUDynamicMeshDrawList;
30
43
  }): number;
31
44
  /**
32
- * Splat the live meshes' extinction into the voxel volume (`shader_dynamic_mesh_avboit_splat`).
33
- *
34
- * The raster is multisampled ({@link DYNAMIC_MESH_AVBOIT_SPLAT_SAMPLES}), so it cannot use the
35
- * volume's single-sampled splat target: the pass makes its own at the volume's resolution, and hands
36
- * the volume's back untouched.
45
+ * Splat the live meshes' extinction into the voxel volume: the unlit splat
46
+ * (`graph_avboit_unlit_splat`) with the dynamic-mesh pipeline, one draw per mesh out of the frame's list.
37
47
  *
38
48
  * @param {object} params
39
49
  * @param {import("../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph} params.graph
@@ -61,7 +71,8 @@ export function graph_dynamic_mesh_avboit_splat({ graph, camera, warp, voxel_res
61
71
  dummy: number;
62
72
  };
63
73
  /**
64
- * Draw the live meshes into the four accumulators (`shader_dynamic_mesh_avboit_draw`).
74
+ * Draw the live meshes into the four accumulators: the unlit draw (`graph_avboit_unlit_draw`) with the
75
+ * dynamic-mesh pipeline, one draw per mesh out of the frame's list.
65
76
  *
66
77
  * @param {object} params
67
78
  * @param {import("../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph} params.graph
@@ -1 +1 @@
1
- {"version":3,"file":"graph_dynamic_mesh_avboit.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.js"],"names":[],"mappings":"AA4CA;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IAXkG,KAAK,EAA5F,OAAO,2DAA2D,EAAE,UAAU;IAC/D,MAAM,EAArB,MAAM;IACoB,kBAAkB,EAA5C,UAAU,MAAM,CAAC;IACF,SAAS,EAAxB,MAAM;IAC+B,SAAS;IACxB,MAAM,EAA5B,aAAa;IACQ,KAAK,EAA1B,YAAY;IACmB,KAAK;IAElC,MAAM,CAwDlB;AAED;;;;;;;;;;;;;;;GAeG;AACH;IARkG,KAAK,EAA5F,OAAO,2DAA2D,EAAE,UAAU;IAC/D,MAAM,EAArB,MAAM;IACS,IAAI,EAAnB,MAAM;IACW,gBAAgB,EAAjC,MAAM,EAAE;IACsD,MAAM,EAApE;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC;IACtB,KAAK;IAClC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAuFjE;AAED;;;;;;;;;;;;;;;GAeG;AACH;IAZkG,KAAK,EAA5F,OAAO,2DAA2D,EAAE,UAAU;IACnB,QAAQ,EAAnE,OAAO,2BAA2B,EAAE,cAAc;IACnC,MAAM,EAArB,MAAM;IACS,aAAa,EAA5B,MAAM;IACS,IAAI,EAAnB,MAAM;IACS,QAAQ,EAAvB,MAAM;IACS,eAAe,EAA9B,MAAM;IACS,oBAAoB,EAAnC,MAAM;IACsE,YAAY,EAAxF;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC;IACpC,KAAK;IAClC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CA4F/E"}
1
+ {"version":3,"file":"graph_dynamic_mesh_avboit.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/dynamic/graph_dynamic_mesh_avboit.js"],"names":[],"mappings":"AAWA;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IAXkG,KAAK,EAA5F,OAAO,2DAA2D,EAAE,UAAU;IAC/D,MAAM,EAArB,MAAM;IACoB,kBAAkB,EAA5C,UAAU,MAAM,CAAC;IACF,SAAS,EAAxB,MAAM;IAC+B,SAAS;IACxB,MAAM,EAA5B,aAAa;IACQ,KAAK,EAA1B,YAAY;IACmB,KAAK;IAElC,MAAM,CAwDlB;AAED;;;;;;;;;;;;GAYG;AACH;IARkG,KAAK,EAA5F,OAAO,2DAA2D,EAAE,UAAU;IAC/D,MAAM,EAArB,MAAM;IACS,IAAI,EAAnB,MAAM;IACW,gBAAgB,EAAjC,MAAM,EAAE;IACsD,MAAM,EAApE;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC;IACtB,KAAK;IAClC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CA0BjE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH;IAZkG,KAAK,EAA5F,OAAO,2DAA2D,EAAE,UAAU;IACnB,QAAQ,EAAnE,OAAO,2BAA2B,EAAE,cAAc;IACnC,MAAM,EAArB,MAAM;IACS,aAAa,EAA5B,MAAM;IACS,IAAI,EAAnB,MAAM;IACS,QAAQ,EAAvB,MAAM;IACS,eAAe,EAA9B,MAAM;IACS,oBAAoB,EAAnC,MAAM;IACsE,YAAY,EAAxF;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC;IACpC,KAAK;IAClC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAkC/E"}
@@ -1,29 +1,13 @@
1
1
  import { assert } from "../../../core/assert.js";
2
- import { GPUTextureUsage } from "../../descriptor/GPUTextureUsage.js";
3
- import { TextureViewDescriptor } from "../../descriptor/texture/TextureViewDescriptor.js";
4
- import { TextureResourceDescriptor } from "../../device/graph/TextureResourceDescriptor.js";
5
- import { DEFAULT_DEPTH_TEXTURE_VIEW } from "../depth/DEFAULT_DEPTH_TEXTURE_VIEW.js";
6
- import { AVBOIT_SPLAT_DUMMY_FORMAT } from "../rasterize/native/avboit/shader_avboit_splat.js";
7
- import { STATIC_GRAPHICS_ENGINE_ASSETS } from "../STATIC_GRAPHICS_ENGINE_ASSETS.js";
8
- import { SAMPLER_LINEAR_UPSCALE } from "../texture/SAMPLER_LINEAR_UPSCALE.js";
9
- import {
10
- DYNAMIC_MESH_AVBOIT_DRAW_BIND_GROUP_PASS,
11
- DYNAMIC_MESH_AVBOIT_DRAW_PIPELINE,
12
- DYNAMIC_MESH_AVBOIT_DRAW_RESOURCES,
13
- } from "./shader_dynamic_mesh_avboit_draw.js";
2
+ import { graph_avboit_unlit_draw, graph_avboit_unlit_splat } from "../rasterize/native/avboit/graph_avboit_unlit.js";
3
+ import { DYNAMIC_MESH_AVBOIT_DRAW_PIPELINE, DYNAMIC_MESH_AVBOIT_DRAW_RESOURCES } from "./shader_dynamic_mesh_avboit_draw.js";
14
4
  import {
15
5
  DYNAMIC_MESH_AVBOIT_BOX_FLOATS,
16
6
  DYNAMIC_MESH_AVBOIT_OCCUPANCY_GROUP_SIZE,
17
7
  DYNAMIC_MESH_AVBOIT_OCCUPANCY_SETTINGS_STRUCT,
18
8
  shader_dynamic_mesh_avboit_occupancy,
19
9
  } from "./shader_dynamic_mesh_avboit_occupancy.js";
20
- import {
21
- DYNAMIC_MESH_AVBOIT_SPLAT_BIND_GROUP_PASS,
22
- DYNAMIC_MESH_AVBOIT_SPLAT_BIND_GROUP_VOLUME,
23
- DYNAMIC_MESH_AVBOIT_SPLAT_PIPELINE,
24
- DYNAMIC_MESH_AVBOIT_SPLAT_RESOURCES,
25
- DYNAMIC_MESH_AVBOIT_SPLAT_SAMPLES,
26
- } from "./shader_dynamic_mesh_avboit_splat.js";
10
+ import { DYNAMIC_MESH_AVBOIT_SPLAT_PIPELINE, DYNAMIC_MESH_AVBOIT_SPLAT_RESOURCES } from "./shader_dynamic_mesh_avboit_splat.js";
27
11
 
28
12
  /**
29
13
  * The dynamic meshes' three contributions to the AVBOIT transparency pipeline — the
@@ -39,9 +23,6 @@ import {
39
23
  * sorts.
40
24
  */
41
25
 
42
- /** The accumulators' and the splat target's view: one mip, the one the frame draws into. */
43
- const COLOR_VIEW = TextureViewDescriptor.from({ mipLevelCount: 1, baseMipLevel: 0 });
44
-
45
26
  /**
46
27
  * Upload the live meshes and write their draws, then mark the depth slices their world boxes span
47
28
  * (`shader_dynamic_mesh_avboit_occupancy`).
@@ -119,11 +100,8 @@ export function graph_dynamic_mesh_avboit_occupancy({
119
100
  }
120
101
 
121
102
  /**
122
- * Splat the live meshes' extinction into the voxel volume (`shader_dynamic_mesh_avboit_splat`).
123
- *
124
- * The raster is multisampled ({@link DYNAMIC_MESH_AVBOIT_SPLAT_SAMPLES}), so it cannot use the
125
- * volume's single-sampled splat target: the pass makes its own at the volume's resolution, and hands
126
- * the volume's back untouched.
103
+ * Splat the live meshes' extinction into the voxel volume: the unlit splat
104
+ * (`graph_avboit_unlit_splat`) with the dynamic-mesh pipeline, one draw per mesh out of the frame's list.
127
105
  *
128
106
  * @param {object} params
129
107
  * @param {import("../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph} params.graph
@@ -143,86 +121,26 @@ export function graph_dynamic_mesh_avboit_splat({
143
121
  draws,
144
122
  }) {
145
123
  assert.isNonNegativeInteger(camera, "camera");
146
- assert.isNonNegativeInteger(warp, "warp");
147
- assert.isArrayLike(voxel_resolution, "voxel_resolution");
148
- assert.defined(volume, "volume");
149
-
150
- function execute(data, resources, context) {
151
- const encoder = context.encoder;
152
- const graphics = context.graphics;
153
-
154
- if (draws.count === 0) {
155
- return;
156
- }
157
-
158
- const pipeline = DYNAMIC_MESH_AVBOIT_SPLAT_PIPELINE;
159
-
160
- // By name, never by position (ledger entry 21): the order a shader declares its bindings in
161
- // is the shader's business.
162
- const groups = DYNAMIC_MESH_AVBOIT_SPLAT_RESOURCES.groups;
163
-
164
- const pass_group = groups[DYNAMIC_MESH_AVBOIT_SPLAT_BIND_GROUP_PASS].generateBindings({
165
- warp: resources.get(data.warp),
166
- }, encoder);
167
-
168
- const volume_group = groups[DYNAMIC_MESH_AVBOIT_SPLAT_BIND_GROUP_VOLUME].generateBindings({
169
- extinction_volume: resources.get(data.extinction),
170
- overflow_slice: resources.get(data.overflow),
171
- }, encoder);
172
124
 
173
- // the target is never written; it only sizes the raster and gives it its samples
174
- const pass_encoder = encoder.constructRenderPass({
175
- label: "Dynamic Mesh AVBOIT Splat",
176
- pipeline,
177
- // the pass's groups are set once, just below; the draws set their own
178
- bindings: [],
179
- colorAttachments: [{
180
- view: resources.get(data.target).obtainView(COLOR_VIEW),
181
- loadOp: "clear",
182
- storeOp: "discard",
183
- }],
184
- });
185
-
186
- graphics.setPipelineBindGroup(pass_encoder, pipeline, DYNAMIC_MESH_AVBOIT_SPLAT_BIND_GROUP_PASS, pass_group);
187
- graphics.setPipelineBindGroup(pass_encoder, pipeline, DYNAMIC_MESH_AVBOIT_SPLAT_BIND_GROUP_VOLUME, volume_group);
188
-
189
- draws.draw(pass_encoder, graphics, pipeline, resources.get(data.camera));
190
-
191
- pass_encoder.end();
192
- }
193
-
194
- const pass_data = {};
195
- const pass = graph.add("Dynamic Mesh AVBOIT Splat", pass_data, execute);
196
-
197
- pass_data.camera = pass.read(camera);
198
- pass_data.warp = pass.read(warp);
199
-
200
- pass.read(volume.extinction);
201
- pass_data.extinction = pass.write(volume.extinction);
202
- pass.read(volume.overflow);
203
- pass_data.overflow = pass.write(volume.overflow);
204
-
205
- const target = TextureResourceDescriptor.from({
206
- resolution: voxel_resolution,
207
- format: AVBOIT_SPLAT_DUMMY_FORMAT,
208
- usage: GPUTextureUsage.RENDER_ATTACHMENT,
125
+ const pipeline = DYNAMIC_MESH_AVBOIT_SPLAT_PIPELINE;
126
+
127
+ return graph_avboit_unlit_splat({
128
+ graph,
129
+ label: "Dynamic Mesh AVBOIT Splat",
130
+ pipeline,
131
+ resources: DYNAMIC_MESH_AVBOIT_SPLAT_RESOURCES,
132
+ inputs: { camera },
133
+ warp,
134
+ voxel_resolution,
135
+ volume,
136
+ is_empty: () => draws.count === 0,
137
+ record: (pass_encoder, graphics, inputs) => draws.draw(pass_encoder, graphics, pipeline, inputs.camera),
209
138
  });
210
-
211
- // `from` takes no sample count
212
- target.sampleCount = DYNAMIC_MESH_AVBOIT_SPLAT_SAMPLES;
213
-
214
- pass_data.target = pass.create("Dynamic Mesh AVBOIT splat target", target);
215
-
216
- return {
217
- extinction: pass_data.extinction,
218
- overflow: pass_data.overflow,
219
- // not this pass's to touch
220
- dummy: volume.dummy,
221
- };
222
139
  }
223
140
 
224
141
  /**
225
- * Draw the live meshes into the four accumulators (`shader_dynamic_mesh_avboit_draw`).
142
+ * Draw the live meshes into the four accumulators: the unlit draw (`graph_avboit_unlit_draw`) with the
143
+ * dynamic-mesh pipeline, one draw per mesh out of the frame's list.
226
144
  *
227
145
  * @param {object} params
228
146
  * @param {import("../../../engine/graphics/render/frame_graph/FrameGraph.js").FrameGraph} params.graph
@@ -250,81 +168,23 @@ export function graph_dynamic_mesh_avboit_draw({
250
168
  draws,
251
169
  }) {
252
170
  assert.isNonNegativeInteger(camera, "camera");
253
- assert.isNonNegativeInteger(depth_texture, "depth_texture");
254
- assert.isNonNegativeInteger(warp, "warp");
255
- assert.isNonNegativeInteger(integral, "integral");
256
- assert.defined(accumulators, "accumulators");
257
-
258
- function execute(data, resources, context) {
259
- const encoder = context.encoder;
260
- const graphics = context.graphics;
261
-
262
- if (draws.count === 0) {
263
- return;
264
- }
265
-
266
- const pipeline = DYNAMIC_MESH_AVBOIT_DRAW_PIPELINE;
267
-
268
- // by name rather than by position, for the reason the splat gives
269
- const pass_group = DYNAMIC_MESH_AVBOIT_DRAW_RESOURCES.groups[DYNAMIC_MESH_AVBOIT_DRAW_BIND_GROUP_PASS].generateBindings({
270
- view: view_ctx.uniform_buffer.buffer,
271
- warp: resources.get(data.warp),
272
- tIntegral: resources.get(data.integral).obtainView(),
273
- sLinear: graphics.samplers.obtain(SAMPLER_LINEAR_UPSCALE),
274
- volumetrics_metadata: resources.get(data.volumetrics_metadata),
275
- tVolumetrics: resources.get(data.volumetrics_lut).obtainView(),
276
- tSTBN_vec3: graphics.textures.obtain(STATIC_GRAPHICS_ENGINE_ASSETS.stbn_vec3).obtainView(),
277
- }, encoder);
278
-
279
- const attachment = (handle) => ({
280
- view: resources.get(handle).obtainView(COLOR_VIEW),
281
- loadOp: "load",
282
- storeOp: "store",
283
- });
284
-
285
- const pass_encoder = encoder.constructRenderPass({
286
- label: "Dynamic Mesh AVBOIT Draw",
287
- pipeline,
288
- // the pass's group is set once, just below; the draws set their own
289
- bindings: [],
290
- colorAttachments: [
291
- attachment(data.color),
292
- attachment(data.norm),
293
- attachment(data.extinction),
294
- attachment(data.emission),
295
- ],
296
- depthStencilAttachment: {
297
- view: resources.get(data.depth).obtainView(DEFAULT_DEPTH_TEXTURE_VIEW),
298
- depthReadOnly: true,
299
- },
300
- });
301
-
302
- graphics.setPipelineBindGroup(pass_encoder, pipeline, DYNAMIC_MESH_AVBOIT_DRAW_BIND_GROUP_PASS, pass_group);
303
-
304
- draws.draw(pass_encoder, graphics, pipeline, resources.get(data.camera));
305
-
306
- pass_encoder.end();
307
- }
308
-
309
- const pass_data = {};
310
- const pass = graph.add("Dynamic Mesh AVBOIT Draw", pass_data, execute);
311
-
312
- pass_data.camera = pass.read(camera);
313
- pass_data.depth = pass.read(depth_texture);
314
- pass_data.warp = pass.read(warp);
315
- pass_data.integral = pass.read(integral);
316
- pass_data.volumetrics_lut = pass.read(volumetrics_lut);
317
- pass_data.volumetrics_metadata = pass.read(volumetrics_metadata);
318
171
 
319
- for (const name of ["color", "norm", "extinction", "emission"]) {
320
- pass.read(accumulators[name]);
321
- pass_data[name] = pass.write(accumulators[name]);
322
- }
323
-
324
- return {
325
- color: pass_data.color,
326
- norm: pass_data.norm,
327
- extinction: pass_data.extinction,
328
- emission: pass_data.emission,
329
- };
172
+ const pipeline = DYNAMIC_MESH_AVBOIT_DRAW_PIPELINE;
173
+
174
+ return graph_avboit_unlit_draw({
175
+ graph,
176
+ label: "Dynamic Mesh AVBOIT Draw",
177
+ pipeline,
178
+ resources: DYNAMIC_MESH_AVBOIT_DRAW_RESOURCES,
179
+ inputs: { camera },
180
+ view_ctx,
181
+ depth_texture,
182
+ warp,
183
+ integral,
184
+ volumetrics_lut,
185
+ volumetrics_metadata,
186
+ accumulators,
187
+ is_empty: () => draws.count === 0,
188
+ record: (pass_encoder, graphics, inputs) => draws.draw(pass_encoder, graphics, pipeline, inputs.camera),
189
+ });
330
190
  }
@@ -1,21 +1,19 @@
1
1
  /**
2
- * Bind group of everything the draw reads once per pass — the view, the warp, the integral and the
3
- * fog. Groups 0 and 1 are the dynamic-mesh groups: the draw constants per chunk, the geometry per
4
- * mesh.
2
+ * Bind group of everything the draw reads once per pass (`AVBOIT_UNLIT_DRAW_PASS_GROUP`) — the view,
3
+ * the warp, the integral and the fog. Groups 0 and 1 are the dynamic-mesh groups: the draw constants
4
+ * per chunk, the geometry per mesh.
5
5
  * @type {number}
6
6
  */
7
7
  export const DYNAMIC_MESH_AVBOIT_DRAW_BIND_GROUP_PASS: number;
8
8
  /**
9
- * The draw pipeline: additive into the accumulators with the emission target masked off, the scene
10
- * depth tested and never written, both faces.
11
- * @type {RenderPipelineDescriptor}
9
+ * The draw pipeline, as every unlit draw is built (`avboit_unlit_draw_pipeline`).
10
+ * @type {import("../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor}
12
11
  */
13
- export const DYNAMIC_MESH_AVBOIT_DRAW_PIPELINE: RenderPipelineDescriptor;
14
- /** The draw shader's resource set, for building its pass-level bind group. */
12
+ export const DYNAMIC_MESH_AVBOIT_DRAW_PIPELINE: import("../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor;
13
+ /** The draw shader's resource set. */
15
14
  export const DYNAMIC_MESH_AVBOIT_DRAW_RESOURCES: ShaderResourceSetDescriptor;
16
15
  /** The assembled shader, for the validity tier. */
17
16
  export const shader_dynamic_mesh_avboit_draw: ShaderDescriptor;
18
- import { RenderPipelineDescriptor } from "../../descriptor/pipeline/render/RenderPipelineDescriptor.js";
19
17
  import { ShaderResourceSetDescriptor } from "../shader/resource/ShaderResourceSetDescriptor.js";
20
18
  import { ShaderDescriptor } from "../shader/ShaderDescriptor.js";
21
19
  //# sourceMappingURL=shader_dynamic_mesh_avboit_draw.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shader_dynamic_mesh_avboit_draw.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.js"],"names":[],"mappings":"AAyBA;;;;;GAKG;AACH,uDAFU,MAAM,CAE0C;AA+F1D;;;;GAIG;AACH,gDAFU,wBAAwB,CAc/B;AAEH,8EAA8E;AAC9E,6EAA4D;AAE5D,mDAAmD;AACnD,+DAA0D;yCApJjB,8DAA8D;4CAY3D,mDAAmD;iCAC9D,+BAA+B"}
1
+ {"version":3,"file":"shader_dynamic_mesh_avboit_draw.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_draw.js"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,uDAFU,MAAM,CAE0C;AA6B1D;;;GAGG;AACH,gDAFU,OAAO,8DAA8D,EAAE,wBAAwB,CAMtG;AAEH,sCAAsC;AACtC,6EAA4D;AAE5D,mDAAmD;AACnD,+DAA0D;4CA1Dd,mDAAmD;iCAC9D,+BAA+B"}
@@ -1,21 +1,7 @@
1
- import { DepthStencilState } from "../../descriptor/pipeline/render/DepthStencilState.js";
2
- import { RenderPipelineDescriptor } from "../../descriptor/pipeline/render/RenderPipelineDescriptor.js";
3
- import { chunk_sample_volumetrics } from "../deferred/chunk_sample_volumetrics.js";
4
- import { AVBOIT_EXTINCT_TRANSMITTANCE } from "../rasterize/native/avboit/AVBOIT_CONSTANTS.js";
5
- import { AVBOIT_WARP_STRUCT } from "../rasterize/native/avboit/AVBOIT_WARP_STRUCT.js";
6
- import { AVBOIT_DRAW_TARGETS } from "../rasterize/native/avboit/avboit_draw_fragment_body.js";
7
- import {
8
- chunk_avboit_premultiplied_contribution
9
- } from "../rasterize/native/avboit/chunk_avboit_premultiplied_contribution.js";
10
- import { chunk_avboit_view_depth_to_virtual } from "../rasterize/native/avboit/chunk_avboit_view_depth_to_virtual.js";
11
- import { chunk_avboit_footprint_bias } from "../rasterize/native/avboit/chunk_avboit_footprint_bias.js";
12
- import { chunk_avboit_sample_transmittance } from "../rasterize/native/avboit/chunk_avboit_sample_transmittance.js";
1
+ import { avboit_unlit_draw_pipeline, AVBOIT_UNLIT_DRAW_PASS_GROUP, chunk_avboit_unlit_draw_fragment } from "../rasterize/native/avboit/avboit_unlit_draw.js";
13
2
  import { CodeChunk } from "../shader/compiler/CodeChunk.js";
14
3
  import { ShaderResourceSetDescriptor } from "../shader/resource/ShaderResourceSetDescriptor.js";
15
4
  import { ShaderDescriptor } from "../shader/ShaderDescriptor.js";
16
- import { SAMPLER_LINEAR_UPSCALE } from "../texture/SAMPLER_LINEAR_UPSCALE.js";
17
- import { VIEW_UNIFORM_STRUCT } from "../view/VIEW_UNIFORM_STRUCT.js";
18
- import { VOLUMETRICS_METADATA_STRUCT } from "../volumetrics/VOLUMETRICS_METADATA_STRUCT.js";
19
5
  import { chunk_dynamic_mesh_avboit_vertex } from "./chunk_dynamic_mesh_avboit_vertex.js";
20
6
  import {
21
7
  DYNAMIC_MESH_BIND_GROUP_DRAWS,
@@ -24,126 +10,51 @@ import {
24
10
  } from "./shader_dynamic_mesh.js";
25
11
 
26
12
  /**
27
- * Bind group of everything the draw reads once per pass — the view, the warp, the integral and the
28
- * fog. Groups 0 and 1 are the dynamic-mesh groups: the draw constants per chunk, the geometry per
29
- * mesh.
13
+ * Bind group of everything the draw reads once per pass (`AVBOIT_UNLIT_DRAW_PASS_GROUP`) — the view,
14
+ * the warp, the integral and the fog. Groups 0 and 1 are the dynamic-mesh groups: the draw constants
15
+ * per chunk, the geometry per mesh.
30
16
  * @type {number}
31
17
  */
32
18
  export const DYNAMIC_MESH_AVBOIT_DRAW_BIND_GROUP_PASS = 2;
33
19
 
34
20
  /**
35
- * The dynamic meshes' AVBOIT draw: every mesh's triangles at internal resolution, depth-tested
36
- * against the opaque scene, into the four accumulators the transparent meshes and the particles
37
- * draw into (`avboit_draw_fragment_body`) — so a trail composites against both order-independently.
38
- *
39
- * Per fragment: nothing at all if it has faded out (the splat recorded nothing for it either), then
40
- * the transmittance of everything in front from the integral texture — a fragment the volume
41
- * already calls extinct is discarded unshaded — the volumetric fog at its depth, and the
42
- * accumulators through `avboit_premultiplied_contribution`, the routing every side channel shares.
43
- *
44
- * A dynamic mesh is straight alpha and unlit, as the pass over the scene draws it: its colour is
45
- * premultiplied here and never emits — a fragment that can get past the first test covers
46
- * something — so the pipeline does not write the emission target at all rather than blend zeros
47
- * into it over every covered pixel.
21
+ * The dynamic meshes' AVBOIT draw: every mesh's triangles at internal resolution by the dynamic-mesh
22
+ * vertex stage, into the unlit draw's fragment stage (`chunk_avboit_unlit_draw_fragment`, which says
23
+ * what a fragment contributes). A dynamic mesh is straight alpha and unlit, as the pass over the scene
24
+ * draws it.
48
25
  */
49
26
 
50
27
  const resources = new ShaderResourceSetDescriptor();
51
28
 
52
29
  resources.addGroup(DYNAMIC_MESH_RESOURCES.groups[DYNAMIC_MESH_BIND_GROUP_DRAWS]);
53
30
  resources.addGroup(DYNAMIC_MESH_RESOURCES.groups[DYNAMIC_MESH_BIND_GROUP_GEOMETRY]);
54
-
55
- resources.createGroup()
56
- .addUniform("view", VIEW_UNIFORM_STRUCT)
57
- .addStorageBuffer("warp", AVBOIT_WARP_STRUCT)
58
- // sampled through sLinear: linear, clamped on every axis, which is what the integral needs
59
- .addTexture("tIntegral", "float", "3d")
60
- .addSampler("sLinear", "filtering", SAMPLER_LINEAR_UPSCALE)
61
- // volumetrics (composited inline)
62
- .addUniform("volumetrics_metadata", VOLUMETRICS_METADATA_STRUCT)
63
- .addTexture("tVolumetrics", "float", "3d")
64
- .addTexture("tSTBN_vec3", "float", "3d");
31
+ resources.addGroup(AVBOIT_UNLIT_DRAW_PASS_GROUP);
65
32
 
66
33
  const body = CodeChunk.from(
67
34
  //language=WGSL
68
35
  `
69
- struct DynamicMeshAVBOITDrawOutput {
70
- @location(0) color : vec4<f32>,
71
- @location(1) norm : vec4<f32>,
72
- @location(2) extinction : vec4<f32>,
73
- @location(3) emission : vec4<f32>,
74
- }
75
-
76
36
  @vertex
77
- fn vs_main(@builtin(vertex_index) vi : u32, @builtin(instance_index) draw_index : u32) -> DynamicMeshAVBOITVertexOut {
37
+ fn vs_main(@builtin(vertex_index) vi : u32, @builtin(instance_index) draw_index : u32) -> AVBOITUnlitVaryings {
78
38
  return dynamic_mesh_avboit_vertex(vi, draw_index);
79
39
  }
80
-
81
- @fragment
82
- fn fs_main(in : DynamicMeshAVBOITVertexOut) -> DynamicMeshAVBOITDrawOutput {
83
- // a ribbon seen at an angle runs through depth across a voxel; see avboit_footprint_bias. Taken
84
- // first, in uniform control flow
85
- let footprint = avboit_footprint_bias(&warp, fwidth(avboit_view_depth_to_virtual(&warp, in.view_depth)));
86
-
87
- if (in.color.a <= 0.0) {
88
- // faded out: covers nothing, and straight alpha carries no light without coverage
89
- discard;
90
- }
91
-
92
- let screen_uv = in.clip.xy / vec2<f32>(f32(view.width), f32(view.height));
93
-
94
- let transmittance = avboit_sample_transmittance(&warp, tIntegral, sLinear, screen_uv, in.view_depth, footprint);
95
-
96
- if (all(transmittance <= vec3<f32>(${AVBOIT_EXTINCT_TRANSMITTANCE}))) {
97
- // nothing this fragment contributes survives what is in front of it; skip the shading
98
- discard;
99
- }
100
-
101
- let volumetrics = sample_volumetrics(in.view_depth, screen_uv, in.clip.xy);
102
-
103
- let premultiplied = vec4<f32>(in.color.rgb * in.color.a, in.color.a);
104
-
105
- let contribution = avboit_premultiplied_contribution(premultiplied, transmittance, volumetrics);
106
-
107
- var out : DynamicMeshAVBOITDrawOutput;
108
-
109
- out.color = contribution.color;
110
- out.norm = contribution.norm;
111
- out.extinction = contribution.extinction;
112
- out.emission = contribution.emission;
113
-
114
- return out;
115
- }
116
40
  `, [
117
41
  chunk_dynamic_mesh_avboit_vertex,
118
- chunk_avboit_view_depth_to_virtual,
119
- chunk_avboit_footprint_bias,
120
- chunk_avboit_sample_transmittance,
121
- chunk_sample_volumetrics,
122
- chunk_avboit_premultiplied_contribution,
42
+ chunk_avboit_unlit_draw_fragment,
123
43
  ]);
124
44
 
125
45
  const descriptor = ShaderDescriptor.from({ label: "Dynamic Mesh AVBOIT Draw", body, resources });
126
46
 
127
47
  /**
128
- * The draw pipeline: additive into the accumulators with the emission target masked off, the scene
129
- * depth tested and never written, both faces.
130
- * @type {RenderPipelineDescriptor}
48
+ * The draw pipeline, as every unlit draw is built (`avboit_unlit_draw_pipeline`).
49
+ * @type {import("../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor}
131
50
  */
132
- export const DYNAMIC_MESH_AVBOIT_DRAW_PIPELINE = RenderPipelineDescriptor.from({
51
+ export const DYNAMIC_MESH_AVBOIT_DRAW_PIPELINE = avboit_unlit_draw_pipeline({
133
52
  label: "Dynamic Mesh AVBOIT Draw",
134
- layout: resources.generatePipelineLayout(GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT),
135
- vertex: { module: { code: descriptor.source }, entryPoint: "vs_main" },
136
- fragment: {
137
- module: { code: descriptor.source },
138
- entryPoint: "fs_main",
139
- // color, norm, extinction — and not emission
140
- targets: AVBOIT_DRAW_TARGETS.map((target, i) => ({ ...target, writeMask: [0xF, 0xF, 0xF, 0][i] })),
141
- },
142
- depthStencil: DepthStencilState.from({ format: "depth32float", depthWriteEnabled: false, depthCompare: "greater" }),
143
- primitive: { topology: "triangle-list", cullMode: "none" },
53
+ resources,
54
+ source: descriptor.source,
144
55
  });
145
56
 
146
- /** The draw shader's resource set, for building its pass-level bind group. */
57
+ /** The draw shader's resource set. */
147
58
  export const DYNAMIC_MESH_AVBOIT_DRAW_RESOURCES = resources;
148
59
 
149
60
  /** The assembled shader, for the validity tier. */
@@ -1,33 +1,23 @@
1
1
  /**
2
- * Bind group of the warp, set once per pass. Groups 0 and 1 are the dynamic-mesh groups: the draw
3
- * constants per chunk, the geometry per mesh.
2
+ * Bind group of the warp (`AVBOIT_UNLIT_SPLAT_PASS_GROUP`), set once per pass. Groups 0 and 1 are the
3
+ * dynamic-mesh groups: the draw constants per chunk, the geometry per mesh.
4
4
  * @type {number}
5
5
  */
6
6
  export const DYNAMIC_MESH_AVBOIT_SPLAT_BIND_GROUP_PASS: number;
7
7
  /**
8
- * Bind group of the volume atomics, set once per pass.
8
+ * Bind group of the volume atomics (`AVBOIT_SPLAT_VOLUME_GROUP`), set once per pass.
9
9
  * @type {number}
10
10
  */
11
11
  export const DYNAMIC_MESH_AVBOIT_SPLAT_BIND_GROUP_VOLUME: number;
12
12
  /**
13
- * Samples per pixel of the splat's raster, which is what a fragment's extinction is weighted by the
14
- * share of. Four, being the only count above one that WebGPU guarantees.
15
- * @type {number}
16
- */
17
- export const DYNAMIC_MESH_AVBOIT_SPLAT_SAMPLES: number;
18
- /**
19
- * The splat pipeline: no depth, one never-written attachment to size the raster, multisampled so a
20
- * fragment knows how much of its voxel it covers, both faces — a trail is seen from inside and out.
21
- * The attachment is the splat's own ({@link DYNAMIC_MESH_AVBOIT_SPLAT_SAMPLES} samples), not the
22
- * volume's single-sampled one the meshlet and particle splats share.
23
- * @type {RenderPipelineDescriptor}
13
+ * The splat pipeline, as every unlit splat is built (`avboit_unlit_splat_pipeline`).
14
+ * @type {import("../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor}
24
15
  */
25
- export const DYNAMIC_MESH_AVBOIT_SPLAT_PIPELINE: RenderPipelineDescriptor;
26
- /** The splat shader's resource set, for building its pass-level bind groups. */
16
+ export const DYNAMIC_MESH_AVBOIT_SPLAT_PIPELINE: import("../../descriptor/pipeline/render/RenderPipelineDescriptor.js").RenderPipelineDescriptor;
17
+ /** The splat shader's resource set. */
27
18
  export const DYNAMIC_MESH_AVBOIT_SPLAT_RESOURCES: ShaderResourceSetDescriptor;
28
19
  /** The assembled shader, for the validity tier. */
29
20
  export const shader_dynamic_mesh_avboit_splat: ShaderDescriptor;
30
- import { RenderPipelineDescriptor } from "../../descriptor/pipeline/render/RenderPipelineDescriptor.js";
31
21
  import { ShaderResourceSetDescriptor } from "../shader/resource/ShaderResourceSetDescriptor.js";
32
22
  import { ShaderDescriptor } from "../shader/ShaderDescriptor.js";
33
23
  //# sourceMappingURL=shader_dynamic_mesh_avboit_splat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shader_dynamic_mesh_avboit_splat.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.js"],"names":[],"mappings":"AAsBA;;;;GAIG;AACH,wDAFU,MAAM,CAE2C;AAE3D;;;GAGG;AACH,0DAFU,MAAM,CAE6C;AAE7D;;;;GAIG;AACH,gDAFU,MAAM,CAEmC;AA0GnD;;;;;;GAMG;AACH,iDAFU,wBAAwB,CAa/B;AAEH,gFAAgF;AAChF,8EAA6D;AAE7D,mDAAmD;AACnD,gEAA2D;yCAzKlB,8DAA8D;4CAU3D,mDAAmD;iCAC9D,+BAA+B"}
1
+ {"version":3,"file":"shader_dynamic_mesh_avboit_splat.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/dynamic/shader_dynamic_mesh_avboit_splat.js"],"names":[],"mappings":"AAYA;;;;GAIG;AACH,wDAFU,MAAM,CAE2C;AAE3D;;;GAGG;AACH,0DAFU,MAAM,CAE6C;AAiC7D;;;GAGG;AACH,iDAFU,OAAO,8DAA8D,EAAE,wBAAwB,CAMtG;AAEH,uCAAuC;AACvC,8EAA6D;AAE7D,mDAAmD;AACnD,gEAA2D;4CAnEf,mDAAmD;iCAC9D,+BAA+B"}