@realsee/five 6.9.0-alpha.0 → 6.9.0-alpha.1

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 (266) hide show
  1. package/ai_guides/3dgs-current-branch-changes.md +237 -0
  2. package/docs/assets/hierarchy.js +1 -1
  3. package/docs/assets/highlight.css +18 -18
  4. package/docs/assets/navigation.js +1 -1
  5. package/docs/assets/search.js +1 -1
  6. package/docs/classes/five.AdaptiveLuminancePass.html +1 -1
  7. package/docs/classes/five.BoundingMesh.html +1 -1
  8. package/docs/classes/five.Camera.html +1 -1
  9. package/docs/classes/five.EyeDomeLightingPass.html +1 -1
  10. package/docs/classes/five.Five.html +4 -4
  11. package/docs/classes/five.FivePass.html +1 -1
  12. package/docs/classes/five.FlowingFireworks3DPass.html +30 -0
  13. package/docs/classes/five.FlowingLight2DPass.html +1 -1
  14. package/docs/classes/five.FlowingLight3DPass.html +1 -1
  15. package/docs/classes/five.GaussianBlurPass.html +1 -1
  16. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  17. package/docs/classes/five.Model.html +2 -2
  18. package/docs/classes/five.ModelScene.html +1 -1
  19. package/docs/classes/five.NetworkSubscribe.html +2 -2
  20. package/docs/classes/five.PBMContainer.html +1 -1
  21. package/docs/classes/five.PBMCustomShader.html +2 -2
  22. package/docs/classes/five.PBMGSObject.html +7 -7
  23. package/docs/classes/five.PBMGroup.html +1 -1
  24. package/docs/classes/five.PBMMesh.html +1 -1
  25. package/docs/classes/five.PBMMeshMaterial.html +1 -1
  26. package/docs/classes/five.PBMPanoFilter.html +2 -2
  27. package/docs/classes/five.PBMPointCloud.html +1 -1
  28. package/docs/classes/five.PBMPointCloudMaterial.html +1 -1
  29. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  30. package/docs/classes/five.PBMUpdateable.html +2 -2
  31. package/docs/classes/five.PanoCircleMesh.html +1 -1
  32. package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
  33. package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
  34. package/docs/classes/five.Parameter.html +1 -1
  35. package/docs/classes/five.Scene.html +1 -1
  36. package/docs/classes/five.Subscribe.html +2 -2
  37. package/docs/classes/five.Tile3D.html +1 -1
  38. package/docs/classes/five.TileNode.html +1 -1
  39. package/docs/classes/five.TrajectoryNode.html +1 -1
  40. package/docs/classes/five.WorkResolvedObserver.html +2 -2
  41. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  42. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  43. package/docs/classes/gltf-loader.GLTFLoader.html +2 -2
  44. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  45. package/docs/classes/gltf-loader.THREEGLTFLoader.html +1 -1
  46. package/docs/classes/line.Line.html +1 -1
  47. package/docs/classes/line.LineGeometry.html +1 -1
  48. package/docs/classes/line.LineMaterial.html +1 -1
  49. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  50. package/docs/classes/line.THREE_Line2.html +1 -1
  51. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  52. package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
  53. package/docs/classes/plugins.CSS2DObject.html +1 -1
  54. package/docs/classes/plugins.CSS3DObject.html +1 -1
  55. package/docs/classes/plugins.CSS3DSprite.html +1 -1
  56. package/docs/classes/plugins.InstancedPrefabBufferGeometry.html +1 -1
  57. package/docs/classes/plugins.Object3DHelperController.html +1 -1
  58. package/docs/classes/plugins.PointBufferGeometry.html +1 -1
  59. package/docs/classes/plugins.PrefabBufferGeometry.html +1 -1
  60. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  61. package/docs/classes/react.Store.html +1 -1
  62. package/docs/classes/sticker.Sticker.html +2 -2
  63. package/docs/classes/vfx.Airflow.html +1 -1
  64. package/docs/classes/vfx.Flame.html +1 -1
  65. package/docs/classes/vfx.Particle.html +1 -1
  66. package/docs/classes/vfx.ParticleGPU.html +1 -1
  67. package/docs/classes/vfx.SpotLight.html +1 -1
  68. package/docs/documents/3dgs-current-branch-changes.html +205 -0
  69. package/docs/documents/api.html +6 -6
  70. package/docs/documents/features_3dtile.html +4 -4
  71. package/docs/documents/features_camera-animation.html +10 -10
  72. package/docs/documents/features_clipper.html +3 -3
  73. package/docs/documents/features_coordinate-system.html +3 -3
  74. package/docs/documents/features_event.html +10 -10
  75. package/docs/documents/features_five.html +4 -4
  76. package/docs/documents/features_flowing-fireworks-3d-pass.html +7 -7
  77. package/docs/documents/features_flowing-light-2d-pass.html +11 -11
  78. package/docs/documents/features_flowing-light-3d-pass.html +11 -11
  79. package/docs/documents/features_gaussian-blur-pass.html +6 -6
  80. package/docs/documents/features_gesture.html +6 -6
  81. package/docs/documents/features_get-screen-pixels.html +4 -4
  82. package/docs/documents/features_image-options.html +5 -5
  83. package/docs/documents/features_load-external-model.html +8 -8
  84. package/docs/documents/features_load-progress.html +7 -7
  85. package/docs/documents/features_material.html +3 -3
  86. package/docs/documents/features_mode.html +11 -11
  87. package/docs/documents/features_model.html +4 -4
  88. package/docs/documents/features_move-pano-effect.html +5 -5
  89. package/docs/documents/features_multi-work.html +5 -5
  90. package/docs/documents/features_pano-filter.html +3 -3
  91. package/docs/documents/features_pano-tile.html +4 -4
  92. package/docs/documents/features_pano-uv.html +4 -4
  93. package/docs/documents/features_parameter.html +7 -7
  94. package/docs/documents/features_plugin.html +4 -4
  95. package/docs/documents/features_postprocessing.html +5 -5
  96. package/docs/documents/features_raycast.html +4 -4
  97. package/docs/documents/features_request-proxy.html +4 -4
  98. package/docs/documents/features_screen-project.html +3 -3
  99. package/docs/documents/features_state.html +4 -4
  100. package/docs/documents/features_view-layer.html +4 -4
  101. package/docs/documents/features_work.html +5 -5
  102. package/docs/documents/quick-start.html +2 -2
  103. package/docs/documents/release_notes_6.6.html +4 -4
  104. package/docs/documents/release_notes_6.7.html +14 -14
  105. package/docs/documents/release_notes_6.8.html +4 -4
  106. package/docs/functions/react.useFiveAction.html +6 -6
  107. package/docs/functions/react.useFiveCurrentObserver.html +1 -1
  108. package/docs/functions/react.useFiveCurrentState.html +1 -1
  109. package/docs/functions/react.useFiveEventCallback.html +1 -1
  110. package/docs/functions/react.useFiveFloor.html +1 -1
  111. package/docs/functions/react.useFiveHelper.html +1 -1
  112. package/docs/functions/react.useFiveModelIntersectRaycaster.html +2 -2
  113. package/docs/functions/react.useFiveProject2d.html +2 -2
  114. package/docs/functions/react.useFiveSceneEffect.html +1 -1
  115. package/docs/functions/react.useFiveWork.html +2 -2
  116. package/docs/functions/vue.useFiveAction.html +8 -8
  117. package/docs/functions/vue.useFiveCurrentObserver.html +1 -1
  118. package/docs/functions/vue.useFiveCurrentState.html +1 -1
  119. package/docs/functions/vue.useFiveEventCallback.html +1 -1
  120. package/docs/functions/vue.useFiveFloor.html +1 -1
  121. package/docs/functions/vue.useFiveHelper.html +1 -1
  122. package/docs/functions/vue.useFiveModelIntersectRaycaster.html +2 -2
  123. package/docs/functions/vue.useFiveProject2d.html +2 -2
  124. package/docs/functions/vue.useFiveState.html +1 -1
  125. package/docs/functions/vue.useFiveWorks.html +2 -2
  126. package/docs/hierarchy.html +1 -1
  127. package/docs/interfaces/five.AddableObject.html +1 -1
  128. package/docs/interfaces/five.AjaxOptions.html +1 -1
  129. package/docs/interfaces/five.BaseEvent.html +1 -1
  130. package/docs/interfaces/five.BaseExtendableEvent.html +1 -1
  131. package/docs/interfaces/five.EventCallback.html +1 -1
  132. package/docs/interfaces/five.FiveInitArgs.html +2 -2
  133. package/docs/interfaces/five.GestureEvent.html +1 -1
  134. package/docs/interfaces/five.ImageOptions.html +1 -1
  135. package/docs/interfaces/five.IntersectEvent.html +1 -1
  136. package/docs/interfaces/five.IntersectMesh.html +1 -1
  137. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  138. package/docs/interfaces/five.Intersection.html +1 -1
  139. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +1 -1
  140. package/docs/interfaces/five.ModeChangeEvent.html +1 -1
  141. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  142. package/docs/interfaces/five.ModelEvent.html +1 -1
  143. package/docs/interfaces/five.ModelSceneEvent.html +1 -1
  144. package/docs/interfaces/five.ModelTileEvent.html +1 -1
  145. package/docs/interfaces/five.MovePanoOptions.html +1 -1
  146. package/docs/interfaces/five.NetworkAbortError.html +1 -1
  147. package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
  148. package/docs/interfaces/five.NetworkOptions.html +1 -1
  149. package/docs/interfaces/five.NetworkProxyError.html +1 -1
  150. package/docs/interfaces/five.NetworkResourceEvent.html +1 -1
  151. package/docs/interfaces/five.NetworkResponseError.html +1 -1
  152. package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
  153. package/docs/interfaces/five.ObjectEvent.html +1 -1
  154. package/docs/interfaces/five.PBMMaterial.html +1 -1
  155. package/docs/interfaces/five.PBMMeshMaterialParameters.html +1 -1
  156. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +1 -1
  157. package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
  158. package/docs/interfaces/five.PanoEvent.html +1 -1
  159. package/docs/interfaces/five.PanoPrepareEvent.html +1 -1
  160. package/docs/interfaces/five.PanoTextureEvent.html +1 -1
  161. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  162. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  163. package/docs/interfaces/five.ParameterMaterialValue.html +1 -1
  164. package/docs/interfaces/five.ParameterTilesetValue.html +1 -1
  165. package/docs/interfaces/five.ParameterValue.html +1 -1
  166. package/docs/interfaces/five.Pose.html +1 -1
  167. package/docs/interfaces/five.RenderEvent.html +1 -1
  168. package/docs/interfaces/five.ResolvedParameterValue.html +1 -1
  169. package/docs/interfaces/five.State.html +1 -1
  170. package/docs/interfaces/five.StateEvent.html +1 -1
  171. package/docs/interfaces/five.TextureOptions.html +1 -1
  172. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
  173. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  174. package/docs/interfaces/five.ViewLayer.html +1 -1
  175. package/docs/interfaces/five.WorkCubeImage.html +1 -1
  176. package/docs/interfaces/five.WorkImage.html +1 -1
  177. package/docs/interfaces/five.WorkObserver.html +2 -2
  178. package/docs/interfaces/five.WorkObserverProto.html +1 -1
  179. package/docs/interfaces/five.WorkTile.html +1 -1
  180. package/docs/interfaces/five.WorksEvent.html +1 -1
  181. package/docs/interfaces/five.XRControllerEvent.html +1 -1
  182. package/docs/interfaces/five.XRGestureEvent.html +1 -1
  183. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
  184. package/docs/interfaces/five.XRSessionEvent.html +1 -1
  185. package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
  186. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
  187. package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
  188. package/docs/interfaces/plugins.CSS2DPluginController.html +1 -1
  189. package/docs/interfaces/plugins.CSS2DPluginType.EventMap.html +1 -1
  190. package/docs/interfaces/plugins.CSS2DPluginType.State.html +1 -1
  191. package/docs/interfaces/plugins.CSS3DPluginController.html +1 -1
  192. package/docs/interfaces/plugins.CSS3DPluginType.EventMap.html +1 -1
  193. package/docs/interfaces/plugins.CSS3DPluginType.State.html +1 -1
  194. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +1 -1
  195. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
  196. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
  197. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationController.html +1 -1
  198. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.EventMap.html +1 -1
  199. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.State.html +1 -1
  200. package/docs/interfaces/plugins.ItemMaskController.html +1 -1
  201. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
  202. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +1 -1
  203. package/docs/interfaces/plugins.Object3DHelperPluginType.BaseController.html +1 -1
  204. package/docs/interfaces/plugins.Object3DHelperPluginType.BaseHelper.html +1 -1
  205. package/docs/interfaces/plugins.Object3DHelperPluginType.BoundingBoxController.html +1 -1
  206. package/docs/interfaces/plugins.Object3DHelperPluginType.MoveController.html +1 -1
  207. package/docs/interfaces/plugins.Object3DHelperPluginType.MoveHelperAbstract.html +1 -1
  208. package/docs/interfaces/plugins.Object3DHelperPluginType.RotateController.html +1 -1
  209. package/docs/interfaces/plugins.Object3DHelperPluginType.RotateHelperAbstract.html +1 -1
  210. package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
  211. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
  212. package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
  213. package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
  214. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
  215. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
  216. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
  217. package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
  218. package/docs/interfaces/plugins.TrajectoryController.html +1 -1
  219. package/docs/interfaces/react.FiveInjectionTypes.html +2 -2
  220. package/docs/interfaces/react.UseFivePluginOptions.html +1 -1
  221. package/docs/interfaces/react.UseFivePluginOptionsWithCreate.html +1 -1
  222. package/docs/modules/five.html +1 -1
  223. package/docs/modules.html +1 -1
  224. package/docs/types/five.FlowingFireworks3DPassLine.html +16 -0
  225. package/docs/types/five.ParseOptions.html +1 -1
  226. package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
  227. package/docs/variables/react.FiveCanvas.html +1 -1
  228. package/docs/variables/react.useFiveScene.html +1 -1
  229. package/docs/variables/vue.FiveCanvas.html +1 -1
  230. package/docs/variables/vue.FiveProvider.html +1 -1
  231. package/five/index.js +177 -106
  232. package/five/index.mjs +795 -639
  233. package/five/model/objects/pbmGaussianSplattingObject.d.ts +5 -5
  234. package/five/renderer/index.d.ts +1 -1
  235. package/five/renderer/postprocessing/index.d.ts +1 -1
  236. package/five/renderer/postprocessing/passes/flowing-fireworks-3d-pass.d.ts +4 -5
  237. package/gltf-loader/index.js +3 -3
  238. package/gltf-loader/index.mjs +3 -3
  239. package/line/index.js +3 -3
  240. package/line/index.mjs +3 -3
  241. package/package.json +1 -1
  242. package/{pbmGaussianSplattingObject-B2uXNUOB.cjs → pbmGaussianSplattingObject-C6i7CUTu.cjs} +3 -3
  243. package/{pbmGaussianSplattingObject-yJQySQfR.js → pbmGaussianSplattingObject-CaE6q4r-.js} +16 -20
  244. package/plugins/index.js +2 -2
  245. package/plugins/index.mjs +2 -2
  246. package/react/index.js +2 -2
  247. package/react/index.mjs +2 -2
  248. package/shader-lib/index.js +2 -2
  249. package/shader-lib/index.mjs +2 -2
  250. package/sticker/index.js +3 -3
  251. package/sticker/index.mjs +3 -3
  252. package/umd/five-gltf-loader.js +3 -3
  253. package/umd/five-line.js +3 -3
  254. package/umd/five-plugins.js +2 -2
  255. package/umd/five-react.js +2 -2
  256. package/umd/five-shader-lib.js +2 -2
  257. package/umd/five-sticker.js +3 -3
  258. package/umd/five-vfx.js +2 -2
  259. package/umd/five-vue.js +2 -2
  260. package/umd/five.js +151 -80
  261. package/vfx/index.js +2 -2
  262. package/vfx/index.mjs +2 -2
  263. package/vue/index.js +2 -2
  264. package/vue/index.mjs +2 -2
  265. package/work-downloader/index.js +2 -2
  266. package/work-downloader/index.mjs +2 -2
