@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,69 +1,97 @@
1
- import { CodeChunk } from "../shader/compiler/CodeChunk.js";
2
- import { chunk_sky_lut_params } from "./chunk_sky_lut_params.js";
3
- import { chunk_sky_lut_uv } from "./chunk_sky_lut_uv.js";
4
-
5
- /**
6
- * Assumes following in the context:
7
- * tSkyLutTransmittance: texture_2d<f32> (sample type "float", i.e. filterable)
8
- * sSkyLut: sampler (see {@link SAMPLER_SKY_LUT})
9
- *
10
- * The LUT is rgba16float, which is filterable in core WebGPU -- only the 32-bit float
11
- * formats need the `float32-filterable` feature -- so this goes through the texture unit
12
- * rather than the 4-tap `texture_sample_bilinear_uv`. Clamp-to-edge on the sampler
13
- * reproduces that function's per-corner clamping.
14
- *
15
- * The half-texel inset {@link chunk_sky_lut_uv} applies needs the LUT's resolution, which is
16
- * read from the binding rather than passed in: the texture is the authority on its own size,
17
- * and a caller cannot get it wrong.
18
- *
19
- * see {@link shader_transmittance_lut}
20
- * @type {CodeChunk}
21
- */
22
- export const chunk_sample_transmittance_lut_params = CodeChunk.from(
23
- //language=WGSL
24
- `
25
- fn sample_transmittance_lut_params(
26
- height: f32,
27
- sun_cos_zenith_angle: f32
28
- ) -> vec3<f32>{
29
-
30
- let uv = sky_lut_uv(
31
- height,
32
- sun_cos_zenith_angle,
33
- vec2<f32>(textureDimensions(tSkyLutTransmittance))
34
- );
35
-
36
- return textureSampleLevel(tSkyLutTransmittance, sSkyLut, uv, 0.0).rgb;
37
-
38
- }
39
- `, [
40
- chunk_sky_lut_uv,
41
- ]
42
- );
43
-
44
- /**
45
- * {@link chunk_sample_transmittance_lut_params} from a world-space position. A ray-march that
46
- * already knows the altitude and the local up vector should build the pair itself and call
47
- * the primitive, rather than have this recover them with another square root.
48
- *
49
- * @type {CodeChunk}
50
- */
51
- export const chunk_sample_transmittance_lut = CodeChunk.from(
52
- //language=WGSL
53
- `
54
- fn sample_transmittance_lut(
55
- pos: vec3<f32>,
56
- sunDir: vec3<f32>
57
- ) -> vec3<f32>{
58
-
59
- let params = sky_lut_params(pos, sunDir);
60
-
61
- return sample_transmittance_lut_params(params.x, params.y);
62
-
63
- }
64
- `,
65
- [
66
- chunk_sample_transmittance_lut_params,
67
- chunk_sky_lut_params,
68
- ]
69
- );
1
+ import { CodeChunk } from "../shader/compiler/CodeChunk.js";
2
+ import {
3
+ ATMOSPHERE_PARAMETERS_STRUCT,
4
+ chunk_atmosphere_parameters
5
+ } from "./ATMOSPHERE_PARAMETERS_STRUCT.js";
6
+ import { chunk_sky_lut_params } from "./chunk_sky_lut_params.js";
7
+ import { chunk_sky_lut_uv } from "./chunk_sky_lut_uv.js";
8
+ import { SKY_LUT_SAMPLER_RESOURCE, SKY_LUT_TRANSMITTANCE_RESOURCE } from "./SAMPLER_SKY_LUT.js";
9
+
10
+ /**
11
+ * Parameterised transmittance LUT lookup using `atm.atmosphere_height`.
12
+ *
13
+ * Assumes in shader scope:
14
+ * tSkyLutTransmittance: texture_2d<f32> (sample type "float", filterable)
15
+ * sSkyLut: sampler (see {@link SAMPLER_SKY_LUT})
16
+ *
17
+ * @type {CodeChunk}
18
+ */
19
+ export const chunk_sample_transmittance_lut_params_for = CodeChunk.from(
20
+ //language=WGSL
21
+ `
22
+ fn sample_transmittance_lut_params_for(
23
+ atm: ${ATMOSPHERE_PARAMETERS_STRUCT.wgsl_ref},
24
+ height: f32,
25
+ sun_cos_zenith_angle: f32
26
+ ) -> vec3<f32> {
27
+ let uv = sky_lut_uv_for(
28
+ atm,
29
+ height,
30
+ sun_cos_zenith_angle,
31
+ vec2<f32>(textureDimensions(tSkyLutTransmittance))
32
+ );
33
+
34
+ return textureSampleLevel(tSkyLutTransmittance, sSkyLut, uv, 0.0).rgb;
35
+ }
36
+ `, [
37
+ chunk_atmosphere_parameters,
38
+ ]
39
+ );
40
+
41
+ chunk_sample_transmittance_lut_params_for.requireResource(SKY_LUT_TRANSMITTANCE_RESOURCE);
42
+ chunk_sample_transmittance_lut_params_for.requireResource(SKY_LUT_SAMPLER_RESOURCE);
43
+
44
+ /**
45
+ * Earth-default transmittance LUT lookup by `(height, sun_cos_zenith_angle)`.
46
+ *
47
+ * @type {CodeChunk}
48
+ */
49
+ export const chunk_sample_transmittance_lut_params = CodeChunk.from(
50
+ //language=WGSL
51
+ `
52
+ fn sample_transmittance_lut_params(
53
+ height: f32,
54
+ sun_cos_zenith_angle: f32
55
+ ) -> vec3<f32>{
56
+
57
+ let uv = sky_lut_uv(
58
+ height,
59
+ sun_cos_zenith_angle,
60
+ vec2<f32>(textureDimensions(tSkyLutTransmittance))
61
+ );
62
+
63
+ return textureSampleLevel(tSkyLutTransmittance, sSkyLut, uv, 0.0).rgb;
64
+
65
+ }
66
+ `, [
67
+ chunk_sky_lut_uv,
68
+ ]
69
+ );
70
+
71
+ chunk_sample_transmittance_lut_params.requireResource(SKY_LUT_TRANSMITTANCE_RESOURCE);
72
+ chunk_sample_transmittance_lut_params.requireResource(SKY_LUT_SAMPLER_RESOURCE);
73
+
74
+ /**
75
+ * {@link chunk_sample_transmittance_lut_params} from a world-space position.
76
+ *
77
+ * @type {CodeChunk}
78
+ */
79
+ export const chunk_sample_transmittance_lut = CodeChunk.from(
80
+ //language=WGSL
81
+ `
82
+ fn sample_transmittance_lut(
83
+ pos: vec3<f32>,
84
+ sunDir: vec3<f32>
85
+ ) -> vec3<f32>{
86
+
87
+ let params = sky_lut_params(pos, sunDir);
88
+
89
+ return sample_transmittance_lut_params(params.x, params.y);
90
+
91
+ }
92
+ `,
93
+ [
94
+ chunk_sample_transmittance_lut_params,
95
+ chunk_sky_lut_params,
96
+ ]
97
+ );
@@ -1,3 +1,20 @@
1
+ /**
2
+ * Hillaire (2020) §5.3 Sky-View LUT coordinate encoding and decoding.
3
+ *
4
+ * Parameterisation (`resolution` must have an even height, e.g. `192 × 108`):
5
+ * - `u` encodes relative azimuth to the sun in $[0, \pi]$ via half-texel-inset sub-UVs:
6
+ * exploiting mirror symmetry across the sun-zenith plane gives $2\times$ horizontal angular
7
+ * resolution and eliminates any $0 / 2\pi$ wrap seam under `clamp-to-edge` bilinear filtering.
8
+ * - `v` splits cleanly at $0.5$ into two independent $H/2$-row sub-UV ranges with square-root
9
+ * horizon clustering:
10
+ * - rows $[0, H/2 - 1]$ (`v < 0.5`): ground-intersecting rays ($\theta \in (\theta_{\text{horizon}}, \pi]$);
11
+ * - rows $[H/2, H - 1]$ (`v >= 0.5`): sky rays ($\theta \in [0, \theta_{\text{horizon}}]$).
12
+ * Because both sub-ranges carry half-texel insets at their inner boundary, hardware bilinear
13
+ * filtering never bleeds planet ground texels into sky horizon texels or vice versa.
14
+ *
15
+ * @see "A Scalable and Production Ready Sky and Atmosphere Rendering Technique", Hillaire (2020), §5.3
16
+ * @type {CodeChunk}
17
+ */
1
18
  export const chunk_sky_irradiance_lut_encode_uv: CodeChunk;
