@realsee/five-webgpu 1.0.0-alpha.12 → 1.0.0-alpha.14

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 (431) hide show
  1. package/_virtual/_rolldown/runtime.js +3 -3
  2. package/docs/assets/hierarchy.js +1 -1
  3. package/docs/assets/navigation.js +1 -1
  4. package/docs/assets/search.js +1 -1
  5. package/docs/classes/index.AdaptiveLuminancePass.html +1 -1
  6. package/docs/classes/index.BoundingMesh.html +1 -1
  7. package/docs/classes/index.Camera.html +1 -1
  8. package/docs/classes/index.EyeDomeLightingPass.html +1 -1
  9. package/docs/classes/index.Five.html +41 -32
  10. package/docs/classes/index.FivePass.html +1 -1
  11. package/docs/classes/index.FiveRenderer.html +7 -2
  12. package/docs/classes/index.FlowingFireworks3DPass.html +1 -1
  13. package/docs/classes/index.FlowingLight2DPass.html +1 -1
  14. package/docs/classes/index.FlowingLight3DPass.html +1 -1
  15. package/docs/classes/index.GaussianBlurPass.html +1 -1
  16. package/docs/classes/index.InternalWebGPURenderer.html +4 -5
  17. package/docs/classes/index.Model.html +1 -1
  18. package/docs/classes/index.ModelScene.html +1 -1
  19. package/docs/classes/index.NetworkSubscribe.html +1 -1
  20. package/docs/classes/index.PBMCustomNode.html +1 -1
  21. package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +9 -9
  22. package/docs/classes/index.PBMGaussianSplattingObject.html +49 -11
  23. package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +71 -16
  24. package/docs/classes/index.PBMGroup.html +1 -1
  25. package/docs/classes/index.PBMMesh.html +1 -1
  26. package/docs/classes/index.PBMMeshBasicMaterial.html +1 -1
  27. package/docs/classes/index.PBMMeshBasicNodeMaterial.html +1 -1
  28. package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +1 -1
  29. package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +1 -1
  30. package/docs/classes/index.PBMMeshPhongMaterial.html +1 -1
  31. package/docs/classes/index.PBMMeshPhongNodeMaterial.html +1 -1
  32. package/docs/classes/index.PBMMeshPhysicalMaterial.html +1 -1
  33. package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +1 -1
  34. package/docs/classes/index.PBMPanoFilter.html +1 -1
  35. package/docs/classes/index.PBMPointCloud.html +1 -1
  36. package/docs/classes/index.PBMPointCloudMaterial.html +1 -1
  37. package/docs/classes/index.PBMSkinnedMesh.html +1 -1
  38. package/docs/classes/index.PBMUpdateable.html +1 -1
  39. package/docs/classes/index.PanoCircleMesh.html +1 -1
  40. package/docs/classes/index.PanoCircleMeshCustom.html +1 -1
  41. package/docs/classes/index.PanoCircleMeshSolid.html +1 -1
  42. package/docs/classes/index.Parameter.html +24 -22
  43. package/docs/classes/index.Scene.html +1 -1
  44. package/docs/classes/index.Subscribe.html +1 -1
  45. package/docs/classes/index.Tile3D.html +22 -22
  46. package/docs/classes/index.TileNode.html +2 -2
  47. package/docs/classes/index.TrajectoryNode.html +1 -1
  48. package/docs/classes/index.Work.html +15 -22
  49. package/docs/classes/index.WorkResolvedObserver.html +22 -22
  50. package/docs/functions/index.createWorks.html +1 -1
  51. package/docs/functions/index.parseWork.html +1 -1
  52. package/docs/hierarchy.html +1 -1
  53. package/docs/interfaces/index.AddableObject.html +1 -1
  54. package/docs/interfaces/index.AjaxOptions.html +1 -1
  55. package/docs/interfaces/index.BaseEvent.html +1 -1
  56. package/docs/interfaces/index.Clock.html +1 -1
  57. package/docs/interfaces/index.DeviceProfile.html +2 -2
  58. package/docs/interfaces/index.EventCallback.html +3 -3
  59. package/docs/interfaces/index.GestureEvent.html +1 -1
  60. package/docs/interfaces/index.IPBMMaterial.html +1 -1
  61. package/docs/interfaces/index.ImageOptions.html +1 -1
  62. package/docs/interfaces/index.IntersectEvent.html +1 -1
  63. package/docs/interfaces/index.IntersectMesh.html +1 -1
  64. package/docs/interfaces/index.IntersectMeshInterface.html +1 -1
  65. package/docs/interfaces/index.Intersection.html +1 -1
  66. package/docs/interfaces/index.LooseWorkWithExtrinsics.html +8 -8
  67. package/docs/interfaces/index.ModeChangeEvent.html +1 -1
  68. package/docs/interfaces/index.ModelControllerCustomInitArgs.html +1 -1
  69. package/docs/interfaces/index.ModelEvent.html +1 -1
  70. package/docs/interfaces/index.ModelSceneEvent.html +1 -1
  71. package/docs/interfaces/index.ModelTileEvent.html +1 -1
  72. package/docs/interfaces/index.MovePanoOptions.html +1 -1
  73. package/docs/interfaces/index.NetworkAbortError.html +1 -1
  74. package/docs/interfaces/index.NetworkFirbiddenError.html +1 -1
  75. package/docs/interfaces/index.NetworkOptions.html +1 -1
  76. package/docs/interfaces/index.NetworkProxyError.html +1 -1
  77. package/docs/interfaces/index.NetworkResourceEvent.html +1 -1
  78. package/docs/interfaces/index.NetworkResponseError.html +1 -1
  79. package/docs/interfaces/index.NetworkTimeoutError.html +1 -1
  80. package/docs/interfaces/index.ObjectEvent.html +1 -1
  81. package/docs/interfaces/index.PBMGaussianSplattingNodeMaterialOptions.html +3 -3
  82. package/docs/interfaces/index.PanoCircleMeshInterface.html +1 -1
  83. package/docs/interfaces/index.PanoEvent.html +1 -1
  84. package/docs/interfaces/index.PanoPrepareEvent.html +1 -1
  85. package/docs/interfaces/index.PanoTextureEvent.html +1 -1
  86. package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +1 -1
  87. package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +1 -1
  88. package/docs/interfaces/index.ParameterMaterialValue.html +8 -6
  89. package/docs/interfaces/index.ParameterTilesetValue.html +15 -15
  90. package/docs/interfaces/index.ParameterValue.html +21 -19
  91. package/docs/interfaces/index.Pose.html +1 -1
  92. package/docs/interfaces/index.RenderEvent.html +1 -1
  93. package/docs/interfaces/index.ResolvedParameterValue.html +22 -20
  94. package/docs/interfaces/index.SplatData.html +10 -6
  95. package/docs/interfaces/index.State.html +1 -1
  96. package/docs/interfaces/index.StateEvent.html +1 -1
  97. package/docs/interfaces/index.TextureOptions.html +1 -1
  98. package/docs/interfaces/index.Tile3DOptions.html +2 -2
  99. package/docs/interfaces/index.TopviewControllerCustomInitArgs.html +1 -1
  100. package/docs/interfaces/index.VRPanoramaControllerCustomInitArgs.html +1 -1
  101. package/docs/interfaces/index.ViewLayer.html +22 -22
  102. package/docs/interfaces/index.WorkCubeHdrGainmapImage.html +2 -2
  103. package/docs/interfaces/index.WorkCubeImage.html +2 -2
  104. package/docs/interfaces/index.WorkImage.html +5 -5
  105. package/docs/interfaces/index.WorkInitial.html +8 -8
  106. package/docs/interfaces/index.WorkInitialJson.html +2 -2
  107. package/docs/interfaces/index.WorkJson.html +2 -4
  108. package/docs/interfaces/index.WorkModel.html +8 -8
  109. package/docs/interfaces/index.WorkModelJson.html +2 -2
  110. package/docs/interfaces/index.WorkModelLayer.html +6 -6
  111. package/docs/interfaces/index.WorkModelLayerJson.html +2 -2
  112. package/docs/interfaces/index.WorkObserver.html +23 -23
  113. package/docs/interfaces/index.WorkObserverJson.html +2 -2
  114. package/docs/interfaces/index.WorkPanoramaJson.html +2 -2
  115. package/docs/interfaces/index.WorkPanoramasJson.html +2 -2
  116. package/docs/interfaces/index.WorkTile.html +5 -5
  117. package/docs/interfaces/index.WorkVideo.html +4 -4
  118. package/docs/interfaces/index.WorksEvent.html +1 -1
  119. package/docs/interfaces/index.XRControllerEvent.html +1 -1
  120. package/docs/interfaces/index.XRGestureEvent.html +2 -2
  121. package/docs/interfaces/index.XRPanoramaControllerCustomInitArgs.html +1 -1
  122. package/docs/interfaces/index.XRSessionEvent.html +1 -1
  123. package/docs/modules/index.html +1 -1
  124. package/docs/types/index.LegacyEventType.html +3 -3
  125. package/docs/types/index.OutputTextureDataType.html +1 -1
  126. package/docs/types/index.ParseOptions.html +8 -8
  127. package/docs/types/index.PointCloudTransparencyMode.html +2 -0
  128. package/docs/types/index.Works.html +1 -1
  129. package/docs/variables/index.loadAt3d.html +2 -0
  130. package/docs/variables/index.loadDome.html +2 -0
  131. package/docs/variables/index.loadDomez.html +2 -0
  132. package/docs/variables/index.loadGltf.html +2 -0
  133. package/docs/variables/index.loadPbm.html +2 -0
  134. package/docs/variables/index.loadPly.html +2 -0
  135. package/five/application/five.d.ts +13 -0
  136. package/five/chunks/at3d.js +338 -0
  137. package/five/chunks/at3d.mjs +338 -0
  138. package/five/chunks/dome.js +338 -0
  139. package/five/chunks/dome.mjs +338 -0
  140. package/five/chunks/domez.js +338 -0
  141. package/five/chunks/domez.mjs +338 -0
  142. package/five/chunks/fbx.js +338 -0
  143. package/five/chunks/fbx.mjs +338 -0
  144. package/five/chunks/fflate.js +338 -0
  145. package/five/chunks/fflate.mjs +338 -0
  146. package/five/chunks/glTF-helpers.js +804 -0
  147. package/five/chunks/glTF-helpers.mjs +804 -0
  148. package/five/chunks/gltf.js +338 -0
  149. package/five/chunks/gltf.mjs +338 -0
  150. package/five/chunks/imageBitmap.js +338 -0
  151. package/five/chunks/imageBitmap.mjs +338 -0
  152. package/five/chunks/imageSupport.js +338 -0
  153. package/five/chunks/imageSupport.mjs +338 -0
  154. package/five/chunks/lzma.js +383 -0
  155. package/five/chunks/lzma.mjs +383 -0
  156. package/five/chunks/memoryUsage.js +339 -0
  157. package/five/chunks/memoryUsage.mjs +339 -0
  158. package/five/chunks/minimal.js +338 -0
  159. package/five/chunks/minimal.mjs +338 -0
  160. package/five/chunks/pbm.js +338 -0
  161. package/five/chunks/pbm.mjs +338 -0
  162. package/five/chunks/pbmGaussianSplattingObject.js +338 -0
  163. package/five/chunks/pbmGaussianSplattingObject.mjs +338 -0
  164. package/five/chunks/pbmMeshMaterial.js +338 -0
  165. package/five/chunks/pbmMeshMaterial.mjs +338 -0
  166. package/five/chunks/pick.js +338 -0
  167. package/five/chunks/pick.mjs +338 -0
  168. package/five/chunks/ply.js +339 -0
  169. package/five/chunks/ply.mjs +339 -0
  170. package/five/chunks/spz.js +364 -0
  171. package/five/chunks/spz.mjs +364 -0
  172. package/five/controllers/xrPanorama.d.ts +13 -0
  173. package/five/core/internalWebGPURenderer.d.ts +0 -3
  174. package/five/core/panoVideo.d.ts +2 -0
  175. package/five/core/webglBlendEquationFix.d.ts +41 -0
  176. package/five/gaussian-splatting/arena/splatArena.d.ts +227 -0
  177. package/five/gaussian-splatting/cullConstants.d.ts +68 -0
  178. package/five/gaussian-splatting/hybridConstants.d.ts +60 -0
  179. package/five/gaussian-splatting/instancePacking.d.ts +46 -0
  180. package/five/gaussian-splatting/mirrors/layoutMirror.d.ts +44 -0
  181. package/five/gaussian-splatting/mirrors/mirrorBuffer.d.ts +72 -0
  182. package/five/gaussian-splatting/mirrors/mirrorSet.d.ts +17 -0
  183. package/five/gaussian-splatting/mirrors/objectParamsMirror.d.ts +35 -0
  184. package/five/gaussian-splatting/mirrors/transformMirror.d.ts +26 -0
  185. package/five/gaussian-splatting/pipelines/gpuSortPipeline.d.ts +5 -31
  186. package/five/gaussian-splatting/pipelines/pipelineMode.d.ts +1 -2
  187. package/five/gaussian-splatting/sh-core/codec.d.ts +13 -0
  188. package/five/gaussian-splatting/sh-core/constants.d.ts +29 -0
  189. package/five/gaussian-splatting/sh-core/index.d.ts +4 -0
  190. package/five/gaussian-splatting/sh-core/rebakePolicy.d.ts +20 -0
  191. package/five/gaussian-splatting/sh-core/texelRange.d.ts +18 -0
  192. package/five/gaussian-splatting/shAssembler.d.ts +14 -0
  193. package/five/gaussian-splatting/shBakeScheduler.d.ts +26 -0
  194. package/five/gaussian-splatting/shBaker.d.ts +44 -0
  195. package/five/gaussian-splatting/shTileResource.d.ts +22 -0
  196. package/five/gaussian-splatting/splatAssembler.d.ts +1 -1
  197. package/five/gaussian-splatting/transformStore.d.ts +2 -2
  198. package/five/gaussian-splatting/worker/decodeWorker.d.ts +72 -0
  199. package/five/index.d.ts +0 -1
  200. package/five/index.js +138 -640
  201. package/five/index.mjs +229 -29261
  202. package/five/model/index.d.ts +18 -6
  203. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +1 -1
  204. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +1 -1
  205. package/five/model/loaders/ply.d.ts +22 -6
  206. package/five/model/loaders/spz.d.ts +9 -49
  207. package/five/model/loaders/spz.worker.d.ts +37 -0
  208. package/five/model/materials/pbmGaussianSplattingNodeMaterial.d.ts +6 -12
  209. package/five/model/objects/pbmGaussianSplattingObject.d.ts +91 -6
  210. package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +357 -15
  211. package/five/model/parameter.d.ts +4 -0
  212. package/five/renderer/compute-renderers/binned/binned-core.d.ts +45 -2
  213. package/five/renderer/compute-renderers/binned/binned-pipelines.d.ts +82 -1
  214. package/five/renderer/compute-renderers/color-space.d.ts +13 -0
  215. package/five/renderer/compute-renderers/composite-pipelines.d.ts +36 -0
  216. package/five/renderer/compute-renderers/frame-plan.d.ts +166 -0
  217. package/five/renderer/compute-renderers/gsplat-hybrid-renderer.d.ts +386 -0
  218. package/five/renderer/compute-renderers/pointcloud-compute-renderer.d.ts +101 -16
  219. package/five/renderer/compute-renderers/shaders/composite-blend.d.ts +2 -0
  220. package/five/renderer/compute-renderers/shaders/gsplatHybridIndirect.d.ts +2 -0
  221. package/five/renderer/compute-renderers/shaders/gsplatProjector.d.ts +2 -0
  222. package/five/renderer/compute-renderers/shaders/gsplatQuad.d.ts +2 -0
  223. package/five/renderer/compute-renderers/shaders/lib/write-additive.d.ts +2 -0
  224. package/five/renderer/compute-renderers/shaders/lib/write-blend.d.ts +2 -0
  225. package/five/renderer/compute-renderers/shaders/lib/write-opaque.d.ts +2 -0
  226. package/five/renderer/compute-renderers/tile-uniform-writer.d.ts +70 -0
  227. package/five/renderer/compute-renderers/transparency-buffers.d.ts +59 -0
  228. package/five/renderer/compute-renderers/transparency-math.d.ts +70 -0
  229. package/five/renderer/compute-renderers/transparency-settings.d.ts +24 -0
  230. package/five/renderer/compute-renderers/uniform-layout.d.ts +11 -2
  231. package/five/renderer/five-renderer.d.ts +28 -3
  232. package/five/renderer/index.d.ts +1 -1
  233. package/five/renderer/postprocessing/passes/pass.js +3 -3
  234. package/five/renderer/postprocessing/passes/pass.mjs +3 -3
  235. package/five/renderer/tools/full-screen-quad.js +3 -3
  236. package/five/renderer/tools/full-screen-quad.mjs +3 -3
  237. package/five/texture/videoTextureBridge.d.ts +152 -0
  238. package/five/thirdparty/sha256.d.ts +149 -0
  239. package/five/utils/calculateThreeMouse.js +3 -3
  240. package/five/utils/calculateThreeMouse.mjs +3 -3
  241. package/five/utils/distance.js +3 -3
  242. package/five/utils/distance.mjs +3 -3
  243. package/five/utils/isNil.js +3 -3
  244. package/five/utils/isNil.mjs +3 -3
  245. package/five/utils/memoryUsage.d.ts +1 -1
  246. package/five/utils/uuid.js +3 -3
  247. package/five/utils/uuid.mjs +3 -3
  248. package/five/work/work.d.ts +0 -7
  249. package/five/work/workJsonType.d.ts +0 -2
  250. package/gltf-loader/index.js +3 -3
  251. package/gltf-loader/index.mjs +3 -50
  252. package/line/index.js +3 -3
  253. package/line/index.mjs +3 -88
  254. package/package.json +1 -1
  255. package/plugins/BackgroundPlugin/Controller.js +4 -4
  256. package/plugins/BackgroundPlugin/Controller.mjs +4 -4
  257. package/plugins/BackgroundPlugin/index.js +3 -3
  258. package/plugins/BackgroundPlugin/index.mjs +3 -3
  259. package/plugins/BasePlugin/index.js +3 -3
  260. package/plugins/BasePlugin/index.mjs +3 -3
  261. package/plugins/CSS2DPlugin/Controller.js +3 -3
  262. package/plugins/CSS2DPlugin/Controller.mjs +3 -3
  263. package/plugins/CSS2DPlugin/index.js +3 -3
  264. package/plugins/CSS2DPlugin/index.mjs +3 -3
  265. package/plugins/CSS2DPlugin/style.css_raw.js +4 -4
  266. package/plugins/CSS2DPlugin/style.css_raw.mjs +4 -4
  267. package/plugins/CSS3DPlugin/Controller.js +3 -3
  268. package/plugins/CSS3DPlugin/Controller.mjs +3 -3
  269. package/plugins/CSS3DPlugin/index.js +3 -3
  270. package/plugins/CSS3DPlugin/index.mjs +3 -3
  271. package/plugins/CSS3DPlugin/style.css_raw.js +4 -4
  272. package/plugins/CSS3DPlugin/style.css_raw.mjs +4 -4
  273. package/plugins/FloorplanPlugin/Controller.js +3 -3
  274. package/plugins/FloorplanPlugin/Controller.mjs +3 -3
  275. package/plugins/FloorplanPlugin/index.js +3 -3
  276. package/plugins/FloorplanPlugin/index.mjs +3 -3
  277. package/plugins/FloorplanPlugin/render/assets.js +3 -3
  278. package/plugins/FloorplanPlugin/render/assets.mjs +3 -3
  279. package/plugins/FloorplanPlugin/render/index.js +3 -3
  280. package/plugins/FloorplanPlugin/render/index.mjs +3 -3
  281. package/plugins/FloorplanPlugin/render/isPointInPolygon.js +3 -3
  282. package/plugins/FloorplanPlugin/render/isPointInPolygon.mjs +3 -3
  283. package/plugins/FloorplanPlugin/render/renderFloor.js +3 -3
  284. package/plugins/FloorplanPlugin/render/renderFloor.mjs +3 -3
  285. package/plugins/FloorplanPlugin/render/roomLabelVisibility.js +3 -3
  286. package/plugins/FloorplanPlugin/render/roomLabelVisibility.mjs +3 -3
  287. package/plugins/FloorplanPlugin/render/style.css_raw.js +4 -4
  288. package/plugins/FloorplanPlugin/render/style.css_raw.mjs +4 -4
  289. package/plugins/FloorplanPlugin/utils/changeMode.js +3 -3
  290. package/plugins/FloorplanPlugin/utils/changeMode.mjs +3 -3
  291. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.js +3 -3
  292. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.mjs +3 -3
  293. package/plugins/FloorplanPlugin/utils/correctFiveState.js +3 -3
  294. package/plugins/FloorplanPlugin/utils/correctFiveState.mjs +3 -3
  295. package/plugins/FloorplanPlugin/utils/equal.js +3 -3
  296. package/plugins/FloorplanPlugin/utils/equal.mjs +3 -3
  297. package/plugins/FloorplanPlugin/utils/filter.js +3 -3
  298. package/plugins/FloorplanPlugin/utils/filter.mjs +3 -3
  299. package/plugins/FloorplanPlugin/utils/fiveModelLoad.js +3 -3
  300. package/plugins/FloorplanPlugin/utils/fiveModelLoad.mjs +3 -3
  301. package/plugins/FloorplanPlugin/utils/formatData.js +3 -3
  302. package/plugins/FloorplanPlugin/utils/formatData.mjs +3 -3
  303. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.js +3 -3
  304. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.mjs +3 -3
  305. package/plugins/FloorplanPlugin/utils/formatPosition.js +3 -3
  306. package/plugins/FloorplanPlugin/utils/formatPosition.mjs +3 -3
  307. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.js +3 -3
  308. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.mjs +3 -3
  309. package/plugins/FloorplanPlugin/utils/getPxmm.js +3 -3
  310. package/plugins/FloorplanPlugin/utils/getPxmm.mjs +3 -3
  311. package/plugins/FloorplanPlugin/utils/isTruelyObject.js +3 -3
  312. package/plugins/FloorplanPlugin/utils/isTruelyObject.mjs +3 -3
  313. package/plugins/FloorplanPlugin/utils/nearlyEqual.js +3 -3
  314. package/plugins/FloorplanPlugin/utils/nearlyEqual.mjs +3 -3
  315. package/plugins/FloorplanPlugin/utils/polylabel.js +3 -3
  316. package/plugins/FloorplanPlugin/utils/polylabel.mjs +3 -3
  317. package/plugins/FloorplanPlugin/utils/to.js +3 -3
  318. package/plugins/FloorplanPlugin/utils/to.mjs +3 -3
  319. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.d.ts +6 -0
  320. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.js +3 -3
  321. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.mjs +3 -3
  322. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.js +3 -3
  323. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.mjs +3 -3
  324. package/plugins/Object3DHelperPlugin/Controller.js +3 -3
  325. package/plugins/Object3DHelperPlugin/Controller.mjs +3 -3
  326. package/plugins/Object3DHelperPlugin/Controllers/BaseController.js +3 -3
  327. package/plugins/Object3DHelperPlugin/Controllers/BaseController.mjs +3 -3
  328. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.js +3 -3
  329. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.mjs +3 -3
  330. package/plugins/Object3DHelperPlugin/Controllers/MoveController.js +3 -3
  331. package/plugins/Object3DHelperPlugin/Controllers/MoveController.mjs +3 -3
  332. package/plugins/Object3DHelperPlugin/Controllers/RotateController.js +3 -3
  333. package/plugins/Object3DHelperPlugin/Controllers/RotateController.mjs +3 -3
  334. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.js +3 -3
  335. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.mjs +3 -3
  336. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.js +3 -3
  337. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.mjs +3 -3
  338. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.js +3 -3
  339. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.mjs +3 -3
  340. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.js +3 -3
  341. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.mjs +3 -3
  342. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.js +3 -3
  343. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.mjs +3 -3
  344. package/plugins/Object3DHelperPlugin/constant.js +3 -3
  345. package/plugins/Object3DHelperPlugin/constant.mjs +3 -3
  346. package/plugins/Object3DHelperPlugin/index.js +3 -3
  347. package/plugins/Object3DHelperPlugin/index.mjs +3 -3
  348. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.js +3 -3
  349. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.mjs +3 -3
  350. package/plugins/Object3DHelperPlugin/utils/CenterHandle.js +3 -3
  351. package/plugins/Object3DHelperPlugin/utils/CenterHandle.mjs +3 -3
  352. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.js +3 -3
  353. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.mjs +3 -3
  354. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.js +3 -3
  355. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.mjs +3 -3
  356. package/plugins/Object3DHelperPlugin/utils/cameraHooks.js +3 -3
  357. package/plugins/Object3DHelperPlugin/utils/cameraHooks.mjs +3 -3
  358. package/plugins/Object3DHelperPlugin/utils/direction.js +3 -3
  359. package/plugins/Object3DHelperPlugin/utils/direction.mjs +3 -3
  360. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.js +3 -3
  361. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.mjs +3 -3
  362. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.js +3 -3
  363. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.mjs +3 -3
  364. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.js +3 -3
  365. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.mjs +3 -3
  366. package/plugins/Object3DHelperPlugin/utils/solidGuide.js +3 -3
  367. package/plugins/Object3DHelperPlugin/utils/solidGuide.mjs +3 -3
  368. package/plugins/Object3DHelperPlugin/utils/tipsDom.js +3 -3
  369. package/plugins/Object3DHelperPlugin/utils/tipsDom.mjs +3 -3
  370. package/plugins/PanoAnimePlugin/Controller.js +3 -3
  371. package/plugins/PanoAnimePlugin/Controller.mjs +3 -3
  372. package/plugins/PanoAnimePlugin/index.js +3 -3
  373. package/plugins/PanoAnimePlugin/index.mjs +3 -3
  374. package/plugins/WordPassPlugin/Controller.js +3 -3
  375. package/plugins/WordPassPlugin/Controller.mjs +3 -3
  376. package/plugins/WordPassPlugin/hersheyFont.js +3 -3
  377. package/plugins/WordPassPlugin/hersheyFont.mjs +3 -3
  378. package/plugins/WordPassPlugin/index.js +3 -3
  379. package/plugins/WordPassPlugin/index.mjs +3 -3
  380. package/plugins/WordPassPlugin/textToStrokeOrderStrokes.js +4 -4
  381. package/plugins/WordPassPlugin/textToStrokeOrderStrokes.mjs +4 -4
  382. package/plugins/WordPassPlugin/word-pass.js +3 -3
  383. package/plugins/WordPassPlugin/word-pass.mjs +3 -3
  384. package/plugins/index.js +3 -3
  385. package/plugins/index.mjs +3 -3
  386. package/plugins/thirdParty/CSS2DRenderer.js +3 -3
  387. package/plugins/thirdParty/CSS2DRenderer.mjs +3 -3
  388. package/plugins/thirdParty/CSS3DRenderer.js +3 -3
  389. package/plugins/thirdParty/CSS3DRenderer.mjs +3 -3
  390. package/plugins/thirdParty/doctorstrange-model.js +75 -75
  391. package/plugins/thirdParty/doctorstrange-model.mjs +75 -75
  392. package/plugins/thirdParty/domevents.js +3 -3
  393. package/plugins/thirdParty/domevents.mjs +3 -3
  394. package/plugins/utils/absoluteUrl.js +3 -3
  395. package/plugins/utils/absoluteUrl.mjs +3 -3
  396. package/plugins/utils/calculatePath.js +3 -3
  397. package/plugins/utils/calculatePath.mjs +3 -3
  398. package/plugins/utils/clamp.js +3 -3
  399. package/plugins/utils/clamp.mjs +3 -3
  400. package/plugins/utils/uuid.js +3 -3
  401. package/plugins/utils/uuid.mjs +3 -3
  402. package/react/hooks/useFiveModelReadyState.d.ts +1 -1
  403. package/react/index.js +3 -3
  404. package/react/index.mjs +3 -644
  405. package/sticker/index.d.ts +7 -0
  406. package/sticker/index.js +46 -3
  407. package/sticker/index.mjs +43 -103
  408. package/umd/five-gltf-loader.js +3 -3
  409. package/umd/five-line.js +3 -3
  410. package/umd/five-plugins.js +3 -3
  411. package/umd/five-react.js +2 -2
  412. package/umd/five-sticker.js +46 -3
  413. package/umd/five-vfx.js +2 -2
  414. package/umd/five.js +216 -179
  415. package/vfx/index.js +3 -3
  416. package/vfx/index.mjs +3 -486
  417. package/work-downloader/index.js +3 -3
  418. package/work-downloader/index.mjs +3 -315
  419. package/docs/functions/index.loadAt3d.html +0 -1
  420. package/docs/functions/index.loadDome.html +0 -1
  421. package/docs/functions/index.loadDomez.html +0 -1
  422. package/docs/functions/index.loadGltf.html +0 -1
  423. package/docs/functions/index.loadPbm.html +0 -1
  424. package/docs/functions/index.loadPly.html +0 -1
  425. package/five/certificates/hardware.d.ts +0 -1
  426. package/five/gaussian-splatting/shStore.d.ts +0 -22
  427. package/five/thirdparty/jsrsasign.d.ts +0 -753
  428. package/five/work/keychain.d.ts +0 -5
  429. package/five/work/verify.d.ts +0 -7
  430. package/five/work/workVerify.d.ts +0 -2
  431. /package/five/{work/_ALLOW_HOST.d.ts → renderer/compute-renderers/shaders/composite-additive.d.ts} +0 -0