@@ -11,7 +11,7 @@
11
11
  <p><strong>Definition</strong>: <a href="../../five/renderer/postprocessing/passes/flowing-fireworks-3d-pass.d.ts">FlowingFireworks3DPass</a></p>
12
12
  </blockquote>
13
13
  <p><code>FlowingFireworks3DPass</code> 继承自 <code>FivePass</code>,与 <code>FlowingLight3DPass</code> 共享同一套线条数据结构(<code>points</code> / <code>totalLength</code> / <code>duration</code> / <code>startTime</code> / <code>tailLengthRatio</code>),并额外提供烟花粒子调优参数。核心接口如下:</p>
14
- <pre><code class="ts"><span class="hl-10">import</span><span class="hl-1"> </span><span class="hl-3">*</span><span class="hl-1"> </span><span class="hl-10">as</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1"> </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&#39;three&#39;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">FivePass</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&#39;./pass&#39;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-10">type</span><span class="hl-1"> </span><span class="hl-6">Camera</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&#39;../../../core/camera&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">type</span><span class="hl-1"> </span><span class="hl-7">FireworksLine</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-6">id</span><span class="hl-1">?: </span><span class="hl-7">string</span><span class="hl-1">; </span><span class="hl-8">// 可选的唯一标识符,不传则自动生成 UUID</span><br/><span class="hl-1"> </span><span class="hl-6">points</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">[]; </span><span class="hl-8">// 世界坐标系路径点</span><br/><span class="hl-1"> </span><span class="hl-6">totalLength</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 路径总长度(世界单位)</span><br/><span class="hl-1"> </span><span class="hl-6">color</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Color</span><span class="hl-1">; </span><span class="hl-8">// 粒子颜色</span><br/><span class="hl-1"> </span><span class="hl-6">opacity</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 粒子不透明度(0-1)</span><br/><span class="hl-1"> </span><span class="hl-6">tailLengthRatio</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 尾巴长度比例(0-1),默认 0.2,与 FlowingLight3DPass 含义一致</span><br/><span class="hl-1"> </span><span class="hl-6">duration</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 动画周期(毫秒),默认 1000</span><br/><span class="hl-1"> </span><span class="hl-6">startTime</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 线条开始时间(毫秒),默认使用当前内部时间</span><br/><br/><span class="hl-1"> </span><span class="hl-8">// ---- 烟花粒子调优参数(可选) ----</span><br/><span class="hl-1"> </span><span class="hl-6">particleCount</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 该线条的粒子池大小,默认 200</span><br/><span class="hl-1"> </span><span class="hl-6">emissionRate</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 每秒发射的粒子数量,默认 300</span><br/><span class="hl-1"> </span><span class="hl-6">spread</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 扩散尺度(世界单位),默认 0.1</span><br/><span class="hl-1"> </span><span class="hl-6">particleSize</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 粒子尺寸(世界单位),默认 spread * 0.12</span><br/><span class="hl-1"> </span><span class="hl-6">particleLife</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 粒子最大寿命(秒),默认 0.5</span><br/><span class="hl-1"> </span><span class="hl-6">gravity</span><span class="hl-1">?: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">Vector3</span><span class="hl-1">; </span><span class="hl-8">// 粒子加速度(世界单位/秒²),默认沿 -Y 缓慢下落</span><br/><span class="hl-1"> </span><span class="hl-6">leadRatio</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">; </span><span class="hl-8">// 发射点相对尾部向前(头部方向)的提前比例,默认 0.04</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-10">export</span><span class="hl-1"> </span><span class="hl-3">class</span><span class="hl-1"> </span><span class="hl-7">FlowingFireworks3DPass</span><span class="hl-1"> </span><span class="hl-3">extends</span><span class="hl-1"> </span><span class="hl-7">FivePass</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-3">constructor</span><span class="hl-1">(</span><span class="hl-6">camera</span><span class="hl-1">: </span><span class="hl-7">Camera</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-8">// 批量设置路径列表(替换所有现有线条)</span><br/><span class="hl-1"> </span><span class="hl-3">public</span><span class="hl-1"> </span><span class="hl-5">setLines</span><span class="hl-1">(</span><span class="hl-6">lines</span><span class="hl-1">: </span><span class="hl-7">FireworksLine</span><span class="hl-1">[]): </span><span class="hl-7">void</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">// 追加一条或多条线,返回生成的 id 数组</span><br/><span class="hl-1"> </span><span class="hl-3">public</span><span class="hl-1"> </span><span class="hl-5">addLine</span><span class="hl-1">(...</span><span class="hl-6">lines</span><span class="hl-1">: </span><span class="hl-7">FireworksLine</span><span class="hl-1">[]): </span><span class="hl-7">string</span><span class="hl-1">[];</span><br/><br/><span class="hl-1"> </span><span class="hl-8">// 按 id 移除一条或多条线,返回实际移除的数量</span><br/><span class="hl-1"> </span><span class="hl-3">public</span><span class="hl-1"> </span><span class="hl-5">removeLine</span><span class="hl-1">(...</span><span class="hl-6">ids</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1">[]): </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">// 修改单条线的参数(通过 id),支持部分更新</span><br/><span class="hl-1"> </span><span class="hl-3">public</span><span class="hl-1"> </span><span class="hl-5">setLine</span><span class="hl-1">(</span><span class="hl-6">params</span><span class="hl-1">: { </span><span class="hl-6">id</span><span class="hl-1">: </span><span class="hl-7">string</span><span class="hl-1"> } &amp; </span><span class="hl-7">Partial</span><span class="hl-1">&lt;</span><span class="hl-7">Omit</span><span class="hl-1">&lt;</span><span class="hl-7">FireworksLine</span><span class="hl-1">, </span><span class="hl-9">&#39;id&#39;</span><span class="hl-1">&gt;&gt;): </span><span class="hl-7">void</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-3">public</span><span class="hl-1"> </span><span class="hl-5">render</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-6">renderer</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">WebGLRenderer</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">writeBuffer</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">WebGLRenderTarget</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">readBuffer</span><span class="hl-1">: </span><span class="hl-7">THREE</span><span class="hl-1">.</span><span class="hl-7">WebGLRenderTarget</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">deltaTime</span><span class="hl-1">: </span><span class="hl-7">number</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">maskActive</span><span class="hl-1">?: </span><span class="hl-7">boolean</span><span class="hl-1">,</span><br/><span class="hl-1"> ): </span><span class="hl-7">void</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-3">public</span><span class="hl-1"> </span><span class="hl-5">dispose</span><span class="hl-1">(): </span><span class="hl-7">void</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
14
+ <pre><code class="ts"><span class="hl-11">import</span><span class="hl-1"> </span><span class="hl-8">*</span><span class="hl-1"> </span><span class="hl-11">as</span><span class="hl-1"> </span><span class="hl-5">THREE</span><span class="hl-1"> </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&#39;three&#39;</span><span class="hl-1">;</span><br/><span class="hl-11">import</span><span class="hl-1"> { </span><span class="hl-5">FivePass</span><span class="hl-1"> } </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&#39;./pass&#39;</span><span class="hl-1">;</span><br/><span class="hl-11">import</span><span class="hl-1"> { </span><span class="hl-11">type</span><span class="hl-1"> </span><span class="hl-5">Camera</span><span class="hl-1"> } </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&#39;../../../core/camera&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">type</span><span class="hl-1"> </span><span class="hl-9">FireworksLine</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">id</span><span class="hl-1">?: </span><span class="hl-9">string</span><span class="hl-1">; </span><span class="hl-7">// 可选的唯一标识符,不传则自动生成 UUID</span><br/><span class="hl-1"> </span><span class="hl-5">points</span><span class="hl-1">: </span><span class="hl-9">THREE</span><span class="hl-1">.</span><span class="hl-9">Vector3</span><span class="hl-1">[]; </span><span class="hl-7">// 世界坐标系路径点</span><br/><span class="hl-1"> </span><span class="hl-5">totalLength</span><span class="hl-1">: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 路径总长度(世界单位)</span><br/><span class="hl-1"> </span><span class="hl-5">color</span><span class="hl-1">: </span><span class="hl-9">THREE</span><span class="hl-1">.</span><span class="hl-9">Color</span><span class="hl-1">; </span><span class="hl-7">// 粒子颜色</span><br/><span class="hl-1"> </span><span class="hl-5">opacity</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 粒子不透明度(0-1)</span><br/><span class="hl-1"> </span><span class="hl-5">tailLengthRatio</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 尾巴长度比例(0-1),默认 0.2,与 FlowingLight3DPass 含义一致</span><br/><span class="hl-1"> </span><span class="hl-5">duration</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 动画周期(毫秒),默认 1000</span><br/><span class="hl-1"> </span><span class="hl-5">startTime</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 线条开始时间(毫秒),默认使用当前内部时间</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// ---- 烟花粒子调优参数(可选) ----</span><br/><span class="hl-1"> </span><span class="hl-5">particleCount</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 该线条的粒子池大小,默认 200</span><br/><span class="hl-1"> </span><span class="hl-5">emissionRate</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 每秒发射的粒子数量,默认 300</span><br/><span class="hl-1"> </span><span class="hl-5">spread</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 扩散尺度(世界单位),默认 0.1</span><br/><span class="hl-1"> </span><span class="hl-5">particleSize</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 粒子尺寸(世界单位),默认 spread * 0.12</span><br/><span class="hl-1"> </span><span class="hl-5">particleLife</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 粒子最大寿命(秒),默认 0.5</span><br/><span class="hl-1"> </span><span class="hl-5">gravity</span><span class="hl-1">?: </span><span class="hl-9">THREE</span><span class="hl-1">.</span><span class="hl-9">Vector3</span><span class="hl-1">; </span><span class="hl-7">// 粒子加速度(世界单位/秒²),默认沿 -Y 缓慢下落</span><br/><span class="hl-1"> </span><span class="hl-5">leadRatio</span><span class="hl-1">?: </span><span class="hl-9">number</span><span class="hl-1">; </span><span class="hl-7">// 发射点相对尾部向前(头部方向)的提前比例,默认 0.04</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-11">export</span><span class="hl-1"> </span><span class="hl-8">class</span><span class="hl-1"> </span><span class="hl-9">FlowingFireworks3DPass</span><span class="hl-1"> </span><span class="hl-8">extends</span><span class="hl-1"> </span><span class="hl-9">FivePass</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">constructor</span><span class="hl-1">(</span><span class="hl-5">camera</span><span class="hl-1">: </span><span class="hl-9">Camera</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// 批量设置路径列表(替换所有现有线条)</span><br/><span class="hl-1"> </span><span class="hl-8">public</span><span class="hl-1"> </span><span class="hl-4">setLines</span><span class="hl-1">(</span><span class="hl-5">lines</span><span class="hl-1">: </span><span class="hl-9">FireworksLine</span><span class="hl-1">[]): </span><span class="hl-9">void</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// 追加一条或多条线,返回生成的 id 数组</span><br/><span class="hl-1"> </span><span class="hl-8">public</span><span class="hl-1"> </span><span class="hl-4">addLine</span><span class="hl-1">(...</span><span class="hl-5">lines</span><span class="hl-1">: </span><span class="hl-9">FireworksLine</span><span class="hl-1">[]): </span><span class="hl-9">string</span><span class="hl-1">[];</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// 按 id 移除一条或多条线,返回实际移除的数量</span><br/><span class="hl-1"> </span><span class="hl-8">public</span><span class="hl-1"> </span><span class="hl-4">removeLine</span><span class="hl-1">(...</span><span class="hl-5">ids</span><span class="hl-1">: </span><span class="hl-9">string</span><span class="hl-1">[]): </span><span class="hl-9">number</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// 修改单条线的参数(通过 id),支持部分更新</span><br/><span class="hl-1"> </span><span class="hl-8">public</span><span class="hl-1"> </span><span class="hl-4">setLine</span><span class="hl-1">(</span><span class="hl-5">params</span><span class="hl-1">: { </span><span class="hl-5">id</span><span class="hl-1">: </span><span class="hl-9">string</span><span class="hl-1"> } &amp; </span><span class="hl-9">Partial</span><span class="hl-1">&lt;</span><span class="hl-9">Omit</span><span class="hl-1">&lt;</span><span class="hl-9">FireworksLine</span><span class="hl-1">, </span><span class="hl-10">&#39;id&#39;</span><span class="hl-1">&gt;&gt;): </span><span class="hl-9">void</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">public</span><span class="hl-1"> </span><span class="hl-4">render</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-5">renderer</span><span class="hl-1">: </span><span class="hl-9">THREE</span><span class="hl-1">.</span><span class="hl-9">WebGLRenderer</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">writeBuffer</span><span class="hl-1">: </span><span class="hl-9">THREE</span><span class="hl-1">.</span><span class="hl-9">WebGLRenderTarget</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">readBuffer</span><span class="hl-1">: </span><span class="hl-9">THREE</span><span class="hl-1">.</span><span class="hl-9">WebGLRenderTarget</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">deltaTime</span><span class="hl-1">: </span><span class="hl-9">number</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">maskActive</span><span class="hl-1">?: </span><span class="hl-9">boolean</span><span class="hl-1">,</span><br/><span class="hl-1"> ): </span><span class="hl-9">void</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-8">public</span><span class="hl-1"> </span><span class="hl-4">dispose</span><span class="hl-1">(): </span><span class="hl-9">void</span><span class="hl-1">;</span><br/><span class="hl-1">}</span>
15
15
  </code><button type="button">Copy</button></pre>