2
19
  import { CodeChunk } from "../shader/compiler/CodeChunk.js";
3
20
  //# sourceMappingURL=chunk_sky_irradiance_lut_encode_uv.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_sky_irradiance_lut_encode_uv.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/chunk_sky_irradiance_lut_encode_uv.js"],"names":[],"mappings":"AAaA,2DA8CM;0BAjDoB,iCAAiC"}
1
+ {"version":3,"file":"chunk_sky_irradiance_lut_encode_uv.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/chunk_sky_irradiance_lut_encode_uv.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;GAgBG;AACH,iDAFU,SAAS,CAyGjB;0BA9HwB,iCAAiC"}
@@ -1,60 +1,129 @@
1
- import { ATMOSPHERE_HEIGHT_DECLARATION } from "../shader/chunk/atmosphere/ATMOSPHERE_HEIGHT_DECLARATION.js";
2
- import {
3
- chunk_position_relative_to_planet_center
4
- } from "../shader/chunk/atmosphere/chunk_position_relative_to_planet_center.js";
5
- import { PLANET_RADIUS_DECLARATION } from "../shader/chunk/atmosphere/PLANET_RADIUS_DECLARATION.js";
6
1
  import { chunk_safe_acos } from "../shader/chunk/math/chunk_safe_acos.js";