@@ -14,12 +14,24 @@ export { PBMMeshPhongNodeMaterial, } from './materials/nodes/pbmMeshPhongNodeMat
14
14
  export { PBMMeshPhysicalNodeMaterial, } from './materials/nodes/pbmMeshPhysicalNodeMaterial';
15
15
  export { PBMMeshPanoOnlyNodeMaterial, } from './materials/nodes/pbmMeshPanoOnlyNodeMaterial';
16
16
  export { type LoadResultType } from "./loaders/shared";
17
- export { loadPbm } from "./loaders/pbm";
18
- export { loadAt3d } from "./loaders/at3d";
19
- export { loadDome } from "./loaders/dome";
20
- export { loadDomez } from "./loaders/domez";
21
- export { loadPly } from "./loaders/ply";
22
- export { loadGltf } from "./loaders/gltf";
17
+ import type { loadPbm as LoadPbmFn } from "./loaders/pbm";
18
+ import type { loadAt3d as LoadAt3dFn } from "./loaders/at3d";
19
+ import type { loadDome as LoadDomeFn } from "./loaders/dome";
20
+ import type { loadDomez as LoadDomezFn } from "./loaders/domez";
21
+ import type { loadPly as LoadPlyFn } from "./loaders/ply";
22
+ import type { loadGltf as LoadGltfFn } from "./loaders/gltf";
23
+ /** 加载 PBM 格式模型(懒加载版本,实际实现见 `./loaders/pbm` 中的 `loadPbm`)。 */
24
+ export declare const loadPbm: typeof LoadPbmFn;
25
+ /** 加载 AT3D 格式模型(懒加载版本,实际实现见 `./loaders/at3d` 中的 `loadAt3d`)。 */
26
+ export declare const loadAt3d: typeof LoadAt3dFn;
27
+ /** 加载 Dome 格式全景模型(懒加载版本,实际实现见 `./loaders/dome` 中的 `loadDome`)。 */
28
+ export declare const loadDome: typeof LoadDomeFn;
29
+ /** 加载 Domez 格式全景模型(懒加载版本,实际实现见 `./loaders/domez` 中的 `loadDomez`)。 */
30
+ export declare const loadDomez: typeof LoadDomezFn;
31
+ /** 加载 PLY 格式模型(懒加载版本,实际实现见 `./loaders/ply` 中的 `loadPly`)。 */
32
+ export declare const loadPly: typeof LoadPlyFn;
33
+ /** 加载 glTF/GLB 格式模型(懒加载版本,实际实现见 `./loaders/gltf` 中的 `loadGltf`)。 */
34
+ export declare const loadGltf: typeof LoadGltfFn;
23
35
  export { type TilesetHeader, type TileHeader, type TrajectoryHeader } from './tile3d/header';