16
16
 
17
17
  <h2 id="concepts" class="tsd-anchor-link">Concepts<a href="#concepts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -162,7 +162,7 @@
162
162
  <p>批量设置路径列表,替换所有现有线条。</p>
163
163
  <p><strong>自动生成 ID</strong>: 没有 <code>id</code> 时自动生成 UUID。
164
164
  <strong>自动设置 startTime</strong>: 没有 <code>startTime</code> 时使用当前内部时间。</p>
165
- <pre><code class="ts"><span class="hl-6">pass</span><span class="hl-1">.</span><span class="hl-5">setLines</span><span class="hl-1">([{</span><br/><span class="hl-1"> </span><span class="hl-6">points:</span><span class="hl-1"> </span><span class="hl-6">path</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">totalLength:</span><span class="hl-1"> </span><span class="hl-11">12</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">color:</span><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Color</span><span class="hl-1">(</span><span class="hl-11">0xff6600</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-6">duration:</span><span class="hl-1"> </span><span class="hl-11">3000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">tailLengthRatio:</span><span class="hl-1"> </span><span class="hl-11">0.2</span><span class="hl-1">,</span><br/><span class="hl-1">}]);</span>
165
+ <pre><code class="ts"><span class="hl-5">pass</span><span class="hl-1">.</span><span class="hl-4">setLines</span><span class="hl-1">([{</span><br/><span class="hl-1"> </span><span class="hl-5">points:</span><span class="hl-1"> </span><span class="hl-5">path</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">totalLength:</span><span class="hl-1"> </span><span class="hl-3">12</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">color:</span><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Color</span><span class="hl-1">(</span><span class="hl-3">0xff6600</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-5">duration:</span><span class="hl-1"> </span><span class="hl-3">3000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">tailLengthRatio:</span><span class="hl-1"> </span><span class="hl-3">0.2</span><span class="hl-1">,</span><br/><span class="hl-1">}]);</span>
166
166
  </code><button type="button">Copy</button></pre>
167
167
 
168
168
  <h3 id="_-2" class="tsd-anchor-link"><code>addLine(...lines: FireworksLine[]): string[]</code><a href="#_-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
@@ -176,7 +176,7 @@
176
176
  <li>大多数字段(<code>points</code>、<code>color</code>、<code>totalLength</code>、<code>duration</code>、<code>spread</code>、<code>gravity</code> 等)会在下一帧发射时即时生效,<strong>无需重建</strong>。</li>
177
177
  <li>仅当 <code>particleCount</code> 改变时才会重建粒子缓冲。</li>
178
178
  </ul>
179
- <pre><code class="ts"><span class="hl-8">// 即时生效,无需重建</span><br/><span class="hl-6">pass</span><span class="hl-1">.</span><span class="hl-5">setLine</span><span class="hl-1">({ </span><span class="hl-6">id:</span><span class="hl-1"> </span><span class="hl-9">&#39;line-1&#39;</span><span class="hl-1">, </span><span class="hl-6">color:</span><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Color</span><span class="hl-1">(</span><span class="hl-11">0x00ff00</span><span class="hl-1">), </span><span class="hl-6">emissionRate:</span><span class="hl-1"> </span><span class="hl-11">500</span><span class="hl-1"> });</span><br/><br/><span class="hl-8">// 改变粒子池大小,会重建缓冲</span><br/><span class="hl-6">pass</span><span class="hl-1">.</span><span class="hl-5">setLine</span><span class="hl-1">({ </span><span class="hl-6">id:</span><span class="hl-1"> </span><span class="hl-9">&#39;line-1&#39;</span><span class="hl-1">, </span><span class="hl-6">particleCount:</span><span class="hl-1"> </span><span class="hl-11">400</span><span class="hl-1"> });</span>
179
+ <pre><code class="ts"><span class="hl-7">// 即时生效,无需重建</span><br/><span class="hl-5">pass</span><span class="hl-1">.</span><span class="hl-4">setLine</span><span class="hl-1">({ </span><span class="hl-5">id:</span><span class="hl-1"> </span><span class="hl-10">&#39;line-1&#39;</span><span class="hl-1">, </span><span class="hl-5">color:</span><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Color</span><span class="hl-1">(</span><span class="hl-3">0x00ff00</span><span class="hl-1">), </span><span class="hl-5">emissionRate:</span><span class="hl-1"> </span><span class="hl-3">500</span><span class="hl-1"> });</span><br/><br/><span class="hl-7">// 改变粒子池大小,会重建缓冲</span><br/><span class="hl-5">pass</span><span class="hl-1">.</span><span class="hl-4">setLine</span><span class="hl-1">({ </span><span class="hl-5">id:</span><span class="hl-1"> </span><span class="hl-10">&#39;line-1&#39;</span><span class="hl-1">, </span><span class="hl-5">particleCount:</span><span class="hl-1"> </span><span class="hl-3">400</span><span class="hl-1"> });</span>
180
180
  </code><button type="button">Copy</button></pre>
181
181
 
182
182
  <h3 id="_-5" class="tsd-anchor-link"><code>render(...)</code><a href="#_-5" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
@@ -186,19 +186,19 @@
186
186
  <h2 id="examples" class="tsd-anchor-link">Examples<a href="#examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
187
187
  <h3 id="与-flowinglight3dpass-配合推荐" class="tsd-anchor-link">与 FlowingLight3DPass 配合(推荐)<a href="#与-flowinglight3dpass-配合推荐" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
188
188
  <p>烟花跟随流光尾部的标准用法:为两个 Pass 配置<strong>相同</strong>的线条数据。</p>
189
- <pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">Five</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&#39;@realsee/five&#39;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">FlowingLight3DPass</span><span class="hl-1">, </span><span class="hl-6">FlowingFireworks3DPass</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&#39;../../lib/five/renderer/postprocessing&#39;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">calculatePath3DLength</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&#39;@realsee/five/plugins&#39;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> </span><span class="hl-3">*</span><span class="hl-1"> </span><span class="hl-10">as</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1"> </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&#39;three&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">five</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">Five</span><span class="hl-1">();</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">flowingLight</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">FlowingLight3DPass</span><span class="hl-1">(</span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">camera</span><span class="hl-1">);</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">fireworks</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">FlowingFireworks3DPass</span><span class="hl-1">(</span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-6">camera</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">path</span><span class="hl-1"> = [</span><br/><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(-</span><span class="hl-11">5</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(-</span><span class="hl-11">2</span><span class="hl-1">, </span><span class="hl-11">3</span><span class="hl-1">, </span><span class="hl-11">2</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">2</span><span class="hl-1">, </span><span class="hl-11">3</span><span class="hl-1">, -</span><span class="hl-11">2</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">5</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">),</span><br/><span class="hl-1">];</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">lineData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-6">points:</span><span class="hl-1"> </span><span class="hl-6">path</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">totalLength:</span><span class="hl-1"> </span><span class="hl-5">calculatePath3DLength</span><span class="hl-1">(</span><span class="hl-6">path</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-6">color:</span><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Color</span><span class="hl-1">(</span><span class="hl-11">0xff00ee</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-6">duration:</span><span class="hl-1"> </span><span class="hl-11">8000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">tailLengthRatio:</span><span class="hl-1"> </span><span class="hl-11">0.2</span><span class="hl-1">,</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-6">flowingLight</span><span class="hl-1">.</span><span class="hl-5">setLines</span><span class="hl-1">([</span><span class="hl-6">lineData</span><span class="hl-1">]);</span><br/><span class="hl-6">fireworks</span><span class="hl-1">.</span><span class="hl-5">setLines</span><span class="hl-1">([</span><span class="hl-6">lineData</span><span class="hl-1">]); </span><span class="hl-8">// 相同数据 =&gt; 烟花精准跟随流光尾部</span><br/><br/><span class="hl-8">// 注意添加顺序:烟花叠加在流光之上</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">addPass</span><span class="hl-1">(</span><span class="hl-6">flowingLight</span><span class="hl-1">);</span><br/><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">addPass</span><span class="hl-1">(</span><span class="hl-6">fireworks</span><span class="hl-1">);</span><br/><br/><span class="hl-3">function</span><span class="hl-1"> </span><span class="hl-5">animate</span><span class="hl-1">() {</span><br/><span class="hl-1"> </span><span class="hl-5">requestAnimationFrame</span><span class="hl-1">(</span><span class="hl-6">animate</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1">.</span><span class="hl-5">render</span><span class="hl-1">();</span><br/><span class="hl-1">}</span><br/><span class="hl-5">animate</span><span class="hl-1">();</span>
189
+ <pre><code class="typescript"><span class="hl-11">import</span><span class="hl-1"> { </span><span class="hl-5">Five</span><span class="hl-1"> } </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&#39;@realsee/five&#39;</span><span class="hl-1">;</span><br/><span class="hl-11">import</span><span class="hl-1"> { </span><span class="hl-5">FlowingLight3DPass</span><span class="hl-1">, </span><span class="hl-5">FlowingFireworks3DPass</span><span class="hl-1"> } </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&#39;../../lib/five/renderer/postprocessing&#39;</span><span class="hl-1">;</span><br/><span class="hl-11">import</span><span class="hl-1"> { </span><span class="hl-5">calculatePath3DLength</span><span class="hl-1"> } </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&#39;@realsee/five/plugins&#39;</span><span class="hl-1">;</span><br/><span class="hl-11">import</span><span class="hl-1"> </span><span class="hl-8">*</span><span class="hl-1"> </span><span class="hl-11">as</span><span class="hl-1"> </span><span class="hl-5">THREE</span><span class="hl-1"> </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-10">&#39;three&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">five</span><span class="hl-1"> = </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-4">Five</span><span class="hl-1">();</span><br/><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">flowingLight</span><span class="hl-1"> = </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-4">FlowingLight3DPass</span><span class="hl-1">(</span><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-5">camera</span><span class="hl-1">);</span><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">fireworks</span><span class="hl-1"> = </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-4">FlowingFireworks3DPass</span><span class="hl-1">(</span><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-5">camera</span><span class="hl-1">);</span><br/><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">path</span><span class="hl-1"> = [</span><br/><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Vector3</span><span class="hl-1">(-</span><span class="hl-3">5</span><span class="hl-1">, </span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-3">0</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Vector3</span><span class="hl-1">(-</span><span class="hl-3">2</span><span class="hl-1">, </span><span class="hl-3">3</span><span class="hl-1">, </span><span class="hl-3">2</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Vector3</span><span class="hl-1">(</span><span class="hl-3">2</span><span class="hl-1">, </span><span class="hl-3">3</span><span class="hl-1">, -</span><span class="hl-3">2</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Vector3</span><span class="hl-1">(</span><span class="hl-3">5</span><span class="hl-1">, </span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-3">0</span><span class="hl-1">),</span><br/><span class="hl-1">];</span><br/><br/><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">lineData</span><span class="hl-1"> = {</span><br/><span class="hl-1"> </span><span class="hl-5">points:</span><span class="hl-1"> </span><span class="hl-5">path</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">totalLength:</span><span class="hl-1"> </span><span class="hl-4">calculatePath3DLength</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-5">color:</span><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Color</span><span class="hl-1">(</span><span class="hl-3">0xff00ee</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-5">duration:</span><span class="hl-1"> </span><span class="hl-3">8000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">tailLengthRatio:</span><span class="hl-1"> </span><span class="hl-3">0.2</span><span class="hl-1">,</span><br/><span class="hl-1">};</span><br/><br/><span class="hl-5">flowingLight</span><span class="hl-1">.</span><span class="hl-4">setLines</span><span class="hl-1">([</span><span class="hl-5">lineData</span><span class="hl-1">]);</span><br/><span class="hl-5">fireworks</span><span class="hl-1">.</span><span class="hl-4">setLines</span><span class="hl-1">([</span><span class="hl-5">lineData</span><span class="hl-1">]); </span><span class="hl-7">// 相同数据 =&gt; 烟花精准跟随流光尾部</span><br/><br/><span class="hl-7">// 注意添加顺序:烟花叠加在流光之上</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">addPass</span><span class="hl-1">(</span><span class="hl-5">flowingLight</span><span class="hl-1">);</span><br/><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">addPass</span><span class="hl-1">(</span><span class="hl-5">fireworks</span><span class="hl-1">);</span><br/><br/><span class="hl-8">function</span><span class="hl-1"> </span><span class="hl-4">animate</span><span class="hl-1">() {</span><br/><span class="hl-1"> </span><span class="hl-4">requestAnimationFrame</span><span class="hl-1">(</span><span class="hl-5">animate</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-5">five</span><span class="hl-1">.</span><span class="hl-4">render</span><span class="hl-1">();</span><br/><span class="hl-1">}</span><br/><span class="hl-4">animate</span><span class="hl-1">();</span>
190
190
  </code><button type="button">Copy</button></pre>
191
191
 
192
192
  <h3 id="多条-3d-路径烟花" class="tsd-anchor-link">多条 3D 路径烟花<a href="#多条-3d-路径烟花" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
193
- <pre><code class="typescript"><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">fireworks</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-5">FlowingFireworks3DPass</span><span class="hl-1">(</span><span class="hl-6">camera</span><span class="hl-1">);</span><br/><br/><span class="hl-6">fireworks</span><span class="hl-1">.</span><span class="hl-5">setLines</span><span class="hl-1">([</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">points:</span><span class="hl-1"> [</span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">), </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">10</span><span class="hl-1">, </span><span class="hl-11">5</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">)],</span><br/><span class="hl-1"> </span><span class="hl-6">totalLength:</span><span class="hl-1"> </span><span class="hl-11">11</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">color:</span><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Color</span><span class="hl-1">(</span><span class="hl-11">0xff0000</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-6">duration:</span><span class="hl-1"> </span><span class="hl-11">2000</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-6">points:</span><span class="hl-1"> [</span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">), </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">10</span><span class="hl-1">, </span><span class="hl-11">5</span><span class="hl-1">)],</span><br/><span class="hl-1"> </span><span class="hl-6">totalLength:</span><span class="hl-1"> </span><span class="hl-11">12</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">color:</span><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Color</span><span class="hl-1">(</span><span class="hl-11">0x00ff00</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-6">duration:</span><span class="hl-1"> </span><span class="hl-11">2500</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">startTime:</span><span class="hl-1"> </span><span class="hl-11">500</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">]);</span>
193
+ <pre><code class="typescript"><span class="hl-8">const</span><span class="hl-1"> </span><span class="hl-6">fireworks</span><span class="hl-1"> = </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-4">FlowingFireworks3DPass</span><span class="hl-1">(</span><span class="hl-5">camera</span><span class="hl-1">);</span><br/><br/><span class="hl-5">fireworks</span><span class="hl-1">.</span><span class="hl-4">setLines</span><span class="hl-1">([</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">points:</span><span class="hl-1"> [</span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Vector3</span><span class="hl-1">(</span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-3">0</span><span class="hl-1">), </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Vector3</span><span class="hl-1">(</span><span class="hl-3">10</span><span class="hl-1">, </span><span class="hl-3">5</span><span class="hl-1">, </span><span class="hl-3">0</span><span class="hl-1">)],</span><br/><span class="hl-1"> </span><span class="hl-5">totalLength:</span><span class="hl-1"> </span><span class="hl-3">11</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">color:</span><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Color</span><span class="hl-1">(</span><span class="hl-3">0xff0000</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-5">duration:</span><span class="hl-1"> </span><span class="hl-3">2000</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">points:</span><span class="hl-1"> [</span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Vector3</span><span class="hl-1">(</span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-3">0</span><span class="hl-1">), </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Vector3</span><span class="hl-1">(</span><span class="hl-3">0</span><span class="hl-1">, </span><span class="hl-3">10</span><span class="hl-1">, </span><span class="hl-3">5</span><span class="hl-1">)],</span><br/><span class="hl-1"> </span><span class="hl-5">totalLength:</span><span class="hl-1"> </span><span class="hl-3">12</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">color:</span><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Color</span><span class="hl-1">(</span><span class="hl-3">0x00ff00</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-5">duration:</span><span class="hl-1"> </span><span class="hl-3">2500</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">startTime:</span><span class="hl-1"> </span><span class="hl-3">500</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">]);</span>
194
194
  </code><button type="button">Copy</button></pre>
195
195
 
196
196
  <h3 id="参数调优更密集、飞溅更远的火花" class="tsd-anchor-link">参数调优:更密集、飞溅更远的火花<a href="#参数调优更密集、飞溅更远的火花" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
197
- <pre><code class="typescript"><span class="hl-6">fireworks</span><span class="hl-1">.</span><span class="hl-5">setLines</span><span class="hl-1">([{</span><br/><span class="hl-1"> </span><span class="hl-6">points:</span><span class="hl-1"> </span><span class="hl-6">path</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">totalLength:</span><span class="hl-1"> </span><span class="hl-5">calculatePath3DLength</span><span class="hl-1">(</span><span class="hl-6">path</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-6">color:</span><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Color</span><span class="hl-1">(</span><span class="hl-11">0xffaa00</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-6">duration:</span><span class="hl-1"> </span><span class="hl-11">6000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">emissionRate:</span><span class="hl-1"> </span><span class="hl-11">600</span><span class="hl-1">, </span><span class="hl-8">// 更密集</span><br/><span class="hl-1"> </span><span class="hl-6">spread:</span><span class="hl-1"> </span><span class="hl-11">0.25</span><span class="hl-1">, </span><span class="hl-8">// 飞散更广</span><br/><span class="hl-1"> </span><span class="hl-6">particleLife:</span><span class="hl-1"> </span><span class="hl-11">0.9</span><span class="hl-1">, </span><span class="hl-8">// 拖得更远</span><br/><span class="hl-1"> </span><span class="hl-6">particleSize:</span><span class="hl-1"> </span><span class="hl-11">0.04</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">gravity:</span><span class="hl-1"> </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">0</span><span class="hl-1">, -</span><span class="hl-11">0.5</span><span class="hl-1">, </span><span class="hl-11">0</span><span class="hl-1">), </span><span class="hl-8">// 明显下坠</span><br/><span class="hl-1"> </span><span class="hl-6">leadRatio:</span><span class="hl-1"> </span><span class="hl-11">0.08</span><span class="hl-1">, </span><span class="hl-8">// 出现更早</span><br/><span class="hl-1">}]);</span>
197
+ <pre><code class="typescript"><span class="hl-5">fireworks</span><span class="hl-1">.</span><span class="hl-4">setLines</span><span class="hl-1">([{</span><br/><span class="hl-1"> </span><span class="hl-5">points:</span><span class="hl-1"> </span><span class="hl-5">path</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">totalLength:</span><span class="hl-1"> </span><span class="hl-4">calculatePath3DLength</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-5">color:</span><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Color</span><span class="hl-1">(</span><span class="hl-3">0xffaa00</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-5">duration:</span><span class="hl-1"> </span><span class="hl-3">6000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">emissionRate:</span><span class="hl-1"> </span><span class="hl-3">600</span><span class="hl-1">, </span><span class="hl-7">// 更密集</span><br/><span class="hl-1"> </span><span class="hl-5">spread:</span><span class="hl-1"> </span><span class="hl-3">0.25</span><span class="hl-1">, </span><span class="hl-7">// 飞散更广</span><br/><span class="hl-1"> </span><span class="hl-5">particleLife:</span><span class="hl-1"> </span><span class="hl-3">0.9</span><span class="hl-1">, </span><span class="hl-7">// 拖得更远</span><br/><span class="hl-1"> </span><span class="hl-5">particleSize:</span><span class="hl-1"> </span><span class="hl-3">0.04</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">gravity:</span><span class="hl-1"> </span><span class="hl-8">new</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1">.</span><span class="hl-4">Vector3</span><span class="hl-1">(</span><span class="hl-3">0</span><span class="hl-1">, -</span><span class="hl-3">0.5</span><span class="hl-1">, </span><span class="hl-3">0</span><span class="hl-1">), </span><span class="hl-7">// 明显下坠</span><br/><span class="hl-1"> </span><span class="hl-5">leadRatio:</span><span class="hl-1"> </span><span class="hl-3">0.08</span><span class="hl-1">, </span><span class="hl-7">// 出现更早</span><br/><span class="hl-1">}]);</span>
198
198
  </code><button type="button">Copy</button></pre>
199
199
 
200
200
  <h3 id="调整火花出现时机" class="tsd-anchor-link">调整火花出现时机<a href="#调整火花出现时机" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
201
- <pre><code class="typescript"><span class="hl-8">// 视觉上火花偏晚 =&gt; 增大 leadRatio 让其更早出现</span><br/><span class="hl-6">pass</span><span class="hl-1">.</span><span class="hl-5">setLine</span><span class="hl-1">({ </span><span class="hl-6">id:</span><span class="hl-1"> </span><span class="hl-6">lineId</span><span class="hl-1">, </span><span class="hl-6">leadRatio:</span><span class="hl-1"> </span><span class="hl-11">0.1</span><span class="hl-1"> });</span><br/><br/><span class="hl-8">// 严格落在流光尾部(渐变结束处)</span><br/><span class="hl-6">pass</span><span class="hl-1">.</span><span class="hl-5">setLine</span><span class="hl-1">({ </span><span class="hl-6">id:</span><span class="hl-1"> </span><span class="hl-6">lineId</span><span class="hl-1">, </span><span class="hl-6">leadRatio:</span><span class="hl-1"> </span><span class="hl-11">0</span><span class="hl-1"> });</span>
201
+ <pre><code class="typescript"><span class="hl-7">// 视觉上火花偏晚 =&gt; 增大 leadRatio 让其更早出现</span><br/><span class="hl-5">pass</span><span class="hl-1">.</span><span class="hl-4">setLine</span><span class="hl-1">({ </span><span class="hl-5">id:</span><span class="hl-1"> </span><span class="hl-5">lineId</span><span class="hl-1">, </span><span class="hl-5">leadRatio:</span><span class="hl-1"> </span><span class="hl-3">0.1</span><span class="hl-1"> });</span><br/><br/><span class="hl-7">// 严格落在流光尾部(渐变结束处)</span><br/><span class="hl-5">pass</span><span class="hl-1">.</span><span class="hl-4">setLine</span><span class="hl-1">({ </span><span class="hl-5">id:</span><span class="hl-1"> </span><span class="hl-5">lineId</span><span class="hl-1">, </span><span class="hl-5">leadRatio:</span><span class="hl-1"> </span><span class="hl-3">0</span><span class="hl-1"> });</span>
202
202
  </code><button type="button">Copy</button></pre>
203
203
 
204
204
  <h2 id="debugging" class="tsd-anchor-link">Debugging<a href="#debugging" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>