7
2
  import { PI_DECLARATION } from "../shader/chunk/math/PI_DECLARATION.js";
8
- import {
9
- chunk_texture_sample_bilinear_uv
10
- } from "../shader/chunk/texture/sample/chunk_texture_sample_bilinear_uv.js";
11
3
  import { CodeChunk } from "../shader/compiler/CodeChunk.js";
12
- import { ATMOSPHERE_ALTITUDE_CUTOFF } from "./ATMOSPHERE_ALTITUDE_CUTOFF.js";
4
+ import {
5
+ ATMOSPHERE_PARAMETERS_STRUCT,
6
+ chunk_atmosphere_parameters
7
+ } from "./ATMOSPHERE_PARAMETERS_STRUCT.js";
13
8
 
9
+ /**
10
+ * Hillaire (2020) §5.3 Sky-View LUT coordinate encoding and decoding.
11
+ *
12
+ * Parameterisation (`resolution` must have an even height, e.g. `192 × 108`):
13
+ * - `u` encodes relative azimuth to the sun in $[0, \pi]$ via half-texel-inset sub-UVs:
14
+ * exploiting mirror symmetry across the sun-zenith plane gives $2\times$ horizontal angular
15
+ * resolution and eliminates any $0 / 2\pi$ wrap seam under `clamp-to-edge` bilinear filtering.
16
+ * - `v` splits cleanly at $0.5$ into two independent $H/2$-row sub-UV ranges with square-root
17
+ * horizon clustering:
18
+ * - rows $[0, H/2 - 1]$ (`v < 0.5`): ground-intersecting rays ($\theta \in (\theta_{\text{horizon}}, \pi]$);
19
+ * - rows $[H/2, H - 1]$ (`v >= 0.5`): sky rays ($\theta \in [0, \theta_{\text{horizon}}]$).
20
+ * Because both sub-ranges carry half-texel insets at their inner boundary, hardware bilinear
21
+ * filtering never bleeds planet ground texels into sky horizon texels or vice versa.
22
+ *
23
+ * @see "A Scalable and Production Ready Sky and Atmosphere Rendering Technique", Hillaire (2020), §5.3
24
+ * @type {CodeChunk}
25
+ */
14
26
  export const chunk_sky_irradiance_lut_encode_uv = CodeChunk.from(
15
27
  //language=WGSL
16
28
  `
17
- fn sky_irradiance_lut_encode_uv(viewPos: vec3<f32>, rayDir: vec3<f32>, sunDir:vec3<f32>) -> vec2<f32>{
18
- let relative_position = position_relative_to_planet_center(viewPos);
19
-
20
- let height = clamp( length(relative_position), PLANET_RADIUS + ${ATMOSPHERE_ALTITUDE_CUTOFF}, PLANET_RADIUS + ATMOSPHERE_HEIGHT - ${ATMOSPHERE_ALTITUDE_CUTOFF} );
21
-
22
- let up = normalize(relative_position);
23
-
24
- let horizonAngle = safe_acos(sqrt(height * height - PLANET_RADIUS * PLANET_RADIUS) / height);
25
- let altitudeAngle = horizonAngle - acos(dot(rayDir, up)); // Between -PI/2 and PI/2
26
-
27
- var azimuthAngle:f32; // Between 0 and 2*PI
28
-
29
- if (abs(altitudeAngle) > ( 0.5*PI - 0.0001 )) {
30
-
31
- // Looking nearly straight up or down.
32
- azimuthAngle = 0.0;
33
-
29
+ fn sky_view_horizon_zenith_angle(
30
+ planet_radius: f32,
31
+ observer_radius: f32
32
+ ) -> f32 {
33
+ let r = max(observer_radius, planet_radius);
34
+ // Difference-of-squares + atan2 avoids losing ~19 mantissa bits in acos(R_p / R_v) near the ground.
35
+ let horizon_dist = sqrt(max((r - planet_radius) * (r + planet_radius), 0.0));
36
+ return 0.5 * PI + atan2(horizon_dist, max(planet_radius, MIN_ATMOSPHERE_LENGTH_UNITS));
37
+ }
38
+
39
+ fn sky_view_lut_uv_for(
40
+ atm: ${ATMOSPHERE_PARAMETERS_STRUCT.wgsl_ref},
41
+ view_pos: vec3<f32>,
42
+ ray_dir: vec3<f32>,
43
+ sun_dir: vec3<f32>,
44
+ resolution: vec2<f32>
45
+ ) -> vec2<f32> {
46
+ let view_rel = atmosphere_clamped_observer_relative(atm, view_pos);
47
+ let observer_radius = length(view_rel);
48
+ let up = view_rel / observer_radius;
49
+
50
+ let theta_horizon = sky_view_horizon_zenith_angle(atm.planet_radius, observer_radius);
51
+ let theta = safe_acos(dot(ray_dir, up));
52
+
53
+ let bounds = atmosphere_ray_bounds_for(atm, view_rel, ray_dir);
54
+
55
+ let half_rows = max(floor(0.5 * resolution.y), 1.0);
56
+ var v: f32;
57
+ if (bounds.hits_ground) {
58
+ let unit_y = sqrt(saturate((theta - theta_horizon) / max(PI - theta_horizon, 1e-5)));
59
+ let row = (half_rows - 1.0) * (1.0 - unit_y);
60
+ v = (row + 0.5) / resolution.y;
61
+ } else {
62
+ let unit_y = sqrt(saturate((theta_horizon - theta) / max(theta_horizon, 1e-5)));
63
+ let row = half_rows + unit_y * (half_rows - 1.0);
64
+ v = (row + 0.5) / resolution.y;
65
+ }
66
+
67
+ let ray_horiz = ray_dir - up * dot(ray_dir, up);
68
+ let sun_horiz = sun_dir - up * dot(sun_dir, up);
69
+ let ray_horiz_len = length(ray_horiz);
70
+ let sun_horiz_len = length(sun_horiz);
71
+
72
+ var unit_x = 0.0;
73
+ if (ray_horiz_len > 1e-5 && sun_horiz_len > 1e-5) {
74
+ let cos_azimuth = clamp(dot(ray_horiz / ray_horiz_len, sun_horiz / sun_horiz_len), -1.0, 1.0);
75
+ unit_x = safe_acos(cos_azimuth) / PI;
76
+ }
77
+
78
+ let u = (unit_x * max(resolution.x - 1.0, 0.0) + 0.5) / max(resolution.x, 1.0);
79
+ return vec2<f32>(u, v);
80
+ }
81
+
82
+ struct SkyViewDecodedTexel {
83
+ ray_local: vec3<f32>,
84
+ hits_ground: bool,
85
+ }
86
+
87
+ fn sky_view_lut_decode_texel(
88
+ planet_radius: f32,
89
+ observer_radius: f32,
90
+ texel: vec2<f32>,
91
+ resolution: vec2<f32>
92
+ ) -> SkyViewDecodedTexel {
93
+ let theta_horizon = sky_view_horizon_zenith_angle(planet_radius, observer_radius);
94
+ let half_rows = max(floor(0.5 * resolution.y), 1.0);
95
+ let denom_y = max(half_rows - 1.0, 1.0);
96
+
97
+ var theta: f32;
98
+ var hits_ground: bool;
99
+ if (texel.y < half_rows) {
100
+ hits_ground = true;
101
+ let unit_y = saturate((half_rows - 1.0 - texel.y) / denom_y);
102
+ theta = clamp(theta_horizon + (PI - theta_horizon) * unit_y * unit_y, theta_horizon + 2e-6, PI);
34
103
  } else {
35
-
36
- let right = cross(sunDir, up);
37
- let forward = cross(up, right);
38
-
39
- let projectedDir = normalize(rayDir - up*(dot(rayDir, up)));
40
-
41
- let sinTheta = dot(projectedDir, right);
42
- let cosTheta = dot(projectedDir, forward);
43
-
44
- azimuthAngle = atan2(sinTheta, cosTheta) + PI;
45
-
104
+ hits_ground = false;
105
+ let unit_y = saturate((texel.y - half_rows) / denom_y);
106
+ theta = clamp(theta_horizon * (1.0 - unit_y * unit_y), 0.0, max(theta_horizon - 2e-6, 0.0));
46
107
  }
47
-
48
- // Non-linear mapping of altitude angle. See Section 5.3 of the paper.
49
- let v = 0.5 + 0.5*sign(altitudeAngle)*sqrt( abs(altitudeAngle)*2.0/PI );
50
-
51
- return vec2(azimuthAngle / (2.0*PI), v);
108
+
109
+ let unit_x = saturate(texel.x / max(resolution.x - 1.0, 1.0));
110
+ let azimuth = unit_x * PI;
111
+
112
+ let sin_theta = sin(theta);
113
+ let cos_theta = cos(theta);
114
+
115
+ var out: SkyViewDecodedTexel;
116
+ out.ray_local = vec3<f32>(sin_theta * cos(azimuth), cos_theta, sin_theta * sin(azimuth));
117
+ out.hits_ground = hits_ground;
118
+ return out;
119
+ }
120
+
121
+ fn sky_irradiance_lut_encode_uv(viewPos: vec3<f32>, rayDir: vec3<f32>, sunDir: vec3<f32>) -> vec2<f32> {
122
+ return sky_view_lut_uv_for(atmosphere_earth_parameters(), viewPos, rayDir, sunDir, vec2<f32>(192.0, 108.0));
52
123
  }
53
- `, [
124
+ `, [
54
125
  PI_DECLARATION,
55
- PLANET_RADIUS_DECLARATION,
56
- ATMOSPHERE_HEIGHT_DECLARATION,
57
126
  chunk_safe_acos,
58
- chunk_position_relative_to_planet_center,
59
- chunk_texture_sample_bilinear_uv,
60
- ])
127
+ chunk_atmosphere_parameters,
128
+ ]
129
+ );
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Parameterised {@link sky_lut_uv_for} straight from a world-space position and
3
+ * {@link ATMOSPHERE_PARAMETERS_STRUCT}, for passes (such as volumetrics) that sample a sky LUT
4
+ * generated by {@link GPUSky} under their own texture binding name.
5
+ *
6
+ * @type {CodeChunk}
7
+ */
8
+ export const chunk_sky_lut_compute_uv_for: CodeChunk;
1
9
  /**
2
10
  * {@link chunk_sky_lut_uv} straight from a world-space position, for a shader that samples a
3
11
  * sky LUT through its own binding rather than through the `sample_*_lut_params` chunks --
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_sky_lut_compute_uv.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,uCAFU,SAAS,CAmBlB;0BAlCyB,iCAAiC"}
1
+ {"version":3,"file":"chunk_sky_lut_compute_uv.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/chunk_sky_lut_compute_uv.js"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,2CAFU,SAAS,CAmBjB;AAEF;;;;;;;;;;;;GAYG;AACH,uCAFU,SAAS,CAmBlB;0BAhEyB,iCAAiC"}
@@ -1,35 +1,65 @@
1
- import { CodeChunk } from "../shader/compiler/CodeChunk.js";
2
- import { chunk_sky_lut_params } from "./chunk_sky_lut_params.js";
3
- import { chunk_sky_lut_uv } from "./chunk_sky_lut_uv.js";
4
-
5
- /**
6
- * {@link chunk_sky_lut_uv} straight from a world-space position, for a shader that samples a
7
- * sky LUT through its own binding rather than through the `sample_*_lut_params` chunks --
8
- * the volumetrics passes, which bind the same transmittance LUT under a name of their own.
9
- *
10
- * `resolution` is the LUT's, and it matters: the half-texel inset is what makes a lookup at
11
- * either end of the range read a value that was computed there. Pass
12
- * `vec2<f32>(textureDimensions(...))` of the texture being sampled, not of some other one --
13
- * the transmittance and multiple-scattering LUTs are different sizes, so one uv cannot serve
14
- * both.
15
- *
16
- * @type {CodeChunk}
17
- */
18
- export const chunk_sky_lut_compute_uv = CodeChunk.from(
19
- //language=WGSL
20
- `
21
- fn sky_lut_compute_uv(
22
- pos: vec3<f32>,
23
- sunDir: vec3<f32>,
24
- resolution: vec2<f32>
25
- ) -> vec2<f32> {
26
-
27
- let params = sky_lut_params(pos, sunDir);
28
-
29
- return sky_lut_uv(params.x, params.y, resolution);
30
- }
31
- `, [
32
- chunk_sky_lut_params,
33
- chunk_sky_lut_uv,
34
- ]
35
- )
1
+ import { CodeChunk } from "../shader/compiler/CodeChunk.js";
2
+ import {
3
+ ATMOSPHERE_PARAMETERS_STRUCT,
4
+ chunk_atmosphere_parameters
5
+ } from "./ATMOSPHERE_PARAMETERS_STRUCT.js";
6
+ import { chunk_sky_lut_params } from "./chunk_sky_lut_params.js";
7
+ import { chunk_sky_lut_uv } from "./chunk_sky_lut_uv.js";
8
+
9
+ /**
10
+ * Parameterised {@link sky_lut_uv_for} straight from a world-space position and
11
+ * {@link ATMOSPHERE_PARAMETERS_STRUCT}, for passes (such as volumetrics) that sample a sky LUT
12
+ * generated by {@link GPUSky} under their own texture binding name.
13
+ *
14
+ * @type {CodeChunk}
15
+ */
16
+ export const chunk_sky_lut_compute_uv_for = CodeChunk.from(
17
+ //language=WGSL
18
+ `
19
+ fn sky_lut_compute_uv_for(
20
+ atm: ${ATMOSPHERE_PARAMETERS_STRUCT.wgsl_ref},
21
+ pos: vec3<f32>,
22
+ sunDir: vec3<f32>,
23
+ resolution: vec2<f32>
24
+ ) -> vec2<f32> {
25
+ let rel = atmosphere_position_relative_for(atm, pos);
26
+ let radius = length(rel);
27
+ let up = select(vec3<f32>(0.0, 1.0, 0.0), rel / radius, radius > 0.0);
28
+ return sky_lut_uv_for(atm, radius - atm.planet_radius, dot(sunDir, up), resolution);
29
+ }
30
+ `, [
31
+ chunk_atmosphere_parameters,
32
+ ]
33
+ );
34
+
35
+ /**
36
+ * {@link chunk_sky_lut_uv} straight from a world-space position, for a shader that samples a
37
+ * sky LUT through its own binding rather than through the `sample_*_lut_params` chunks --
38
+ * the volumetrics passes, which bind the same transmittance LUT under a name of their own.
39
+ *
40
+ * `resolution` is the LUT's, and it matters: the half-texel inset is what makes a lookup at
41
+ * either end of the range read a value that was computed there. Pass
42
+ * `vec2<f32>(textureDimensions(...))` of the texture being sampled, not of some other one --
43
+ * the transmittance and multiple-scattering LUTs are different sizes, so one uv cannot serve
44
+ * both.
45
+ *
46
+ * @type {CodeChunk}
47
+ */
48
+ export const chunk_sky_lut_compute_uv = CodeChunk.from(
49
+ //language=WGSL
50
+ `
51
+ fn sky_lut_compute_uv(
52
+ pos: vec3<f32>,
53
+ sunDir: vec3<f32>,
54
+ resolution: vec2<f32>
55
+ ) -> vec2<f32> {
56
+
57
+ let params = sky_lut_params(pos, sunDir);
58
+
59
+ return sky_lut_uv(params.x, params.y, resolution);
60
+ }
61
+ `, [
62
+ chunk_sky_lut_params,
63
+ chunk_sky_lut_uv,
64
+ ]
65
+ )
@@ -2,7 +2,8 @@
2
2
  * Compute Mie absorption from scattering and extinction coefficients.
3
3
  * @param {number[]} scattering
4
4
  * @param {number[]} extinction
5
+ * @param {number[]} [out]
5
6
  * @returns {number[]}
6
7
  */
7
- export function compute_mie_absorption(scattering: number[], extinction: number[]): number[];
8
+ export function compute_mie_absorption(scattering: number[], extinction: number[], out?: number[]): number[];
8
9
  //# sourceMappingURL=compute_mie_absorption.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compute_mie_absorption.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/compute_mie_absorption.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,mDAJW,MAAM,EAAE,cACR,MAAM,EAAE,GACN,MAAM,EAAE,CAQpB"}
1
+ {"version":3,"file":"compute_mie_absorption.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/compute_mie_absorption.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,mDALW,MAAM,EAAE,cACR,MAAM,EAAE,QACR,MAAM,EAAE,GACN,MAAM,EAAE,CAOpB"}
@@ -2,12 +2,12 @@
2
2
  * Compute Mie absorption from scattering and extinction coefficients.
3
3
  * @param {number[]} scattering
4
4
  * @param {number[]} extinction
5
+ * @param {number[]} [out]
5
6
  * @returns {number[]}
6
7
  */
7
- export function compute_mie_absorption(scattering, extinction) {
8
- return [
9
- Math.max(extinction[0] - scattering[0], 0),
10
- Math.max(extinction[1] - scattering[1], 0),
11
- Math.max(extinction[2] - scattering[2], 0),
12
- ];
8
+ export function compute_mie_absorption(scattering, extinction, out = [0, 0, 0]) {
9
+ out[0] = Math.max(extinction[0] - scattering[0], 0);
10
+ out[1] = Math.max(extinction[1] - scattering[1], 0);
11
+ out[2] = Math.max(extinction[2] - scattering[2], 0);
12
+ return out;
13
13
  }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Allocate a reusable {@link AtmosphereSunState} container so per-frame updates perform zero heap
3
+ * allocations.
4
+ *
5
+ * @returns {AtmosphereSunState}
6
+ */
7
+ export function create_atmosphere_sun_state(): AtmosphereSunState;
8
+ /**
9
+ * Resolve the active solar light driving {@link Scene#atmosphere}:
10
+ * 1. The first `DirectionalLight` in `scene.lights.elements`, using `-forward` as the direction
11
+ * pointing **toward** the sun (`DirectionalLight` shines along `+Z` / `forward`).
12
+ * 2. Otherwise, when `atmosphere.fallback_sun_enabled` is true, the fallback sun configured on
13
+ * {@link SceneAtmosphere} (with `sun_has_disc = 0` so sunless scenes get skylight IBL without
14
+ * an unshadowed solar disc).
15
+ * 3. Otherwise, zero irradiance.
16
+ *
17
+ * @param {Scene} scene
18
+ * @param {AtmosphereSunState} [out]
19
+ * @returns {AtmosphereSunState}
20
+ */
21
+ export function resolve_atmosphere_sun(scene: Scene, out?: AtmosphereSunState): AtmosphereSunState;
22
+ export type Scene = import("../scene/Scene.js").Scene;
23
+ export type AtmosphereSunState = {
24
+ /**
25
+ * world-space unit vector pointing **toward** the sun
26
+ */
27
+ sun_direction: Float32Array;
28
+ /**
29
+ * extraterrestrial RGB irradiance driving atmospheric scattering
30
+ */
31
+ sun_irradiance: Float32Array;
32
+ /**
33
+ * angular half-radius of the solar disc in radians
34
+ */
35
+ sun_disk_radius: number;
36
+ /**
37
+ * `1` when an explicit directional sun disc should be drawn, `0` otherwise
38
+ */
39
+ sun_has_disc: number;
40
+ };
41
+ //# sourceMappingURL=resolve_atmosphere_sun.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve_atmosphere_sun.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/resolve_atmosphere_sun.js"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,+CAFa,kBAAkB,CAS9B;AAED;;;;;;;;;;;;GAYG;AACH,8CAJW,KAAK,QACL,kBAAkB,GAChB,kBAAkB,CA6E9B;oBArHY,OAAO,mBAAmB,EAAE,KAAK;;;;;mBAKhC,YAAY;;;;oBACZ,YAAY;;;;qBACZ,MAAM;;;;kBACN,MAAM"}