@realsee/five-webgpu 1.0.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.
- package/AGENTS_READ_ME.md +9 -0
- package/AI_CONTEXT.md +9 -0
- package/README.md +80 -0
- package/TERMS.txt +54 -0
- package/ai_guides/README.md +118 -0
- package/ai_guides/ai-doc-guidelines.md +102 -0
- package/ai_guides/api.md +274 -0
- package/ai_guides/features/3dtile.md +172 -0
- package/ai_guides/features/camera-animation.md +205 -0
- package/ai_guides/features/clipper.md +135 -0
- package/ai_guides/features/coordinate-system.md +128 -0
- package/ai_guides/features/event.md +154 -0
- package/ai_guides/features/five.md +184 -0
- package/ai_guides/features/gesture.md +181 -0
- package/ai_guides/features/get-screen-pixels.md +182 -0
- package/ai_guides/features/image-options.md +164 -0
- package/ai_guides/features/load-external-model.md +350 -0
- package/ai_guides/features/load-progress.md +140 -0
- package/ai_guides/features/material.md +153 -0
- package/ai_guides/features/mode.md +269 -0
- package/ai_guides/features/model.md +186 -0
- package/ai_guides/features/move-pano-effect.md +145 -0
- package/ai_guides/features/multi-work.md +146 -0
- package/ai_guides/features/pano-filter.md +144 -0
- package/ai_guides/features/pano-tile.md +132 -0
- package/ai_guides/features/pano-uv.md +131 -0
- package/ai_guides/features/parameter.md +153 -0
- package/ai_guides/features/raycast.md +175 -0
- package/ai_guides/features/request-proxy.md +112 -0
- package/ai_guides/features/screen-project.md +165 -0
- package/ai_guides/features/state.md +101 -0
- package/ai_guides/features/ultra-hdr.md +204 -0
- package/ai_guides/features/view-layer.md +187 -0
- package/ai_guides/features/work.md +303 -0
- package/ai_guides/glossary.md +93 -0
- package/ai_guides/intro.md +23 -0
- package/ai_guides/quick-start.md +69 -0
- package/ai_guides/release_notes/6.6.md +86 -0
- package/ai_guides/release_notes/6.7.md +401 -0
- package/ai_guides/release_notes/6.8.md +208 -0
- package/ai_guides/support.md +23 -0
- package/ai_guides/template.md +70 -0
- package/docs/.nojekyll +1 -0
- package/docs/00_FOR_AI_AGENTS.md +12 -0
- package/docs/README.md +12 -0
- package/docs/assets/hierarchy.js +1 -0
- package/docs/assets/highlight.css +134 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1633 -0
- package/docs/classes/index.AdaptiveLuminancePass.html +23 -0
- package/docs/classes/index.AnimationFrameLoop.html +18 -0
- package/docs/classes/index.BoundingMesh.html +4 -0
- package/docs/classes/index.Camera.html +42 -0
- package/docs/classes/index.EffectComposer.html +25 -0
- package/docs/classes/index.EyeDomeLightingPass.html +20 -0
- package/docs/classes/index.Fetcher.html +5 -0
- package/docs/classes/index.Five.html +311 -0
- package/docs/classes/index.FivePass.html +17 -0
- package/docs/classes/index.FiveRenderer.html +8 -0
- package/docs/classes/index.FlowingFireworks3DPass.html +22 -0
- package/docs/classes/index.FlowingLight2DPass.html +21 -0
- package/docs/classes/index.FlowingLight3DPass.html +23 -0
- package/docs/classes/index.FullScreenQuad.html +7 -0
- package/docs/classes/index.GaussianBlurPass.html +19 -0
- package/docs/classes/index.Histogram.html +19 -0
- package/docs/classes/index.InternalWebGPURenderer.html +4 -0
- package/docs/classes/index.Model.html +93 -0
- package/docs/classes/index.ModelScene.html +40 -0
- package/docs/classes/index.Motion.html +17 -0
- package/docs/classes/index.NetworkSubscribe.html +41 -0
- package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +37 -0
- package/docs/classes/index.PBMGaussianSplattingObject.html +32 -0
- package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +19 -0
- package/docs/classes/index.PBMGroup.html +5 -0
- package/docs/classes/index.PBMMesh.html +2 -0
- package/docs/classes/index.PBMMeshBasicMaterial.html +70 -0
- package/docs/classes/index.PBMMeshBasicNodeMaterial.html +74 -0
- package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +70 -0
- package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +74 -0
- package/docs/classes/index.PBMMeshPhongMaterial.html +69 -0
- package/docs/classes/index.PBMMeshPhongNodeMaterial.html +73 -0
- package/docs/classes/index.PBMMeshPhysicalMaterial.html +69 -0
- package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +73 -0
- package/docs/classes/index.PBMPanoFilter.html +61 -0
- package/docs/classes/index.PBMPointCloud.html +50 -0
- package/docs/classes/index.PBMSkinnedMesh.html +8 -0
- package/docs/classes/index.PBMUpdateable.html +41 -0
- package/docs/classes/index.PanoCircleMesh.html +30 -0
- package/docs/classes/index.PanoCircleMeshCustom.html +30 -0
- package/docs/classes/index.PanoCircleMeshSolid.html +30 -0
- package/docs/classes/index.Parameter.html +114 -0
- package/docs/classes/index.Scene.html +18 -0
- package/docs/classes/index.Subscribe.html +43 -0
- package/docs/classes/index.TextureLoader.html +4 -0
- package/docs/classes/index.Tile.html +34 -0
- package/docs/classes/index.Tile3D.html +98 -0
- package/docs/classes/index.TileCache.html +8 -0
- package/docs/classes/index.TileNode.html +14 -0
- package/docs/classes/index.TileRequestScheduler.html +4 -0
- package/docs/classes/index.Tileset.html +38 -0
- package/docs/classes/index.Trajectory.html +8 -0
- package/docs/classes/index.TrajectoryNode.html +8 -0
- package/docs/classes/index.Work.html +52 -0
- package/docs/classes/index.WorkResolvedObserver.html +68 -0
- package/docs/documents/README.html +134 -0
- package/docs/documents/ai-doc-guidelines.html +117 -0
- package/docs/documents/api.html +337 -0
- package/docs/documents/features_3dtile.html +216 -0
- package/docs/documents/features_camera-animation.html +157 -0
- package/docs/documents/features_clipper.html +80 -0
- package/docs/documents/features_coordinate-system.html +127 -0
- package/docs/documents/features_event.html +104 -0
- package/docs/documents/features_five.html +147 -0
- package/docs/documents/features_gesture.html +121 -0
- package/docs/documents/features_get-screen-pixels.html +88 -0
- package/docs/documents/features_image-options.html +108 -0
- package/docs/documents/features_load-external-model.html +600 -0
- package/docs/documents/features_load-progress.html +110 -0
- package/docs/documents/features_material.html +341 -0
- package/docs/documents/features_mode.html +114 -0
- package/docs/documents/features_model.html +141 -0
- package/docs/documents/features_move-pano-effect.html +110 -0
- package/docs/documents/features_multi-work.html +97 -0
- package/docs/documents/features_pano-filter.html +119 -0
- package/docs/documents/features_pano-tile.html +100 -0
- package/docs/documents/features_pano-uv.html +82 -0
- package/docs/documents/features_parameter.html +101 -0
- package/docs/documents/features_raycast.html +98 -0
- package/docs/documents/features_request-proxy.html +78 -0
- package/docs/documents/features_screen-project.html +112 -0
- package/docs/documents/features_state.html +71 -0
- package/docs/documents/features_ultra-hdr.html +188 -0
- package/docs/documents/features_view-layer.html +158 -0
- package/docs/documents/features_work.html +129 -0
- package/docs/documents/glossary.html +94 -0
- package/docs/documents/intro.html +24 -0
- package/docs/documents/quick-start.html +32 -0
- package/docs/documents/release_notes_6.6.html +79 -0
- package/docs/documents/release_notes_6.7.html +209 -0
- package/docs/documents/release_notes_6.8.html +189 -0
- package/docs/documents/support.html +49 -0
- package/docs/documents/template.html +80 -0
- package/docs/enums/index.VolumePlaneIntersect.html +4 -0
- package/docs/functions/index.coordinatesToVector.html +2 -0
- package/docs/functions/index.createDebugBoundingMesh.html +1 -0
- package/docs/functions/index.createWorks.html +1 -0
- package/docs/functions/index.defaultImageURLTransform.html +5 -0
- package/docs/functions/index.getViewportScale.html +1 -0
- package/docs/functions/index.headingToLongitude.html +4 -0
- package/docs/functions/index.imageSupport.html +1 -0
- package/docs/functions/index.isBoundingVolume.html +1 -0
- package/docs/functions/index.isPanoId.html +1 -0
- package/docs/functions/index.loadAt3d.html +1 -0
- package/docs/functions/index.loadDome.html +1 -0
- package/docs/functions/index.loadDomez.html +1 -0
- package/docs/functions/index.loadGltf.html +1 -0
- package/docs/functions/index.loadPbm.html +1 -0
- package/docs/functions/index.loadPly.html +1 -0
- package/docs/functions/index.longitudeToHeading.html +4 -0
- package/docs/functions/index.makeBoundingVolume.html +1 -0
- package/docs/functions/index.panoEqual.html +1 -0
- package/docs/functions/index.panoParse.html +1 -0
- package/docs/functions/index.panoStringify.html +1 -0
- package/docs/functions/index.parseWork.html +7 -0
- package/docs/functions/index.registerPBMMaterials.html +3 -0
- package/docs/functions/index.vectorToCoordinates.html +2 -0
- package/docs/functions/index.workToJson.html +1 -0
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +134 -0
- package/docs/interfaces/index.AddableObject.html +9 -0
- package/docs/interfaces/index.AjaxOptions.html +9 -0
- package/docs/interfaces/index.AnimationFrame.html +6 -0
- package/docs/interfaces/index.AnimationFrameContext.html +3 -0
- package/docs/interfaces/index.BaseEvent.html +5 -0
- package/docs/interfaces/index.BoundingVolume.html +15 -0
- package/docs/interfaces/index.BoxBoundingVolume.html +18 -0
- package/docs/interfaces/index.CameraPose.html +6 -0
- package/docs/interfaces/index.CullingVolume.html +9 -0
- package/docs/interfaces/index.Draco.html +12 -0
- package/docs/interfaces/index.EventCallback.html +394 -0
- package/docs/interfaces/index.FiveInitArgs.html +104 -0
- package/docs/interfaces/index.FiveLoadOptions.html +12 -0
- package/docs/interfaces/index.FloorplanControllerCustomInitArgs.html +17 -0
- package/docs/interfaces/index.GestureEvent.html +19 -0
- package/docs/interfaces/index.IPBMMaterial.html +64 -0
- package/docs/interfaces/index.ImageOptions.html +21 -0
- package/docs/interfaces/index.ImageURLMappings.html +1 -0
- package/docs/interfaces/index.ImageURLOptions.html +17 -0
- package/docs/interfaces/index.IntersectEvent.html +8 -0
- package/docs/interfaces/index.IntersectMesh.html +2 -0
- package/docs/interfaces/index.IntersectMeshInterface.html +3 -0
- package/docs/interfaces/index.Intersection.html +9 -0
- package/docs/interfaces/index.LoosePanoWork.html +10 -0
- package/docs/interfaces/index.LooseWork.html +15 -0
- package/docs/interfaces/index.LooseWorkInitial.html +11 -0
- package/docs/interfaces/index.LooseWorkModel.html +8 -0
- package/docs/interfaces/index.LooseWorkObserver.html +17 -0
- package/docs/interfaces/index.LooseWorkPanorama.html +22 -0
- package/docs/interfaces/index.LooseWorkVideo.html +4 -0
- package/docs/interfaces/index.LooseWorkWithExtrinsics.html +15 -0
- package/docs/interfaces/index.MapviewControllerCustomInitArgs.html +20 -0
- package/docs/interfaces/index.ModeChangeEvent.html +9 -0
- package/docs/interfaces/index.ModelControllerCustomInitArgs.html +20 -0
- package/docs/interfaces/index.ModelEvent.html +8 -0
- package/docs/interfaces/index.ModelOptions.html +11 -0
- package/docs/interfaces/index.ModelSceneEvent.html +6 -0
- package/docs/interfaces/index.ModelTileEvent.html +8 -0
- package/docs/interfaces/index.MotionKeyframe.html +4 -0
- package/docs/interfaces/index.MovePanoOptions.html +35 -0
- package/docs/interfaces/index.NetworkAbortError.html +1 -0
- package/docs/interfaces/index.NetworkFirbiddenError.html +1 -0
- package/docs/interfaces/index.NetworkOptions.html +7 -0
- package/docs/interfaces/index.NetworkProxyError.html +1 -0
- package/docs/interfaces/index.NetworkResourceEvent.html +9 -0
- package/docs/interfaces/index.NetworkResponseError.html +2 -0
- package/docs/interfaces/index.NetworkTimeoutError.html +1 -0
- package/docs/interfaces/index.ObjectEvent.html +6 -0
- package/docs/interfaces/index.PBMClipperParameter.html +3 -0
- package/docs/interfaces/index.PBMHDRConfig.html +12 -0
- package/docs/interfaces/index.PBMPanoDepth.html +9 -0
- package/docs/interfaces/index.PBMPanoFilterValue.html +6 -0
- package/docs/interfaces/index.PBMPanoPicture.html +14 -0
- package/docs/interfaces/index.PBMRefinedScreen.html +6 -0
- package/docs/interfaces/index.PanoCircleMeshCustomOptions.html +9 -0
- package/docs/interfaces/index.PanoCircleMeshInterface.html +30 -0
- package/docs/interfaces/index.PanoCircleMeshOptions.html +3 -0
- package/docs/interfaces/index.PanoCircleMeshSolidOptions.html +3 -0
- package/docs/interfaces/index.PanoEvent.html +11 -0
- package/docs/interfaces/index.PanoTextureEvent.html +9 -0
- package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +41 -0
- package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +20 -0
- package/docs/interfaces/index.ParameterMaterialValue.html +74 -0
- package/docs/interfaces/index.ParameterTilesetValue.html +30 -0
- package/docs/interfaces/index.ParameterValue.html +103 -0
- package/docs/interfaces/index.Pass.html +9 -0
- package/docs/interfaces/index.PointCloudData.html +6 -0
- package/docs/interfaces/index.Pose.html +12 -0
- package/docs/interfaces/index.RegionBoundingVolume.html +21 -0
- package/docs/interfaces/index.RenderEvent.html +6 -0
- package/docs/interfaces/index.ResolvedParameterValue.html +104 -0
- package/docs/interfaces/index.RgbaData.html +7 -0
- package/docs/interfaces/index.SphereBoundingVolume.html +17 -0
- package/docs/interfaces/index.SplatData.html +10 -0
- package/docs/interfaces/index.State.html +23 -0
- package/docs/interfaces/index.StateEvent.html +7 -0
- package/docs/interfaces/index.TextureOptions.html +23 -0
- package/docs/interfaces/index.Tile3DOptions.html +11 -0
- package/docs/interfaces/index.TileCoordinateSystem.html +3 -0
- package/docs/interfaces/index.TileHeader.html +9 -0
- package/docs/interfaces/index.TilesetHeader.html +20 -0
- package/docs/interfaces/index.TilesetOptions.html +7 -0
- package/docs/interfaces/index.TopviewControllerCustomInitArgs.html +13 -0
- package/docs/interfaces/index.TrajectoryHeader.html +5 -0
- package/docs/interfaces/index.ViewLayer.html +97 -0
- package/docs/interfaces/index.Viewport.html +13 -0
- package/docs/interfaces/index.WebXRAxesParams.html +4 -0
- package/docs/interfaces/index.WebXRControllerParams.html +2 -0
- package/docs/interfaces/index.WorkCubeImage.html +15 -0
- package/docs/interfaces/index.WorkImage.html +22 -0
- package/docs/interfaces/index.WorkInitial.html +17 -0
- package/docs/interfaces/index.WorkInitialJson.html +8 -0
- package/docs/interfaces/index.WorkJson.html +11 -0
- package/docs/interfaces/index.WorkModel.html +16 -0
- package/docs/interfaces/index.WorkModelJson.html +6 -0
- package/docs/interfaces/index.WorkModelLayer.html +11 -0
- package/docs/interfaces/index.WorkModelLayerJson.html +5 -0
- package/docs/interfaces/index.WorkObserver.html +63 -0
- package/docs/interfaces/index.WorkObserverJson.html +10 -0
- package/docs/interfaces/index.WorkPanoramaJson.html +14 -0
- package/docs/interfaces/index.WorkPanoramasJson.html +3 -0
- package/docs/interfaces/index.WorkTile.html +21 -0
- package/docs/interfaces/index.WorkVideo.html +9 -0
- package/docs/interfaces/index.WorksEvent.html +8 -0
- package/docs/interfaces/index.XRControllerEvent.html +8 -0
- package/docs/interfaces/index.XRGestureEvent.html +11 -0
- package/docs/interfaces/index.XRSessionEvent.html +7 -0
- package/docs/modules/index.html +1 -0
- package/docs/modules.html +1 -0
- package/docs/types/index.AjaxResponseType.html +1 -0
- package/docs/types/index.AjaxResponseTypeMapping.html +1 -0
- package/docs/types/index.AnimationFrameLoopType.html +1 -0
- package/docs/types/index.BoundingVolumeJson.html +1 -0
- package/docs/types/index.BoxBoundingVolumeJson.html +2 -0
- package/docs/types/index.ControllerCustomInitTypes.html +6 -0
- package/docs/types/index.ControllerEventTypes.html +68 -0
- package/docs/types/index.CubeFace.html +1 -0
- package/docs/types/index.EasingFunction.html +1 -0
- package/docs/types/index.EventTypes.html +28 -0
- package/docs/types/index.FivePlugin.html +4 -0
- package/docs/types/index.FivePluginInit.html +3 -0
- package/docs/types/index.FivePluginInstance.html +3 -0
- package/docs/types/index.FlowingFireworks3DPassLine.html +16 -0
- package/docs/types/index.FlowingLight2DPassLine.html +10 -0
- package/docs/types/index.FlowingLight3DPassLine.html +10 -0
- package/docs/types/index.GestureTypes.html +1 -0
- package/docs/types/index.LegacyEventType.html +282 -0
- package/docs/types/index.LoadResultType.html +12 -0
- package/docs/types/index.Mode.html +15 -0
- package/docs/types/index.Models.html +11 -0
- package/docs/types/index.MotionCircle.html +2 -0
- package/docs/types/index.MotionConfig.html +1 -0
- package/docs/types/index.MotionInitalValue.html +1 -0
- package/docs/types/index.MotionValue.html +1 -0
- package/docs/types/index.MovePanoEffect.html +12 -0
- package/docs/types/index.NetWorkMeta.html +8 -0
- package/docs/types/index.NetworkError.html +1 -0
- package/docs/types/index.NetworkErrorCallback.html +1 -0
- package/docs/types/index.NetworkProgressCallback.html +1 -0
- package/docs/types/index.NetworkResponse.html +3 -0
- package/docs/types/index.NetworkState.html +1 -0
- package/docs/types/index.NetworkSuccessCallback.html +1 -0
- package/docs/types/index.NetworkType.html +1 -0
- package/docs/types/index.OutputTextureDataType.html +1 -0
- package/docs/types/index.PBMAlphaMode.html +1 -0
- package/docs/types/index.PBMColorStyle.html +1 -0
- package/docs/types/index.PBMFloorStyle.html +1 -0
- package/docs/types/index.PBMMeshMaterial.html +1 -0
- package/docs/types/index.PBMPointBack.html +1 -0
- package/docs/types/index.PBMPointCloudShaderType.html +1 -0
- package/docs/types/index.PBMPointShape.html +1 -0
- package/docs/types/index.PBMPointSize.html +1 -0
- package/docs/types/index.PBMTransition.html +1 -0
- package/docs/types/index.Pano.html +3 -0
- package/docs/types/index.PanoId.html +1 -0
- package/docs/types/index.ParseOptions.html +13 -0
- package/docs/types/index.PostProcessingType.html +1 -0
- package/docs/types/index.RegionBoundingVolumeJson.html +2 -0
- package/docs/types/index.RequestAnimationFrameArgs.html +1 -0
- package/docs/types/index.Scissor.html +2 -0
- package/docs/types/index.SphereBoundingVolumeJson.html +2 -0
- package/docs/types/index.SubscribeEventMap.html +1 -0
- package/docs/types/index.TileCacheOptions.html +3 -0
- package/docs/types/index.TileContentData.html +6 -0
- package/docs/types/index.TileRequestOrder.html +1 -0
- package/docs/types/index.TileRequestSchedulerOptions.html +4 -0
- package/docs/types/index.TilesetFrameState.html +21 -0
- package/docs/types/index.TrajectoryContentData.html +7 -0
- package/docs/types/index.WebXRControllerKey.html +1 -0
- package/docs/types/index.WebXRControllerType.html +1 -0
- package/docs/types/index.Works.html +1 -0
- package/docs/variables/index.PROXY_CONTROLLER_EVENT_NAMES.html +1 -0
- package/docs/variables/index.controllersDefaultInitArgs.html +1 -0
- package/docs/variables/index.draco.html +1 -0
- package/five/application/analysis.d.ts +40 -0
- package/five/application/controllers.d.ts +33 -0
- package/five/application/events-legacy.d.ts +454 -0
- package/five/application/events.d.ts +69 -0
- package/five/application/five.d.ts +498 -0
- package/five/application/fiveInitArgs.d.ts +173 -0
- package/five/application/fiveLoadOptions.d.ts +21 -0
- package/five/application/generateDefaultVideoElement.d.ts +2 -0
- package/five/application/getViewportScale.d.ts +2 -0
- package/five/application/initLights.d.ts +3 -0
- package/five/application/mode.d.ts +24 -0
- package/five/application/renderPoweredByRealsee.d.ts +3 -0
- package/five/assets/cardboard-png-data-url.d.ts +2 -0
- package/five/assets/gradient-png-data-url.d.ts +2 -0
- package/five/assets/loading-png-data-url.d.ts +2 -0
- package/five/assets/phone-png-data-url.d.ts +2 -0
- package/five/assets/realsee-pmg-data-url.d.ts +2 -0
- package/five/bvh/bvhMath.d.ts +33 -0
- package/five/bvh/bvhMesh.d.ts +7 -0
- package/five/bvh/bvhNode.d.ts +29 -0
- package/five/bvh/bvhObject.d.ts +19 -0
- package/five/bvh/bvhPoints.d.ts +6 -0
- package/five/bvh/index.d.ts +14 -0
- package/five/bvh/type.d.ts +1 -0
- package/five/bvh/worker.d.ts +36 -0
- package/five/certificates/hardware.d.ts +1 -0
- package/five/controllers/base.d.ts +166 -0
- package/five/controllers/events.d.ts +71 -0
- package/five/controllers/floorplan.d.ts +119 -0
- package/five/controllers/mapview.d.ts +138 -0
- package/five/controllers/model.d.ts +57 -0
- package/five/controllers/panorama.d.ts +143 -0
- package/five/controllers/panoramaLike.d.ts +87 -0
- package/five/controllers/topview.d.ts +42 -0
- package/five/core/camera.d.ts +65 -0
- package/five/core/internalWebGPURenderer.d.ts +13 -0
- package/five/core/panoVideo.d.ts +18 -0
- package/five/core/scene.d.ts +10 -0
- package/five/core/tiling.d.ts +56 -0
- package/five/declare.d.ts +35 -0
- package/five/gaussian-splatting/util/renderData.d.ts +66 -0
- package/five/gaussian-splatting/wasm/data.d.ts +20 -0
- package/five/gaussian-splatting/wasm/sort.d.ts +18 -0
- package/five/gaussian-splatting/worker/dataWorker.d.ts +1 -0
- package/five/gaussian-splatting/worker/sortWorker.d.ts +1 -0
- package/five/index.d.ts +58 -0
- package/five/index.js +1179 -0
- package/five/index.mjs +25111 -0
- package/five/meshes/boundingMesh.d.ts +12 -0
- package/five/meshes/intersectMesh.d.ts +8 -0
- package/five/meshes/panoCircleMesh.d.ts +36 -0
- package/five/meshes/panoCircleMeshCustom.d.ts +40 -0
- package/five/meshes/panoCircleMeshSolid.d.ts +35 -0
- package/five/meshes/panoSphereMesh.d.ts +29 -0
- package/five/model/helpers/coordinate-transform.d.ts +3 -0
- package/five/model/helpers/ellipsoid-coordinates.d.ts +14 -0
- package/five/model/helpers/get-edges-by-sphere.d.ts +8 -0
- package/five/model/helpers/get-recommend-tile3d-parameters.d.ts +8 -0
- package/five/model/index.d.ts +55 -0
- package/five/model/intersection.d.ts +18 -0
- package/five/model/loaders/at3d.d.ts +12 -0
- package/five/model/loaders/b3dm.d.ts +10 -0
- package/five/model/loaders/dome.d.ts +22 -0
- package/five/model/loaders/domez.d.ts +11 -0
- package/five/model/loaders/fbx.d.ts +8 -0
- package/five/model/loaders/glTF-helpers/extensions/CESIUM_RTC.d.ts +9 -0
- package/five/model/loaders/glTF-helpers/extensions/EXT_meshopt_compression.d.ts +8 -0
- package/five/model/loaders/glTF-helpers/extensions/EXT_texture_webp.d.ts +11 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_animation_pointer.d.ts +6 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_binary_glTF.d.ts +25 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_draco_mesh_compression.d.ts +11 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting.d.ts +26 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +11 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +13 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_materials_clearcoat.d.ts +10 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_materials_emissive_strength.d.ts +10 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_materials_sheen.d.ts +10 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_materials_transmission.d.ts +10 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_materials_unlit.d.ts +12 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_mesh_quantization.d.ts +6 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_node_visibility.d.ts +10 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_texture_basisu.d.ts +9 -0
- package/five/model/loaders/glTF-helpers/extensions/KHR_texture_transform.d.ts +10 -0
- package/five/model/loaders/glTF-helpers/extensions/REALSEE_materials_lightmap.d.ts +7 -0
- package/five/model/loaders/glTF-helpers/extensions/base.d.ts +25 -0
- package/five/model/loaders/glTF-helpers/glTF.d.ts +713 -0
- package/five/model/loaders/glTF-helpers/index.d.ts +51 -0
- package/five/model/loaders/glTF-helpers/parser.d.ts +115 -0
- package/five/model/loaders/glTF-helpers/type.d.ts +14 -0
- package/five/model/loaders/gltf.d.ts +10 -0
- package/five/model/loaders/obj.d.ts +9 -0
- package/five/model/loaders/pbm.d.ts +26 -0
- package/five/model/loaders/ply.d.ts +24 -0
- package/five/model/loaders/pnts.d.ts +8 -0
- package/five/model/loaders/protobuf/dome.d.ts +540 -0
- package/five/model/loaders/protobuf/pbm.d.ts +203 -0
- package/five/model/loaders/shared.d.ts +16 -0
- package/five/model/loaders/splat.d.ts +8 -0
- package/five/model/loaders/spz.d.ts +14 -0
- package/five/model/loaders/tile3d-helpers/feature-table.d.ts +15 -0
- package/five/model/loaders/tile3d-helpers/gl-type.d.ts +20 -0
- package/five/model/loaders/tile3d-helpers/parse-gltf-array-buffer.d.ts +2 -0
- package/five/model/loaders/tile3d-helpers/parse-header.d.ts +2 -0
- package/five/model/loaders/tile3d-helpers/parse-point-cloud-attributes.d.ts +2 -0
- package/five/model/loaders/tile3d-helpers/parse-point-cloud-attributes.worker.d.ts +6 -0
- package/five/model/loaders/tile3d-helpers/parse-table.d.ts +3 -0
- package/five/model/loaders/tile3d-helpers/tile3d-type.d.ts +36 -0
- package/five/model/loaders/x3p.d.ts +22 -0
- package/five/model/materials/nodes/pbmMeshBasicNodeMaterial.d.ts +14 -0
- package/five/model/materials/nodes/pbmMeshPanoOnlyNodeMaterial.d.ts +14 -0
- package/five/model/materials/nodes/pbmMeshPhongNodeMaterial.d.ts +14 -0
- package/five/model/materials/nodes/pbmMeshPhysicalNodeMaterial.d.ts +14 -0
- package/five/model/materials/nodes/pbmPointCloudNodeMaterial.d.ts +22 -0
- package/five/model/materials/pbmGaussianSplattingNodeMaterial.d.ts +78 -0
- package/five/model/materials/pbmMaterial.d.ts +171 -0
- package/five/model/materials/pbmMaterialRegister.d.ts +6 -0
- package/five/model/materials/pbmMeshMaterial.d.ts +57 -0
- package/five/model/materials/pbmPointCloudMaterial.d.ts +20 -0
- package/five/model/materials/pbmPointCloudNodeMaterial.d.ts +46 -0
- package/five/model/materials/tsl/colorFilter.d.ts +9 -0
- package/five/model/materials/tsl/defines.d.ts +68 -0
- package/five/model/materials/tsl/nodeTypes.d.ts +12 -0
- package/five/model/materials/tsl/outputBuilder.d.ts +26 -0
- package/five/model/materials/tsl/panoColor.d.ts +17 -0
- package/five/model/materials/tsl/panoTransition.d.ts +8 -0
- package/five/model/materials/tsl/utils.d.ts +11 -0
- package/five/model/model-scene.d.ts +172 -0
- package/five/model/model.d.ts +203 -0
- package/five/model/objects/pbmGaussianSplattingObject.d.ts +47 -0
- package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +73 -0
- package/five/model/objects/pbmGroup.d.ts +8 -0
- package/five/model/objects/pbmMesh.d.ts +10 -0
- package/five/model/objects/pbmPointCloud.d.ts +89 -0
- package/five/model/objects/pbmPointCloudObject.d.ts +81 -0
- package/five/model/parameter.d.ts +138 -0
- package/five/model/tile3d/header.d.ts +88 -0
- package/five/model/tile3d/index.d.ts +213 -0
- package/five/model/tile3d/tile-cache.d.ts +18 -0
- package/five/model/tile3d/tile-content.d.ts +10 -0
- package/five/model/tile3d/tile-node.d.ts +26 -0
- package/five/model/tile3d/tile-request-scheduler.d.ts +17 -0
- package/five/model/tile3d/tile.d.ts +79 -0
- package/five/model/tile3d/tileset-base-traverser.d.ts +59 -0
- package/five/model/tile3d/tileset-most-detail-traverser.d.ts +14 -0
- package/five/model/tile3d/tileset-normal-traverser.d.ts +15 -0
- package/five/model/tile3d/tileset-skip-traverser.d.ts +60 -0
- package/five/model/tile3d/tileset.d.ts +65 -0
- package/five/model/tile3d/trajectory-content.d.ts +0 -0
- package/five/model/tile3d/trajectory-node.d.ts +15 -0
- package/five/model/tile3d/trajectory.d.ts +30 -0
- package/five/model/tile3d/types.d.ts +33 -0
- package/five/model/view-layer.d.ts +20 -0
- package/five/renderer/compute-renderers/pointcloud-compute-renderer.d.ts +154 -0
- package/five/renderer/compute-renderers/rgb565.d.ts +45 -0
- package/five/renderer/compute-renderers/shaders/clear.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/fullscreenQuad.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/rasterize.d.ts +2 -0
- package/five/renderer/five-renderer.d.ts +33 -0
- package/five/renderer/index.d.ts +3 -0
- package/five/renderer/postprocessing/composer.d.ts +45 -0
- package/five/renderer/postprocessing/index.d.ts +8 -0
- package/five/renderer/postprocessing/passes/adaptive-luminance-pass.d.ts +27 -0
- package/five/renderer/postprocessing/passes/eye-dome-lighting-pass.d.ts +31 -0
- package/five/renderer/postprocessing/passes/flowing-fireworks-3d-pass.d.ts +71 -0
- package/five/renderer/postprocessing/passes/flowing-light-2d-pass.d.ts +26 -0
- package/five/renderer/postprocessing/passes/flowing-light-3d-pass.d.ts +75 -0
- package/five/renderer/postprocessing/passes/gaussian-blur-pass.d.ts +22 -0
- package/five/renderer/postprocessing/passes/pass.d.ts +38 -0
- package/five/renderer/scene-renderers/scene-renderer.d.ts +9 -0
- package/five/renderer/tools/full-screen-quad.d.ts +17 -0
- package/five/renderer/tools/postprocess-uv.d.ts +11 -0
- package/five/renderer/tools/render-cube-to-equirectangular.d.ts +7 -0
- package/five/renderer/tools/render-full-screen-depth.d.ts +2 -0
- package/five/renderer/tools/render-full-screen.d.ts +2 -0
- package/five/texture/histogram.d.ts +54 -0
- package/five/texture/imageBitmap.d.ts +13 -0
- package/five/texture/initTexture.d.ts +3 -0
- package/five/texture/loader.d.ts +39 -0
- package/five/texture/textureData.d.ts +11 -0
- package/five/thirdparty/fflate.d.ts +1407 -0
- package/five/thirdparty/hammer.d.ts +375 -0
- package/five/thirdparty/jsrsasign.d.ts +753 -0
- package/five/thirdparty/meshopt_decoder.d.ts +15 -0
- package/five/three-version-check.d.ts +1 -0
- package/five/types/addableObject.d.ts +12 -0
- package/five/types/cube.d.ts +2 -0
- package/five/types/gestureInput.d.ts +24 -0
- package/five/types/imageOptions.d.ts +20 -0
- package/five/types/intersectMeshInterface.d.ts +8 -0
- package/five/types/movePanoEffect.d.ts +13 -0
- package/five/types/movePanoOptions.d.ts +36 -0
- package/five/types/panoCircleMeshInterface.d.ts +34 -0
- package/five/types/plugin.d.ts +25 -0
- package/five/types/pose.d.ts +17 -0
- package/five/types/state.d.ts +20 -0
- package/five/types/viewport.d.ts +22 -0
- package/five/utils/ajax.d.ts +66 -0
- package/five/utils/animationFrameLoop.d.ts +45 -0
- package/five/utils/array.d.ts +31 -0
- package/five/utils/asyncTaskQueue.d.ts +8 -0
- package/five/utils/bufferGeometry.d.ts +33 -0
- package/five/utils/calculateProgress.d.ts +39 -0
- package/five/utils/calculateThreeMouse.d.ts +13 -0
- package/five/utils/canplayVideo.d.ts +2 -0
- package/five/utils/clamp.d.ts +2 -0
- package/five/utils/clock.d.ts +30 -0
- package/five/utils/createSymbol.d.ts +5 -0
- package/five/utils/decodeText.d.ts +2 -0
- package/five/utils/deepEqual.d.ts +2 -0
- package/five/utils/deepFreeze.d.ts +2 -0
- package/five/utils/defineProperty.d.ts +9 -0
- package/five/utils/detector.d.ts +14 -0
- package/five/utils/distance.d.ts +10 -0
- package/five/utils/draco.d.ts +26 -0
- package/five/utils/easing.d.ts +63 -0
- package/five/utils/event.d.ts +159 -0
- package/five/utils/face3.d.ts +12 -0
- package/five/utils/formatRad.d.ts +7 -0
- package/five/utils/hdr-data.d.ts +13 -0
- package/five/utils/imageSupport.d.ts +6 -0
- package/five/utils/imageURL.d.ts +42 -0
- package/five/utils/isEmptyObject.d.ts +2 -0
- package/five/utils/isNil.d.ts +6 -0
- package/five/utils/isNumber.d.ts +2 -0
- package/five/utils/isPowerOfTwo.d.ts +2 -0
- package/five/utils/isPromise.d.ts +2 -0
- package/five/utils/isSimilar.d.ts +6 -0
- package/five/utils/json.d.ts +7 -0
- package/five/utils/ktx2.d.ts +30 -0
- package/five/utils/lzma/index.d.ts +2 -0
- package/five/utils/lzma/lzma.d.ts +3 -0
- package/five/utils/lzma/lzmaWASM.d.ts +2 -0
- package/five/utils/lzma/lzmaWorker.d.ts +14 -0
- package/five/utils/memoryUsage.d.ts +37 -0
- package/five/utils/motion.d.ts +38 -0
- package/five/utils/noop.d.ts +6 -0
- package/five/utils/now.d.ts +7 -0
- package/five/utils/pano.d.ts +9 -0
- package/five/utils/pick.d.ts +3 -0
- package/five/utils/poseUtils.d.ts +5 -0
- package/five/utils/renderCubeTextureToCubeRenderTarget.d.ts +3 -0
- package/five/utils/renderDepth.d.ts +2 -0
- package/five/utils/renderTexturesToCubeRenderTarget.d.ts +10 -0
- package/five/utils/requestPermission.d.ts +3 -0
- package/five/utils/shaderContentFix.d.ts +7 -0
- package/five/utils/shaderMaterial.d.ts +20 -0
- package/five/utils/stateUtils.d.ts +5 -0
- package/five/utils/string-pattern.d.ts +8 -0
- package/five/utils/subscribe.d.ts +67 -0
- package/five/utils/tileCube.d.ts +19 -0
- package/five/utils/toFastProperties.d.ts +1 -0
- package/five/utils/typedCache.d.ts +10 -0
- package/five/utils/uniform.d.ts +15 -0
- package/five/utils/url.d.ts +35 -0
- package/five/utils/uuid.d.ts +5 -0
- package/five/utils/values.d.ts +2 -0
- package/five/utils/vectorCoordinates.d.ts +29 -0
- package/five/utils/volume.d.ts +111 -0
- package/five/utils/worker.d.ts +26 -0
- package/five/work/_ALLOW_HOST.d.ts +2 -0
- package/five/work/index.d.ts +6 -0
- package/five/work/keychain.d.ts +5 -0
- package/five/work/looseWorkType.d.ts +128 -0
- package/five/work/verify.d.ts +7 -0
- package/five/work/work.d.ts +246 -0
- package/five/work/workFetcher.d.ts +4 -0
- package/five/work/workJson.d.ts +3 -0
- package/five/work/workJsonType.d.ts +73 -0
- package/five/work/workObserverUtils.d.ts +36 -0
- package/five/work/workParser.d.ts +6 -0
- package/five/work/workResolvedObserver.d.ts +12 -0
- package/five/work/workVerify.d.ts +2 -0
- package/five/work/works.d.ts +10 -0
- package/llms.txt +66 -0
- package/package.json +56 -0
- package/plugins/BasePlugin/index.d.ts +96 -0
- package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.d.ts +66 -0
- package/plugins/GaussianSplattingEntranceAnimationPlugin/index.d.ts +5 -0
- package/plugins/GaussianSplattingEntranceAnimationPlugin/typing.d.ts +32 -0
- package/plugins/index.d.ts +2 -0
- package/plugins/index.js +255 -0
- package/plugins/index.mjs +539 -0
- package/plugins/utils/absoluteUrl.d.ts +5 -0
- package/react/autoCanvas.d.ts +9 -0
- package/react/canvas.d.ts +19 -0
- package/react/context.d.ts +12 -0
- package/react/createProvider.d.ts +98 -0
- package/react/createStore.d.ts +144 -0
- package/react/fiveApp.d.ts +22 -0
- package/react/hooks/unsafe__useFiveInstance.d.ts +9 -0
- package/react/hooks/useFiveAction.d.ts +147 -0
- package/react/hooks/useFiveCameraDirection.d.ts +7 -0
- package/react/hooks/useFiveCameraRaycaster.d.ts +7 -0
- package/react/hooks/useFiveCurrentObserver.d.ts +11 -0
- package/react/hooks/useFiveCurrentState.d.ts +15 -0
- package/react/hooks/useFiveEventCallback.d.ts +12 -0
- package/react/hooks/useFiveFloor.d.ts +15 -0
- package/react/hooks/useFiveHelper.d.ts +14 -0
- package/react/hooks/useFiveModelBounding.d.ts +5 -0
- package/react/hooks/useFiveModelEffect.d.ts +14 -0
- package/react/hooks/useFiveModelIntersectRaycaster.d.ts +22 -0
- package/react/hooks/useFiveModelReadyState.d.ts +8 -0
- package/react/hooks/useFivePlugin.d.ts +22 -0
- package/react/hooks/useFiveProject2d.d.ts +21 -0
- package/react/hooks/useFiveSceneEffect.d.ts +21 -0
- package/react/hooks/useFiveState.d.ts +6 -0
- package/react/hooks/useFiveWork.d.ts +29 -0
- package/react/index.d.ts +28 -0
- package/react/index.js +255 -0
- package/react/index.mjs +896 -0
- package/react/withFive.d.ts +213 -0
- package/resource/basis/1.16/basis_transcoder.js +22 -0
- package/resource/basis/1.16/basis_transcoder.wasm +0 -0
- package/resource/basis/README.md +5 -0
- package/resource/draco/1.5.6/draco_decoder.js +34 -0
- package/resource/draco/1.5.6/draco_decoder.wasm +0 -0
- package/resource/draco/1.5.6/draco_decoder_gltf.js +33 -0
- package/resource/draco/1.5.6/draco_decoder_gltf.wasm +0 -0
- package/resource/draco/1.5.6/draco_encoder.js +35 -0
- package/resource/draco/1.5.6/draco_encoder.wasm +0 -0
- package/resource/draco/1.5.6/draco_encoder_wrapper.js +97 -0
- package/resource/draco/1.5.6/draco_wasm_wrapper.js +117 -0
- package/resource/draco/1.5.6/draco_wasm_wrapper_gltf.js +116 -0
- package/resource/draco/README.md +5 -0
- package/umd/five-plugins.js +255 -0
- package/umd/five-react.js +255 -0
- package/umd/five.js +1579 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import type { Camera } from '../../core/camera';
|
|
3
|
+
import type { ModelScene } from '../model-scene';
|
|
4
|
+
import type { ParameterValue } from '../parameter';
|
|
5
|
+
import type { Trajectory } from './trajectory';
|
|
6
|
+
import type { Tile3D } from './index';
|
|
7
|
+
export declare class TrajectoryNode extends THREE.Object3D {
|
|
8
|
+
name: string;
|
|
9
|
+
contentObject: THREE.Object3D;
|
|
10
|
+
private disposers;
|
|
11
|
+
constructor(name: string, contentObject: THREE.Object3D, disposer?: () => void);
|
|
12
|
+
update(renderer: THREE.WebGPURenderer, camera: Camera, modelScene: ModelScene, tile3d: Tile3D, trajectory: Trajectory, parameterValue: ParameterValue): boolean;
|
|
13
|
+
dispose(): void;
|
|
14
|
+
clone(): this;
|
|
15
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import type { TrajectoryHeader } from './header';
|
|
3
|
+
import type { TrajectoryNode } from './trajectory-node';
|
|
4
|
+
import type { Tileset } from './tileset';
|
|
5
|
+
export type TrajectoryContentData = {
|
|
6
|
+
byteLength: number;
|
|
7
|
+
memoryUsage: number;
|
|
8
|
+
uri: string;
|
|
9
|
+
object: TrajectoryNode;
|
|
10
|
+
positionArray: ArrayLike<number>;
|
|
11
|
+
timeArray: ArrayLike<number>;
|
|
12
|
+
};
|
|
13
|
+
export declare class Trajectory {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
tileset: Tileset;
|
|
17
|
+
transform: THREE.Matrix4;
|
|
18
|
+
visible: boolean;
|
|
19
|
+
content: {
|
|
20
|
+
uri: string;
|
|
21
|
+
data?: TrajectoryContentData;
|
|
22
|
+
loadState: 'LOADING' | 'UNLOADED' | 'READY' | 'FAILED';
|
|
23
|
+
loadProgress: number;
|
|
24
|
+
loadStateUpdateTime: number;
|
|
25
|
+
loadfailRetryDelay: number;
|
|
26
|
+
byteLength: number;
|
|
27
|
+
memoryUsage: number;
|
|
28
|
+
};
|
|
29
|
+
constructor(id: string, header: TrajectoryHeader, tileset: Tileset);
|
|
30
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import type { CullingVolume } from '../../utils/volume';
|
|
3
|
+
export type TileRequestOrder = 'SCREEN_SPACE_ERROR' | 'SCREEN_LEVEL_VERTICAL' | 'SCREEN_VERTICAL';
|
|
4
|
+
export type FrameState = {
|
|
5
|
+
frameNumber: number;
|
|
6
|
+
time: number;
|
|
7
|
+
camera: {
|
|
8
|
+
type: "PerspectiveCamera" | "OrthographicCamera";
|
|
9
|
+
position: THREE.Vector3;
|
|
10
|
+
direction: THREE.Vector3;
|
|
11
|
+
up: THREE.Vector3;
|
|
12
|
+
projectionMatrix: THREE.Matrix4;
|
|
13
|
+
visible: boolean;
|
|
14
|
+
refine: boolean;
|
|
15
|
+
};
|
|
16
|
+
height: number;
|
|
17
|
+
pixelRatio: number;
|
|
18
|
+
cullingVolume: CullingVolume;
|
|
19
|
+
sseDenominator: number;
|
|
20
|
+
minLevelOfDetail: number;
|
|
21
|
+
maxLevelOfDetail: number;
|
|
22
|
+
minGeometricError: number;
|
|
23
|
+
maxGeometricError: number;
|
|
24
|
+
skipLevelOfDetail: boolean;
|
|
25
|
+
mostDetail: boolean;
|
|
26
|
+
loadSiblings: boolean;
|
|
27
|
+
cameraCulling: boolean;
|
|
28
|
+
maxRequests: number;
|
|
29
|
+
requestOrder: TileRequestOrder;
|
|
30
|
+
maxScreenSpaceError: number;
|
|
31
|
+
memoryAdjustedScreenSpaceError: boolean;
|
|
32
|
+
maxMemoryUsage: number;
|
|
33
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Tile3D } from './tile3d';
|
|
2
|
+
import { WorkModel } from "../work";
|
|
3
|
+
import { TextureOptions } from "../types/imageOptions";
|
|
4
|
+
import { Fetcher } from "../utils/ajax";
|
|
5
|
+
export interface ViewLayer extends Tile3D {
|
|
6
|
+
}
|
|
7
|
+
export interface ViewLayerInit {
|
|
8
|
+
tilesetUrl: string;
|
|
9
|
+
name: string;
|
|
10
|
+
type: "point_cloud" | "mesh" | "gaussian_splatting";
|
|
11
|
+
upAxis: string;
|
|
12
|
+
light: boolean;
|
|
13
|
+
fetcher: Fetcher;
|
|
14
|
+
}
|
|
15
|
+
export declare function loadViewLayer(init: ViewLayerInit): Promise<ViewLayer>;
|
|
16
|
+
export declare function loadViewLayers(workModel: WorkModel, options: {
|
|
17
|
+
fetcher: Fetcher;
|
|
18
|
+
light: boolean;
|
|
19
|
+
textureOptions?: TextureOptions;
|
|
20
|
+
}): Promise<ViewLayer[]>;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import type { PBMPointCloud } from '../../model/objects/pbmPointCloud';
|
|
3
|
+
/**
|
|
4
|
+
* 基于 Compute Shader 的点云渲染器
|
|
5
|
+
*
|
|
6
|
+
* 渲染管线:清除 framebuffer → 计算着色器计算点云 → 全屏四边形显示。
|
|
7
|
+
* 从调用方接收 GPUDevice(不自行请求 adapter/device)。
|
|
8
|
+
*/
|
|
9
|
+
export declare class PointCloudComputeRenderer {
|
|
10
|
+
private device;
|
|
11
|
+
private format;
|
|
12
|
+
private width;
|
|
13
|
+
private height;
|
|
14
|
+
private pointBuffer;
|
|
15
|
+
private colorBuffer;
|
|
16
|
+
private normalBuffer;
|
|
17
|
+
private framebuffer;
|
|
18
|
+
private frameUniformBuffer;
|
|
19
|
+
private displayParamsBuffer;
|
|
20
|
+
private clearPipeline;
|
|
21
|
+
private rasterizePipeline;
|
|
22
|
+
private fullscreenQuadPipeline;
|
|
23
|
+
private clearBindGroup;
|
|
24
|
+
private rasterizeBindGroup;
|
|
25
|
+
private displayBindGroup;
|
|
26
|
+
private pointCount;
|
|
27
|
+
private static readonly FRAME_UNIFORM_SIZE;
|
|
28
|
+
private static readonly TILE_UNIFORM_SIZE;
|
|
29
|
+
private static readonly OFFSET_VIEW_PROJ;
|
|
30
|
+
private static readonly OFFSET_SCREEN_WIDTH;
|
|
31
|
+
private static readonly OFFSET_SCREEN_HEIGHT;
|
|
32
|
+
private static readonly OFFSET_POINT_SIZE_MODE;
|
|
33
|
+
/** pointAttenPack: mix(-proj[2][3]), scale(2/proj[1][1]), pad, pad */
|
|
34
|
+
private static readonly OFFSET_POINT_ATTEN_PACK;
|
|
35
|
+
/** viewZRow: viewMatrix 第三行,用于 mvPosition.z */
|
|
36
|
+
private static readonly OFFSET_VIEW_Z_ROW;
|
|
37
|
+
private static readonly OFFSET_POINT_SCALE;
|
|
38
|
+
private static readonly OFFSET_POINT_MIN_PIXEL;
|
|
39
|
+
private static readonly OFFSET_POINT_MAX_PIXEL;
|
|
40
|
+
private static readonly OFFSET_PIXEL_RATIO;
|
|
41
|
+
private static readonly OFFSET_RESOLUTION_Y;
|
|
42
|
+
private static readonly OFFSET_POINT_PIXEL_HARD_MAX;
|
|
43
|
+
private static readonly OFFSET_POINT_SHAPE;
|
|
44
|
+
/** 与 rasterize.wgsl FrameUniforms 连续布局一致(无 per-tile model/bbox) */
|
|
45
|
+
private static readonly OFFSET_CAMERA_WORLD;
|
|
46
|
+
private static readonly OFFSET_CAMERA_FORWARD;
|
|
47
|
+
private static readonly OFFSET_CONSTANT_COLOR;
|
|
48
|
+
private static readonly OFFSET_COLOR_GAIN;
|
|
49
|
+
private static readonly OFFSET_STYLE_PACK;
|
|
50
|
+
private static readonly OFFSET_FLOOR_PACK;
|
|
51
|
+
private static readonly OFFSET_CLIP0_INV;
|
|
52
|
+
private static readonly OFFSET_CLIP0_META;
|
|
53
|
+
private static readonly OFFSET_CLIP1_INV;
|
|
54
|
+
private static readonly OFFSET_CLIP1_META;
|
|
55
|
+
private static readonly OFFSET_TILE_MODEL;
|
|
56
|
+
private static readonly OFFSET_TILE_BBOX_MIN;
|
|
57
|
+
private static readonly OFFSET_TILE_BBOX_MAX;
|
|
58
|
+
private static readonly OFFSET_TILE_PACK;
|
|
59
|
+
private readonly frameUniformScratch;
|
|
60
|
+
private readonly tileUniformScratch;
|
|
61
|
+
private readonly pointSizeUniformState;
|
|
62
|
+
private placeholderGradientTexture;
|
|
63
|
+
private placeholderGradientView;
|
|
64
|
+
private gradientSampler;
|
|
65
|
+
private fullscreenQuadPipelineAdditive;
|
|
66
|
+
private ready;
|
|
67
|
+
/** 同一 compute pass 内避免对 rasterize 管线重复 setPipeline(多 tile 连续 dispatch 时略减开销) */
|
|
68
|
+
private lastBoundComputePipeline;
|
|
69
|
+
/**
|
|
70
|
+
* tile 级 GPU 资源缓存:用强引用 Map 而非 WeakMap,配合 PBMPointCloud.dispose
|
|
71
|
+
* 派发的 'dispose' 事件主动销毁 buffer,确保 tile 卸载后内存立即归还。
|
|
72
|
+
*/
|
|
73
|
+
private pointCloudCache;
|
|
74
|
+
private rasterizeBindGroupCache;
|
|
75
|
+
private tileUniformBufferCache;
|
|
76
|
+
/** key = PBMPointCloud;value = 注册到 THREE.EventDispatcher 上的 'dispose' 监听器,用于反注册。 */
|
|
77
|
+
private tileDisposeListeners;
|
|
78
|
+
private packedColorScratch;
|
|
79
|
+
/** GPU 法线 Int8×4 打包 scratch,跨 tile 复用(与 packedColorScratch 同策略)。 */
|
|
80
|
+
private packedNormalScratch;
|
|
81
|
+
private readonly tmpVec3a;
|
|
82
|
+
private readonly tmpVec3b;
|
|
83
|
+
private readonly tmpVec3c;
|
|
84
|
+
private readonly tmpVec3d;
|
|
85
|
+
constructor(device: GPUDevice, format: GPUTextureFormat);
|
|
86
|
+
/**
|
|
87
|
+
* 上传点云数据到 GPU 缓冲区。
|
|
88
|
+
* 位置按 xyz 紧凑存储(12 字节/点),颜色预打包为 RGB565(4 字节/点)。
|
|
89
|
+
*/
|
|
90
|
+
setPointCloud(cacheKey: object, positions: Float32Array, colors: Float32Array | Uint8Array, count: number, versions?: {
|
|
91
|
+
positionsVersion: number;
|
|
92
|
+
colorsVersion: number;
|
|
93
|
+
}, rasterResources?: {
|
|
94
|
+
gradientView: GPUTextureView;
|
|
95
|
+
}): void;
|
|
96
|
+
/**
|
|
97
|
+
* 每帧调用一次:写入共享 frame uniform(viewProj、屏幕、点大小、相机、材质、裁切)。
|
|
98
|
+
*/
|
|
99
|
+
beginPointCloudFrame(camera: THREE.Camera, representativePc: PBMPointCloud, scratchM4: THREE.Matrix4): void;
|
|
100
|
+
/** 每 tile 单次 writeBuffer:model、bbox、pointCount、flags。 */
|
|
101
|
+
writeTileUniform(pc: PBMPointCloud, pointCount: number): void;
|
|
102
|
+
/** 写入点大小相关参数。 */
|
|
103
|
+
setPointSizeParams(params: {
|
|
104
|
+
sizeMode: 'FIXED' | 'ATTENUATION';
|
|
105
|
+
pointShape: 'SQUARE' | 'CIRCLE';
|
|
106
|
+
pointScale: number;
|
|
107
|
+
pointMinPixel: number;
|
|
108
|
+
pointMaxPixel: number;
|
|
109
|
+
pixelRatio: number;
|
|
110
|
+
resolutionY: number;
|
|
111
|
+
maxDisplayBoost?: number;
|
|
112
|
+
}): void;
|
|
113
|
+
/** 占位渐变纹理 view(无梯度图或纹理未上 GPU 时使用)。 */
|
|
114
|
+
getPlaceholderGradientView(): GPUTextureView;
|
|
115
|
+
private static tileFlags;
|
|
116
|
+
/** 与 five vertex.glsl 中 ATTENUATION 分支一致,避免透视/正交 matrixLerp 时 clip.w 失真。 */
|
|
117
|
+
private writePointAttenuationUniforms;
|
|
118
|
+
private writeFrameUniformsDataView;
|
|
119
|
+
private writeTileUniformsDataView;
|
|
120
|
+
/**
|
|
121
|
+
* 调整 framebuffer 大小并更新屏幕尺寸 uniform。
|
|
122
|
+
* 销毁旧 framebuffer,创建新的,并重建 bind groups。
|
|
123
|
+
*/
|
|
124
|
+
resize(width: number, height: number): void;
|
|
125
|
+
/** 写入 clear:可并入同一 compute pass,与其它 rasterize dispatch 一起提交。 */
|
|
126
|
+
encodeFramebufferClear(computePass: GPUComputePassEncoder): void;
|
|
127
|
+
/** 按当前 bindGroup / pointCount 追加一次 rasterize dispatch(需先 setPointCloud + writeTileUniform)。 */
|
|
128
|
+
encodeRasterize(computePass: GPUComputePassEncoder): void;
|
|
129
|
+
encodeFramebufferDisplay(renderPass: GPURenderPassEncoder, options?: {
|
|
130
|
+
additive?: boolean;
|
|
131
|
+
}): void;
|
|
132
|
+
/** 单帧:clear + 多次 rasterize + display,一次 queue.submit(Potree 等多块场景同款思路)。 */
|
|
133
|
+
submitMergedPointCloudFrame(colorTextureView: GPUTextureView, depthTextureView: GPUTextureView, rasterizeSteps: (computePass: GPUComputePassEncoder) => void, options?: {
|
|
134
|
+
clear?: boolean;
|
|
135
|
+
display?: boolean;
|
|
136
|
+
displayAdditive?: boolean;
|
|
137
|
+
}): void;
|
|
138
|
+
/** 销毁所有 GPU 缓冲区。 */
|
|
139
|
+
dispose(): void;
|
|
140
|
+
/**
|
|
141
|
+
* 在 tile 第一次进入 compute 渲染管线时,挂一个 'dispose' 监听到 PBMPointCloud 上。
|
|
142
|
+
* PBMPointCloud.dispose() 由 tile 调度链路统一调用,无需 tile3d 侧做任何改动。
|
|
143
|
+
*/
|
|
144
|
+
private registerTileDisposer;
|
|
145
|
+
/** 释放一个 tile 占用的所有 GPU 资源(per-tile buffers / tile uniform / bind group / 监听)。 */
|
|
146
|
+
private releaseTileResources;
|
|
147
|
+
/**
|
|
148
|
+
* 重建所有引用 framebuffer 和点云数据缓冲区的 bind groups。
|
|
149
|
+
* 当 framebuffer 和点云数据都可用时,设置 ready = true。
|
|
150
|
+
*/
|
|
151
|
+
private recreateBindGroups;
|
|
152
|
+
private ensureTileUniformBuffer;
|
|
153
|
+
private bindRasterizeGroup;
|
|
154
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RGB565 color encoding/decoding utilities for compute shader point cloud rendering.
|
|
3
|
+
*
|
|
4
|
+
* RGB565 format: 16 bits total — Red 5 bits (15-11), Green 6 bits (10-5), Blue 5 bits (4-0).
|
|
5
|
+
* Used in the framebuffer encoding where each pixel is a u32: high 16 bits = depth, low 16 bits = RGB565.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Pack normalized RGB [0,1] into a 16-bit RGB565 value.
|
|
9
|
+
* @param r - Red channel, normalized [0, 1]
|
|
10
|
+
* @param g - Green channel, normalized [0, 1]
|
|
11
|
+
* @param b - Blue channel, normalized [0, 1]
|
|
12
|
+
* @returns RGB565 packed as a u16 number
|
|
13
|
+
*/
|
|
14
|
+
export declare function packRGB565(r: number, g: number, b: number): number;
|
|
15
|
+
/**
|
|
16
|
+
* Decode an RGB565 packed u16 back to normalized RGB [0,1].
|
|
17
|
+
* @param packed - RGB565 encoded value
|
|
18
|
+
* @returns Object with r, g, b channels normalized to [0, 1]
|
|
19
|
+
*/
|
|
20
|
+
export declare function decodeRGB565(packed: number): {
|
|
21
|
+
r: number;
|
|
22
|
+
g: number;
|
|
23
|
+
b: number;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Encode depth [0,1] and RGB [0,1] into a single u32.
|
|
27
|
+
* High 16 bits = depth quantized to u16, low 16 bits = RGB565 color.
|
|
28
|
+
* @param depth - Depth value, normalized [0, 1]
|
|
29
|
+
* @param r - Red channel, normalized [0, 1]
|
|
30
|
+
* @param g - Green channel, normalized [0, 1]
|
|
31
|
+
* @param b - Blue channel, normalized [0, 1]
|
|
32
|
+
* @returns u32 encoded value
|
|
33
|
+
*/
|
|
34
|
+
export declare function encodeDepthColor(depth: number, r: number, g: number, b: number): number;
|
|
35
|
+
/**
|
|
36
|
+
* Decode a u32 encoded with encodeDepthColor back to depth + RGB.
|
|
37
|
+
* @param encoded - u32 value encoded by encodeDepthColor
|
|
38
|
+
* @returns Object with depth and r, g, b channels normalized to [0, 1]
|
|
39
|
+
*/
|
|
40
|
+
export declare function decodeDepthColor(encoded: number): {
|
|
41
|
+
depth: number;
|
|
42
|
+
r: number;
|
|
43
|
+
g: number;
|
|
44
|
+
b: number;
|
|
45
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import { type Scene } from '../core/scene';
|
|
3
|
+
import { type Camera } from '../core/camera';
|
|
4
|
+
import { type OutputTextureDataType } from '../core/internalWebGPURenderer';
|
|
5
|
+
import { type ModelScene } from '../model';
|
|
6
|
+
import { EffectComposer } from './postprocessing/composer';
|
|
7
|
+
export declare class FiveRenderer {
|
|
8
|
+
renderMode: string;
|
|
9
|
+
composer: EffectComposer;
|
|
10
|
+
composerVersion: string;
|
|
11
|
+
outputType: OutputTextureDataType;
|
|
12
|
+
private sceneRenders;
|
|
13
|
+
private computeRenderer;
|
|
14
|
+
private useComputePointCloud;
|
|
15
|
+
private compositeRenderTarget;
|
|
16
|
+
private lastWidth;
|
|
17
|
+
private lastHeight;
|
|
18
|
+
private readonly gpuTextureViewCache;
|
|
19
|
+
constructor(options: {
|
|
20
|
+
outputType?: OutputTextureDataType;
|
|
21
|
+
});
|
|
22
|
+
render(renderer: THREE.WebGPURenderer, scene: Scene, modelScene: ModelScene, camera: Camera, sceneUpdated: boolean): boolean;
|
|
23
|
+
/** 将场景(点云 compute pass + three 场景)合成到 `compositeRenderTarget`。 */
|
|
24
|
+
private renderSceneToComposite;
|
|
25
|
+
/**
|
|
26
|
+
* WebGPU 路径:Compute Shader 光栅化点云 → 再渲染 three 场景叠加。
|
|
27
|
+
* 点云本身是 Mesh,需在 three 渲染阶段临时隐藏,避免被 NodeMaterial 重复绘制。
|
|
28
|
+
*/
|
|
29
|
+
private renderPointCloudCompute;
|
|
30
|
+
dispose(): void;
|
|
31
|
+
private getCompositeTargetViews;
|
|
32
|
+
private getCachedGpuTextureView;
|
|
33
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { EffectComposer, FivePass, type Pass, AdaptiveLuminancePass, EyeDomeLightingPass, FlowingLight2DPass, type FlowingLight2DPassLine, FlowingLight3DPass, type FlowingLight3DPassLine, GaussianBlurPass, FlowingFireworks3DPass, type FlowingFireworks3DPassLine, } from './postprocessing';
|
|
2
|
+
export { FullScreenQuad } from './tools/full-screen-quad';
|
|
3
|
+
export { FiveRenderer } from './five-renderer';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author alteredq / http://alteredqualia.com/
|
|
3
|
+
* WebGPU 版本,基于 three.js 的 EffectComposer 设计。
|
|
4
|
+
*/
|
|
5
|
+
import * as THREE from 'three/webgpu';
|
|
6
|
+
import { type Pass } from './passes/pass';
|
|
7
|
+
import { type OutputTextureDataType } from '../../core/internalWebGPURenderer';
|
|
8
|
+
import { Clock } from '../../utils/clock';
|
|
9
|
+
/**
|
|
10
|
+
* EffectComposer(WebGPU)
|
|
11
|
+
*
|
|
12
|
+
* 用于管理后处理 pass 的渲染流程。使用两个 RenderTarget 做 ping-pong,
|
|
13
|
+
* 与 three.js 的 Pass(RenderPass 写入 readBuffer)保持兼容。
|
|
14
|
+
*/
|
|
15
|
+
export declare class EffectComposer {
|
|
16
|
+
outputType: OutputTextureDataType;
|
|
17
|
+
renderTarget1: THREE.RenderTarget;
|
|
18
|
+
renderTarget2: THREE.RenderTarget;
|
|
19
|
+
writeBuffer: THREE.RenderTarget;
|
|
20
|
+
readBuffer: THREE.RenderTarget;
|
|
21
|
+
passes: Pass[];
|
|
22
|
+
normalMaterial: THREE.MeshNormalMaterial;
|
|
23
|
+
clock: Clock;
|
|
24
|
+
renderToScreen: boolean;
|
|
25
|
+
status: {
|
|
26
|
+
endabledPassNumber: number;
|
|
27
|
+
needsColorGBuffer: boolean;
|
|
28
|
+
needsDepthGBuffer: boolean;
|
|
29
|
+
needsNormalGBuffer: boolean;
|
|
30
|
+
version: string;
|
|
31
|
+
};
|
|
32
|
+
/** G-Buffer 纹理集合,由 FiveRenderer 注入。 */
|
|
33
|
+
gbuffer: Map<'depth' | 'normal' | 'color', THREE.Texture>;
|
|
34
|
+
constructor(options: {
|
|
35
|
+
outputType?: OutputTextureDataType;
|
|
36
|
+
});
|
|
37
|
+
swapBuffers(): void;
|
|
38
|
+
addPass(pass: Pass): void;
|
|
39
|
+
insertPass(pass: Pass, index: number): void;
|
|
40
|
+
removePass(pass: Pass): void;
|
|
41
|
+
render(renderer: THREE.WebGPURenderer): boolean;
|
|
42
|
+
setSize(width: number, height: number): void;
|
|
43
|
+
updateStatus(): void;
|
|
44
|
+
dispose(): void;
|
|
45
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { EffectComposer } from './composer';
|
|
2
|
+
export { type Pass, FivePass } from './passes/pass';
|
|
3
|
+
export { AdaptiveLuminancePass } from './passes/adaptive-luminance-pass';
|
|
4
|
+
export { EyeDomeLightingPass } from './passes/eye-dome-lighting-pass';
|
|
5
|
+
export { GaussianBlurPass } from './passes/gaussian-blur-pass';
|
|
6
|
+
export { FlowingLight2DPass, type FlowingLight2DPassLine } from './passes/flowing-light-2d-pass';
|
|
7
|
+
export { FlowingLight3DPass, type FlowingLight3DPassLine } from './passes/flowing-light-3d-pass';
|
|
8
|
+
export { FlowingFireworks3DPass, type FlowingFireworks3DPassLine } from './passes/flowing-fireworks-3d-pass';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import { FivePass } from './pass';
|
|
3
|
+
/**
|
|
4
|
+
* AdaptiveLuminancePass(WebGPU / TSL)
|
|
5
|
+
*
|
|
6
|
+
* 统计画面亮度直方图并平滑地把亮度通道映射到目标区间,实现自适应曝光/对比拉伸。
|
|
7
|
+
*
|
|
8
|
+
* 说明:WebGPU 不支持同步回读,这里使用 `readRenderTargetPixelsAsync` 做异步回读。
|
|
9
|
+
* 直方图统计存在约 1 帧延迟,min/max 每帧向目标值平滑步进,视觉上无感。
|
|
10
|
+
*/
|
|
11
|
+
export declare class AdaptiveLuminancePass extends FivePass {
|
|
12
|
+
maxMinValue: number;
|
|
13
|
+
minMaxValue: number;
|
|
14
|
+
valueStep: number;
|
|
15
|
+
sampleTestScale: number;
|
|
16
|
+
private histogram;
|
|
17
|
+
private minValue;
|
|
18
|
+
private maxValue;
|
|
19
|
+
private targetMin;
|
|
20
|
+
private targetMax;
|
|
21
|
+
private readbackPending;
|
|
22
|
+
private luminanceSampleTarget?;
|
|
23
|
+
constructor();
|
|
24
|
+
render(renderer: THREE.WebGPURenderer, writeBuffer: THREE.RenderTarget, readBuffer: THREE.RenderTarget, deltaTime?: number, maskActive?: boolean): void;
|
|
25
|
+
clearBuffer(): void;
|
|
26
|
+
dispose(): void;
|
|
27
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import { FivePass } from './pass';
|
|
3
|
+
import { type Camera } from '../../../core/camera';
|
|
4
|
+
/**
|
|
5
|
+
* EyeDomeLightingPass(WebGPU / TSL)
|
|
6
|
+
*
|
|
7
|
+
* 基于深度的边缘增强(EDL),常用于点云可视化,突出深度不连续处的轮廓。
|
|
8
|
+
* 依赖 G-Buffer 的 depth 纹理。
|
|
9
|
+
*/
|
|
10
|
+
export declare class EyeDomeLightingPass extends FivePass {
|
|
11
|
+
strength: number;
|
|
12
|
+
radius: number;
|
|
13
|
+
neighbours: number;
|
|
14
|
+
private camera;
|
|
15
|
+
private fsQuad;
|
|
16
|
+
private material;
|
|
17
|
+
private uStrength;
|
|
18
|
+
private uRadius;
|
|
19
|
+
private uResolution;
|
|
20
|
+
private uCameraNear;
|
|
21
|
+
private uCameraFar;
|
|
22
|
+
private uPerspToOrtho;
|
|
23
|
+
private depthMap;
|
|
24
|
+
private colorMap;
|
|
25
|
+
private uFlipY;
|
|
26
|
+
private builtNeighbours;
|
|
27
|
+
constructor(camera: Camera);
|
|
28
|
+
private buildMaterial;
|
|
29
|
+
render(renderer: THREE.WebGPURenderer, writeBuffer: THREE.RenderTarget, readBuffer: THREE.RenderTarget, deltaTime?: number, maskActive?: boolean): void;
|
|
30
|
+
dispose(): void;
|
|
31
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import { FivePass } from './pass';
|
|
3
|
+
import { type Camera } from '../../../core/camera';
|
|
4
|
+
export type FlowingFireworks3DPassLine = {
|
|
5
|
+
id?: string;
|
|
6
|
+
points: THREE.Vector3[];
|
|
7
|
+
totalLength: number;
|
|
8
|
+
color: THREE.Color;
|
|
9
|
+
opacity?: number;
|
|
10
|
+
tailLengthRatio?: number;
|
|
11
|
+
duration?: number;
|
|
12
|
+
startTime?: number;
|
|
13
|
+
particleCount?: number;
|
|
14
|
+
emissionRate?: number;
|
|
15
|
+
spread?: number;
|
|
16
|
+
particleSize?: number;
|
|
17
|
+
particleLife?: number;
|
|
18
|
+
gravity?: THREE.Vector3;
|
|
19
|
+
leadRatio?: number;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* FlowingFireworks3DPass(WebGPU / TSL)
|
|
23
|
+
*
|
|
24
|
+
* 与 FlowingLight3DPass 配套:在每条流光线条的「尾部位置」持续喷射向四周发散的
|
|
25
|
+
* 烟花状粒子。WebGPU 下点图元固定 1px,这里改用实例化四边形(billboard)绘制粒子,
|
|
26
|
+
* 运动积分与尺寸/淡出在 GPU 上完成,发射逻辑在 CPU 上完成,功能对齐 WebGL 版本。
|
|
27
|
+
*/
|
|
28
|
+
export declare class FlowingFireworks3DPass extends FivePass {
|
|
29
|
+
private camera;
|
|
30
|
+
private mesh;
|
|
31
|
+
private material;
|
|
32
|
+
private uTime;
|
|
33
|
+
private lines;
|
|
34
|
+
private blocks;
|
|
35
|
+
private geometry;
|
|
36
|
+
private arrPosition;
|
|
37
|
+
private arrVelocity;
|
|
38
|
+
private arrAccel;
|
|
39
|
+
private arrColor;
|
|
40
|
+
private arrParams;
|
|
41
|
+
private particleScene;
|
|
42
|
+
private orthoCamera;
|
|
43
|
+
private particleRenderTarget;
|
|
44
|
+
private blendMaterial;
|
|
45
|
+
private blendQuad;
|
|
46
|
+
private _tmpTail;
|
|
47
|
+
private uUniformTime;
|
|
48
|
+
private uResolution;
|
|
49
|
+
private uProj;
|
|
50
|
+
private uView;
|
|
51
|
+
private uBase;
|
|
52
|
+
private uParticle;
|
|
53
|
+
private uFlipBase;
|
|
54
|
+
private uFlipParticle;
|
|
55
|
+
constructor(camera: Camera);
|
|
56
|
+
private createParticleMaterial;
|
|
57
|
+
private createBlendMaterial;
|
|
58
|
+
setLines(lines: FlowingFireworks3DPassLine[]): void;
|
|
59
|
+
addLine(...lines: FlowingFireworks3DPassLine[]): string[];
|
|
60
|
+
removeLine(...ids: string[]): number;
|
|
61
|
+
setLine(params: {
|
|
62
|
+
id: string;
|
|
63
|
+
} & Partial<Omit<FlowingFireworks3DPassLine, 'id'>>): void;
|
|
64
|
+
private _rebuild;
|
|
65
|
+
private _samplePointAtLength;
|
|
66
|
+
private _emitParticle;
|
|
67
|
+
private _emit;
|
|
68
|
+
render(renderer: THREE.WebGPURenderer, writeBuffer: THREE.RenderTarget, readBuffer: THREE.RenderTarget, deltaTime?: number, maskActive?: boolean): void;
|
|
69
|
+
private _disposeParticles;
|
|
70
|
+
dispose(): void;
|
|
71
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import { FlowingLight3DPass } from './flowing-light-3d-pass';
|
|
3
|
+
import { type Camera } from '../../../core/camera';
|
|
4
|
+
export type FlowingLight2DPassLine = {
|
|
5
|
+
id?: string;
|
|
6
|
+
points: THREE.Vector2[];
|
|
7
|
+
totalLength: number;
|
|
8
|
+
color: THREE.Color;
|
|
9
|
+
opacity?: number;
|
|
10
|
+
duration?: number;
|
|
11
|
+
lineWidth?: number;
|
|
12
|
+
tailLengthRatio?: number;
|
|
13
|
+
startTime?: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* FlowingLight2DPass(WebGPU / TSL)
|
|
17
|
+
*
|
|
18
|
+
* 在 3D 流光基础上增加 2D 分支:当线段两端 z 为标记值时,
|
|
19
|
+
* 直接使用归一化屏幕坐标([0,1],y 向下)绘制,用于 HUD/贴屏流光。
|
|
20
|
+
*/
|
|
21
|
+
export declare class FlowingLight2DPass extends FlowingLight3DPass<FlowingLight2DPassLine> {
|
|
22
|
+
constructor(camera: Camera);
|
|
23
|
+
/** 将 2D 归一化坐标点转为内部 vec3(z = MARKER_Z) */
|
|
24
|
+
protected toInternalPoints(points: THREE.Vector2[]): THREE.Vector3[];
|
|
25
|
+
protected createLineMaterial(): THREE.NodeMaterial;
|
|
26
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import { FivePass } from './pass';
|
|
3
|
+
import { FullScreenQuad } from '../../tools/full-screen-quad';
|
|
4
|
+
import { type Camera } from '../../../core/camera';
|
|
5
|
+
export type FlowingLight3DPassLine = {
|
|
6
|
+
id?: string;
|
|
7
|
+
points: THREE.Vector3[];
|
|
8
|
+
totalLength: number;
|
|
9
|
+
color: THREE.Color;
|
|
10
|
+
opacity?: number;
|
|
11
|
+
duration?: number;
|
|
12
|
+
lineWidth?: number;
|
|
13
|
+
tailLengthRatio?: number;
|
|
14
|
+
startTime?: number;
|
|
15
|
+
};
|
|
16
|
+
/** 流光线条的通用输入形状(2D/3D 共用),points 元素类型由子类细化 */
|
|
17
|
+
export type FlowingLightLineInput = {
|
|
18
|
+
id?: string;
|
|
19
|
+
points: any[];
|
|
20
|
+
totalLength: number;
|
|
21
|
+
color: THREE.Color;
|
|
22
|
+
opacity?: number;
|
|
23
|
+
duration?: number;
|
|
24
|
+
lineWidth?: number;
|
|
25
|
+
tailLengthRatio?: number;
|
|
26
|
+
startTime?: number;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* FlowingLight3DPass(WebGPU / TSL)
|
|
30
|
+
*
|
|
31
|
+
* 使用实例化四边形在屏幕空间绘制 3D 流光线段,随时间沿路径流动,
|
|
32
|
+
* 通过加法混合叠加到 readBuffer 上。功能对齐 WebGL 版本。
|
|
33
|
+
*
|
|
34
|
+
* 泛型 `L` 表示外部输入的线条类型(默认与内部存储一致);
|
|
35
|
+
* 子类(如 2D)可指定不同的 `points` 类型并通过 `toInternalPoints` 转换。
|
|
36
|
+
*/
|
|
37
|
+
export declare class FlowingLight3DPass<L extends FlowingLightLineInput = FlowingLight3DPassLine> extends FivePass {
|
|
38
|
+
protected camera: Camera;
|
|
39
|
+
protected mesh: THREE.Mesh | null;
|
|
40
|
+
protected material: THREE.NodeMaterial;
|
|
41
|
+
protected uTime: number;
|
|
42
|
+
protected lines: FlowingLight3DPassLine[];
|
|
43
|
+
protected lineScene: THREE.Scene;
|
|
44
|
+
protected orthoCamera: THREE.OrthographicCamera;
|
|
45
|
+
protected lineRenderTarget: THREE.RenderTarget;
|
|
46
|
+
protected blendMaterial: THREE.NodeMaterial;
|
|
47
|
+
protected blendQuad: FullScreenQuad;
|
|
48
|
+
protected uUniformTime: THREE.UniformNode<"float", number>;
|
|
49
|
+
protected uResolution: THREE.UniformNode<"vec2", THREE.Vector2>;
|
|
50
|
+
protected uProj: THREE.UniformNode<"mat4", THREE.Matrix4>;
|
|
51
|
+
protected uView: THREE.UniformNode<"mat4", THREE.Matrix4>;
|
|
52
|
+
private uBase;
|
|
53
|
+
private uLine;
|
|
54
|
+
private uFlipBase;
|
|
55
|
+
private uFlipLine;
|
|
56
|
+
constructor(camera: Camera);
|
|
57
|
+
protected createLineMaterial(): THREE.NodeMaterial;
|
|
58
|
+
protected createBlendMaterial(): THREE.NodeMaterial;
|
|
59
|
+
/** 将外部 points 转为内部 Vector3[](默认恒等,子类可覆盖,如 2D 注入标记 z) */
|
|
60
|
+
protected toInternalPoints(points: L['points']): THREE.Vector3[];
|
|
61
|
+
/** 将外部线条转为内部线条(Vector3 points) */
|
|
62
|
+
protected toInternalLine(line: L): FlowingLight3DPassLine;
|
|
63
|
+
setLines(lines: L[]): void;
|
|
64
|
+
addLine(...lines: L[]): string[];
|
|
65
|
+
removeLine(...ids: string[]): number;
|
|
66
|
+
setLine(params: {
|
|
67
|
+
id: string;
|
|
68
|
+
} & Partial<Omit<L, 'id'>>): void;
|
|
69
|
+
protected _updateLineAttributes(lineIndex: number, newLine: FlowingLight3DPassLine, oldLine: FlowingLight3DPassLine): void;
|
|
70
|
+
protected _buildGeometryFromLines(): THREE.InstancedBufferGeometry | null;
|
|
71
|
+
protected _rebuildMesh(): void;
|
|
72
|
+
render(renderer: THREE.WebGPURenderer, writeBuffer: THREE.RenderTarget, readBuffer: THREE.RenderTarget, deltaTime?: number, maskActive?: boolean): void;
|
|
73
|
+
protected _disposeMesh(): void;
|
|
74
|
+
dispose(): void;
|
|
75
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as THREE from 'three/webgpu';
|
|
2
|
+
import { FivePass } from './pass';
|
|
3
|
+
import { type Camera } from '../../../core/camera';
|
|
4
|
+
/**
|
|
5
|
+
* GaussianBlurPass(WebGPU / TSL)
|
|
6
|
+
*
|
|
7
|
+
* 对 readBuffer 做各向同性高斯模糊。半径与 sigma 可运行时调整。
|
|
8
|
+
*/
|
|
9
|
+
export declare class GaussianBlurPass extends FivePass {
|
|
10
|
+
private camera;
|
|
11
|
+
private fsQuad;
|
|
12
|
+
material: THREE.NodeMaterial;
|
|
13
|
+
private uResolution;
|
|
14
|
+
private uRadius;
|
|
15
|
+
private uSigma;
|
|
16
|
+
private colorMap;
|
|
17
|
+
constructor(camera: Camera);
|
|
18
|
+
render(renderer: THREE.WebGPURenderer, writeBuffer: THREE.RenderTarget, readBuffer: THREE.RenderTarget, deltaTime?: number, maskActive?: boolean): void;
|
|
19
|
+
setRadius(radius: number): void;
|
|
20
|
+
setSigma(sigma: number): void;
|
|
21
|
+
dispose(): void;
|
|
22
|
+
}
|