@woosh/meep-engine 3.14.5 → 3.15.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 (788) hide show
  1. package/README.md +6 -0
  2. package/editor/Editor.d.ts +162 -0
  3. package/editor/Editor.d.ts.map +1 -0
  4. package/editor/EditorCameraNavigation.d.ts +22 -0
  5. package/editor/EditorCameraNavigation.d.ts.map +1 -0
  6. package/editor/EditorKeyMap.d.ts +28 -0
  7. package/editor/EditorKeyMap.d.ts.map +1 -0
  8. package/editor/SelectionVisualizer.d.ts +37 -0
  9. package/editor/SelectionVisualizer.d.ts.map +1 -0
  10. package/editor/actions/concrete/ActionInvalidateSampler.d.ts +18 -0
  11. package/editor/actions/concrete/ActionInvalidateSampler.d.ts.map +1 -0
  12. package/editor/actions/concrete/ActionUpdateTexture.d.ts +12 -0
  13. package/editor/actions/concrete/ActionUpdateTexture.d.ts.map +1 -0
  14. package/editor/actions/concrete/ActionUpdateTexture.js +1 -1
  15. package/editor/actions/concrete/ArrayCopyAction.d.ts +20 -0
  16. package/editor/actions/concrete/ArrayCopyAction.d.ts.map +1 -0
  17. package/editor/actions/concrete/ComponentAddAction.d.ts +15 -0
  18. package/editor/actions/concrete/ComponentAddAction.d.ts.map +1 -0
  19. package/editor/actions/concrete/ComponentRemoveAction.d.ts +11 -0
  20. package/editor/actions/concrete/ComponentRemoveAction.d.ts.map +1 -0
  21. package/editor/actions/concrete/EntityCreateAction.d.ts +18 -0
  22. package/editor/actions/concrete/EntityCreateAction.d.ts.map +1 -0
  23. package/editor/actions/concrete/EntityRemoveAction.d.ts +11 -0
  24. package/editor/actions/concrete/EntityRemoveAction.d.ts.map +1 -0
  25. package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts +47 -0
  26. package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts.map +1 -0
  27. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts +38 -0
  28. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts.map +1 -0
  29. package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts +23 -0
  30. package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts.map +1 -0
  31. package/editor/actions/concrete/PatchTerrainHeightAction.d.ts +32 -0
  32. package/editor/actions/concrete/PatchTerrainHeightAction.d.ts.map +1 -0
  33. package/editor/actions/concrete/SelectionAddAction.d.ts +19 -0
  34. package/editor/actions/concrete/SelectionAddAction.d.ts.map +1 -0
  35. package/editor/actions/concrete/SelectionClearAction.d.ts +9 -0
  36. package/editor/actions/concrete/SelectionClearAction.d.ts.map +1 -0
  37. package/editor/actions/concrete/SelectionRemoveAction.d.ts +10 -0
  38. package/editor/actions/concrete/SelectionRemoveAction.d.ts.map +1 -0
  39. package/editor/actions/concrete/TransformModifyAction.d.ts +17 -0
  40. package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -0
  41. package/editor/actions/concrete/WriteGridValueAction.d.ts +14 -0
  42. package/editor/actions/concrete/WriteGridValueAction.d.ts.map +1 -0
  43. package/editor/camera/camera_framing.d.ts +33 -0
  44. package/editor/camera/camera_framing.d.ts.map +1 -0
  45. package/editor/clipboard.d.ts +19 -0
  46. package/editor/clipboard.d.ts.map +1 -0
  47. package/editor/ecs/EditorEntity.d.ts +16 -0
  48. package/editor/ecs/EditorEntity.d.ts.map +1 -0
  49. package/editor/ecs/EditorEntitySystem.d.ts +8 -0
  50. package/editor/ecs/EditorEntitySystem.d.ts.map +1 -0
  51. package/editor/ecs/component/TypeEditor.d.ts +7 -1
  52. package/editor/ecs/component/TypeEditor.d.ts.map +1 -1
  53. package/editor/ecs/component/TypeEditor.js +5 -0
  54. package/editor/ecs/component/editors/ColorEditor.d.ts +7 -0
  55. package/editor/ecs/component/editors/ColorEditor.d.ts.map +1 -0
  56. package/editor/ecs/component/editors/HTMLElementEditor.d.ts +7 -0
  57. package/editor/ecs/component/editors/HTMLElementEditor.d.ts.map +1 -0
  58. package/editor/ecs/component/editors/ImagePathEditor.d.ts +7 -0
  59. package/editor/ecs/component/editors/ImagePathEditor.d.ts.map +1 -0
  60. package/editor/ecs/component/editors/LargeStringEditor.d.ts +16 -0
  61. package/editor/ecs/component/editors/LargeStringEditor.d.ts.map +1 -0
  62. package/editor/ecs/component/editors/NumericIntervalEditor.d.ts +7 -0
  63. package/editor/ecs/component/editors/NumericIntervalEditor.d.ts.map +1 -0
  64. package/editor/ecs/component/editors/ObservedBooleanEditor.d.ts +7 -0
  65. package/editor/ecs/component/editors/ObservedBooleanEditor.d.ts.map +1 -0
  66. package/editor/ecs/component/editors/ObservedEnumEditor.d.ts +7 -0
  67. package/editor/ecs/component/editors/ObservedEnumEditor.d.ts.map +1 -0
  68. package/editor/ecs/component/editors/ObservedIntegerEditor.d.ts +7 -0
  69. package/editor/ecs/component/editors/ObservedIntegerEditor.d.ts.map +1 -0
  70. package/editor/ecs/component/editors/ObservedStringEditor.d.ts +7 -0
  71. package/editor/ecs/component/editors/ObservedStringEditor.d.ts.map +1 -0
  72. package/editor/ecs/component/editors/Sampler2DEditor.d.ts +7 -0
  73. package/editor/ecs/component/editors/Sampler2DEditor.d.ts.map +1 -0
  74. package/editor/ecs/component/editors/collection/ListEditor.d.ts +8 -0
  75. package/editor/ecs/component/editors/collection/ListEditor.d.ts.map +1 -0
  76. package/editor/ecs/component/editors/common/BitFlagsEditor.d.ts +12 -0
  77. package/editor/ecs/component/editors/common/BitFlagsEditor.d.ts.map +1 -0
  78. package/editor/ecs/component/editors/common/EnumEditor.d.ts +8 -0
  79. package/editor/ecs/component/editors/common/EnumEditor.d.ts.map +1 -0
  80. package/editor/ecs/component/editors/common/makeV3_editor.d.ts +15 -0
  81. package/editor/ecs/component/editors/common/makeV3_editor.d.ts.map +1 -0
  82. package/editor/ecs/component/editors/common/noEditor.d.ts +3 -0
  83. package/editor/ecs/component/editors/common/noEditor.d.ts.map +1 -0
  84. package/editor/ecs/component/editors/common/two_way_sync.d.ts +22 -0
  85. package/editor/ecs/component/editors/common/two_way_sync.d.ts.map +1 -0
  86. package/editor/ecs/component/editors/ecs/GridObstacleEditor.d.ts +7 -0
  87. package/editor/ecs/component/editors/ecs/GridObstacleEditor.d.ts.map +1 -0
  88. package/editor/ecs/component/editors/ecs/MinimapMarkerEditor.d.ts +14 -0
  89. package/editor/ecs/component/editors/ecs/MinimapMarkerEditor.d.ts.map +1 -0
  90. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts +20 -0
  91. package/editor/ecs/component/editors/ecs/ParameterLookupTableEditor.d.ts.map +1 -0
  92. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts +12 -0
  93. package/editor/ecs/component/editors/ecs/ParameterTrackEditor.d.ts.map +1 -0
  94. package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts +14 -0
  95. package/editor/ecs/component/editors/ecs/ParameterTrackSetEditor.d.ts.map +1 -0
  96. package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts +52 -0
  97. package/editor/ecs/component/editors/ecs/ParticleEmitterEditor.d.ts.map +1 -0
  98. package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts +47 -0
  99. package/editor/ecs/component/editors/ecs/ParticleEmitterLayerEditor.d.ts.map +1 -0
  100. package/editor/ecs/component/editors/ecs/SGMeshEditor.d.ts +21 -0
  101. package/editor/ecs/component/editors/ecs/SGMeshEditor.d.ts.map +1 -0
  102. package/editor/ecs/component/editors/ecs/ShadedGeometryEditor.d.ts +26 -0
  103. package/editor/ecs/component/editors/ecs/ShadedGeometryEditor.d.ts.map +1 -0
  104. package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts +16 -0
  105. package/editor/ecs/component/editors/ecs/SimulationStepDefinitionEditor.d.ts.map +1 -0
  106. package/editor/ecs/component/editors/ecs/Trail2DEditor.d.ts +15 -0
  107. package/editor/ecs/component/editors/ecs/Trail2DEditor.d.ts.map +1 -0
  108. package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts +42 -0
  109. package/editor/ecs/component/editors/ecs/Trail3DEditor.d.ts.map +1 -0
  110. package/editor/ecs/component/editors/ecs/TransformEditor.d.ts +20 -0
  111. package/editor/ecs/component/editors/ecs/TransformEditor.d.ts.map +1 -0
  112. package/editor/ecs/component/editors/ecs/buildGridObstaclePreview.d.ts +8 -0
  113. package/editor/ecs/component/editors/ecs/buildGridObstaclePreview.d.ts.map +1 -0
  114. package/editor/ecs/component/editors/ecs/terrain/SplatMappingEditor.d.ts +19 -0
  115. package/editor/ecs/component/editors/ecs/terrain/SplatMappingEditor.d.ts.map +1 -0
  116. package/editor/ecs/component/editors/ecs/terrain/TerrainEditor.d.ts +27 -0
  117. package/editor/ecs/component/editors/ecs/terrain/TerrainEditor.d.ts.map +1 -0
  118. package/editor/ecs/component/editors/ecs/terrain/TerrainLayerEditor.d.ts +16 -0
  119. package/editor/ecs/component/editors/ecs/terrain/TerrainLayerEditor.d.ts.map +1 -0
  120. package/editor/ecs/component/editors/ecs/terrain/TerrainLayersEditor.d.ts +19 -0
  121. package/editor/ecs/component/editors/ecs/terrain/TerrainLayersEditor.d.ts.map +1 -0
  122. package/editor/ecs/component/editors/ecs/terrain/TerrainOverlayEditor.d.ts +18 -0
  123. package/editor/ecs/component/editors/ecs/terrain/TerrainOverlayEditor.d.ts.map +1 -0
  124. package/editor/ecs/component/editors/geom/QuaternionEditor.d.ts +6 -0
  125. package/editor/ecs/component/editors/geom/QuaternionEditor.d.ts.map +1 -0
  126. package/editor/ecs/component/editors/geom/Vector1Editor.d.ts +7 -0
  127. package/editor/ecs/component/editors/geom/Vector1Editor.d.ts.map +1 -0
  128. package/editor/ecs/component/editors/geom/Vector2Editor.d.ts +6 -0
  129. package/editor/ecs/component/editors/geom/Vector2Editor.d.ts.map +1 -0
  130. package/editor/ecs/component/editors/geom/Vector3Editor.d.ts +6 -0
  131. package/editor/ecs/component/editors/geom/Vector3Editor.d.ts.map +1 -0
  132. package/editor/ecs/component/editors/geom/Vector4Editor.d.ts +6 -0
  133. package/editor/ecs/component/editors/geom/Vector4Editor.d.ts.map +1 -0
  134. package/editor/ecs/component/editors/primitive/ArrayEditor.d.ts +8 -0
  135. package/editor/ecs/component/editors/primitive/ArrayEditor.d.ts.map +1 -0
  136. package/editor/ecs/component/editors/primitive/BooleanEditor.d.ts +7 -0
  137. package/editor/ecs/component/editors/primitive/BooleanEditor.d.ts.map +1 -0
  138. package/editor/ecs/component/editors/primitive/FunctionEditor.d.ts +7 -0
  139. package/editor/ecs/component/editors/primitive/FunctionEditor.d.ts.map +1 -0
  140. package/editor/ecs/component/editors/primitive/NumberEditor.d.ts +8 -0
  141. package/editor/ecs/component/editors/primitive/NumberEditor.d.ts.map +1 -0
  142. package/editor/ecs/component/editors/primitive/StringEditor.d.ts +7 -0
  143. package/editor/ecs/component/editors/primitive/StringEditor.d.ts.map +1 -0
  144. package/editor/ecs/component/editors/shade/MeshletGeometryEditor.d.ts +28 -0
  145. package/editor/ecs/component/editors/shade/MeshletGeometryEditor.d.ts.map +1 -0
  146. package/editor/ecs/component/editors/shade/ShadeImageEditor.d.ts +29 -0
  147. package/editor/ecs/component/editors/shade/ShadeImageEditor.d.ts.map +1 -0
  148. package/editor/ecs/component/editors/shade/ShadeMaterialEditor.d.ts +28 -0
  149. package/editor/ecs/component/editors/shade/ShadeMaterialEditor.d.ts.map +1 -0
  150. package/editor/ecs/component/editors/shade/ShadeTextureEditor.d.ts +41 -0
  151. package/editor/ecs/component/editors/shade/ShadeTextureEditor.d.ts.map +1 -0
  152. package/editor/ecs/component/editors/shade/StandardShadeMaterialEditor.d.ts +31 -0
  153. package/editor/ecs/component/editors/shade/StandardShadeMaterialEditor.d.ts.map +1 -0
  154. package/editor/ecs/component/prototypeObjectEditor.d.ts +2 -0
  155. package/editor/ecs/component/prototypeObjectEditor.d.ts.map +1 -0
  156. package/editor/ecs/component/registerBasicTypeEditors.d.ts +11 -0
  157. package/editor/ecs/component/registerBasicTypeEditors.d.ts.map +1 -0
  158. package/editor/ecs/component/registerEngineComponentEditors.d.ts +8 -0
  159. package/editor/ecs/component/registerEngineComponentEditors.d.ts.map +1 -0
  160. package/editor/enableEditor.d.ts +14 -0
  161. package/editor/enableEditor.d.ts.map +1 -0
  162. package/editor/entity_world_bounds.d.ts +17 -0
  163. package/editor/entity_world_bounds.d.ts.map +1 -0
  164. package/editor/library/MeshLibrary.d.ts +13 -0
  165. package/editor/library/MeshLibrary.d.ts.map +1 -0
  166. package/editor/particles/lut_ops.d.ts +34 -0
  167. package/editor/particles/lut_ops.d.ts.map +1 -0
  168. package/editor/particles/particleEditEvents.d.ts +11 -0
  169. package/editor/particles/particleEditEvents.d.ts.map +1 -0
  170. package/editor/particles/rebuildParticleEmitter.d.ts +11 -0
  171. package/editor/particles/rebuildParticleEmitter.d.ts.map +1 -0
  172. package/editor/persistence/EditorLayoutStore.d.ts +30 -0
  173. package/editor/persistence/EditorLayoutStore.d.ts.map +1 -0
  174. package/editor/persistence/SceneMetadata.d.ts +38 -0
  175. package/editor/persistence/SceneMetadata.d.ts.map +1 -0
  176. package/editor/persistence/SceneSlotManager.d.ts +40 -0
  177. package/editor/persistence/SceneSlotManager.d.ts.map +1 -0
  178. package/editor/persistence/buildNewSceneDataset.d.ts +10 -0
  179. package/editor/persistence/buildNewSceneDataset.d.ts.map +1 -0
  180. package/editor/persistence/files.d.ts +24 -0
  181. package/editor/persistence/files.d.ts.map +1 -0
  182. package/editor/persistence/scene_import.d.ts +45 -0
  183. package/editor/persistence/scene_import.d.ts.map +1 -0
  184. package/editor/persistence/scene_serialization.d.ts +36 -0
  185. package/editor/persistence/scene_serialization.d.ts.map +1 -0
  186. package/editor/persistence/string_buffer_codec.d.ts +20 -0
  187. package/editor/persistence/string_buffer_codec.d.ts.map +1 -0
  188. package/editor/process/DisableGameUIProcess.d.ts +8 -0
  189. package/editor/process/DisableGameUIProcess.d.ts.map +1 -0
  190. package/editor/process/EditorProcess.d.ts +19 -0
  191. package/editor/process/EditorProcess.d.ts.map +1 -0
  192. package/editor/process/GridDisplayProcess.d.ts +35 -0
  193. package/editor/process/GridDisplayProcess.d.ts.map +1 -0
  194. package/editor/process/ObstacleGridDisplayProcess.d.ts +13 -0
  195. package/editor/process/ObstacleGridDisplayProcess.d.ts.map +1 -0
  196. package/editor/process/ParticleEmitterRebuildProcess.d.ts +66 -0
  197. package/editor/process/ParticleEmitterRebuildProcess.d.ts.map +1 -0
  198. package/editor/process/ProcessEngine.d.ts +30 -0
  199. package/editor/process/ProcessEngine.d.ts.map +1 -0
  200. package/editor/process/SymbolicDisplayProcess.d.ts +23 -0
  201. package/editor/process/SymbolicDisplayProcess.d.ts.map +1 -0
  202. package/editor/process/symbolic/AudioEmitterSymbolicDisplay.d.ts +17 -0
  203. package/editor/process/symbolic/AudioEmitterSymbolicDisplay.d.ts.map +1 -0
  204. package/editor/process/symbolic/CameraSymbolicDisplay.d.ts +25 -0
  205. package/editor/process/symbolic/CameraSymbolicDisplay.d.ts.map +1 -0
  206. package/editor/process/symbolic/GridPositionSymbolicDisplay.d.ts +19 -0
  207. package/editor/process/symbolic/GridPositionSymbolicDisplay.d.ts.map +1 -0
  208. package/editor/process/symbolic/LightSymbolicDisplay.d.ts +19 -0
  209. package/editor/process/symbolic/LightSymbolicDisplay.d.ts.map +1 -0
  210. package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts +18 -0
  211. package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts.map +1 -0
  212. package/editor/process/symbolic/PathSymbolicDisplay.d.ts +20 -0
  213. package/editor/process/symbolic/PathSymbolicDisplay.d.ts.map +1 -0
  214. package/editor/process/symbolic/PositionedMarkerSymbolicDisplay.d.ts +25 -0
  215. package/editor/process/symbolic/PositionedMarkerSymbolicDisplay.d.ts.map +1 -0
  216. package/editor/process/symbolic/SymbolicDisplay.d.ts +48 -0
  217. package/editor/process/symbolic/SymbolicDisplay.d.ts.map +1 -0
  218. package/editor/process/symbolic/gizmo_draw_wire_box_oriented.d.ts +13 -0
  219. package/editor/process/symbolic/gizmo_draw_wire_box_oriented.d.ts.map +1 -0
  220. package/editor/process/symbolic/gizmo_draw_wire_circle.d.ts +18 -0
  221. package/editor/process/symbolic/gizmo_draw_wire_circle.d.ts.map +1 -0
  222. package/editor/prototypeEditorShell.d.ts +13 -0
  223. package/editor/prototypeEditorShell.d.ts.map +1 -0
  224. package/editor/selection/editor_pick.d.ts +43 -0
  225. package/editor/selection/editor_pick.d.ts.map +1 -0
  226. package/editor/selection/screen_rect_frustum.d.ts +32 -0
  227. package/editor/selection/screen_rect_frustum.d.ts.map +1 -0
  228. package/editor/templates/entity_templates.d.ts +19 -0
  229. package/editor/templates/entity_templates.d.ts.map +1 -0
  230. package/editor/tools/GridPaintTool.d.ts +18 -0
  231. package/editor/tools/GridPaintTool.d.ts.map +1 -0
  232. package/editor/tools/SelectionTool.d.ts +38 -0
  233. package/editor/tools/SelectionTool.d.ts.map +1 -0
  234. package/editor/tools/SelectionTool.js +2 -2
  235. package/editor/tools/TransformToolV2.d.ts +70 -0
  236. package/editor/tools/TransformToolV2.d.ts.map +1 -0
  237. package/editor/tools/engine/Tool.d.ts +88 -0
  238. package/editor/tools/engine/Tool.d.ts.map +1 -0
  239. package/editor/tools/engine/ToolEngine.d.ts +22 -0
  240. package/editor/tools/engine/ToolEngine.d.ts.map +1 -0
  241. package/editor/tools/engine/ToolState.d.ts +7 -0
  242. package/editor/tools/engine/ToolState.d.ts.map +1 -0
  243. package/editor/tools/paint/TerrainHeightPaintTool.d.ts +18 -0
  244. package/editor/tools/paint/TerrainHeightPaintTool.d.ts.map +1 -0
  245. package/editor/tools/paint/TerrainPaintTool.d.ts +82 -0
  246. package/editor/tools/paint/TerrainPaintTool.d.ts.map +1 -0
  247. package/editor/tools/paint/TerrainTexturePaintTool.d.ts +19 -0
  248. package/editor/tools/paint/TerrainTexturePaintTool.d.ts.map +1 -0
  249. package/editor/tools/v2/BlenderCameraOrientationGizmo.d.ts +139 -0
  250. package/editor/tools/v2/BlenderCameraOrientationGizmo.d.ts.map +1 -0
  251. package/editor/tools/v2/GizmoNode.d.ts +21 -0
  252. package/editor/tools/v2/GizmoNode.d.ts.map +1 -0
  253. package/editor/tools/v2/TransformControls.d.ts +219 -0
  254. package/editor/tools/v2/TransformControls.d.ts.map +1 -0
  255. package/editor/tools/v2/TransformMode.d.ts +7 -0
  256. package/editor/tools/v2/TransformMode.d.ts.map +1 -0
  257. package/editor/tools/v2/handle/gizmo_drag_plane.d.ts +37 -0
  258. package/editor/tools/v2/handle/gizmo_drag_plane.d.ts.map +1 -0
  259. package/editor/tools/v2/handle/gizmo_draw.d.ts +14 -0
  260. package/editor/tools/v2/handle/gizmo_draw.d.ts.map +1 -0
  261. package/editor/tools/v2/handle/gizmo_handles.d.ts +160 -0
  262. package/editor/tools/v2/handle/gizmo_handles.d.ts.map +1 -0
  263. package/editor/tools/v2/handle/gizmo_ray_shapes.d.ts +103 -0
  264. package/editor/tools/v2/handle/gizmo_ray_shapes.d.ts.map +1 -0
  265. package/editor/view/GridPickCoordinateView.d.ts +22 -0
  266. package/editor/view/GridPickCoordinateView.d.ts.map +1 -0
  267. package/editor/view/ecs/ComponentControlView.d.ts +24 -0
  268. package/editor/view/ecs/ComponentControlView.d.ts.map +1 -0
  269. package/editor/view/ecs/EntityEditor.d.ts +25 -0
  270. package/editor/view/ecs/EntityEditor.d.ts.map +1 -0
  271. package/editor/view/ecs/EntityList.d.ts +22 -0
  272. package/editor/view/ecs/EntityList.d.ts.map +1 -0
  273. package/editor/view/ecs/HierarchicalEntityListView.d.ts +25 -0
  274. package/editor/view/ecs/HierarchicalEntityListView.d.ts.map +1 -0
  275. package/editor/view/ecs/components/DatGuiController.d.ts +2 -0
  276. package/editor/view/ecs/components/DatGuiController.d.ts.map +1 -0
  277. package/editor/view/ecs/components/color/GaugeView.d.ts +9 -5
  278. package/editor/view/ecs/components/color/GaugeView.d.ts.map +1 -1
  279. package/editor/view/ecs/components/color/GaugeView.js +4 -4
  280. package/editor/view/ecs/components/common/NumberController.d.ts +9 -5
  281. package/editor/view/ecs/components/common/NumberController.d.ts.map +1 -1
  282. package/editor/view/ecs/components/common/NumberController.js +4 -4
  283. package/editor/view/ecs/components/common/NumericIntervalController.d.ts +10 -0
  284. package/editor/view/ecs/components/common/NumericIntervalController.d.ts.map +1 -0
  285. package/editor/view/ecs/components/common/TextController.d.ts.map +1 -1
  286. package/editor/view/library/MeshLibraryView.d.ts +16 -0
  287. package/editor/view/library/MeshLibraryView.d.ts.map +1 -0
  288. package/editor/view/library/mesh_library_drag.d.ts +21 -0
  289. package/editor/view/library/mesh_library_drag.d.ts.map +1 -0
  290. package/editor/view/library/model_thumbnail_source.d.ts +12 -0
  291. package/editor/view/library/model_thumbnail_source.d.ts.map +1 -0
  292. package/editor/view/makeEntityDecorators.d.ts +6 -0
  293. package/editor/view/makeEntityDecorators.d.ts.map +1 -0
  294. package/editor/view/node-graph/NodeGraphCamera.d.ts.map +1 -1
  295. package/editor/view/node-graph/NodeGraphEditorView.d.ts.map +1 -1
  296. package/editor/view/node-graph/NodeGraphSelection.d.ts.map +1 -1
  297. package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
  298. package/editor/view/node-graph/NodeView.d.ts.map +1 -1
  299. package/editor/view/node-graph/PortView.d.ts.map +1 -1
  300. package/editor/view/node-graph/actions/ConnectionCreateAction.d.ts.map +1 -1
  301. package/editor/view/node-graph/actions/ConnectionDeleteAction.d.ts.map +1 -1
  302. package/editor/view/node-graph/actions/NodeDeleteAction.d.ts.map +1 -1
  303. package/editor/view/node-graph/actions/NodeParameterSetAction.d.ts.map +1 -1
  304. package/editor/view/node-graph/actions/NodesMoveAction.d.ts.map +1 -1
  305. package/editor/view/node-graph/actions/SelectionSetAction.d.ts.map +1 -1
  306. package/editor/view/node-graph/connection_wire_geometry.d.ts.map +1 -1
  307. package/editor/view/particles/ColorLutGradientView.d.ts +19 -0
  308. package/editor/view/particles/ColorLutGradientView.d.ts.map +1 -0
  309. package/editor/view/particles/ScalarLutCurveView.d.ts +19 -0
  310. package/editor/view/particles/ScalarLutCurveView.d.ts.map +1 -0
  311. package/editor/view/prepareMeshLibrary.d.ts +7 -0
  312. package/editor/view/prepareMeshLibrary.d.ts.map +1 -0
  313. package/editor/view/process/ProcessView.d.ts +14 -0
  314. package/editor/view/process/ProcessView.d.ts.map +1 -0
  315. package/editor/view/shell/EditorShellView.d.ts +18 -0
  316. package/editor/view/shell/EditorShellView.d.ts.map +1 -0
  317. package/editor/view/shell/SceneTreePanelView.d.ts +17 -0
  318. package/editor/view/shell/SceneTreePanelView.d.ts.map +1 -0
  319. package/editor/view/shell/ViewportPanelView.d.ts +18 -0
  320. package/editor/view/shell/ViewportPanelView.d.ts.map +1 -0
  321. package/editor/view/tools/ToolSettingsView.d.ts +22 -0
  322. package/editor/view/tools/ToolSettingsView.d.ts.map +1 -0
  323. package/editor/view/tools/ToolView.d.ts +13 -0
  324. package/editor/view/tools/ToolView.d.ts.map +1 -0
  325. package/editor/view/v2/SplitView.d.ts +2 -0
  326. package/editor/view/v2/SplitView.d.ts.map +1 -0
  327. package/package.json +9 -11
  328. package/samples/engine/README.md +113 -0
  329. package/samples/engine/first-scene/index.html +32 -0
  330. package/samples/engine/first-scene/main.js +152 -0
  331. package/src/core/assert.d.ts +2 -2
  332. package/src/core/binary/BitSet.d.ts +2 -2
  333. package/src/core/binary/BitSet.d.ts.map +1 -1
  334. package/src/core/binary/BitSet.js +1 -1
  335. package/src/core/bvh2/bvh3/BVH.d.ts +4 -0
  336. package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
  337. package/src/core/bvh2/bvh3/BVH.js +4 -0
  338. package/src/core/bvh2/bvh3/BvhClient.d.ts +4 -0
  339. package/src/core/bvh2/bvh3/BvhClient.d.ts.map +1 -1
  340. package/src/core/bvh2/bvh3/BvhClient.js +4 -0
  341. package/src/core/collection/array/array_sort_quick.d.ts +1 -1
  342. package/src/core/collection/list/List.d.ts +7 -3
  343. package/src/core/collection/list/List.d.ts.map +1 -1
  344. package/src/core/collection/list/List.js +6 -2
  345. package/src/core/collection/table/RowFirstTableSpec.d.ts.map +1 -1
  346. package/src/core/collection/table/RowFirstTableSpec.js +0 -4
  347. package/src/core/color/Color.d.ts +1 -0
  348. package/src/core/color/Color.d.ts.map +1 -1
  349. package/src/core/color/Color.js +4 -0
  350. package/src/core/events/signal/SignalBinding.d.ts +4 -0
  351. package/src/core/events/signal/SignalBinding.d.ts.map +1 -1
  352. package/src/core/events/signal/SignalBinding.js +4 -0
  353. package/src/core/geom/2d/quad-tree/QuadTreeDatum.d.ts +5 -1
  354. package/src/core/geom/2d/quad-tree/QuadTreeDatum.d.ts.map +1 -1
  355. package/src/core/geom/2d/quad-tree/QuadTreeDatum.js +4 -0
  356. package/src/core/geom/3d/SurfacePoint3.d.ts +2 -2
  357. package/src/core/geom/3d/SurfacePoint3.d.ts.map +1 -1
  358. package/src/core/geom/3d/SurfacePoint3.js +1 -1
  359. package/src/core/geom/3d/aabb/AABB3.d.ts +63 -7
  360. package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
  361. package/src/core/geom/3d/aabb/AABB3.js +17 -3
  362. package/src/core/geom/3d/plane/plane3_compute_intersection_objects.js +2 -2
  363. package/src/core/geom/3d/ray/Ray3.d.ts +4 -4
  364. package/src/core/geom/3d/shape/AbstractShape3D.d.ts +10 -3
  365. package/src/core/geom/3d/shape/AbstractShape3D.d.ts.map +1 -1
  366. package/src/core/geom/3d/shape/AbstractShape3D.js +9 -2
  367. package/src/core/geom/3d/shape/TransformedShape3D.d.ts +2 -2
  368. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts +1 -1
  369. package/src/core/geom/Vector1.d.ts +4 -0
  370. package/src/core/geom/Vector1.d.ts.map +1 -1
  371. package/src/core/geom/Vector1.js +4 -0
  372. package/src/core/geom/Vector2.d.ts +4 -0
  373. package/src/core/geom/Vector2.d.ts.map +1 -1
  374. package/src/core/geom/Vector2.js +4 -0
  375. package/src/core/geom/Vector3.d.ts +4 -0
  376. package/src/core/geom/Vector3.d.ts.map +1 -1
  377. package/src/core/geom/Vector3.js +4 -0
  378. package/src/core/geom/Vector4.d.ts +4 -0
  379. package/src/core/geom/Vector4.d.ts.map +1 -1
  380. package/src/core/geom/Vector4.js +4 -0
  381. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.d.ts +6 -2
  382. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.d.ts.map +1 -1
  383. package/src/core/geom/packing/max-rect/MaxRectanglesPacker.js +4 -0
  384. package/src/core/geom/packing/miniball/Subspan.d.ts +4 -4
  385. package/src/core/geom/packing/miniball/Subspan.d.ts.map +1 -1
  386. package/src/core/geom/packing/miniball/Subspan.js +2 -2
  387. package/src/core/math/interval/NumericInterval.d.ts +4 -0
  388. package/src/core/math/interval/NumericInterval.d.ts.map +1 -1
  389. package/src/core/math/interval/NumericInterval.js +4 -0
  390. package/src/core/math/random/roundFair.d.ts +2 -2
  391. package/src/core/math/random/roundFair.d.ts.map +1 -1
  392. package/src/core/math/random/roundFair.js +1 -1
  393. package/src/core/model/BoundedValue.d.ts +4 -0
  394. package/src/core/model/BoundedValue.d.ts.map +1 -1
  395. package/src/core/model/BoundedValue.js +4 -0
  396. package/src/core/model/ObservedBoolean.d.ts +4 -0
  397. package/src/core/model/ObservedBoolean.d.ts.map +1 -1
  398. package/src/core/model/ObservedBoolean.js +4 -0
  399. package/src/core/model/ObservedInteger.d.ts +4 -0
  400. package/src/core/model/ObservedInteger.d.ts.map +1 -1
  401. package/src/core/model/ObservedInteger.js +4 -0
  402. package/src/core/model/ObservedString.d.ts +4 -0
  403. package/src/core/model/ObservedString.d.ts.map +1 -1
  404. package/src/core/model/ObservedString.js +4 -0
  405. package/src/core/model/stat/Stat.d.ts +7 -3
  406. package/src/core/model/stat/Stat.d.ts.map +1 -1
  407. package/src/core/model/stat/Stat.js +4 -0
  408. package/src/engine/Engine.d.ts.map +1 -1
  409. package/src/engine/Engine.js +65 -0
  410. package/src/engine/EngineHarness.d.ts +8 -1
  411. package/src/engine/EngineHarness.d.ts.map +1 -1
  412. package/src/engine/EngineHarness.js +10 -14
  413. package/src/engine/animation/clip/ecd_bind_animation_curve.d.ts +2 -2
  414. package/src/engine/animation/clip/ecd_bind_animation_curve.d.ts.map +1 -1
  415. package/src/engine/animation/clip/ecd_bind_animation_curve.js +4 -4
  416. package/src/engine/asset/loaders/async_traverse_three_object.d.ts +2 -2
  417. package/src/engine/asset/loaders/async_traverse_three_object.d.ts.map +1 -1
  418. package/src/engine/asset/loaders/async_traverse_three_object.js +1 -1
  419. package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.d.ts +7 -3
  420. package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.d.ts.map +1 -1
  421. package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.js +33 -3
  422. package/src/engine/control/first-person/DESIGN.md +20 -2
  423. package/src/engine/control/first-person/DESIGN_COLLISION.md +17 -0
  424. package/src/engine/control/first-person/collision/KinematicMover.d.ts +58 -11
  425. package/src/engine/control/first-person/collision/KinematicMover.d.ts.map +1 -1
  426. package/src/engine/control/first-person/collision/KinematicMover.js +97 -20
  427. package/src/engine/ecs/Entity.js +1 -1
  428. package/src/engine/ecs/EntityComponentDataset.d.ts +2 -2
  429. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  430. package/src/engine/ecs/EntityComponentDataset.js +1 -1
  431. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  432. package/src/engine/ecs/EntityManager.js +27 -3
  433. package/src/engine/ecs/animation/Animation.d.ts +17 -3
  434. package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
  435. package/src/engine/ecs/animation/Animation.js +26 -6
  436. package/src/engine/ecs/terrain/TerrainPreview.d.ts +4 -0
  437. package/src/engine/ecs/terrain/TerrainPreview.d.ts.map +1 -1
  438. package/src/engine/ecs/terrain/TerrainPreview.js +4 -0
  439. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts +4 -4
  440. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
  441. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +2 -2
  442. package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.d.ts +3 -2
  443. package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.d.ts.map +1 -1
  444. package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.js +25 -2
  445. package/src/engine/ecs/transform/Transform64.d.ts +4 -4
  446. package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
  447. package/src/engine/ecs/transform/Transform64.js +2 -2
  448. package/src/engine/graphics/ecs/decal/v2/Decal.d.ts +26 -0
  449. package/src/engine/graphics/ecs/decal/v2/Decal.d.ts.map +1 -1
  450. package/src/engine/graphics/ecs/decal/v2/Decal.js +26 -0
  451. package/src/engine/graphics/ecs/light/Light.d.ts +38 -1
  452. package/src/engine/graphics/ecs/light/Light.d.ts.map +1 -1
  453. package/src/engine/graphics/ecs/light/Light.js +51 -1
  454. package/src/engine/graphics/ecs/mesh/copyToVector3.d.ts +3 -3
  455. package/src/engine/graphics/ecs/mesh/copyToVector3.d.ts.map +1 -1
  456. package/src/engine/graphics/ecs/mesh/copyToVector3.js +2 -2
  457. package/src/engine/graphics/ecs/mesh/setMesh.d.ts +2 -2
  458. package/src/engine/graphics/ecs/mesh/setMesh.d.ts.map +1 -1
  459. package/src/engine/graphics/ecs/mesh/setMesh.js +1 -1
  460. package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.d.ts +2 -2
  461. package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.d.ts.map +1 -1
  462. package/src/engine/graphics/geometry/buffered/computeBufferAttributeHash.js +1 -1
  463. package/src/engine/graphics/geometry/buffered/computeGeometryEquality.d.ts +3 -3
  464. package/src/engine/graphics/geometry/buffered/computeGeometryEquality.d.ts.map +1 -1
  465. package/src/engine/graphics/geometry/buffered/computeGeometryEquality.js +2 -2
  466. package/src/engine/graphics/geometry/buffered/computeGeometryHash.d.ts +2 -2
  467. package/src/engine/graphics/geometry/buffered/computeGeometryHash.d.ts.map +1 -1
  468. package/src/engine/graphics/geometry/buffered/computeGeometryHash.js +1 -1
  469. package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.d.ts +2 -2
  470. package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.d.ts.map +1 -1
  471. package/src/engine/graphics/geometry/buffered/compute_buffer_geometry_byte_size.js +1 -1
  472. package/src/engine/graphics/geometry/compute_geometry_polycount.d.ts +2 -2
  473. package/src/engine/graphics/geometry/compute_geometry_polycount.d.ts.map +1 -1
  474. package/src/engine/graphics/geometry/compute_geometry_polycount.js +1 -1
  475. package/src/engine/graphics/geometry/ribbon/copyAttributeV3.d.ts +3 -3
  476. package/src/engine/graphics/geometry/ribbon/copyAttributeV3.d.ts.map +1 -1
  477. package/src/engine/graphics/geometry/ribbon/copyAttributeV3.js +2 -2
  478. package/src/engine/graphics/geometry/ribbon/copyAttributeValue.d.ts +4 -4
  479. package/src/engine/graphics/geometry/ribbon/copyAttributeValue.d.ts.map +1 -1
  480. package/src/engine/graphics/geometry/ribbon/copyAttributeValue.js +3 -3
  481. package/src/engine/graphics/geometry/ribbon/equalAttributeV3.d.ts +3 -3
  482. package/src/engine/graphics/geometry/ribbon/equalAttributeV3.d.ts.map +1 -1
  483. package/src/engine/graphics/geometry/ribbon/equalAttributeV3.js +2 -2
  484. package/src/engine/graphics/geometry/ribbon/equalAttributeValue.d.ts +4 -4
  485. package/src/engine/graphics/geometry/ribbon/equalAttributeValue.d.ts.map +1 -1
  486. package/src/engine/graphics/geometry/ribbon/equalAttributeValue.js +3 -3
  487. package/src/engine/graphics/geometry/scaleGeometryToBox.d.ts +2 -2
  488. package/src/engine/graphics/geometry/scaleGeometryToBox.d.ts.map +1 -1
  489. package/src/engine/graphics/geometry/scaleGeometryToBox.js +1 -1
  490. package/src/engine/graphics/impostors/card_cluster/FacePlaneAssignment.d.ts +2 -2
  491. package/src/engine/graphics/impostors/card_cluster/FacePlaneAssignment.d.ts.map +1 -1
  492. package/src/engine/graphics/impostors/card_cluster/FacePlaneAssignment.js +1 -1
  493. package/src/engine/graphics/impostors/octahedral/ImpostorDescription.d.ts +2 -2
  494. package/src/engine/graphics/impostors/octahedral/ImpostorDescription.d.ts.map +1 -1
  495. package/src/engine/graphics/impostors/octahedral/ImpostorDescription.js +1 -1
  496. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +4 -12
  497. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +1 -1
  498. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +2 -2
  499. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts +5 -20
  500. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts.map +1 -1
  501. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts +24 -24
  502. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts.map +1 -1
  503. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +16 -16
  504. package/src/engine/graphics/render/layers/RenderLayer.d.ts +4 -4
  505. package/src/engine/graphics/render/layers/RenderLayer.d.ts.map +1 -1
  506. package/src/engine/graphics/render/layers/RenderLayer.js +2 -2
  507. package/src/engine/graphics/render/make_bvh_visibility_builder.js +1 -1
  508. package/src/engine/graphics/render/visibility/VisibilityComputer.d.ts +1 -1
  509. package/src/engine/graphics/render/visibility/VisibilityComputer.js +1 -1
  510. package/src/engine/graphics/texture/computeThreeTextureInternalFormatFromDataType.d.ts +2 -2
  511. package/src/engine/graphics/texture/computeThreeTextureInternalFormatFromDataType.d.ts.map +1 -1
  512. package/src/engine/graphics/texture/computeThreeTextureInternalFormatFromDataType.js +1 -1
  513. package/src/engine/graphics3/DecalSystem.d.ts +8 -0
  514. package/src/engine/graphics3/DecalSystem.d.ts.map +1 -1
  515. package/src/engine/graphics3/DecalSystem.js +8 -0
  516. package/src/engine/graphics3/GraphicsEngine.d.ts +19 -8
  517. package/src/engine/graphics3/GraphicsEngine.d.ts.map +1 -1
  518. package/src/engine/graphics3/GraphicsEngine.js +22 -11
  519. package/src/engine/graphics3/LightSystem.d.ts.map +1 -1
  520. package/src/engine/graphics3/LightSystem.js +11 -1
  521. package/src/engine/input/devices/gamepad/GamepadStickCalibration.d.ts +4 -0
  522. package/src/engine/input/devices/gamepad/GamepadStickCalibration.d.ts.map +1 -1
  523. package/src/engine/input/devices/gamepad/GamepadStickCalibration.js +4 -0
  524. package/src/engine/navigation/mesh/NavigationMesh.d.ts +90 -9
  525. package/src/engine/navigation/mesh/NavigationMesh.d.ts.map +1 -1
  526. package/src/engine/navigation/mesh/NavigationMesh.js +80 -8
  527. package/src/engine/network/NetworkSession.d.ts +60 -0
  528. package/src/engine/network/NetworkSession.d.ts.map +1 -1
  529. package/src/engine/network/NetworkSession.js +141 -1
  530. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +48 -0
  531. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
  532. package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +246 -3
  533. package/src/engine/network/replication/Replicator.d.ts +18 -0
  534. package/src/engine/network/replication/Replicator.d.ts.map +1 -1
  535. package/src/engine/network/replication/Replicator.js +98 -0
  536. package/src/engine/physics/ecs/PhysicsSystem.d.ts +27 -0
  537. package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
  538. package/src/engine/physics/ecs/PhysicsSystem.js +27 -0
  539. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  540. package/src/engine/sound/SoundEngine.d.ts +24 -0
  541. package/src/engine/sound/SoundEngine.d.ts.map +1 -1
  542. package/src/engine/sound/SoundEngine.js +29 -11
  543. package/src/engine/sound/simulation/configureAcousticSimulation.d.ts +12 -4
  544. package/src/engine/sound/simulation/configureAcousticSimulation.d.ts.map +1 -1
  545. package/src/engine/sound/simulation/configureAcousticSimulation.js +10 -4
  546. package/src/engine/sound/simulation/ecs/AcousticProbeFieldSystem.d.ts +3 -1
  547. package/src/engine/sound/simulation/ecs/AcousticProbeFieldSystem.d.ts.map +1 -1
  548. package/src/engine/sound/simulation/ecs/AcousticProbeFieldSystem.js +27 -1
  549. package/src/engine/sound/simulation/render/ProbeReverbRenderer.d.ts +34 -0
  550. package/src/engine/sound/simulation/render/ProbeReverbRenderer.d.ts.map +1 -1
  551. package/src/engine/sound/simulation/render/ProbeReverbRenderer.js +61 -2
  552. package/src/engine/sound/simulation/render/reverbImpulseResponse.d.ts.map +1 -1
  553. package/src/engine/sound/simulation/render/reverbImpulseResponse.js +9 -0
  554. package/src/shade/RENDERER_CONTRACT.md +584 -580
  555. package/src/shade/playground/avboit/README.md +117 -0
  556. package/src/shade/playground/avboit/index.html +215 -0
  557. package/src/shade/playground/avboit/main.d.ts +2 -0
  558. package/src/shade/playground/avboit/main.d.ts.map +1 -0
  559. package/src/shade/playground/avboit/main.js +875 -0
  560. package/src/shade/playground/particle_system/README.md +14 -3
  561. package/src/shade/playground/particle_system/index.html +1 -0
  562. package/src/shade/playground/particle_system/main.js +15 -2
  563. package/src/shade/playground/particle_system/particle_scene.d.ts +11 -2
  564. package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
  565. package/src/shade/playground/particle_system/particle_scene.js +126 -9
  566. package/src/shade/renderer/GraphicsContext.d.ts +1 -0
  567. package/src/shade/renderer/GraphicsContext.d.ts.map +1 -1
  568. package/src/shade/renderer/GraphicsContext.js +4 -0
  569. package/src/shade/renderer/Renderer.d.ts +17 -1
  570. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  571. package/src/shade/renderer/Renderer.js +29 -28
  572. package/src/shade/renderer/ShadeTransparencyMode.d.ts +13 -0
  573. package/src/shade/renderer/ShadeTransparencyMode.d.ts.map +1 -0
  574. package/src/shade/renderer/ShadeTransparencyMode.js +30 -0
  575. package/src/shade/renderer/geometry/MeshletGeometrySerializationAdapter.d.ts +13 -0
  576. package/src/shade/renderer/geometry/MeshletGeometrySerializationAdapter.d.ts.map +1 -1
  577. package/src/shade/renderer/geometry/MeshletGeometrySerializationAdapter.js +13 -0
  578. package/src/shade/renderer/geometry/meshlet_geometry_build_from_geometry.d.ts +18 -0
  579. package/src/shade/renderer/geometry/meshlet_geometry_build_from_geometry.d.ts.map +1 -1
  580. package/src/shade/renderer/geometry/meshlet_geometry_build_from_geometry.js +18 -0
  581. package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.d.ts +4 -0
  582. package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.d.ts.map +1 -1
  583. package/src/shade/renderer/global_illumination/lpv/LightProbeVolume.js +4 -0
  584. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.d.ts +12 -0
  585. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.d.ts.map +1 -1
  586. package/src/shade/renderer/gpu_primitive/prefix_sum/v1/shader_prefix_scan_csdldf.js +13 -0
  587. package/src/shade/renderer/light/environment/rgbe/parse_rgbe.d.ts +1 -1
  588. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  589. package/src/shade/renderer/particles/DESIGN.md +66 -15
  590. package/src/shade/renderer/particles/GPUParticleSystem.d.ts +29 -5
  591. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  592. package/src/shade/renderer/particles/GPUParticleSystem.js +61 -6
  593. package/src/shade/renderer/particles/ParticleConstants.d.ts +31 -0
  594. package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
  595. package/src/shade/renderer/particles/ParticleConstants.js +33 -0
  596. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +61 -0
  597. package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts.map +1 -0
  598. package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +179 -0
  599. package/src/shade/renderer/particles/coherence/particle_program_buckets.d.ts +63 -0
  600. package/src/shade/renderer/particles/coherence/particle_program_buckets.d.ts.map +1 -0
  601. package/src/shade/renderer/particles/coherence/particle_program_buckets.js +116 -0
  602. package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts +59 -0
  603. package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts.map +1 -0
  604. package/src/shade/renderer/particles/coherence/shader_particle_bucket.js +344 -0
  605. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts +27 -5
  606. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts.map +1 -1
  607. package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.js +27 -5
  608. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.d.ts +13 -1
  609. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.d.ts.map +1 -1
  610. package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.js +15 -1
  611. package/src/shade/renderer/particles/data/chunk_particle_emitter.d.ts.map +1 -1
  612. package/src/shade/renderer/particles/data/chunk_particle_emitter.js +3 -0
  613. package/src/shade/renderer/particles/graph_particles.d.ts +39 -11
  614. package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
  615. package/src/shade/renderer/particles/graph_particles.js +60 -20
  616. package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +8 -1
  617. package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
  618. package/src/shade/renderer/particles/runtime/EmitterRegistry.js +8 -1
  619. package/src/shade/renderer/particles/runtime/ProgramArena.d.ts +22 -2
  620. package/src/shade/renderer/particles/runtime/ProgramArena.d.ts.map +1 -1
  621. package/src/shade/renderer/particles/runtime/ProgramArena.js +54 -3
  622. package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
  623. package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +32 -14
  624. package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts +2 -23
  625. package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
  626. package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +40 -11
  627. package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts +6 -17
  628. package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +1 -1
  629. package/src/shade/renderer/particles/sort/shader_particle_sort.js +60 -9
  630. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts +9 -0
  631. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
  632. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +26 -0
  633. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts +7 -2
  634. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
  635. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.js +12 -1
  636. package/src/shade/renderer/rasterize/expand/shader_filter_triangle_by_material_side.js +1 -1
  637. package/src/shade/renderer/rasterize/forward/FORWARD_VERTEX_SHADER_STRUCT.d.ts +3 -0
  638. package/src/shade/renderer/rasterize/forward/FORWARD_VERTEX_SHADER_STRUCT.d.ts.map +1 -0
  639. package/src/shade/renderer/rasterize/{native/oit → forward}/FORWARD_VERTEX_SHADER_STRUCT.js +4 -4
  640. package/src/shade/renderer/rasterize/forward/SHADING_SCENE_RESOURCE_GROUP.d.ts +3 -0
  641. package/src/shade/renderer/rasterize/forward/SHADING_SCENE_RESOURCE_GROUP.d.ts.map +1 -0
  642. package/src/shade/renderer/rasterize/forward/SHADING_SCENE_RESOURCE_GROUP.js +17 -0
  643. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_forward_shade_standard_fragment_brick4.d.ts +1 -1
  644. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_brick4.d.ts.map +1 -0
  645. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_forward_shade_standard_fragment_brick4.js +16 -16
  646. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_forward_shade_standard_fragment_ibl.d.ts +1 -1
  647. package/src/shade/renderer/rasterize/forward/chunk_forward_shade_standard_fragment_ibl.d.ts.map +1 -0
  648. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_forward_shade_standard_fragment_ibl.js +17 -17
  649. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_material_side_should_draw.d.ts +1 -1
  650. package/src/shade/renderer/rasterize/forward/chunk_material_side_should_draw.d.ts.map +1 -0
  651. package/src/shade/renderer/rasterize/{native/oit → forward}/chunk_material_side_should_draw.js +2 -2
  652. package/src/shade/renderer/rasterize/forward/vertex_shader_chunk.d.ts +3 -0
  653. package/src/shade/renderer/rasterize/forward/vertex_shader_chunk.d.ts.map +1 -0
  654. package/src/shade/renderer/rasterize/{native/oit → forward}/vertex_shader_chunk.js +4 -4
  655. package/src/shade/renderer/rasterize/native/avboit/AVBOITSettings.d.ts +27 -0
  656. package/src/shade/renderer/rasterize/native/avboit/AVBOITSettings.d.ts.map +1 -0
  657. package/src/shade/renderer/rasterize/native/avboit/AVBOITSettings.js +27 -0
  658. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_CONSTANTS.d.ts +107 -0
  659. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_CONSTANTS.d.ts.map +1 -0
  660. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_CONSTANTS.js +120 -0
  661. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_LEDGER.md +463 -0
  662. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_PLAN_2026_09_03.md +509 -0
  663. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_WARP_STRUCT.d.ts +15 -0
  664. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_WARP_STRUCT.d.ts.map +1 -0
  665. package/src/shade/renderer/rasterize/native/avboit/AVBOIT_WARP_STRUCT.js +33 -0
  666. package/src/shade/renderer/rasterize/native/avboit/avboit_build_depth_curve.d.ts +20 -0
  667. package/src/shade/renderer/rasterize/native/avboit/avboit_build_depth_curve.d.ts.map +1 -0
  668. package/src/shade/renderer/rasterize/native/avboit/avboit_build_depth_curve.js +38 -0
  669. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts +38 -0
  670. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -0
  671. package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +130 -0
  672. package/src/shade/renderer/rasterize/native/avboit/avboit_spec_support.d.ts +37 -0
  673. package/src/shade/renderer/rasterize/native/avboit/avboit_spec_support.d.ts.map +1 -0
  674. package/src/shade/renderer/rasterize/native/avboit/avboit_spec_support.js +73 -0
  675. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_counts_to_extinction.d.ts +9 -0
  676. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_counts_to_extinction.d.ts.map +1 -0
  677. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_counts_to_extinction.js +17 -0
  678. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_dilate_word.d.ts +11 -0
  679. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_dilate_word.d.ts.map +1 -0
  680. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_dilate_word.js +18 -0
  681. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_counts.d.ts +9 -0
  682. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_counts.d.ts.map +1 -0
  683. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_counts.js +17 -0
  684. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_transmittance.d.ts +9 -0
  685. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_transmittance.d.ts.map +1 -0
  686. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_extinction_to_transmittance.js +17 -0
  687. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_fold_pairs.d.ts +15 -0
  688. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_fold_pairs.d.ts.map +1 -0
  689. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_fold_pairs.js +25 -0
  690. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_integral_depth_coordinate.d.ts +17 -0
  691. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_integral_depth_coordinate.d.ts.map +1 -0
  692. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_integral_depth_coordinate.js +35 -0
  693. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_range.d.ts +11 -0
  694. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_range.d.ts.map +1 -0
  695. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_range.js +21 -0
  696. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_word_mask.d.ts +9 -0
  697. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_word_mask.d.ts.map +1 -0
  698. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_occupancy_word_mask.js +26 -0
  699. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_overflows.d.ts +11 -0
  700. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_overflows.d.ts.map +1 -0
  701. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_overflows.js +22 -0
  702. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_pack_counts.d.ts +10 -0
  703. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_pack_counts.d.ts.map +1 -0
  704. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_pack_counts.js +21 -0
  705. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_sample_transmittance.d.ts +10 -0
  706. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_sample_transmittance.d.ts.map +1 -0
  707. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_sample_transmittance.js +32 -0
  708. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmission_tint.d.ts +20 -0
  709. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmission_tint.d.ts.map +1 -0
  710. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmission_tint.js +27 -0
  711. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmittance_to_extinction.d.ts +10 -0
  712. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmittance_to_extinction.d.ts.map +1 -0
  713. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_transmittance_to_extinction.js +18 -0
  714. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unpack_counts.d.ts +9 -0
  715. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unpack_counts.d.ts.map +1 -0
  716. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_unpack_counts.js +21 -0
  717. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_physical.d.ts +9 -0
  718. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_physical.d.ts.map +1 -0
  719. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_physical.js +23 -0
  720. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_virtual.d.ts +13 -0
  721. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_virtual.d.ts.map +1 -0
  722. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_view_depth_to_virtual.js +27 -0
  723. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp.d.ts +22 -0
  724. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp.d.ts.map +1 -0
  725. package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_warp.js +38 -0
  726. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +117 -0
  727. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -0
  728. package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +935 -0
  729. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_build_warp.d.ts +8 -0
  730. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_build_warp.d.ts.map +1 -0
  731. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_build_warp.js +135 -0
  732. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts +3 -0
  733. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.d.ts.map +1 -0
  734. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.js +101 -0
  735. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts +3 -0
  736. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.d.ts.map +1 -0
  737. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.js +96 -0
  738. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_integrate.d.ts +3 -0
  739. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_integrate.d.ts.map +1 -0
  740. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_integrate.js +83 -0
  741. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_occupancy.d.ts +9 -0
  742. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_occupancy.d.ts.map +1 -0
  743. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_occupancy.js +119 -0
  744. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.d.ts +3 -0
  745. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.d.ts.map +1 -0
  746. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.js +81 -0
  747. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts +15 -0
  748. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts.map +1 -0
  749. package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +237 -0
  750. package/src/shade/renderer/rasterize/native/material_draw_indirect.d.ts +22 -0
  751. package/src/shade/renderer/rasterize/native/material_draw_indirect.d.ts.map +1 -0
  752. package/src/shade/renderer/rasterize/native/material_draw_indirect.js +69 -0
  753. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.d.ts.map +1 -1
  754. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +665 -722
  755. package/src/shade/renderer/rasterize/native/oit/shader_oit_generate_moments.js +3 -3
  756. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments.js +4 -4
  757. package/src/shade/renderer/rasterize/native/oit/shader_oit_resolve_moments_ibl.js +4 -4
  758. package/src/shade/wgsl/emulator/CPUBitmapData.d.ts +1 -1
  759. package/src/view/DOM.d.ts +69 -0
  760. package/src/view/DOM.d.ts.map +1 -0
  761. package/src/view/DOM.js +2 -1
  762. package/src/view/common/LocalizedLabelView.d.ts +50 -0
  763. package/src/view/common/LocalizedLabelView.d.ts.map +1 -0
  764. package/src/view/controller/controls/GuiControl.d.ts +19 -0
  765. package/src/view/controller/controls/GuiControl.d.ts.map +1 -0
  766. package/src/view/elements/FrameRateView.d.ts +45 -0
  767. package/src/view/elements/FrameRateView.d.ts.map +1 -0
  768. package/src/view/elements/FrameRateView.js +131 -0
  769. package/src/view/elements/SliderView.d.ts +37 -0
  770. package/src/view/elements/SliderView.d.ts.map +1 -0
  771. package/src/view/elements/SliderView.js +71 -0
  772. package/src/view/elements/navigation/ViewStack.d.ts +1 -1
  773. package/src/view/elements/navigation/ViewStack.js +1 -1
  774. package/src/view/elements/notify/NotificationView.d.ts +22 -0
  775. package/src/view/elements/notify/NotificationView.d.ts.map +1 -0
  776. package/src/view/tooltip/TooltipView.d.ts +5 -1
  777. package/src/view/tooltip/TooltipView.d.ts.map +1 -1
  778. package/src/view/tooltip/TooltipView.js +4 -0
  779. package/src/shade/renderer/rasterize/native/oit/FORWARD_VERTEX_SHADER_STRUCT.d.ts +0 -3
  780. package/src/shade/renderer/rasterize/native/oit/FORWARD_VERTEX_SHADER_STRUCT.d.ts.map +0 -1
  781. package/src/shade/renderer/rasterize/native/oit/SHADING_SCENE_RESOURCE_GROUP.d.ts +0 -3
  782. package/src/shade/renderer/rasterize/native/oit/SHADING_SCENE_RESOURCE_GROUP.d.ts.map +0 -1
  783. package/src/shade/renderer/rasterize/native/oit/SHADING_SCENE_RESOURCE_GROUP.js +0 -17
  784. package/src/shade/renderer/rasterize/native/oit/chunk_forward_shade_standard_fragment_brick4.d.ts.map +0 -1
  785. package/src/shade/renderer/rasterize/native/oit/chunk_forward_shade_standard_fragment_ibl.d.ts.map +0 -1
  786. package/src/shade/renderer/rasterize/native/oit/chunk_material_side_should_draw.d.ts.map +0 -1
  787. package/src/shade/renderer/rasterize/native/oit/vertex_shader_chunk.d.ts +0 -3
  788. package/src/shade/renderer/rasterize/native/oit/vertex_shader_chunk.d.ts.map +0 -1
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Per-frame inputs of the warp build, all of which land in the warp header.
3
+ */
4
+ export const AVBOIT_BUILD_WARP_SETTINGS_STRUCT: WebGPUStruct;
5
+ export const shader_avboit_build_warp: ComputeShader;
6
+ import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
7
+ import { ComputeShader } from "../../../shader/ComputeShader.js";
8
+ //# sourceMappingURL=shader_avboit_build_warp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader_avboit_build_warp.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_build_warp.js"],"names":[],"mappings":"AAWA;;GAEG;AACH,6DAUqC;AA0GrC,qDAIG;6BApI0B,sCAAsC;8BAErC,kCAAkC"}
@@ -0,0 +1,135 @@
1
+ import { u32, vec3f } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
2
+ import { WebGPUArray } from "../../../shader/type/WebGPUArray.js";
3
+ import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
4
+ import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
5
+ import { ComputeShader } from "../../../shader/ComputeShader.js";
6
+ import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
7
+ import { AVBOIT_OCCUPANCY_WORDS, AVBOIT_VIRTUAL_SLICES_MAX } from "./AVBOIT_CONSTANTS.js";
8
+ import { AVBOIT_WARP_STRUCT } from "./AVBOIT_WARP_STRUCT.js";
9
+ import { chunk_avboit_dilate_word } from "./chunk_avboit_dilate_word.js";
10
+ import { chunk_avboit_fold_pairs } from "./chunk_avboit_fold_pairs.js";
11
+
12
+ /**
13
+ * Per-frame inputs of the warp build, all of which land in the warp header.
14
+ */
15
+ export const AVBOIT_BUILD_WARP_SETTINGS_STRUCT = WebGPUStruct.from({
16
+ /** AVBOIT_PHYSICAL_SLICES */
17
+ physical_count: u32,
18
+ /** extinction volume XY resolution, copied into the warp header for the fragment shaders */
19
+ voxel_width: u32,
20
+ voxel_height: u32,
21
+ /** AVBOITSettings.transmission_tint_from_base_color as 0 / 1, copied into the header */
22
+ tint_from_base_color: u32,
23
+ /** the depth curve, see avboit_build_depth_curve */
24
+ cluster_parameters: vec3f,
25
+ }, "AVBOITBuildWarpSettings").pack();
26
+
27
+ const resources = new ShaderResourceSetDescriptor();
28
+
29
+ resources.createGroup()
30
+ .addUniform("settings", AVBOIT_BUILD_WARP_SETTINGS_STRUCT)
31
+ .addStorageBuffer("occupancy", WebGPUArray.from(u32, AVBOIT_OCCUPANCY_WORDS))
32
+ .addStorageBuffer("warp", AVBOIT_WARP_STRUCT, true)
33
+ ;
34
+
35
+ /**
36
+ * AVBOIT warp build: turns the finest-level occupancy bits into the depth-warp LUT (plan §3.4).
37
+ *
38
+ * One invocation does the whole thing. Per level: dilate by one slice each side at that level,
39
+ * count; if the count fits the physical budget, or the level is already down at the physical count,
40
+ * stop — otherwise halve the *undilated* bits by OR-ing adjacent pairs and go again. Dilation is
41
+ * applied fresh at each level rather than once at the finest, because a one-slice margin at 1024
42
+ * slices is a quarter of a slice at 256 and rounds away; the margin is what keeps a fragment on the
43
+ * edge of a meshlet's bounds from linear-splatting into a neighbouring run.
44
+ *
45
+ * The LUT is then an exclusive prefix count of the dilated bits, with the bit itself in the low
46
+ * position — see `AVBOIT_WARP_STRUCT`.
47
+ *
48
+ * Single-lane by design, not as a fallback: 32 words and at most three halvings is a few thousand
49
+ * bit operations, and staying single-lane is what lets the WGSL emulator run this shader as-is.
50
+ */
51
+ const body = CodeChunk.from(
52
+ //language=WGSL
53
+ `
54
+ const AVBOIT_OCCUPANCY_WORDS: u32 = ${AVBOIT_OCCUPANCY_WORDS}u;
55
+
56
+ @compute @workgroup_size(1)
57
+ fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {
58
+
59
+ if (global_id.x != 0u) {
60
+ return;
61
+ }
62
+
63
+ let physical = settings.physical_count;
64
+
65
+ var words: array<u32, AVBOIT_OCCUPANCY_WORDS>;
66
+ var dilated: array<u32, AVBOIT_OCCUPANCY_WORDS>;
67
+
68
+ for (var w = 0u; w < AVBOIT_OCCUPANCY_WORDS; w++) {
69
+ words[w] = occupancy[w];
70
+ dilated[w] = 0u;
71
+ }
72
+
73
+ var level_count = ${AVBOIT_VIRTUAL_SLICES_MAX}u;
74
+ var word_count = AVBOIT_OCCUPANCY_WORDS;
75
+
76
+ loop {
77
+ var occupied = 0u;
78
+
79
+ for (var w = 0u; w < word_count; w++) {
80
+ var below = 0u;
81
+ if (w > 0u) {
82
+ below = words[w - 1u] >> 31u;
83
+ }
84
+ var above = 0u;
85
+ if (w + 1u < word_count) {
86
+ above = (words[w + 1u] & 1u) << 31u;
87
+ }
88
+ let d = avboit_dilate_word(words[w], below, above);
89
+ dilated[w] = d;
90
+ occupied += countOneBits(d);
91
+ }
92
+
93
+ if (occupied <= physical || level_count <= physical) {
94
+ break;
95
+ }
96
+
97
+ // halve: two old words become one new word
98
+ let half_words = word_count / 2u;
99
+ for (var nw = 0u; nw < half_words; nw++) {
100
+ words[nw] = avboit_fold_pairs(words[2u * nw]) | (avboit_fold_pairs(words[2u * nw + 1u]) << 16u);
101
+ }
102
+
103
+ word_count = half_words;
104
+ level_count = level_count / 2u;
105
+ }
106
+
107
+ warp.virtual_count = level_count;
108
+ warp.physical_count = physical;
109
+ warp.voxel_width = settings.voxel_width;
110
+ warp.voxel_height = settings.voxel_height;
111
+ warp.tint_from_base_color = settings.tint_from_base_color;
112
+ warp.cluster_parameters = settings.cluster_parameters;
113
+
114
+ var prefix = 0u;
115
+
116
+ for (var v = 0u; v < level_count; v++) {
117
+ let bit = (dilated[v >> 5u] >> (v & 31u)) & 1u;
118
+ warp.lut[v] = (prefix << 1u) | bit;
119
+ prefix += bit;
120
+ }
121
+
122
+ warp.lut[level_count] = prefix << 1u;
123
+ warp.occupied_count = prefix;
124
+ }
125
+ `, [
126
+ chunk_avboit_dilate_word,
127
+ chunk_avboit_fold_pairs,
128
+ ]
129
+ );
130
+
131
+ export const shader_avboit_build_warp = ComputeShader.from({
132
+ label: 'AVBOIT / build warp',
133
+ resources,
134
+ body,
135
+ });
@@ -0,0 +1,3 @@
1
+ export const shader_avboit_draw_brick4: RenderPassDescriptor;
2
+ import { RenderPassDescriptor } from "../../../shader/pass/RenderPassDescriptor.js";
3
+ //# sourceMappingURL=shader_avboit_draw_brick4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader_avboit_draw_brick4.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_brick4.js"],"names":[],"mappings":"AA2FA,6DAAoE;qCAnF/B,8CAA8C"}
@@ -0,0 +1,101 @@
1
+ import { RenderPipelineDescriptor } from "../../../../descriptor/pipeline/render/RenderPipelineDescriptor.js";
2
+ import { CAMERA_UNIFORM_STRUCT } from "../../../camera/CAMERA_UNIFORM_STRUCT.js";
3
+ import { SHADING_LIGHT_RESOURCE_GROUP } from "../../../deferred/SHADING_LIGHT_RESOURCE_GROUP.js";
4
+ import { DEPTH_BACKGROUND_VALUE } from "../../../depth/DEPTH_BACKGROUND_VALUE.js";
5
+ import { BRICK4_DATA_STRUCT } from "../../../global_illumination/brick4/gpu/BRICK4_DATA_STRUCT.js";
6
+ import { SHADING_MATERIAL_RESOURCE_GROUP } from "../../../material/standard/SHADING_MATERIAL_RESOURCE_GROUP.js";
7
+ import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
8
+ import { RenderPassColorAttachmentDescriptor } from "../../../shader/pass/RenderPassColorAttachmentDescriptor.js";
9
+ import { RenderPassDescriptor } from "../../../shader/pass/RenderPassDescriptor.js";
10
+ import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
11
+ import { ShaderDescriptor } from "../../../shader/ShaderDescriptor.js";
12
+ import { SAMPLER_LINEAR_UPSCALE } from "../../../texture/SAMPLER_LINEAR_UPSCALE.js";
13
+ import { VIEW_UNIFORM_STRUCT } from "../../../view/VIEW_UNIFORM_STRUCT.js";
14
+ import { VOLUMETRICS_METADATA_STRUCT } from "../../../volumetrics/VOLUMETRICS_METADATA_STRUCT.js";
15
+ import {
16
+ chunk_forward_shade_standard_fragment_brick4
17
+ } from "../../forward/chunk_forward_shade_standard_fragment_brick4.js";
18
+ import { SHADING_SCENE_RESOURCE_GROUP } from "../../forward/SHADING_SCENE_RESOURCE_GROUP.js";
19
+ import { vertex_shader_chunk } from "../../forward/vertex_shader_chunk.js";
20
+ import { rasterization_primitive_state } from "../rasterization_primitive_state.js";
21
+ import { AVBOIT_WARP_STRUCT } from "./AVBOIT_WARP_STRUCT.js";
22
+ import {
23
+ AVBOIT_DRAW_FRAGMENT_BODY,
24
+ AVBOIT_DRAW_FRAGMENT_DEPENDENCIES,
25
+ AVBOIT_DRAW_TARGETS
26
+ } from "./avboit_draw_fragment_body.js";
27
+
28
+ const resources = new ShaderResourceSetDescriptor();
29
+
30
+ resources.addGroup(SHADING_MATERIAL_RESOURCE_GROUP);
31
+ resources.addGroup(SHADING_SCENE_RESOURCE_GROUP);
32
+
33
+ // Order is load-bearing: the orchestrator's view bind group lists its entries in this sequence.
34
+ // Identical to the IBL variant except for the brick4 buffer after the integral sampler.
35
+ resources.createGroup()
36
+ .addUniform("camera", CAMERA_UNIFORM_STRUCT)
37
+ .addUniform("view", VIEW_UNIFORM_STRUCT)
38
+ .addStorageBuffer("warp", AVBOIT_WARP_STRUCT)
39
+ // sampled through sLinear below: linear, clamped on every axis, which is what the integral needs
40
+ .addTexture("tIntegral", "float", "3d")
41
+ .addStorageBuffer("brick4", BRICK4_DATA_STRUCT, false)
42
+ .addTexture("tSplitSum", "float")
43
+ .addSampler("sLinear", "filtering", SAMPLER_LINEAR_UPSCALE)
44
+ // volumetrics (composited inline)
45
+ .addUniform("volumetrics_metadata", VOLUMETRICS_METADATA_STRUCT)
46
+ .addTexture("tVolumetrics", "float", "3d")
47
+ .addTexture("tSTBN_vec3", "float", "3d")
48
+
49
+ resources.addGroup(SHADING_LIGHT_RESOURCE_GROUP);
50
+
51
+ const shader_vertex = ShaderDescriptor.from({
52
+ label: 'AVBOIT Brick4 / vertex shader',
53
+ body: vertex_shader_chunk,
54
+ resources,
55
+ });
56
+
57
+ /**
58
+ * AVBOIT draw, Brick4 (sparse volumetric lightmap) indirect lighting. See `avboit_draw_fragment_body.js`.
59
+ */
60
+ const shader_fragment = ShaderDescriptor.from({
61
+ label: "AVBOIT Brick4 / draw",
62
+ resources,
63
+ body: CodeChunk.from(AVBOIT_DRAW_FRAGMENT_BODY, [
64
+ ...AVBOIT_DRAW_FRAGMENT_DEPENDENCIES,
65
+ chunk_forward_shade_standard_fragment_brick4,
66
+ ])
67
+ });
68
+
69
+ const pipeline = RenderPipelineDescriptor.from({
70
+ label: "AVBOIT Brick4 / draw",
71
+ layout: resources.generatePipelineLayout(GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT),
72
+ vertex: {
73
+ module: {
74
+ code: shader_vertex.source
75
+ }
76
+ },
77
+ fragment: {
78
+ module: {
79
+ code: shader_fragment.source
80
+ },
81
+ targets: AVBOIT_DRAW_TARGETS,
82
+ },
83
+ depthStencil: {
84
+ // reversed Z
85
+ depthCompare: "greater",
86
+ format: "depth32float",
87
+ depthWriteEnabled: false
88
+ },
89
+ primitive: rasterization_primitive_state,
90
+ });
91
+
92
+ export const shader_avboit_draw_brick4 = new RenderPassDescriptor();
93
+ shader_avboit_draw_brick4.pipeline = pipeline;
94
+ shader_avboit_draw_brick4.resources = resources;
95
+ shader_avboit_draw_brick4.colorAttachments = AVBOIT_DRAW_TARGETS.map(() => RenderPassColorAttachmentDescriptor.from({
96
+ clearValue: [0, 0, 0, 0],
97
+ }));
98
+ /**
99
+ * Clear depth to 0 for reverse Z technique
100
+ */
101
+ shader_avboit_draw_brick4.depthStencilAttachment.depthClearValue = DEPTH_BACKGROUND_VALUE;
@@ -0,0 +1,3 @@
1
+ export const shader_avboit_draw_ibl: RenderPassDescriptor;
2
+ import { RenderPassDescriptor } from "../../../shader/pass/RenderPassDescriptor.js";
3
+ //# sourceMappingURL=shader_avboit_draw_ibl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader_avboit_draw_ibl.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_draw_ibl.js"],"names":[],"mappings":"AAsFA,0DAAiE;qCA/E5B,8CAA8C"}
@@ -0,0 +1,96 @@
1
+ import { RenderPipelineDescriptor } from "../../../../descriptor/pipeline/render/RenderPipelineDescriptor.js";
2
+ import { CAMERA_UNIFORM_STRUCT } from "../../../camera/CAMERA_UNIFORM_STRUCT.js";
3
+ import { SHADING_LIGHT_RESOURCE_GROUP } from "../../../deferred/SHADING_LIGHT_RESOURCE_GROUP.js";
4
+ import { DEPTH_BACKGROUND_VALUE } from "../../../depth/DEPTH_BACKGROUND_VALUE.js";
5
+ import { SHADING_MATERIAL_RESOURCE_GROUP } from "../../../material/standard/SHADING_MATERIAL_RESOURCE_GROUP.js";
6
+ import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
7
+ import { RenderPassColorAttachmentDescriptor } from "../../../shader/pass/RenderPassColorAttachmentDescriptor.js";
8
+ import { RenderPassDescriptor } from "../../../shader/pass/RenderPassDescriptor.js";
9
+ import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
10
+ import { ShaderDescriptor } from "../../../shader/ShaderDescriptor.js";
11
+ import { SAMPLER_LINEAR_UPSCALE } from "../../../texture/SAMPLER_LINEAR_UPSCALE.js";
12
+ import { VIEW_UNIFORM_STRUCT } from "../../../view/VIEW_UNIFORM_STRUCT.js";
13
+ import { VOLUMETRICS_METADATA_STRUCT } from "../../../volumetrics/VOLUMETRICS_METADATA_STRUCT.js";
14
+ import { chunk_forward_shade_standard_fragment_ibl } from "../../forward/chunk_forward_shade_standard_fragment_ibl.js";
15
+ import { SHADING_SCENE_RESOURCE_GROUP } from "../../forward/SHADING_SCENE_RESOURCE_GROUP.js";
16
+ import { vertex_shader_chunk } from "../../forward/vertex_shader_chunk.js";
17
+ import { rasterization_primitive_state } from "../rasterization_primitive_state.js";
18
+ import { AVBOIT_WARP_STRUCT } from "./AVBOIT_WARP_STRUCT.js";
19
+ import {
20
+ AVBOIT_DRAW_FRAGMENT_BODY,
21
+ AVBOIT_DRAW_FRAGMENT_DEPENDENCIES,
22
+ AVBOIT_DRAW_TARGETS
23
+ } from "./avboit_draw_fragment_body.js";
24
+
25
+ const resources = new ShaderResourceSetDescriptor();
26
+
27
+ resources.addGroup(SHADING_MATERIAL_RESOURCE_GROUP);
28
+ resources.addGroup(SHADING_SCENE_RESOURCE_GROUP);
29
+
30
+ // Order is load-bearing: the orchestrator's view bind group lists its entries in this sequence.
31
+ resources.createGroup()
32
+ .addUniform("camera", CAMERA_UNIFORM_STRUCT)
33
+ .addUniform("view", VIEW_UNIFORM_STRUCT)
34
+ .addStorageBuffer("warp", AVBOIT_WARP_STRUCT)
35
+ // sampled through sLinear below: linear, clamped on every axis, which is what the integral needs
36
+ .addTexture("tIntegral", "float", "3d")
37
+ .addTexture("tSplitSum", "float")
38
+ .addSampler("sLinear", "filtering", SAMPLER_LINEAR_UPSCALE)
39
+ // volumetrics (composited inline)
40
+ .addUniform("volumetrics_metadata", VOLUMETRICS_METADATA_STRUCT)
41
+ .addTexture("tVolumetrics", "float", "3d")
42
+ .addTexture("tSTBN_vec3", "float", "3d")
43
+
44
+ resources.addGroup(SHADING_LIGHT_RESOURCE_GROUP);
45
+
46
+ const shader_vertex = ShaderDescriptor.from({
47
+ label: 'AVBOIT IBL / vertex shader',
48
+ body: vertex_shader_chunk,
49
+ resources,
50
+ });
51
+
52
+ /**
53
+ * AVBOIT draw, image-based indirect lighting. See `avboit_draw_fragment_body.js`.
54
+ */
55
+ const shader_fragment = ShaderDescriptor.from({
56
+ label: "AVBOIT IBL / draw",
57
+ resources,
58
+ body: CodeChunk.from(AVBOIT_DRAW_FRAGMENT_BODY, [
59
+ ...AVBOIT_DRAW_FRAGMENT_DEPENDENCIES,
60
+ chunk_forward_shade_standard_fragment_ibl,
61
+ ])
62
+ });
63
+
64
+ const pipeline = RenderPipelineDescriptor.from({
65
+ label: "AVBOIT IBL / draw",
66
+ layout: resources.generatePipelineLayout(GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT),
67
+ vertex: {
68
+ module: {
69
+ code: shader_vertex.source
70
+ }
71
+ },
72
+ fragment: {
73
+ module: {
74
+ code: shader_fragment.source
75
+ },
76
+ targets: AVBOIT_DRAW_TARGETS,
77
+ },
78
+ depthStencil: {
79
+ // reversed Z
80
+ depthCompare: "greater",
81
+ format: "depth32float",
82
+ depthWriteEnabled: false
83
+ },
84
+ primitive: rasterization_primitive_state,
85
+ });
86
+
87
+ export const shader_avboit_draw_ibl = new RenderPassDescriptor();
88
+ shader_avboit_draw_ibl.pipeline = pipeline;
89
+ shader_avboit_draw_ibl.resources = resources;
90
+ shader_avboit_draw_ibl.colorAttachments = AVBOIT_DRAW_TARGETS.map(() => RenderPassColorAttachmentDescriptor.from({
91
+ clearValue: [0, 0, 0, 0],
92
+ }));
93
+ /**
94
+ * Clear depth to 0 for reverse Z technique
95
+ */
96
+ shader_avboit_draw_ibl.depthStencilAttachment.depthClearValue = DEPTH_BACKGROUND_VALUE;
@@ -0,0 +1,3 @@
1
+ export const shader_avboit_integrate: ComputeShader;
2
+ import { ComputeShader } from "../../../shader/ComputeShader.js";
3
+ //# sourceMappingURL=shader_avboit_integrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader_avboit_integrate.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_integrate.js"],"names":[],"mappings":"AA8EA,oDAIG;8BA/E2B,kCAAkC"}
@@ -0,0 +1,83 @@
1
+ import { u32 } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
2
+ import { WebGPUArray } from "../../../shader/type/WebGPUArray.js";
3
+ import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
4
+ import { ComputeShader } from "../../../shader/ComputeShader.js";
5
+ import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
6
+ import { AVBOIT_INTEGRAL_FORMAT, AVBOIT_INTEGRATE_WORKGROUP_SIZE } from "./AVBOIT_CONSTANTS.js";
7
+ import { AVBOIT_WARP_STRUCT } from "./AVBOIT_WARP_STRUCT.js";
8
+ import { chunk_avboit_counts_to_extinction } from "./chunk_avboit_counts_to_extinction.js";
9
+ import { chunk_avboit_unpack_counts } from "./chunk_avboit_unpack_counts.js";
10
+
11
+ const resources = new ShaderResourceSetDescriptor();
12
+
13
+ resources.createGroup()
14
+ .addStorageBuffer("warp", AVBOIT_WARP_STRUCT)
15
+ .addStorageBuffer("extinction_volume", WebGPUArray.from(u32))
16
+ .addStorageBuffer("overflow_slice", WebGPUArray.from(u32))
17
+ .addStorageTexture("integral", AVBOIT_INTEGRAL_FORMAT, "3d", "write-only")
18
+ ;
19
+
20
+ /**
21
+ * AVBOIT integration: one thread per voxel column, summing extinction front to back into the 3D
22
+ * integral texture (plan §3.6).
23
+ *
24
+ * Exclusive prefix: texel `s` holds the integral at the *near boundary* of slice `s`, and the texture
25
+ * has `P + 1` depth texels so that texel `P` holds the total. That convention is what lets a sample
26
+ * that the warp has snapped to a run boundary read exactly the runs in front of it.
27
+ *
28
+ * Per channel, the running value saturates at 1.0 (a transmittance of `1/256`), and from the slice
29
+ * the splat recorded as that channel's first overflow it is pinned there: the packed field may have
30
+ * wrapped past that point and its contents no longer mean anything, but a ray that has overflowed
31
+ * a field is extinct anyway.
32
+ */
33
+ const body = CodeChunk.from(
34
+ //language=WGSL
35
+ `
36
+ @compute @workgroup_size(${AVBOIT_INTEGRATE_WORKGROUP_SIZE}, ${AVBOIT_INTEGRATE_WORKGROUP_SIZE}, 1)
37
+ fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {
38
+
39
+ let width = warp.voxel_width;
40
+ let height = warp.voxel_height;
41
+
42
+ if (global_id.x >= width || global_id.y >= height) {
43
+ return;
44
+ }
45
+
46
+ let physical = warp.physical_count;
47
+ let texel = global_id.y * width + global_id.x;
48
+ let column = texel * physical;
49
+ let overflow_base = texel * 3u;
50
+
51
+ // first overflow slice per channel; a zero mark means none, which no slice reaches
52
+ let marks = vec3<u32>(
53
+ overflow_slice[overflow_base],
54
+ overflow_slice[overflow_base + 1u],
55
+ overflow_slice[overflow_base + 2u],
56
+ );
57
+ let stop = select(vec3<u32>(physical) - marks, vec3<u32>(physical), marks == vec3<u32>(0u));
58
+
59
+ var accumulated = vec3<f32>(0.0);
60
+
61
+ for (var s = 0u; s < physical; s++) {
62
+ textureStore(integral, vec3<i32>(i32(global_id.x), i32(global_id.y), i32(s)), vec4<f32>(accumulated, 1.0));
63
+
64
+ let counts = avboit_unpack_counts(extinction_volume[column + s]);
65
+ let extinction = avboit_counts_to_extinction(counts);
66
+
67
+ let pinned = vec3<u32>(s) >= stop;
68
+ accumulated = select(min(accumulated + extinction, vec3<f32>(1.0)), vec3<f32>(1.0), pinned);
69
+ }
70
+
71
+ textureStore(integral, vec3<i32>(i32(global_id.x), i32(global_id.y), i32(physical)), vec4<f32>(accumulated, 1.0));
72
+ }
73
+ `, [
74
+ chunk_avboit_counts_to_extinction,
75
+ chunk_avboit_unpack_counts,
76
+ ]
77
+ );
78
+
79
+ export const shader_avboit_integrate = ComputeShader.from({
80
+ label: 'AVBOIT / integrate',
81
+ resources,
82
+ body,
83
+ });
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The depth curve, built by `avboit_build_depth_curve`; the same values the warp header carries,
3
+ * needed here before the header exists.
4
+ */
5
+ export const AVBOIT_OCCUPANCY_SETTINGS_STRUCT: WebGPUStruct;
6
+ export const shader_avboit_occupancy: ComputeShader;
7
+ import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
8
+ import { ComputeShader } from "../../../shader/ComputeShader.js";
9
+ //# sourceMappingURL=shader_avboit_occupancy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader_avboit_occupancy.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_occupancy.js"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,4DAEqC;AAyFrC,oDAIG;6BApH0B,sCAAsC;8BAUrC,kCAAkC"}
@@ -0,0 +1,119 @@
1
+ import { atomic_u32, u32, vec3f } from "../../../shader/type/WEBGPU_WGSL_PRIMITIVE_TYPES.js";
2
+ import { WebGPUArray } from "../../../shader/type/WebGPUArray.js";
3
+ import { WebGPUStruct } from "../../../shader/type/WebGPUStruct.js";
4
+ import { CAMERA_UNIFORM_STRUCT } from "../../../camera/CAMERA_UNIFORM_STRUCT.js";
5
+ import { chunk_cluster_depth_to_z_slice } from "../../../light/cluster/chunk_cluster_depth_to_z_slice.js";
6
+ import { MESHLET_METADATA_STRUCT } from "../../../geometry/meshlet/encoding/MESHLET_METADATA_STRUCT.js";
7
+ import { chunk_scene_database_access } from "../../../scene/chunk_scene_database_access.js";
8
+ import { AABB3_STRUCT } from "../../../shader/chunk/geometry/aabb3/AABB3_STRUCT.js";
9
+ import { chunk_aabb3_project } from "../../../shader/chunk/geometry/aabb3/chunk_aabb3_project.js";
10
+ import { chunk_array_to_aabb3 } from "../../../shader/chunk/geometry/aabb3/chunk_array_to_aabb3.js";
11
+ import { CodeChunk } from "../../../shader/compiler/CodeChunk.js";
12
+ import { COMPUTE_SHADER_DEFAULT_GROUP_SIZE } from "../../../shader/COMPUTE_SHADER_DEFAULT_GROUP_SIZE.js";
13
+ import { ComputeShader } from "../../../shader/ComputeShader.js";
14
+ import { ShaderResourceSetDescriptor } from "../../../shader/resource/ShaderResourceSetDescriptor.js";
15
+ import { MESHLET_COLLECTION_STRUCT } from "../../MESHLET_COLLECTION_STRUCT.js";
16
+ import { AVBOIT_OCCUPANCY_WORDS, AVBOIT_VIRTUAL_SLICES_MAX } from "./AVBOIT_CONSTANTS.js";
17
+ import { chunk_avboit_occupancy_range } from "./chunk_avboit_occupancy_range.js";
18
+ import { chunk_avboit_occupancy_word_mask } from "./chunk_avboit_occupancy_word_mask.js";
19
+
20
+ /**
21
+ * The depth curve, built by `avboit_build_depth_curve`; the same values the warp header carries,
22
+ * needed here before the header exists.
23
+ */
24
+ export const AVBOIT_OCCUPANCY_SETTINGS_STRUCT = WebGPUStruct.from({
25
+ cluster_parameters: vec3f,
26
+ }, "AVBOITOccupancySettings").pack();
27
+
28
+ const resources = new ShaderResourceSetDescriptor();
29
+
30
+ resources.createGroup()
31
+ .addUniform("camera", CAMERA_UNIFORM_STRUCT)
32
+ .addUniform("settings", AVBOIT_OCCUPANCY_SETTINGS_STRUCT)
33
+ .addStorageBuffer("scene_database", WebGPUArray.from(u32))
34
+ .addStorageBuffer("meshlet_metadata", WebGPUArray.from(MESHLET_METADATA_STRUCT))
35
+ ;
36
+
37
+ resources.createGroup()
38
+ .addStorageBuffer("input", MESHLET_COLLECTION_STRUCT)
39
+ ;
40
+
41
+ resources.createGroup()
42
+ .addStorageBuffer("occupancy", WebGPUArray.from(atomic_u32, AVBOIT_OCCUPANCY_WORDS), true)
43
+ ;
44
+
45
+ /**
46
+ * AVBOIT occupancy prepass: one thread per HZB-surviving meshlet, marking the virtual depth slices its
47
+ * bounds span. The deck voxelizes quads and boxes conservatively in a compute job (slide 75); the
48
+ * engine already has per-meshlet AABBs on the GPU, which are tighter than a mesh box and free.
49
+ *
50
+ * Bounds go local → world → view through `aabb3_project` twice, the same projection the HZB meshlet
51
+ * filter uses. The camera looks down −Z, so the view-space depth interval is `[-max.z, -min.z]`.
52
+ * A meshlet entirely in front of the near plane marks nothing; anything else goes through the depth
53
+ * curve (`cluster_depth_to_z_slice`, clamped to the volume by its own limit) and is dilated one slice
54
+ * each side (`avboit_occupancy_range`).
55
+ *
56
+ * Runs once per transparent bucket (front-sided, double-sided) into the same word array.
57
+ */
58
+ const body = CodeChunk.from(
59
+ //language=WGSL
60
+ `
61
+ @compute @workgroup_size(${COMPUTE_SHADER_DEFAULT_GROUP_SIZE})
62
+ fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {
63
+
64
+ let input_index = global_id.x;
65
+
66
+ if (input_index >= input.count) {
67
+ return;
68
+ }
69
+
70
+ let meshlet = input.elements[input_index];
71
+
72
+ let mesh = scene_read_mesh(&scene_database, meshlet.mesh);
73
+ let node = scene_read_node(&scene_database, mesh.node);
74
+
75
+ let local_bounds = array_to_aabb3(meshlet_metadata[meshlet.index].bounds_box);
76
+ let world_bounds = aabb3_project(local_bounds, node.global);
77
+ let view_bounds: ${AABB3_STRUCT.wgsl_ref} = aabb3_project(world_bounds, camera.view_matrix);
78
+
79
+ // camera looks down -Z: the nearest point of the box has the largest z
80
+ let depth_min = -view_bounds.max.z;
81
+ let depth_max = -view_bounds.min.z;
82
+
83
+ if (depth_max < camera.clip_near_far.x) {
84
+ // entirely in front of the near plane
85
+ return;
86
+ }
87
+
88
+ let limit = ${AVBOIT_VIRTUAL_SLICES_MAX}.0;
89
+ let slice_near = cluster_depth_to_z_slice(depth_min, settings.cluster_parameters, limit);
90
+ let slice_far = cluster_depth_to_z_slice(depth_max, settings.cluster_parameters, limit);
91
+
92
+ let range = avboit_occupancy_range(slice_near, slice_far);
93
+
94
+ let word_first = u32(range.x) >> 5u;
95
+ let word_last = u32(range.y) >> 5u;
96
+
97
+ for (var word = word_first; word <= word_last; word++) {
98
+ let mask = avboit_occupancy_word_mask(word, range.x, range.y);
99
+ if (mask != 0u) {
100
+ atomicOr(&occupancy[word], mask);
101
+ }
102
+ }
103
+ }
104
+ `, [
105
+ AABB3_STRUCT.declaration_chunk,
106
+ chunk_array_to_aabb3,
107
+ chunk_aabb3_project,
108
+ chunk_scene_database_access,
109
+ chunk_cluster_depth_to_z_slice,
110
+ chunk_avboit_occupancy_range,
111
+ chunk_avboit_occupancy_word_mask,
112
+ ]
113
+ );
114
+
115
+ export const shader_avboit_occupancy = ComputeShader.from({
116
+ label: 'AVBOIT / occupancy',
117
+ resources,
118
+ body,
119
+ });
@@ -0,0 +1,3 @@
1
+ export const shader_avboit_resolve: ImageShader;
2
+ import { ImageShader } from "../../../shader/ImageShader.js";
3
+ //# sourceMappingURL=shader_avboit_resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader_avboit_resolve.d.ts","sourceRoot":"","sources":["../../../../../../../src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.js"],"names":[],"mappings":"AAsEA,gDAUE;4BA9E0B,gCAAgC"}