@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
@@ -16,5 +16,22 @@
16
16
  * @type {Readonly<SamplerDescriptor>}
17
17
  */
18
18
  export const SAMPLER_SKY_LUT: Readonly<SamplerDescriptor>;
19
+ /**
20
+ * Resource declaration for `sSkyLut`, paired with {@link SKY_LUT_TRANSMITTANCE_RESOURCE} and
21
+ * {@link SKY_LUT_MULTISCATTER_RESOURCE}.
22
+ * @type {ShaderResourceDescriptor}
23
+ */
24
+ export const SKY_LUT_SAMPLER_RESOURCE: ShaderResourceDescriptor;
25
+ /**
26
+ * Resource declaration for `tSkyLutTransmittance`.
27
+ * @type {ShaderResourceDescriptor}
28
+ */
29
+ export const SKY_LUT_TRANSMITTANCE_RESOURCE: ShaderResourceDescriptor;
30
+ /**
31
+ * Resource declaration for `tSkyLutMultiscatter`.
32
+ * @type {ShaderResourceDescriptor}
33
+ */
34
+ export const SKY_LUT_MULTISCATTER_RESOURCE: ShaderResourceDescriptor;
19
35
  import { SamplerDescriptor } from "../../descriptor/texture/SamplerDescriptor.js";
36
+ import { ShaderResourceDescriptor } from "../shader/resource/ShaderResourceDescriptor.js";
20
37
  //# sourceMappingURL=SAMPLER_SKY_LUT.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SAMPLER_SKY_LUT.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,8BAFU,SAAS,iBAAiB,CAAC,CAOjC;kCAxB8B,+CAA+C"}