24
36
  export { Tile, type TileContentData } from './tile3d/tile';
25
37
  export { TileNode } from './tile3d/tile-node';
@@ -1,7 +1,7 @@
1
1
  import * as THREE from 'three/webgpu';
2
2
  import { BaseExtension } from './base';
3
3
  import type { Parser } from '../parser';
4
- import { PBMGaussianSplattingObject } from '../../../objects/pbmGaussianSplattingObject';
4
+ import type { PBMGaussianSplattingObject } from '../../../objects/pbmGaussianSplattingObject';
5
5
  export declare const EXTENSION_NAME = "KHR_gaussian_splatting_compression_spz";
6
6
  export declare class KHR_gaussian_splatting_compression_spz extends BaseExtension {
7
7
  load(gaussianSplattingExtension: {
@@ -1,7 +1,7 @@
1
1
  import * as THREE from 'three/webgpu';
2
2
  import { BaseExtension } from './base';
3
3
  import type { Parser } from '../parser';
4
- import { PBMGaussianSplattingObject } from '../../../objects/pbmGaussianSplattingObject';
4
+ import type { PBMGaussianSplattingObject } from '../../../objects/pbmGaussianSplattingObject';
5
5
  export interface GaussianSplattingExtensionSpz2 {
6
6
  bufferView: number;
7
7
  }
@@ -3,12 +3,8 @@ import { Fetcher } from "../../utils/ajax";
3
3
  import { LoadResultType } from './shared';
4
4
  import { PBMPointCloud } from '../objects/pbmPointCloud';
5
5
  import { PBMMesh } from '../objects/pbmMesh';
6
- export declare function loadPly<Type extends 'geometry' | 'line' | 'pbmMesh' | 'pbmPointCloud', ResultType = {
7
- 'geometry': THREE.BufferGeometry;
8
- 'line': THREE.Line<THREE.BufferGeometry>;
9
- 'pbmMesh': PBMMesh;
10
- 'pbmPointCloud': PBMPointCloud;
11
- }[Type]>(url: string, options?: {
6
+ import { PBMGaussianSplattingObject } from '../objects/pbmGaussianSplattingObject';
7
+ interface PlyBuildOptions {
12
8
  modelUpAxis?: 'Y' | 'Z';
13
9
  upAxis?: 'Y' | 'Z';
14
10
  light?: boolean;
@@ -18,7 +14,27 @@ export declare function loadPly<Type extends 'geometry' | 'line' | 'pbmMesh' | '
18
14
  itemNames: string[];
19
15
  normalized?: boolean;
20
16
  }>;
17
+ }
18
+ /**
19
+ * 加载 PLY。
20
+ *
21
+ * type 为 'auto' 时按 header 自动识别:
22
+ * - 3DGS PLY(含 f_dc / opacity / scale / rot 等属性,可带 f_rest SH)→ PBMGaussianSplattingObject,解码在 Worker 中完成
23
+ * - 其它 PLY → PBMPointCloud(与 type: 'pbmPointCloud' 完全一致)
24
+ * - supersplat compressed PLY → 报错
25
+ *
26
+ * 坐标约定对所有 type 一致:modelUpAxis === 'Y' 时施加 ROTATE_X_MATRIX,
27
+ * upAxis === 'Y' 时施加 ROTATE_X_MATRIX_INVERSE,默认均为 'Z'。
28
+ */
29
+ export declare function loadPly<Type extends 'geometry' | 'line' | 'pbmMesh' | 'pbmPointCloud' | 'auto', ResultType = {
30
+ 'geometry': THREE.BufferGeometry;
31
+ 'line': THREE.Line<THREE.BufferGeometry>;
32
+ 'pbmMesh': PBMMesh;
33
+ 'pbmPointCloud': PBMPointCloud;
34
+ 'auto': PBMPointCloud | PBMGaussianSplattingObject;
35
+ }[Type]>(url: string, options?: PlyBuildOptions & {
21
36
  type?: Type;
22
37
  fetcher?: Fetcher;
23
38
  onDownloadProgress?: (percent: number, loaded?: number, total?: number) => void;
24
39
  }): Promise<LoadResultType<ResultType>>;
40
+ export {};
@@ -1,62 +1,22 @@
1
1
  import { Fetcher } from "../../utils/ajax";
2
- import type { PBMGaussianSplattingObject } from '../objects/pbmGaussianSplattingObject';
3
2
  import { LoadResultType } from './shared';
3
+ import type { DecodeKind } from '../../gaussian-splatting/worker/decodeWorker';
4
+ export { detectPlyKind } from '../../gaussian-splatting/worker/decodeWorker';
5
+ export type { DecodeKind, DecodedSpz, DecodedGaussianPlyPacked, PlyKind } from '../../gaussian-splatting/worker/decodeWorker';
4
6
  /**
5
- * SPZ 纯解码的输出:仅包含原始属性数组(无 THREE / DOM 依赖),
6
- * 因此可在 Worker 中安全运行。`packedData` 预留给后续在 Worker 内
7
- * 用 WASM pack 后回填(见 Task 1.2)。
7
+ * 按 kind 把字节流发到共享解码 Worker。
8
+ * transfer=true 且 bytes 恰好覆盖整个 ArrayBuffer 时直接转移所有权(不拷贝,调用方之后不能再用该 buffer);
9
+ * 否则拷贝出独立 ArrayBuffer 再转移。
8
10
  */
9
- export interface DecodedSpz {
10
- numPoints: number;
11
- shDegree: number;
12
- positions: Float32Array;
13
- colors: Uint8Array;
14
- scales: Float32Array;
15
- rotations: Float32Array;
16
- sh1?: Float32Array;
17
- sh2?: Float32Array;
18
- sh3?: Float32Array;
19
- /** Worker 内 WASM pack 好的 8 uint32/splat GPU 数据(Task 1.2 填入)。 */
20
- packedData?: Uint32Array;
21
- }
22
- /**
23
- * 纯解码函数:把 SPZ 字节流(gzip)解码为原始属性数组。
24
- *
25
- * - 不触碰主线程 / DOM,仅使用 `DecompressionStream`、`DataView`、TypedArray,
26
- * 因此可在 Worker 内直接运行。
27
- * - 保留 magic / version 校验(非法魔数或不支持的版本会 reject)。
28
- * - 数据不足(读越界)时由 `GunzipReader` 抛出 `Unexpected EOF` 而 reject。
29
- */
30
- export declare function decodeSpz(fileBytes: Uint8Array | ArrayBuffer): Promise<DecodedSpz>;
11
+ export declare function decodeInWorker<T>(kind: DecodeKind, bytes: Uint8Array, transfer?: boolean): Promise<T>;
31
12
  /**
32
13
  * 解析 spz 格式数据为 `PBMGaussianSplattingObject`。
33
- *
34
- * - 解码 + WASM pack 全部在 `SPZ_Decode_Worker` 内完成,主线程不阻塞、
35
- * 不重复 decode/pack(多路复用调度见文件末尾第 3 节)。
36
- * - 仅在主线程动态 import 并构造 `PBMGaussianSplattingObject`(THREE 依赖),
37
- * 避免把 THREE 打进 worker 包。
38
- * @returns Promise<PBMGaussianSplattingObject>
14
+ * 解码 + WASM pack 全部在共享解码 Worker 内完成,主线程不阻塞。
39
15
  */
40
- export declare function parseSpz(fileBytes: Uint8Array | ArrayBuffer): Promise<PBMGaussianSplattingObject>;
16
+ export declare function parseSpz(fileBytes: Uint8Array | ArrayBuffer): Promise<any>;
41
17
  export declare function loadSpz(url: string, options?: {
42
18
  modelUpAxis?: 'Y' | 'Z';
43
19
  upAxis?: 'Y' | 'Z';
44
20
  fetcher?: Fetcher;
45
21
  onDownloadProgress?: (percent: number, loaded?: number, total?: number) => void;
46
22
  }): Promise<LoadResultType>;
47
- /** SPZ_Decode_Worker 的解码请求。 */
48
- export interface SpzDecodeRequest {
49
- requestId: number;
50
- fileBytes: ArrayBuffer;
51
- }
52
- /** SPZ_Decode_Worker 的解码响应(成功回传 decoded,失败回传 error)。 */
53
- export interface SpzDecodeResponse {
54
- requestId: number;
55
- decoded?: DecodedSpz;
56
- error?: string;
57
- }
58
- /**
59
- * 构造一个 SPZ_Decode_Worker 实例(自引用 inline worker)。
60
- * 主线程的多路复用调度基于该入口创建共享 Worker。
61
- */
62
- export declare function createSpzDecodeWorker(): Worker;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * SPZ 纯解码的输出:仅包含原始属性数组(无 THREE / DOM 依赖),
3
+ * 因此可在 Worker 中安全运行。`packedData` 为 Worker 内 WASM pack 后回填。
4
+ */
5
+ export interface DecodedSpz {
6
+ numPoints: number;
7
+ shDegree: number;
8
+ positions: Float32Array;
9
+ colors: Uint8Array;
10
+ scales: Float32Array;
11
+ rotations: Float32Array;
12
+ sh1?: Float32Array;
13
+ sh2?: Float32Array;
14
+ sh3?: Float32Array;
15
+ /** Worker 内 WASM pack 好的 8 uint32/splat GPU 数据。 */
16
+ packedData?: Uint32Array;
17
+ }
18
+ /**
19
+ * 纯解码函数:把 SPZ 字节流(gzip)解码为原始属性数组。
20
+ *
21
+ * - 不触碰主线程 / DOM,仅使用 `DecompressionStream`、`DataView`、TypedArray,
22
+ * 因此可在 Worker 内直接运行。
23
+ * - 保留 magic / version 校验(非法魔数或不支持的版本会 reject)。
24
+ * - 数据不足(读越界)时由 `GunzipReader` 抛出 `Unexpected EOF` 而 reject。
25
+ */
26
+ export declare function decodeSpz(fileBytes: Uint8Array | ArrayBuffer): Promise<DecodedSpz>;
27
+ /** SPZ_Decode_Worker 的解码请求。 */
28
+ export interface SpzDecodeRequest {
29
+ requestId: number;
30
+ fileBytes: ArrayBuffer;
31
+ }
32
+ /** SPZ_Decode_Worker 的解码响应(成功回传 decoded,失败回传 error)。 */
33
+ export interface SpzDecodeResponse {
34
+ requestId: number;
35
+ decoded?: DecodedSpz;
36
+ error?: string;
37
+ }
@@ -15,13 +15,13 @@
15
15
  * texel0: [posX/Y/Z 的 float32 位模式(bitcast), RGBA(uint8×4) 颜色]
16
16
  * texel1: [cov00|cov01, cov02|cov11, cov12|cov22 的 half(unpack2x16float), transformIndex<<16|layerIndex]
17
17
  * - u_transforms RGBA32F (9 宽) — 每对象 36 float = matrixWorld16 + selected4 + inverse(matrixWorld)16
18
- * - u_shTexture RGBA32F — SH 系数(degree 1/2/3 线性展开)
18
+ * - bakedColorTexture RGBA16F (2048 宽,1 texel/splat) — SHBaker 按全局点索引 P 烘焙的 DC+SH 颜色(shBaked 变体才读)
19
19
  */
20
20
  import * as THREE from 'three/webgpu';
21
21
  export interface PBMGaussianSplattingNodeMaterialOptions {
22
22
  numGsLayers?: number;
23
23
  numGsClippers?: number;
24
- maxShDegree?: number;
24
+ shBaked?: boolean;
25
25
  }
26
26
  export declare class PBMGaussianSplattingNodeMaterial extends THREE.NodeMaterial {
27
27
  readonly isPBMGaussianSplattingMaterial: true;
@@ -29,17 +29,17 @@ export declare class PBMGaussianSplattingNodeMaterial extends THREE.NodeMaterial
29
29
  transformsTexture: THREE.DataTexture | null;
30
30
  transformIndicesTexture: THREE.DataTexture | null;
31
31
  layerIndicesTexture: THREE.DataTexture | null;
32
- shTexture: THREE.DataTexture | null;
32
+ bakedColorTexture: THREE.Texture | null;
33
33
  numPoints: number;
34
34
  useOrderTexture: boolean;
35
35
  orderTexture: THREE.Texture | null;
36
- shTextureSize: THREE.Vector2;
36
+ instanceSize: number;
37
37
  aggregationEnabled: boolean;
38
38
  aggregationProgress: number;
39
39
  aggregationPointDuration: number;
40
40
  aggregationBoundsMin: THREE.Vector3;
41
41
  aggregationBoundsMax: THREE.Vector3;
42
- maxShDegree: number;
42
+ shBaked: boolean;
43
43
  numGsLayers: number;
44
44
  numGsClippers: number;
45
45
  layerClipperRanges: THREE.Vector2[];
@@ -50,8 +50,7 @@ export declare class PBMGaussianSplattingNodeMaterial extends THREE.NodeMaterial
50
50
  private _uTransformsTex;
51
51
  private _uTransformIndicesTex;
52
52
  private _uLayerIndicesTex;
53
- private _uShTex;
54
- private _uShTextureSize;
53
+ private _uBakedColorTex;
55
54
  private _uAggregationEnabled;
56
55
  private _uAggregationProgress;
57
56
  private _uAggregationPointDuration;
@@ -75,11 +74,6 @@ export declare class PBMGaussianSplattingNodeMaterial extends THREE.NodeMaterial
75
74
  * 否则会创建占位 EmptyTexture;之后通过 `.value = newTex` 替换即可。
76
75
  */
77
76
  private _ensureUniforms;
78
- /**
79
- * 计算 SH 纹理 UV(整数行列)——与 GLSL getSHDataUV 逻辑一致
80
- * paddedComponentCount = ceil(shComponentCount/4)*4
81
- */
82
- private _buildSHUv;
83
77
  setup(builder: THREE.NodeBuilder): void;
84
78
  copy(source: PBMGaussianSplattingNodeMaterial): this;
85
79
  }
@@ -1,5 +1,19 @@
1
1
  import * as THREE from "three/webgpu";
2
2
  import type { PBMClipperParameter } from "../materials/pbmMaterial";
3
+ /**
4
+ * 给 THREE.Object3D 的事件表加一个 'dispose' 事件,供 PBMGaussianSplattingObject.dispose 时广播;
5
+ * compute 路径的 Arena 据此释放该 tile 占用的 per-tile GPU 缓冲
6
+ * (gsplat-compute-arena Requirement 13.8)。
7
+ *
8
+ * 声明方式与 `pbmPointCloud.ts` / `pbmPointCloudObject.ts` 现有的同款扩展一致。interface 合并
9
+ * 允许同名成员重复声明,前提是类型完全相同(否则报 TS2717);这几处都声明为 `dispose: {}`,
10
+ * 已实测编译通过,因此各模块各自自洽、互不依赖,不需要从别处 import 类型。
11
+ */
12
+ declare module 'three/webgpu' {
13
+ interface Object3DEventMap {
14
+ dispose: {};
15
+ }
16
+ }
3
17
  export interface SplatData {
4
18
  numPoints: number;
5
19
  positions?: Float32Array;
@@ -13,10 +27,16 @@ export interface SplatData {
13
27
  * 由 worker 内 WASM `_pack` 生成后回传(见 Task 1.2 / 3.1)。
14
28
  */
15
29
  packedData?: Uint32Array;
16
- sh1?: Float32Array;
17
- sh2?: Float32Array;
18
- sh3?: Float32Array;
30
+ /** 8 位量化打包后的 SH(sh-core 布局,SH_UINT32_PER_SPLAT[shDegree] uint32/splat) */
31
+ shPacked?: Uint32Array;
19
32
  shDegree?: number;
33
+ /** SH 量化范围,缺省 1(SPZ) */
34
+ shMax?: number;
35
+ /**
36
+ * 数据是否经过抗锯齿(Mip-Splatting)训练,来自 SPZ header flags 的 bit0。
37
+ * 由 `spz.ts` 的 `DecodedSpz.flagAntiAlias` 透传而来(gsplat-compute-cull R4.2)。
38
+ */
39
+ antiAliased?: boolean;
20
40
  }
21
41
  /**
22
42
  * 3DGS 源对象:承载 BufferGeometry 属性 + world matrix,不参与直接绘制
@@ -27,24 +47,75 @@ export declare class PBMGaussianSplattingObject extends THREE.Points<THREE.Buffe
27
47
  transformChanged: boolean;
28
48
  selectedChanged: boolean;
29
49
  transferDetached: boolean;
50
+ /**
51
+ * 渲染参数(`preBlurAmount` / `blurAmount`)变化标记。
52
+ *
53
+ * **与 `transformChanged` 刻意分开**:这类参数只影响屏幕空间的形状与不透明度,
54
+ * 不改变点的深度,因此不影响深度排序——只需重传 Object_Params_Mirror,
55
+ * 不必触发重排序,也不必碰 transform 数据(gsplat-compute-cull R4.9)。
56
+ */
57
+ renderParamsChanged: boolean;
30
58
  numPoints: number;
31
59
  maxSHDegree: number;
32
60
  usedSHDegree: number;
61
+ initAnimationEnabled: boolean;
33
62
  gsViewLayerKey: string;
34
63
  gsClippers: readonly PBMClipperParameter[];
35
64
  /** 加载时在 worker 中预 pack 好的 GPU 数据(8 uint32/splat) */
36
65
  packedData: Uint32Array;
66
+ /** 8 位量化打包后的 SH,布局见 sh-core/codec.ts;无 SH 时为 null */
67
+ shPacked: Uint32Array | null;
68
+ /** SH 量化范围:解码为 (b - 128) / 128 * shMax */
69
+ shMax: number;
70
+ /** 局部包围盒中心(构造时缓存),用于 SH 重算判据中的 tile 距离 */
71
+ readonly localBoxCenter: THREE.Vector3;
72
+ /**
73
+ * 数据是否经过抗锯齿(Mip-Splatting)训练。来自 SPZ header flags 的 bit0。
74
+ *
75
+ * 决定 `preBlurAmount` / `blurAmount` 的默认取值,即渲染端走纯 dilation
76
+ * 还是「2D mip 低通 + opacity 补偿」路径。
77
+ *
78
+ * 数据来源不提供该标志时(非 SPZ 来源、或旧数据)按 `false` 处理,即保守地
79
+ * 走 dilation 路径——宁可偏胖也不偏亮(gsplat-compute-cull R4.12)。
80
+ */
81
+ readonly antiAliased: boolean;
37
82
  private _selected;
83
+ private _disposed;
38
84
  private _boundingBox;
39
85
  lastMatrixWorld: THREE.Matrix4 | null;
86
+ /** `preBlurAmount` 的手动覆盖值;`null` 表示未覆盖、按 `antiAliased` 推导默认值。 */
87
+ private _preBlurAmount;
88
+ /** `blurAmount` 的手动覆盖值;`null` 表示未覆盖、按 `antiAliased` 推导默认值。 */
89
+ private _blurAmount;
90
+ /**
91
+ * 投影后 2D 协方差对角线上的「纯膨胀」量,单位屏幕空间方差 px²。
92
+ *
93
+ * 只放大 splat、**不**调整 opacity,用于让亚像素 splat 不至于消失或闪烁
94
+ * (即 Inria 原版 3DGS 的 dilation trick)。代价是远景 splat 会偏亮偏胖
95
+ * ——能量没有随面积增大而摊薄。
96
+ *
97
+ * 默认:`antiAliased` 数据为 0(不需要这层兜底),否则为 `PRE_BLUR_DEFAULT_NON_AA`。
98
+ */
99
+ get preBlurAmount(): number;
100
+ set preBlurAmount(value: number);
101
+ /**
102
+ * 投影后 2D 协方差对角线上的「低通核」量,单位屏幕空间方差 px²。
103
+ *
104
+ * 除膨胀协方差外还按 `ρ = sqrt(det(Σ) / det(Σ + εI))` 补偿 opacity,使 splat 的
105
+ * 积分能量守恒——面积变大、浓度变淡,于是既不闪烁也不变亮。这就是 Mip-Splatting
106
+ * 在 2D 端的抗锯齿(EWA 低通滤波的近似),等价于 gsplat 的 `rasterize_mode="antialiased"`。
107
+ *
108
+ * 默认:`antiAliased` 数据为 `BLUR_DEFAULT_AA`(**须与训练一致**),否则为 0(不启用)。
109
+ */
110
+ get blurAmount(): number;
111
+ set blurAmount(value: number);
112
+ /** 清除两个补偿参数的手动覆盖,回到由 `antiAliased` 推导的默认值。 */
113
+ resetBlurAmounts(): void;
40
114
  get positions(): Float32Array;
41
115
  get rotations(): Float32Array;
42
116
  get scales(): Float32Array;
43
117
  get colors(): Uint8Array;
44
118
  get selection(): Uint8Array;
45
- get sh1(): Float32Array | undefined;
46
- get sh2(): Float32Array | undefined;
47
- get sh3(): Float32Array | undefined;
48
119
  constructor(splatData?: SplatData);
49
120
  serialize(): Uint8Array<ArrayBuffer>;
50
121
  reattach(positions: ArrayBufferLike, rotations: ArrayBufferLike, scales: ArrayBufferLike, colors: ArrayBufferLike, selection: ArrayBufferLike): void;
@@ -68,6 +139,20 @@ export declare class PBMGaussianSplattingObject extends THREE.Points<THREE.Buffe
68
139
  * 返回 6 个上三角分量 [s00, s01, s02, s11, s12, s22],数据不足时返回 null。
69
140
  */
70
141
  decodeCov3D(index: number): Float32Array | null;
142
+ /**
143
+ * 释放自身资源,并在释放之后派发一次 'dispose' 事件
144
+ * (gsplat-compute-arena Requirement 13.1)。
145
+ *
146
+ * 该事件供 compute 路径的 Arena 释放这个 tile 的 per-tile GPU 缓冲。
147
+ *
148
+ * **已核实的事实(勿据此误判主次)**:当前 tile 卸载链路走的是 `TileNode.dispose()`,
149
+ * 而后者只执行 `disposers` 闭包、不遍历 `pbmObjects` 逐个调 `dispose()`。所以从 tile 卸载到这里
150
+ * **不存在调用链,这个事件在当前代码里实际不会被触发**。
151
+ * 它只是防御性的第二条释放路径(将来若有调用方直接 dispose 单个 3DGS 对象,资源不会漏),
152
+ * 真正生效的主路径是 Arena 侧的「从 tile 集合移除时释放」。
153
+ *
154
+ * 守卫使重复调用只派发一次;`geometry.dispose()` 本身幂等,加守卫不改变既有语义。
155
+ */
71
156
  dispose(): void;
72
157
  raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
73
158
  }