1
+ {"version":3,"file":"SAMPLER_SKY_LUT.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/SAMPLER_SKY_LUT.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,8BAFU,SAAS,iBAAiB,CAAC,CAOjC;AAEJ;;;;GAIG;AACH,uCAFU,wBAAwB,CAMhC;AAEF;;;GAGG;AACH,6CAFU,wBAAwB,CAKhC;AAEF;;;GAGG;AACH,4CAFU,wBAAwB,CAKhC;kCAtDgC,+CAA+C;yCACxC,gDAAgD"}
@@ -1,25 +1,55 @@
1
- import { SamplerDescriptor } from "../../descriptor/texture/SamplerDescriptor.js";
2
-
3
- /**
4
- * Filtering sampler for the sky LUTs (transmittance, multiple-scattering).
5
- *
6
- * Both LUTs are `rgba16float`, which is filterable in core WebGPU — only the 32-bit float
7
- * formats need the `float32-filterable` feature — so these can go through the texture unit
8
- * instead of the 4-tap manual bilinear in `texture_sample_bilinear_uv`.
9
- *
10
- * `min` and `mag` are both set: the LUTs are single-mip and sampled with an explicit LOD of
11
- * 0, which selects the magnification filter, but relying on that alone would silently fall
12
- * back to point sampling if either LUT ever grew mips.
13
- *
14
- * Clamp-to-edge reproduces the manual filter's per-corner clamping exactly: `uv` is
15
- * saturated by `sky_lut_uv`, and at the edges both bilinear taps collapse onto the edge
16
- * texel.
17
- *
18
- * @type {Readonly<SamplerDescriptor>}
19
- */
20
- export const SAMPLER_SKY_LUT = Object.freeze(SamplerDescriptor.from({
21
- magFilter: "linear",
22
- minFilter: "linear",
23
- addressModeU: "clamp-to-edge",
24
- addressModeV: "clamp-to-edge",
25
- }));
1
+ import { SamplerDescriptor } from "../../descriptor/texture/SamplerDescriptor.js";
2
+ import { ShaderResourceDescriptor } from "../shader/resource/ShaderResourceDescriptor.js";
3
+
4
+ /**
5
+ * Filtering sampler for the sky LUTs (transmittance, multiple-scattering).
6
+ *
7
+ * Both LUTs are `rgba16float`, which is filterable in core WebGPU — only the 32-bit float
8
+ * formats need the `float32-filterable` feature — so these can go through the texture unit
9
+ * instead of the 4-tap manual bilinear in `texture_sample_bilinear_uv`.
10
+ *
11
+ * `min` and `mag` are both set: the LUTs are single-mip and sampled with an explicit LOD of
12
+ * 0, which selects the magnification filter, but relying on that alone would silently fall
13
+ * back to point sampling if either LUT ever grew mips.
14
+ *
15
+ * Clamp-to-edge reproduces the manual filter's per-corner clamping exactly: `uv` is
16
+ * saturated by `sky_lut_uv`, and at the edges both bilinear taps collapse onto the edge
17
+ * texel.
18
+ *
19
+ * @type {Readonly<SamplerDescriptor>}
20
+ */
21
+ export const SAMPLER_SKY_LUT = Object.freeze(SamplerDescriptor.from({
22
+ magFilter: "linear",
23
+ minFilter: "linear",
24
+ addressModeU: "clamp-to-edge",
25
+ addressModeV: "clamp-to-edge",
26
+ }));
27
+
28
+ /**
29
+ * Resource declaration for `sSkyLut`, paired with {@link SKY_LUT_TRANSMITTANCE_RESOURCE} and
30
+ * {@link SKY_LUT_MULTISCATTER_RESOURCE}.
31
+ * @type {ShaderResourceDescriptor}
32
+ */
33
+ export const SKY_LUT_SAMPLER_RESOURCE = ShaderResourceDescriptor.sampler(
34
+ "sSkyLut",
35
+ "filtering",
36
+ SAMPLER_SKY_LUT
37
+ );
38
+
39
+ /**
40
+ * Resource declaration for `tSkyLutTransmittance`.
41
+ * @type {ShaderResourceDescriptor}
42
+ */
43
+ export const SKY_LUT_TRANSMITTANCE_RESOURCE = ShaderResourceDescriptor.texture(
44
+ "tSkyLutTransmittance",
45
+ "float"
46
+ );
47
+
48
+ /**
49
+ * Resource declaration for `tSkyLutMultiscatter`.
50
+ * @type {ShaderResourceDescriptor}
51
+ */
52
+ export const SKY_LUT_MULTISCATTER_RESOURCE = ShaderResourceDescriptor.texture(
53
+ "tSkyLutMultiscatter",
54
+ "float"
55
+ );
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Scene-owned physical atmosphere configuration for Hillaire (2020) sky and aerial scattering.
3
+ *
4
+ * All CPU properties on this class are authored in world-space metres and inverse metres
5
+ * ($\text{m}^{-1}$). {@link write_uniform} converts lengths and coefficients into GPU atmosphere
6
+ * units ($\text{km}$ and $\text{km}^{-1}$, via `ATMOSPHERE_UNIT_METERS`) when uploading to
7
+ * {@link ATMOSPHERE_PARAMETERS_STRUCT}.
8
+ *
9
+ * Mutating parameters in place requires calling {@link invalidate} (or setting `needsUpdate = true`)
10
+ * so {@link GPUSky} and {@link GPULightCollection} know to rebuild the atmosphere LUTs and sky IBL,
11
+ * matching {@link SceneVolumetrics} and {@link LightCollection}. Assigning {@link enabled} bumps
12
+ * {@link version} automatically.
13
+ *
14
+ * @see "A Scalable and Production Ready Sky and Atmosphere Rendering Technique", Hillaire (2020)
15
+ */
16
+ export class SceneAtmosphere {
17
+ /**
18
+ * Monotonically increasing change counter; bumped by {@link enabled} transitions and
19
+ * {@link invalidate}.
20
+ *
21
+ * @type {number}
22
+ */
23
+ version: number;
24
+ /**
25
+ * Planet radius from centre to sea level, in metres.
26
+ * @type {number}
27
+ */
28
+ planet_radius: number;
29
+ /**
30
+ * Thickness of the atmosphere shell above {@link planet_radius}, in metres.
31
+ * @type {number}
32
+ */
33
+ atmosphere_height: number;
34
+ /**
35
+ * Exponential scale height of Rayleigh (molecular) density, in metres.
36
+ * @type {number}
37
+ */
38
+ rayleigh_scale_height: number;
39
+ /**
40
+ * Sea-level Rayleigh scattering coefficients (RGB), in $\text{m}^{-1}$.
41
+ * @type {number[]}
42
+ */
43
+ rayleigh_scattering: number[];
44
+ /**
45
+ * Exponential scale height of Mie (aerosol) density, in metres.
46
+ * @type {number}
47
+ */
48
+ mie_scale_height: number;
49
+ /**
50
+ * Sea-level Mie scattering coefficients (RGB), in $\text{m}^{-1}$.
51
+ * @type {number[]}
52
+ */
53
+ mie_scattering: number[];
54
+ /**
55
+ * Sea-level Mie extinction coefficients (RGB), in $\text{m}^{-1}$. Mie absorption is derived as
56
+ * `max(mie_extinction - mie_scattering, 0)`.
57
+ * @type {number[]}
58
+ */
59
+ mie_extinction: number[];
60
+ /**
61
+ * Cornette–Shanks aerosol phase asymmetry factor $g \in (-1, 1)$.
62
+ * @type {number}
63
+ */
64
+ mie_phase_g: number;
65
+ /**
66
+ * Altitude of peak ozone tent density above sea level, in metres.
67
+ * @type {number}
68
+ */
69
+ ozone_center_height: number;
70
+ /**
71
+ * Half-width of the symmetric tent profile for ozone density, in metres.
72
+ * @type {number}
73
+ */
74
+ ozone_half_width: number;
75
+ /**
76
+ * Peak ozone absorption coefficients (RGB), in $\text{m}^{-1}$.
77
+ * @type {number[]}
78
+ */
79
+ ozone_absorption: number[];
80
+ /**
81
+ * Diffuse Lambertian reflectance (RGB) of the planet surface for multiple scattering and
82
+ * lower-hemisphere ground bounce.
83
+ * @type {number[]}
84
+ */
85
+ ground_albedo: number[];
86
+ /**
87
+ * Reference observer altitude above sea level (in metres) used when baking the scene-wide
88
+ * octahedral sky IBL map (`GPULightCollection.environment`).
89
+ * @type {number}
90
+ */
91
+ reference_altitude: number;
92
+ /**
93
+ * Multiplier applied to the sun directional light's irradiance when driving atmospheric
94
+ * scattering.
95
+ * @type {number}
96
+ */
97
+ sun_irradiance_scale: number;
98
+ /**
99
+ * Whether to synthesise atmospheric skylight from {@link fallback_sun_direction} and
100
+ * {@link fallback_sun_irradiance} when the scene contains no `DirectionalLight` — ensuring
101
+ * sunless scenes still receive outdoor indirect illumination when the atmosphere is enabled.
102
+ * @type {boolean}
103
+ */
104
+ fallback_sun_enabled: boolean;
105
+ /**
106
+ * World-space unit vector pointing **toward** the fallback sun (+Y up), matching the default
107
+ * orientation of `make_sunlight()`.
108
+ * @type {number[]}
109
+ */
110
+ fallback_sun_direction: number[];
111
+ /**
112
+ * Extraterrestrial RGB solar irradiance used with {@link fallback_sun_direction} when no
113
+ * `DirectionalLight` is present in the scene.
114
+ * @type {number[]}
115
+ */
116
+ fallback_sun_irradiance: number[];
117
+ /**
118
+ * @param {boolean} value
119
+ */
120
+ set enabled(value: boolean);
121
+ /**
122
+ * Whether procedural Hillaire sky IBL and camera sky background are active when
123
+ * `scene.lights.environment` is `undefined`.
124
+ *
125
+ * @returns {boolean}
126
+ */
127
+ get enabled(): boolean;
128
+ /**
129
+ * Whether {@link enabled} was explicitly set by caller code.
130
+ * @returns {boolean}
131
+ */
132
+ get enabled_explicitly(): boolean;
133
+ /**
134
+ * Enable the atmosphere as an engine-supplied default unless caller code already explicitly
135
+ * configured {@link enabled}.
136
+ */
137
+ enable_by_default(): void;
138
+ /**
139
+ * Mark atmosphere parameters dirty so GPU LUTs and procedural sky IBL rebuild on the next
140
+ * update.
141
+ */
142
+ invalidate(): void;
143
+ /**
144
+ * Alias matching `LightCollection.needsUpdate`.
145
+ * @param {boolean} value
146
+ */
147
+ set needsUpdate(value: boolean);
148
+ /**
149
+ * Marshal physical atmosphere parameters (authored in $\text{m}$ and $\text{m}^{-1}$) into a
150
+ * POJO matching {@link ATMOSPHERE_PARAMETERS_STRUCT} (in GPU atmosphere units: $\text{km}$ and
151
+ * $\text{km}^{-1}$).
152
+ *
153
+ * @param {Record<string, any>} [out]
154
+ * @returns {Record<string, any>}
155
+ */
156
+ write_uniform(out?: Record<string, any>): Record<string, any>;
157
+ /**
158
+ * @readonly
159
+ * @type {boolean}
160
+ */
161
+ readonly isSceneAtmosphere: boolean;
162
+ #private;
163
+ }
164
+ //# sourceMappingURL=SceneAtmosphere.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneAtmosphere.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/SceneAtmosphere.js"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;;GAcG;AACH;IAeI;;;;;OAKG;IACH,SAFU,MAAM,CAEJ;IAEZ;;;OAGG;IACH,eAFU,MAAM,CAEU;IAE1B;;;OAGG;IACH,mBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,uBAFU,MAAM,CAEc;IAE9B;;;OAGG;IACH,qBAFU,MAAM,EAAE,CAEqC;IAEvD;;;OAGG;IACH,kBAFU,MAAM,CAES;IAEzB;;;OAGG;IACH,gBAFU,MAAM,EAAE,CAE8B;IAEhD;;;;OAIG;IACH,gBAFU,MAAM,EAAE,CAE8B;IAEhD;;;OAGG;IACH,aAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,qBAFU,MAAM,CAEa;IAE7B;;;OAGG;IACH,kBAFU,MAAM,CAEU;IAE1B;;;OAGG;IACH,kBAFU,MAAM,EAAE,CAEgC;IAElD;;;;OAIG;IACH,eAFU,MAAM,EAAE,CAEc;IAEhC;;;;OAIG;IACH,oBAFU,MAAM,CAES;IAEzB;;;;OAIG;IACH,sBAFU,MAAM,CAEW;IAE3B;;;;;OAKG;IACH,sBAFU,OAAO,CAEW;IAE5B;;;;OAIG;IACH,wBAFU,MAAM,EAAE,CAMhB;IAEF;;;;OAIG;IACH,yBAFU,MAAM,EAAE,CAEwB;IAY1C;;OAEG;IACH,4BASC;IAtBD;;;;;OAKG;IACH,uBAEC;IAgBD;;;OAGG;IACH,kCAEC;IAED;;;OAGG;IACH,0BAKC;IAED;;;OAGG;IACH,mBAEC;IAED;;;OAGG;IACH,gCAIC;IAED;;;;;;;OAOG;IACH,oBAHW,OAAO,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,MAAM,EAAE,GAAG,CAAC,CA0D/B;IAGL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;;CAN1C"}
@@ -0,0 +1,308 @@
1
+ import { assert } from "../../../core/assert.js";
2
+ import {
3
+ INVERSE_METERS_TO_ATMOSPHERE_UNITS,
4
+ METERS_TO_ATMOSPHERE_UNITS,
5
+ MIN_ATMOSPHERE_LENGTH_UNITS
6
+ } from "./ATMOSPHERE_UNIT_SCALE.js";
7
+ import { compute_mie_absorption } from "./compute_mie_absorption.js";
8
+
9
+ const DEFAULT_FALLBACK_SUN_LEN = Math.hypot(0.2, 1.0, -0.2);
10
+
11
+ /**
12
+ * @param {readonly number[]} src
13
+ * @param {number} scale
14
+ * @param {number[]} [out]
15
+ * @returns {number[]}
16
+ */
17
+ function scale_rgb(src, scale, out = [0, 0, 0]) {
18
+ out[0] = src[0] * scale;
19
+ out[1] = src[1] * scale;
20
+ out[2] = src[2] * scale;
21
+ return out;
22
+ }
23
+
24
+ /**
25
+ * Scene-owned physical atmosphere configuration for Hillaire (2020) sky and aerial scattering.
26
+ *
27
+ * All CPU properties on this class are authored in world-space metres and inverse metres
28
+ * ($\text{m}^{-1}$). {@link write_uniform} converts lengths and coefficients into GPU atmosphere
29
+ * units ($\text{km}$ and $\text{km}^{-1}$, via `ATMOSPHERE_UNIT_METERS`) when uploading to
30
+ * {@link ATMOSPHERE_PARAMETERS_STRUCT}.
31
+ *
32
+ * Mutating parameters in place requires calling {@link invalidate} (or setting `needsUpdate = true`)
33
+ * so {@link GPUSky} and {@link GPULightCollection} know to rebuild the atmosphere LUTs and sky IBL,
34
+ * matching {@link SceneVolumetrics} and {@link LightCollection}. Assigning {@link enabled} bumps
35
+ * {@link version} automatically.
36
+ *
37
+ * @see "A Scalable and Production Ready Sky and Atmosphere Rendering Technique", Hillaire (2020)
38
+ */
39
+ export class SceneAtmosphere {
40
+ /**
41
+ * @type {boolean}
42
+ */
43
+ #enabled = false;
44
+
45
+ /**
46
+ * Tracks whether application code explicitly assigned {@link enabled}, allowing
47
+ * {@link GraphicsEngine#set_scene} to enable outdoor sky lighting by default on unconfigured
48
+ * scenes without overriding a caller that deliberately turned it off.
49
+ *
50
+ * @type {boolean}
51
+ */
52
+ #enabled_explicitly = false;
53
+
54
+ /**
55
+ * Monotonically increasing change counter; bumped by {@link enabled} transitions and
56
+ * {@link invalidate}.
57
+ *
58
+ * @type {number}
59
+ */
60
+ version = 0;
61
+
62
+ /**
63
+ * Planet radius from centre to sea level, in metres.
64
+ * @type {number}
65
+ */
66
+ planet_radius = 6_378_000;
67
+
68
+ /**
69
+ * Thickness of the atmosphere shell above {@link planet_radius}, in metres.
70
+ * @type {number}
71
+ */
72
+ atmosphere_height = 100_000;
73
+
74
+ /**
75
+ * Exponential scale height of Rayleigh (molecular) density, in metres.
76
+ * @type {number}
77
+ */
78
+ rayleigh_scale_height = 8_000;
79
+
80
+ /**
81
+ * Sea-level Rayleigh scattering coefficients (RGB), in $\text{m}^{-1}$.
82
+ * @type {number[]}
83
+ */
84
+ rayleigh_scattering = [5.802e-6, 13.558e-6, 33.100e-6];
85
+
86
+ /**
87
+ * Exponential scale height of Mie (aerosol) density, in metres.
88
+ * @type {number}
89
+ */
90
+ mie_scale_height = 1_200;
91
+
92
+ /**
93
+ * Sea-level Mie scattering coefficients (RGB), in $\text{m}^{-1}$.
94
+ * @type {number[]}
95
+ */
96
+ mie_scattering = [3.996e-6, 3.996e-6, 3.996e-6];
97
+
98
+ /**
99
+ * Sea-level Mie extinction coefficients (RGB), in $\text{m}^{-1}$. Mie absorption is derived as
100
+ * `max(mie_extinction - mie_scattering, 0)`.
101
+ * @type {number[]}
102
+ */
103
+ mie_extinction = [4.440e-6, 4.440e-6, 4.440e-6];
104
+
105
+ /**
106
+ * Cornette–Shanks aerosol phase asymmetry factor $g \in (-1, 1)$.
107
+ * @type {number}
108
+ */
109
+ mie_phase_g = 0.8;
110
+
111
+ /**
112
+ * Altitude of peak ozone tent density above sea level, in metres.
113
+ * @type {number}
114
+ */
115
+ ozone_center_height = 25_000;
116
+
117
+ /**
118
+ * Half-width of the symmetric tent profile for ozone density, in metres.
119
+ * @type {number}
120
+ */
121
+ ozone_half_width = 15_000;
122
+
123
+ /**
124
+ * Peak ozone absorption coefficients (RGB), in $\text{m}^{-1}$.
125
+ * @type {number[]}
126
+ */
127
+ ozone_absorption = [0.650e-6, 1.881e-6, 0.085e-6];
128
+
129
+ /**
130
+ * Diffuse Lambertian reflectance (RGB) of the planet surface for multiple scattering and
131
+ * lower-hemisphere ground bounce.
132
+ * @type {number[]}
133
+ */
134
+ ground_albedo = [0.3, 0.3, 0.3];
135
+
136
+ /**
137
+ * Reference observer altitude above sea level (in metres) used when baking the scene-wide
138
+ * octahedral sky IBL map (`GPULightCollection.environment`).
139
+ * @type {number}
140
+ */
141
+ reference_altitude = 1.0;
142
+
143
+ /**
144
+ * Multiplier applied to the sun directional light's irradiance when driving atmospheric
145
+ * scattering.
146
+ * @type {number}
147
+ */
148
+ sun_irradiance_scale = 1.0;
149
+
150
+ /**
151
+ * Whether to synthesise atmospheric skylight from {@link fallback_sun_direction} and
152
+ * {@link fallback_sun_irradiance} when the scene contains no `DirectionalLight` — ensuring
153
+ * sunless scenes still receive outdoor indirect illumination when the atmosphere is enabled.
154
+ * @type {boolean}
155
+ */
156
+ fallback_sun_enabled = true;
157
+
158
+ /**
159
+ * World-space unit vector pointing **toward** the fallback sun (+Y up), matching the default
160
+ * orientation of `make_sunlight()`.
161
+ * @type {number[]}
162
+ */
163
+ fallback_sun_direction = [
164
+ 0.2 / DEFAULT_FALLBACK_SUN_LEN,
165
+ 1.0 / DEFAULT_FALLBACK_SUN_LEN,
166
+ -0.2 / DEFAULT_FALLBACK_SUN_LEN,
167
+ ];
168
+
169
+ /**
170
+ * Extraterrestrial RGB solar irradiance used with {@link fallback_sun_direction} when no
171
+ * `DirectionalLight` is present in the scene.
172
+ * @type {number[]}
173
+ */
174
+ fallback_sun_irradiance = [6.0, 6.0, 6.0];
175
+
176
+ /**
177
+ * Whether procedural Hillaire sky IBL and camera sky background are active when
178
+ * `scene.lights.environment` is `undefined`.
179
+ *
180
+ * @returns {boolean}
181
+ */
182
+ get enabled() {
183
+ return this.#enabled;
184
+ }
185
+
186
+ /**
187
+ * @param {boolean} value
188
+ */
189
+ set enabled(value) {
190
+ assert.isBoolean(value, "value");
191
+
192
+ this.#enabled_explicitly = true;
193
+
194
+ if (this.#enabled !== value) {
195
+ this.#enabled = value;
196
+ this.version++;
197
+ }
198
+ }
199
+
200
+ /**
201
+ * Whether {@link enabled} was explicitly set by caller code.
202
+ * @returns {boolean}
203
+ */
204
+ get enabled_explicitly() {
205
+ return this.#enabled_explicitly;
206
+ }
207
+
208
+ /**
209
+ * Enable the atmosphere as an engine-supplied default unless caller code already explicitly
210
+ * configured {@link enabled}.
211
+ */
212
+ enable_by_default() {
213
+ if (!this.#enabled_explicitly && !this.#enabled) {
214
+ this.#enabled = true;
215
+ this.version++;
216
+ }
217
+ }
218
+
219
+ /**
220
+ * Mark atmosphere parameters dirty so GPU LUTs and procedural sky IBL rebuild on the next
221
+ * update.
222
+ */
223
+ invalidate() {
224
+ this.version++;
225
+ }
226
+
227
+ /**
228
+ * Alias matching `LightCollection.needsUpdate`.
229
+ * @param {boolean} value
230
+ */
231
+ set needsUpdate(value) {
232
+ if (value) {
233
+ this.version++;
234
+ }
235
+ }
236
+
237
+ /**
238
+ * Marshal physical atmosphere parameters (authored in $\text{m}$ and $\text{m}^{-1}$) into a
239
+ * POJO matching {@link ATMOSPHERE_PARAMETERS_STRUCT} (in GPU atmosphere units: $\text{km}$ and
240
+ * $\text{km}^{-1}$).
241
+ *
242
+ * @param {Record<string, any>} [out]
243
+ * @returns {Record<string, any>}
244
+ */
245
+ write_uniform(out = {}) {
246
+ out.planet_radius = Math.max(
247
+ MIN_ATMOSPHERE_LENGTH_UNITS,
248
+ this.planet_radius * METERS_TO_ATMOSPHERE_UNITS
249
+ );
250
+ out.atmosphere_height = Math.max(
251
+ MIN_ATMOSPHERE_LENGTH_UNITS,
252
+ this.atmosphere_height * METERS_TO_ATMOSPHERE_UNITS
253
+ );
254
+ out.rayleigh_scale_height = Math.max(
255
+ MIN_ATMOSPHERE_LENGTH_UNITS,
256
+ this.rayleigh_scale_height * METERS_TO_ATMOSPHERE_UNITS
257
+ );
258
+ out.mie_scale_height = Math.max(
259
+ MIN_ATMOSPHERE_LENGTH_UNITS,
260
+ this.mie_scale_height * METERS_TO_ATMOSPHERE_UNITS
261
+ );
262
+
263
+ out.rayleigh_scattering = scale_rgb(
264
+ this.rayleigh_scattering,
265
+ INVERSE_METERS_TO_ATMOSPHERE_UNITS,
266
+ out.rayleigh_scattering
267
+ );
268
+ // Cornette-Shanks evaluates 0 / 0 along the sun/anti-sun axis when |g| == 1.
269
+ out.mie_phase_g = Math.min(0.999, Math.max(-0.999, this.mie_phase_g));
270
+
271
+ out.mie_scattering = scale_rgb(
272
+ this.mie_scattering,
273
+ INVERSE_METERS_TO_ATMOSPHERE_UNITS,
274
+ out.mie_scattering
275
+ );
276
+ out.ozone_center_height = this.ozone_center_height * METERS_TO_ATMOSPHERE_UNITS;
277
+
278
+ const mie_absorption = compute_mie_absorption(
279
+ this.mie_scattering,
280
+ this.mie_extinction,
281
+ out.mie_absorption ?? [0, 0, 0]
282
+ );
283
+ out.mie_absorption = scale_rgb(
284
+ mie_absorption,
285
+ INVERSE_METERS_TO_ATMOSPHERE_UNITS,
286
+ mie_absorption
287
+ );
288
+ out.ozone_half_width = Math.max(
289
+ MIN_ATMOSPHERE_LENGTH_UNITS,
290
+ this.ozone_half_width * METERS_TO_ATMOSPHERE_UNITS
291
+ );
292
+
293
+ out.ozone_absorption = scale_rgb(
294
+ this.ozone_absorption,
295
+ INVERSE_METERS_TO_ATMOSPHERE_UNITS,
296
+ out.ozone_absorption
297
+ );
298
+ out.ground_albedo = scale_rgb(this.ground_albedo, 1.0, out.ground_albedo);
299
+
300
+ return out;
301
+ }
302
+ }
303
+
304
+ /**
305
+ * @readonly
306
+ * @type {boolean}
307
+ */
308
+ SceneAtmosphere.prototype.isSceneAtmosphere = true;
@@ -1,18 +1,9 @@
1
1
  /**
2
- * One direction's contribution to Equations (5) and (7) from the paper: `out_lum` is the
3
- * second-order in-scattered luminance along `rayDir`, `out_fms` the luminance that would
4
- * come back if the medium scattered one unit of light isotropically. The caller integrates
5
- * over the direction set -- see {@link chunk_multiscatter_sample_direction} -- by taking the
6
- * mean, which is what the paper's uniform phase p_u = 1/(4*PI) reduces to.
7
- *
8
- * Splitting one direction out of the loop is what lets `shader_multiscatter_lut` put a
9
- * thread on each of the 64 directions.
10
- *
11
- * `pos` is assumed to be inside the atmosphere and at or above the surface, which is what
12
- * makes the far root of the outer sphere the atmosphere exit.
2
+ * One direction's contribution to Equations (5) and (7) from Hillaire (2020): `out_lum` is the
3
+ * second-order in-scattered luminance along `rayDir`, `out_fms` the luminance that would come back
4
+ * if the medium scattered one unit of light isotropically.
13
5
  *
14
6
  * @see "A Scalable and Production Ready Sky and Atmosphere Rendering Technique", Hillaire (2020)
15
- * @see https://www.shadertoy.com/view/slSXRW
16
7
  * @type {CodeChunk}
17
8
  */
18
9
  export const chunk_get_multiscatter_values: CodeChunk;
@@ -1 +1 @@
1
- {"version":3,"file":"chunk_get_multiscatter_values.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/chunk_get_multiscatter_values.js"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;;;;GAgBG;AACH,4CAFU,SAAS,CA2HlB;0BAhJyB,iCAAiC"}
1
+ {"version":3,"file":"chunk_get_multiscatter_values.d.ts","sourceRoot":"","sources":["../../../../../src/shade/renderer/atmosphere/chunk_get_multiscatter_values.js"],"names":[],"mappings":"AAaA;;;;;;;GAOG;AACH,4CAFU,SAAS,CAyGjB;0BAvHwB,iCAAiC"}