@realsee/five 6.8.0-alpha.9 → 6.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS_READ_ME.md +6 -1
- package/AI_CONTEXT.md +6 -1
- package/README.md +10 -3
- package/ai_guides/README.md +29 -0
- package/ai_guides/api.md +92 -21
- package/ai_guides/features/3dtile.md +1 -1
- package/ai_guides/features/camera-animation.md +18 -1
- package/ai_guides/features/clipper.md +2 -2
- package/ai_guides/features/coordinate-system.md +20 -2
- package/ai_guides/features/event.md +106 -10
- package/ai_guides/features/five.md +17 -17
- package/ai_guides/features/flowing-light-2d-pass.md +11 -7
- package/ai_guides/features/flowing-light-3d-pass.md +12 -7
- package/ai_guides/features/gaussian-blur-pass.md +1 -1
- package/ai_guides/features/gesture.md +2 -1
- package/ai_guides/features/get-screen-pixels.md +2 -2
- package/ai_guides/features/image-options.md +2 -2
- package/ai_guides/features/load-external-model.md +6 -2
- package/ai_guides/features/load-progress.md +1 -1
- package/ai_guides/features/material.md +20 -12
- package/ai_guides/features/mode.md +1 -1
- package/ai_guides/features/model.md +1 -1
- package/ai_guides/features/move-pano-effect.md +1 -1
- package/ai_guides/features/multi-work.md +1 -1
- package/ai_guides/features/pano-filter.md +149 -0
- package/ai_guides/features/pano-tile.md +1 -1
- package/ai_guides/features/pano-uv.md +1 -1
- package/ai_guides/features/parameter.md +26 -2
- package/ai_guides/features/plugin.md +1 -1
- package/ai_guides/features/postprocessing.md +1 -1
- package/ai_guides/features/raycast.md +5 -2
- package/ai_guides/features/request-proxy.md +1 -1
- package/ai_guides/features/screen-project.md +2 -1
- package/ai_guides/features/state.md +23 -3
- package/ai_guides/features/view-layer.md +1 -1
- package/ai_guides/features/work.md +1 -1
- package/ai_guides/glossary.md +4 -4
- package/ai_guides/release_notes/6.8.md +190 -58
- package/ai_guides/template.md +11 -0
- package/docs/00_FOR_AI_AGENTS.md +3 -2
- package/docs/README.md +3 -2
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/main.js +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/five.AdaptiveLuminancePass.html +7 -6
- package/docs/classes/five.AnimationFrameLoop.html +1 -1
- package/docs/classes/five.BoundingMesh.html +2 -2
- package/docs/classes/five.Camera.html +3 -3
- package/docs/classes/five.EyeDomeLightingPass.html +1 -1
- package/docs/classes/five.Five.html +77 -76
- package/docs/classes/five.FivePass.html +1 -1
- package/docs/classes/five.Histogram.html +19 -0
- package/docs/classes/five.InternalWebGLRenderer.html +1 -1
- package/docs/classes/five.Model.html +8 -8
- package/docs/classes/five.ModelScene.html +1 -1
- package/docs/classes/five.NetworkSubscribe.html +5 -5
- package/docs/classes/five.PBMContainer.html +1 -1
- package/docs/classes/five.PBMCustomShader.html +42 -3
- package/docs/classes/five.PBMGSObject.html +5 -3
- package/docs/classes/five.PBMGroup.html +1 -1
- package/docs/classes/five.PBMMesh.html +1 -1
- package/docs/classes/five.PBMMeshMaterial.html +7 -7
- package/docs/classes/five.PBMPanoFilter.html +61 -0
- package/docs/classes/five.PBMPointCloud.html +1 -1
- package/docs/classes/five.PBMPointCloudMaterial.html +5 -6
- package/docs/classes/five.PBMSkinnedMesh.html +1 -1
- package/docs/classes/five.PBMUpdateable.html +41 -0
- package/docs/classes/five.PanoCircleMesh.html +1 -1
- package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
- package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
- package/docs/classes/five.Parameter.html +57 -55
- package/docs/classes/five.Scene.html +1 -1
- package/docs/classes/five.Subscribe.html +5 -5
- package/docs/classes/five.Tile.html +1 -1
- package/docs/classes/five.Tile3D.html +24 -24
- package/docs/classes/five.TileNode.html +1 -1
- package/docs/classes/five.Tileset.html +3 -2
- package/docs/classes/five.TrajectoryNode.html +1 -1
- package/docs/classes/five.Work.html +16 -16
- package/docs/classes/five.WorkResolvedObserver.html +22 -22
- package/docs/classes/gltf-loader.DDSLoader.html +1 -1
- package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
- package/docs/classes/gltf-loader.GLTFLoader.html +2 -2
- package/docs/classes/gltf-loader.GLTFObject.html +1 -1
- package/docs/classes/gltf-loader.GLTFParser.html +1 -1
- package/docs/classes/gltf-loader.THREEGLTFLoader.html +2 -2
- package/docs/classes/line.Line.html +1 -1
- package/docs/classes/line.LineGeometry.html +1 -1
- package/docs/classes/line.LineMaterial.html +1 -1
- package/docs/classes/line.LineSegmentsGeometry.html +1 -1
- package/docs/classes/line.THREE_Line2.html +1 -1
- package/docs/classes/line.THREE_LineSegments2.html +1 -1
- package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
- package/docs/classes/plugins.CSS3DObject.html +9 -0
- package/docs/classes/plugins.CSS3DRenderer.html +4 -2
- package/docs/classes/plugins.CSS3DSprite.html +11 -0
- package/docs/classes/plugins.Object3DHelperController.html +43 -0
- package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
- package/docs/classes/sticker.Sticker.html +1 -1
- package/docs/classes/vfx.Airflow.html +1 -1
- package/docs/classes/vfx.Flame.html +1 -1
- package/docs/classes/vfx.Particle.html +6 -6
- package/docs/classes/vfx.ParticleGPU.html +3 -3
- package/docs/classes/vfx.SpotLight.html +1 -1
- package/docs/documents/README.html +122 -1
- package/docs/documents/api.html +163 -35
- package/docs/documents/features_3dtile.html +1 -1
- package/docs/documents/features_camera-animation.html +18 -2
- package/docs/documents/features_clipper.html +2 -2
- package/docs/documents/features_coordinate-system.html +52 -3
- package/docs/documents/features_event.html +44 -8
- package/docs/documents/features_five.html +17 -17
- package/docs/documents/features_flowing-light-2d-pass.html +19 -116
- package/docs/documents/features_flowing-light-3d-pass.html +22 -124
- package/docs/documents/features_gaussian-blur-pass.html +6 -6
- package/docs/documents/features_gesture.html +2 -1
- package/docs/documents/features_get-screen-pixels.html +2 -2
- package/docs/documents/features_image-options.html +2 -2
- package/docs/documents/features_load-external-model.html +6 -2
- package/docs/documents/features_load-progress.html +1 -1
- package/docs/documents/features_material.html +11 -4
- package/docs/documents/features_mode.html +1 -1
- package/docs/documents/features_model.html +1 -1
- package/docs/documents/features_move-pano-effect.html +1 -1
- package/docs/documents/features_multi-work.html +1 -1
- package/docs/documents/features_pano-filter.html +123 -0
- package/docs/documents/features_pano-tile.html +1 -1
- package/docs/documents/features_pano-uv.html +1 -1
- package/docs/documents/features_parameter.html +11 -3
- package/docs/documents/features_plugin.html +1 -1
- package/docs/documents/features_postprocessing.html +1 -1
- package/docs/documents/features_raycast.html +5 -2
- package/docs/documents/features_request-proxy.html +1 -1
- package/docs/documents/features_screen-project.html +2 -1
- package/docs/documents/features_state.html +9 -2
- package/docs/documents/features_view-layer.html +1 -1
- package/docs/documents/features_work.html +1 -1
- package/docs/documents/glossary.html +5 -5
- package/docs/documents/release_notes_6.8.html +164 -64
- package/docs/documents/template.html +9 -0
- package/docs/functions/five.createDebugBoundingMesh.html +1 -1
- package/docs/functions/five.parseWork.html +1 -1
- package/docs/functions/plugins.CSS3DPlugin.html +1 -0
- package/docs/functions/plugins.GaussianSplattingEntranceAnimationPlugin.html +1 -0
- package/docs/functions/plugins.Object3DHelperPlugin.html +1 -0
- package/docs/functions/react.useFiveCurrentObserver.html +2 -2
- package/docs/functions/react.useFiveFloor.html +2 -2
- package/docs/functions/react.useFiveProject2d.html +2 -2
- package/docs/functions/vue.useFiveCurrentObserver.html +2 -2
- package/docs/functions/vue.useFiveFloor.html +2 -2
- package/docs/functions/vue.useFiveWorks.html +2 -2
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +122 -1
- package/docs/interfaces/five.AddableObject.html +1 -1
- package/docs/interfaces/five.AjaxOptions.html +1 -1
- package/docs/interfaces/five.BaseEvent.html +7 -2
- package/docs/interfaces/five.BaseExtendableEvent.html +11 -0
- package/docs/interfaces/five.EventCallback.html +58 -54
- package/docs/interfaces/five.FiveInitArgs.html +2 -2
- package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +9 -9
- package/docs/interfaces/five.GestureEvent.html +21 -2
- package/docs/interfaces/five.GesturePointer.html +20 -0
- package/docs/interfaces/five.ImageOptions.html +1 -1
- package/docs/interfaces/five.IntersectEvent.html +10 -2
- package/docs/interfaces/five.IntersectMesh.html +1 -1
- package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
- package/docs/interfaces/five.Intersection.html +1 -1
- package/docs/interfaces/five.LooseWorkObserver.html +2 -2
- package/docs/interfaces/five.LooseWorkPanorama.html +2 -2
- package/docs/interfaces/five.LooseWorkWithExtrinsics.html +6 -6
- package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +10 -10
- package/docs/interfaces/five.ModeChangeEvent.html +9 -2
- package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ModelEvent.html +7 -2
- package/docs/interfaces/five.ModelSceneEvent.html +7 -2
- package/docs/interfaces/five.ModelTileEvent.html +7 -2
- package/docs/interfaces/five.MovePanoOptions.html +8 -8
- package/docs/interfaces/five.NetworkAbortError.html +1 -1
- package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
- package/docs/interfaces/five.NetworkOptions.html +1 -1
- package/docs/interfaces/five.NetworkProxyError.html +1 -1
- package/docs/interfaces/five.NetworkResourceEvent.html +7 -2
- package/docs/interfaces/five.NetworkResponseError.html +1 -1
- package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
- package/docs/interfaces/five.ObjectEvent.html +7 -2
- package/docs/interfaces/five.PBMClipperParameter.html +2 -2
- package/docs/interfaces/five.PBMCustomShaderInitArgs.html +2 -2
- package/docs/interfaces/five.PBMCustomShaderSlots.html +2 -2
- package/docs/interfaces/five.PBMMaterial.html +1 -1
- package/docs/interfaces/five.PBMMeshMaterialParameters.html +5 -3
- package/docs/interfaces/five.PBMPanoDepth.html +5 -5
- package/docs/interfaces/five.PBMPanoFilterValue.html +6 -0
- package/docs/interfaces/five.PBMPanoPicture.html +8 -6
- package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +2 -3
- package/docs/interfaces/five.PBMRefinedScreen.html +2 -2
- package/docs/interfaces/five.PanoCircleMeshInterface.html +2 -2
- package/docs/interfaces/five.PanoEvent.html +15 -2
- package/docs/interfaces/five.PanoPrepareEvent.html +15 -0
- package/docs/interfaces/five.PanoTextureEvent.html +11 -2
- package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ParameterMaterialValue.html +40 -38
- package/docs/interfaces/five.ParameterTilesetValue.html +15 -15
- package/docs/interfaces/five.ParameterValue.html +54 -52
- package/docs/interfaces/five.Pose.html +1 -1
- package/docs/interfaces/five.RenderEvent.html +7 -2
- package/docs/interfaces/five.ResolvedParameterValue.html +55 -54
- package/docs/interfaces/five.RgbaData.html +7 -0
- package/docs/interfaces/five.SplatData.html +2 -2
- package/docs/interfaces/five.State.html +1 -1
- package/docs/interfaces/five.StateEvent.html +9 -2
- package/docs/interfaces/five.TextureOptions.html +1 -1
- package/docs/interfaces/five.Tile3DOptions.html +2 -2
- package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +7 -7
- package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ViewLayer.html +24 -24
- package/docs/interfaces/five.WorkCubeImage.html +3 -2
- package/docs/interfaces/five.WorkImage.html +6 -5
- package/docs/interfaces/five.WorkInitial.html +8 -8
- package/docs/interfaces/five.WorkModel.html +8 -8
- package/docs/interfaces/five.WorkModelLayer.html +6 -6
- package/docs/interfaces/five.WorkObserver.html +29 -29
- package/docs/interfaces/five.WorkObserverJson.html +2 -2
- package/docs/interfaces/five.WorkObserverProto.html +26 -0
- package/docs/interfaces/five.WorkPanoramaJson.html +2 -2
- package/docs/interfaces/five.WorkTile.html +6 -5
- package/docs/interfaces/five.WorkVideo.html +4 -4
- package/docs/interfaces/five.WorksEvent.html +7 -2
- package/docs/interfaces/five.XRControllerEvent.html +10 -2
- package/docs/interfaces/five.XRControllerState.html +8 -0
- package/docs/interfaces/five.XRGestureEvent.html +13 -2
- package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.XRSessionEvent.html +9 -2
- package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
- package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
- package/docs/interfaces/plugins.CSS3DPluginController.html +52 -0
- package/docs/interfaces/plugins.CSS3DPluginType.Config.html +2 -0
- package/docs/interfaces/plugins.CSS3DPluginType.CreateCSS3DObjectType.html +10 -0
- package/docs/interfaces/plugins.CSS3DPluginType.EventMap.html +10 -0
- package/docs/interfaces/plugins.CSS3DPluginType.Params.html +4 -0
- package/docs/interfaces/plugins.CSS3DPluginType.State.html +8 -0
- package/docs/interfaces/plugins.CSS3DRendererParameters.html +2 -0
- package/docs/interfaces/plugins.DynamicPathLinePluginController.html +3 -3
- package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
- package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationController.html +44 -0
- package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.BoundingAABB2D.html +3 -0
- package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.Config.html +8 -0
- package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.EventMap.html +10 -0
- package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.Keyframe.html +3 -0
- package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.State.html +8 -0
- package/docs/interfaces/plugins.ItemMaskController.html +1 -1
- package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.ItemMaskPluginType.State.html +2 -2
- package/docs/interfaces/plugins.Object3DHelperPluginType.BaseController.html +30 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.BaseHelper.html +22 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.BoundingBoxController.html +30 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.HelperOffset.html +4 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.MoveController.html +36 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.MoveHelperAbstract.html +32 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.Object3DHelper.html +12 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.Object3DHelperPluginState.html +4 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.Object3DHelperState.html +4 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.ObjectHelperControllers.html +4 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.RotateController.html +36 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.RotateHelperAbstract.html +28 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.Scissor.html +5 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.Vector2Position.html +3 -0
- package/docs/interfaces/plugins.Object3DHelperPluginType.Vector3Position.html +4 -0
- package/docs/interfaces/plugins.OrientationPluginController.html +6 -6
- package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
- package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
- package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
- package/docs/interfaces/plugins.PlayingState.html +2 -2
- package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
- package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
- package/docs/interfaces/plugins.TrajectoryController.html +8 -8
- package/docs/interfaces/react.FiveInjectionTypes.html +21 -21
- package/docs/interfaces/sticker.IntersectionLike.html +2 -2
- package/docs/interfaces/vfx.ParticleArgs.html +4 -4
- package/docs/interfaces/vue.FiveActionVueCallbacks.html +3 -3
- package/docs/modules/five.html +1 -1
- package/docs/modules/plugins.CSS3DPluginType.html +1 -0
- package/docs/modules/plugins.GaussianSplattingEntranceAnimationPluginType.html +1 -0
- package/docs/modules/plugins.Object3DHelperPluginType.html +1 -0
- package/docs/modules/plugins.html +1 -1
- package/docs/modules.html +1 -1
- package/docs/types/five.ControllerEventTypes.html +30 -26
- package/docs/types/five.EasingFunction.html +1 -0
- package/docs/types/five.EventTypes.html +26 -26
- package/docs/types/five.LegacyEventType.html +7 -7
- package/docs/types/five.PBMAlphaMode.html +1 -1
- package/docs/types/five.PBMColorStyle.html +1 -1
- package/docs/types/five.PBMFloorStyle.html +1 -1
- package/docs/types/five.PBMMeshShaderType.html +1 -1
- package/docs/types/five.PBMPointBack.html +1 -1
- package/docs/types/five.PBMPointCloudShaderType.html +1 -1
- package/docs/types/five.PBMPointShape.html +1 -1
- package/docs/types/five.PBMPointSize.html +1 -1
- package/docs/types/five.PBMTransition.html +1 -1
- package/docs/types/five.ParseOptions.html +6 -6
- package/docs/types/five.Works.html +1 -1
- package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
- package/docs/types/plugins.CSS3DPluginType.PluginData.html +1 -0
- package/docs/types/plugins.CSS3DPluginType.ServerData.html +1 -0
- package/docs/types/plugins.Object3DHelperPluginType.AddObject3DHelperConfig.html +13 -0
- package/docs/types/plugins.Object3DHelperPluginType.Circle.html +1 -0
- package/docs/types/plugins.Object3DHelperPluginType.Color.html +1 -0
- package/docs/types/plugins.Object3DHelperPluginType.Direction.html +1 -0
- package/docs/types/plugins.Object3DHelperPluginType.Direction4.html +1 -0
- package/docs/types/plugins.Object3DHelperPluginType.HelperConfig.html +1 -0
- package/docs/types/plugins.Object3DHelperPluginType.HelperEventMap.html +17 -0
- package/docs/types/plugins.Object3DHelperPluginType.InternalHelperEventMap.html +8 -0
- package/docs/types/plugins.Object3DHelperPluginType.Object3DHelperEventMap.html +1 -0
- package/docs/types/plugins.Object3DHelperPluginType.Object3DHelperPluginEventMap.html +7 -0
- package/docs/types/plugins.Object3DHelperPluginType.PositionFrom.html +1 -0
- package/docs/types/plugins.Object3DHelperPluginType.ScaleCallback.html +1 -0
- package/docs/types/plugins.Object3DHelperPluginType.ScalePosition.html +4 -0
- package/docs/types/plugins.Object3DHelperPluginType.UseFaceNormalInterface.html +4 -0
- package/docs/types/plugins.Object3DHelperPluginType.Vector2WithArray.html +1 -0
- package/docs/types/plugins.Object3DHelperPluginType.Vector3WithArray.html +1 -0
- package/docs/variables/five.PROXY_CONTROLLER_EVENT_NAMES.html +1 -1
- package/five/application/events.d.ts +1 -1
- package/five/application/five.d.ts +6 -5
- package/five/bvh/bvhObject.d.ts +2 -2
- package/five/controllers/base.d.ts +1 -0
- package/five/controllers/events.d.ts +5 -1
- package/five/controllers/mapview.d.ts +1 -0
- package/five/controllers/model.d.ts +2 -2
- package/five/controllers/panorama.d.ts +3 -2
- package/five/controllers/xrPanorama.d.ts +1 -1
- package/five/core/camera.d.ts +1 -1
- package/five/gaussian-splatting/util/renderData.d.ts +66 -0
- package/five/index.d.ts +4 -1
- package/five/index.js +272 -782
- package/five/index.mjs +26894 -32056
- package/five/meshes/boundingMesh.d.ts +1 -0
- package/five/model/index.d.ts +2 -2
- package/five/model/loaders/glTF-helpers/extensions/KHR_binary_glTF.d.ts +1 -1
- 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 +7 -5
- package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +13 -0
- package/five/model/loaders/glTF-helpers/extensions/base.d.ts +2 -1
- package/five/model/loaders/glTF-helpers/index.d.ts +4 -0
- package/five/model/loaders/glTF-helpers/parser.d.ts +2 -1
- package/five/model/loaders/spz.d.ts +2 -2
- package/five/model/materials/pbmMaterial.d.ts +54 -4
- package/five/model/materials/pbmMeshMaterial.d.ts +5 -3
- package/five/model/materials/pbmPointCloudMaterial.d.ts +0 -2
- package/five/model/objects/{pbmGSObject.d.ts → pbmGaussianSplattingObject.d.ts} +4 -1
- package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +59 -0
- package/five/model/objects/pbmGaussianSplattingTestMesh.d.ts +7 -0
- package/five/model/parameter.d.ts +11 -6
- package/five/model/tile3d/index.d.ts +5 -3
- package/five/model/tile3d/tile-node.d.ts +2 -2
- package/five/model/tile3d/tileset.d.ts +1 -0
- package/five/renderer/postprocessing/passes/adaptive-luminance-pass.d.ts +9 -7
- package/five/renderer/tools/render-cube-to-equirectangular.d.ts +7 -0
- package/five/renderer/tools/render-full-screen.d.ts +1 -1
- package/five/texture/histogram.d.ts +54 -0
- package/five/texture/loader.d.ts +1 -1
- package/five/texture/textureData.d.ts +11 -0
- package/five/thirdparty/hammer.d.ts +371 -255
- package/five/thirdparty/jsrsasign.d.ts +5 -20
- package/five/types/movePanoOptions.d.ts +4 -3
- package/five/utils/error.d.ts +1 -0
- package/five/utils/event.d.ts +98 -37
- package/five/utils/imageURL.d.ts +1 -1
- package/five/utils/memoryUsage.d.ts +2 -2
- package/five/utils/subscribe.d.ts +2 -2
- package/five/webxr/motionHelper.d.ts +1 -1
- package/five/work/index.d.ts +1 -0
- package/five/work/looseWorkType.d.ts +2 -2
- package/five/work/work.d.ts +5 -35
- package/five/work/workJsonType.d.ts +2 -2
- package/five/work/workObserverProto.d.ts +39 -0
- package/gltf-loader/index.js +9 -9
- package/gltf-loader/index.mjs +1351 -1451
- package/line/index.js +4 -4
- package/line/index.mjs +334 -513
- package/llms.txt +37 -1
- package/package.json +4 -4
- package/plugins/CSS3DPlugin/Controller.d.ts +64 -0
- package/plugins/CSS3DPlugin/index.d.ts +5 -0
- package/plugins/CSS3DPlugin/typing.d.ts +32 -0
- package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.d.ts +30 -0
- package/plugins/GaussianSplattingEntranceAnimationPlugin/index.d.ts +5 -0
- package/plugins/GaussianSplattingEntranceAnimationPlugin/typing.d.ts +28 -0
- package/plugins/Object3DHelperPlugin/Controller.d.ts +99 -0
- package/plugins/Object3DHelperPlugin/Controllers/BaseController.d.ts +142 -0
- package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.d.ts +16 -0
- package/plugins/Object3DHelperPlugin/Controllers/MoveController.d.ts +66 -0
- package/plugins/Object3DHelperPlugin/Controllers/RotateController.d.ts +61 -0
- package/plugins/Object3DHelperPlugin/FiveControllerWrapper.d.ts +17 -0
- package/plugins/Object3DHelperPlugin/Helper/BaseHelper.d.ts +97 -0
- package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.d.ts +16 -0
- package/plugins/Object3DHelperPlugin/Helper/MoveHelper.d.ts +37 -0
- package/plugins/Object3DHelperPlugin/Helper/RotateHelper.d.ts +93 -0
- package/plugins/Object3DHelperPlugin/constant.d.ts +27 -0
- package/plugins/Object3DHelperPlugin/index.d.ts +6 -0
- package/plugins/Object3DHelperPlugin/typing.d.ts +143 -0
- package/plugins/Object3DHelperPlugin/utils/ArrowGroup.d.ts +22 -0
- package/plugins/Object3DHelperPlugin/utils/CenterHandle.d.ts +23 -0
- package/plugins/Object3DHelperPlugin/utils/PlaneHandle.d.ts +19 -0
- package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.d.ts +5 -0
- package/plugins/Object3DHelperPlugin/utils/cameraHooks.d.ts +2 -0
- package/plugins/Object3DHelperPlugin/utils/direction.d.ts +14 -0
- package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.d.ts +5 -0
- package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.d.ts +8 -0
- package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.d.ts +8 -0
- package/plugins/Object3DHelperPlugin/utils/solidGuide.d.ts +27 -0
- package/plugins/Object3DHelperPlugin/utils/tipsDom.d.ts +8 -0
- package/plugins/TrajectoryPlugin/Controller.d.ts +1 -1
- package/plugins/index.d.ts +4 -1
- package/plugins/index.js +35 -21
- package/plugins/index.mjs +5418 -4238
- package/plugins/thirdParty/CSS3DRenderer.d.ts +16 -3
- package/plugins/thirdParty/domevents.d.ts +36 -0
- package/plugins/utils/uuid.d.ts +1 -4
- package/react/context.d.ts +3 -2
- package/react/createProvider.d.ts +4 -4
- package/react/createStore.d.ts +3 -3
- package/react/hooks/useFiveProject2d.d.ts +1 -1
- package/react/index.js +3 -3
- package/react/index.mjs +572 -783
- package/react/rendererPool.d.ts +2 -2
- package/shader-lib/index.js +13 -14
- package/shader-lib/index.mjs +424 -824
- package/sticker/index.js +3 -3
- package/sticker/index.mjs +102 -142
- package/umd/five-gltf-loader.js +9 -9
- package/umd/five-line.js +4 -4
- package/umd/five-plugins.js +35 -21
- package/umd/five-react.js +3 -3
- package/umd/five-shader-lib.js +13 -14
- package/umd/five-sticker.js +3 -3
- package/umd/five-vfx.js +21 -21
- package/umd/five-vue.js +3 -3
- package/umd/five.js +267 -777
- package/vfx/index.js +21 -21
- package/vfx/index.mjs +454 -910
- package/vue/index.js +3 -3
- package/vue/index.mjs +309 -301
- package/vue/rendererPool.d.ts +5 -5
- package/work-downloader/index.js +3 -3
- package/work-downloader/index.mjs +339 -556
- package/five/gs/util/renderData.d.ts +0 -32
- package/five/model/objects/pbmGSRenderMesh.d.ts +0 -29
- package/five/work/workObserverUtils.d.ts +0 -36
- /package/five/assets/{realsee-pmg-data-url.d.ts → realsee-png-data-url.d.ts} +0 -0
- /package/five/{gs → gaussian-splatting}/wasm/data.d.ts +0 -0
- /package/five/{gs → gaussian-splatting}/wasm/sort.d.ts +0 -0
- /package/five/{gs → gaussian-splatting}/worker/dataWorker.d.ts +0 -0
- /package/five/{gs → gaussian-splatting}/worker/sortWorker.d.ts +0 -0
|
@@ -130,7 +130,7 @@ pass.setLines([pathLine]);
|
|
|
130
130
|
### `setLine(params: { id: string } & Partial<Omit<Line, 'id'>>)`
|
|
131
131
|
通过 `id` 修改单条线的参数。支持部分更新,只更新传入的字段。
|
|
132
132
|
|
|
133
|
-
**性能优化**:
|
|
133
|
+
**性能优化**:
|
|
134
134
|
- 如果 `points` 数量不变,只更新 GPU 的 instance attributes,性能极高
|
|
135
135
|
- 如果 `points` 数量改变,会重建整个 mesh,性能开销较大
|
|
136
136
|
|
|
@@ -187,7 +187,7 @@ pass.setLine({
|
|
|
187
187
|
|
|
188
188
|
### 快速上手 (Quick Example)
|
|
189
189
|
|
|
190
|
-
|
|
190
|
+
```typescript
|
|
191
191
|
import { Five } from '@realsee/five';
|
|
192
192
|
import { FlowingLight2DPass } from '../../lib/five/renderer/postprocessing';
|
|
193
193
|
import * as THREE from 'three';
|
|
@@ -221,11 +221,12 @@ function animate() {
|
|
|
221
221
|
five.render();
|
|
222
222
|
}
|
|
223
223
|
animate();
|
|
224
|
+
```
|
|
224
225
|
|
|
225
226
|
|
|
226
227
|
### 多条路径 & 动态更新
|
|
227
228
|
|
|
228
|
-
|
|
229
|
+
```typescript
|
|
229
230
|
const pass = new FlowingLight2DPass(five.camera);
|
|
230
231
|
|
|
231
232
|
// 初始路径集合
|
|
@@ -262,7 +263,7 @@ document.addEventListener('click', (e) => {
|
|
|
262
263
|
const rect = five.canvas.getBoundingClientRect();
|
|
263
264
|
const x = (e.clientX - rect.left) / rect.width;
|
|
264
265
|
const y = (e.clientY - rect.top) / rect.height; // 左上角为原点,无需翻转
|
|
265
|
-
|
|
266
|
+
|
|
266
267
|
const newPath = {
|
|
267
268
|
points: [
|
|
268
269
|
new THREE.Vector2(0.5, 0.5),
|
|
@@ -275,11 +276,12 @@ document.addEventListener('click', (e) => {
|
|
|
275
276
|
};
|
|
276
277
|
pass.setLines([...paths, newPath]);
|
|
277
278
|
});
|
|
279
|
+
```
|
|
278
280
|
|
|
279
281
|
|
|
280
282
|
### 计算路径总长度
|
|
281
283
|
|
|
282
|
-
|
|
284
|
+
```typescript
|
|
283
285
|
function calculatePathLength(points: THREE.Vector2[]): number {
|
|
284
286
|
let length = 0;
|
|
285
287
|
for (let i = 1; i < points.length; i++) {
|
|
@@ -303,6 +305,7 @@ const pathLine = {
|
|
|
303
305
|
duration: 2000,
|
|
304
306
|
lineWidth: 0.01,
|
|
305
307
|
};
|
|
308
|
+
```
|
|
306
309
|
|
|
307
310
|
|
|
308
311
|
### 矩形路径示例
|
|
@@ -332,7 +335,7 @@ pass.setLines([rectPath]);
|
|
|
332
335
|
|
|
333
336
|
### 高 DPR 场景优化
|
|
334
337
|
|
|
335
|
-
|
|
338
|
+
```typescript
|
|
336
339
|
// InstancedMesh 实现自动优化高 DPR 性能
|
|
337
340
|
// 在 DPR=2 的 Retina 屏幕上,性能显著优于全屏着色器方案
|
|
338
341
|
|
|
@@ -352,6 +355,7 @@ const paths = Array.from({ length: 10 }, (_, i) => ({
|
|
|
352
355
|
}));
|
|
353
356
|
|
|
354
357
|
pass.setLines(paths);
|
|
358
|
+
```
|
|
355
359
|
|
|
356
360
|
|
|
357
361
|
## Debugging
|
|
@@ -435,4 +439,4 @@ setInterval(() => {
|
|
|
435
439
|
---
|
|
436
440
|
|
|
437
441
|
|
|
438
|
-
tags: [postprocessing, effect, flowing, light, pass, rendering, screenspace, instanced, performance]
|
|
442
|
+
tags: [流光, 光带, 导航路径, 指示线, 动态路径, 特效, postprocessing, effect, flowing, light, pass, rendering, screenspace, instanced, performance, 2d, screen-space]
|
|
@@ -122,7 +122,7 @@ pass.setLines([pathLine]);
|
|
|
122
122
|
### `setLine(params: { id: string } & Partial<Omit<Line, 'id'>>)`
|
|
123
123
|
通过 `id` 修改单条线的参数。支持部分更新,只更新传入的字段。
|
|
124
124
|
|
|
125
|
-
**性能优化**:
|
|
125
|
+
**性能优化**:
|
|
126
126
|
- 如果 `points` 数量不变,只更新 GPU 的 instance attributes,性能极高
|
|
127
127
|
- 如果 `points` 数量改变,会重建整个 mesh,性能开销较大
|
|
128
128
|
|
|
@@ -180,7 +180,7 @@ pass.setLine({
|
|
|
180
180
|
|
|
181
181
|
### 快速上手 (Quick Example)
|
|
182
182
|
|
|
183
|
-
|
|
183
|
+
```typescript
|
|
184
184
|
import { Five } from '@realsee/five';
|
|
185
185
|
import { FlowingLight3DPass } from '../../lib/five/renderer/postprocessing';
|
|
186
186
|
import * as THREE from 'three';
|
|
@@ -215,11 +215,12 @@ function animate() {
|
|
|
215
215
|
five.render();
|
|
216
216
|
}
|
|
217
217
|
animate();
|
|
218
|
+
```
|
|
218
219
|
|
|
219
220
|
|
|
220
221
|
### 多条 3D 路径
|
|
221
222
|
|
|
222
|
-
|
|
223
|
+
```typescript
|
|
223
224
|
const pass = new FlowingLight3DPass(camera);
|
|
224
225
|
|
|
225
226
|
const paths = [
|
|
@@ -258,11 +259,12 @@ const paths = [
|
|
|
258
259
|
];
|
|
259
260
|
|
|
260
261
|
pass.setLines(paths);
|
|
262
|
+
```
|
|
261
263
|
|
|
262
264
|
|
|
263
265
|
### 计算 3D 路径长度
|
|
264
266
|
|
|
265
|
-
|
|
267
|
+
```typescript
|
|
266
268
|
function calculatePath3DLength(points: THREE.Vector3[]): number {
|
|
267
269
|
let length = 0;
|
|
268
270
|
for (let i = 1; i < points.length; i++) {
|
|
@@ -284,11 +286,12 @@ const pathLine = {
|
|
|
284
286
|
duration: 3000,
|
|
285
287
|
lineWidth: 3.0,
|
|
286
288
|
};
|
|
289
|
+
```
|
|
287
290
|
|
|
288
291
|
|
|
289
292
|
### 结合相机动画
|
|
290
293
|
|
|
291
|
-
|
|
294
|
+
```typescript
|
|
292
295
|
// 光带路径随相机移动自动投影
|
|
293
296
|
const pass = new FlowingLight3DPass(camera);
|
|
294
297
|
|
|
@@ -309,11 +312,12 @@ five.setState({
|
|
|
309
312
|
mode: Five.Mode.Model,
|
|
310
313
|
// ... 其他参数
|
|
311
314
|
});
|
|
315
|
+
```
|
|
312
316
|
|
|
313
317
|
|
|
314
318
|
### 高 DPR 场景优化
|
|
315
319
|
|
|
316
|
-
|
|
320
|
+
```typescript
|
|
317
321
|
// InstancedMesh 实现自动优化高 DPR 性能
|
|
318
322
|
// 在 DPR=2 的 Retina 屏幕上,性能显著优于全屏着色器方案
|
|
319
323
|
|
|
@@ -333,6 +337,7 @@ const paths = Array.from({ length: 10 }, (_, i) => ({
|
|
|
333
337
|
}));
|
|
334
338
|
|
|
335
339
|
pass.setLines(paths);
|
|
340
|
+
```
|
|
336
341
|
|
|
337
342
|
|
|
338
343
|
## Debugging
|
|
@@ -417,4 +422,4 @@ setInterval(() => {
|
|
|
417
422
|
---
|
|
418
423
|
|
|
419
424
|
|
|
420
|
-
tags: [postprocessing, effect, flowing, light, pass, rendering, worldspace, projection, instanced, performance]
|
|
425
|
+
tags: [流光, 光带, 空间轨迹, 模型表面, 特效, postprocessing, effect, flowing, light, pass, rendering, worldspace, projection, instanced, performance, 3d, world-space]
|
|
@@ -198,5 +198,5 @@ console.log('Resolution:', blurPass['material'].uniforms.resolution.value);
|
|
|
198
198
|
---
|
|
199
199
|
|
|
200
200
|
```yaml
|
|
201
|
-
tags: [postprocessing, shader, effect, blur, pass, rendering]
|
|
201
|
+
tags: [模糊, 高斯模糊, 毛玻璃, 背景虚化, postprocessing, shader, effect, blur, pass, rendering, gaussian, blur-effect]
|
|
202
202
|
```
|
|
@@ -44,6 +44,7 @@ interface GestureEvent {
|
|
|
44
44
|
|
|
45
45
|
Five 的手势系统基于 Hammer.js 封装,主要包含以下几种手势:
|
|
46
46
|
|
|
47
|
+
* **gesture.fire**: 任意事件被触发。
|
|
47
48
|
* **gesture.pan**: 拖拽/平移。
|
|
48
49
|
* **gesture.pinch**: 双指缩放。
|
|
49
50
|
* **gesture.tap**: 点击。
|
|
@@ -176,5 +177,5 @@ five.on("gesture.pinch", (event) => {
|
|
|
176
177
|
---
|
|
177
178
|
|
|
178
179
|
```yaml
|
|
179
|
-
tags: [gesture, event, interaction, tap, pan, pinch]
|
|
180
|
+
tags: [手势, 点击, 拖拽, 缩放, 长按, 鼠标, 触摸, 交互控制, 自定义交互, gesture, event, interaction, tap, pan, pinch, preventDefault]
|
|
180
181
|
```
|
|
@@ -173,10 +173,10 @@ function getCenterColor(five: Five) {
|
|
|
173
173
|
|
|
174
174
|
## Related
|
|
175
175
|
|
|
176
|
-
* [
|
|
176
|
+
* [API Reference](../api.md): Five 核心 API 说明。
|
|
177
177
|
|
|
178
178
|
---
|
|
179
179
|
|
|
180
180
|
```yaml
|
|
181
|
-
tags: [getPixels, magnifier, screenshot, pixel, canvas]
|
|
181
|
+
tags: [截图, 放大镜, 取色器, 颜色拾取, 像素数据, getPixels, magnifier, screenshot, pixel, canvas, screen-capture, color-picker]
|
|
182
182
|
```
|
|
@@ -155,10 +155,10 @@ console.log(cutUrl);
|
|
|
155
155
|
|
|
156
156
|
## Related
|
|
157
157
|
|
|
158
|
-
* [
|
|
158
|
+
* [Pano Tile](./pano-tile.md): 全景图瓦片加载策略与 WorkTile 数据结构说明。
|
|
159
159
|
|
|
160
160
|
---
|
|
161
161
|
|
|
162
162
|
```yaml
|
|
163
|
-
tags: [imageOptions, configuration, optimization, cdn, private-deployment]
|
|
163
|
+
tags: [图片配置, 图片格式, 域名映射, 多云部署, 私有化, 图片质量, 流量优化, imageOptions, configuration, optimization, cdn, private-deployment, avif, webp]
|
|
164
164
|
```
|
|
@@ -78,7 +78,9 @@ Five 使用 **Z-up** (Z 轴向上) 的右手坐标系。
|
|
|
78
78
|
* `EXT_texture_webp`
|
|
79
79
|
* `CESIUM_RTC`
|
|
80
80
|
* `REALSEE_materials_lightmap`
|
|
81
|
+
* `KHR_gaussian_splatting`
|
|
81
82
|
* `KHR_gaussian_splatting_compression_spz`
|
|
83
|
+
* `KHR_gaussian_splatting_compression_spz_2`
|
|
82
84
|
|
|
83
85
|
| 参数 | 类型 | 默认值 | 说明 |
|
|
84
86
|
| --- | --- | --- | --- |
|
|
@@ -341,10 +343,12 @@ loadAt3d('https://example.com/model.at3d', {
|
|
|
341
343
|
|
|
342
344
|
## Related
|
|
343
345
|
|
|
344
|
-
* [
|
|
346
|
+
* [Model](./model.md): 关于 Five 内部模型加载机制的说明。
|
|
347
|
+
* [Coordinate System](./coordinate-system.md): 坐标系定义,理解 Y-up 与 Z-up 的转换。
|
|
348
|
+
* [Request Proxy](./request-proxy.md): 自定义请求拦截(鉴权、CDN),与 fetcher 配合使用。
|
|
345
349
|
|
|
346
350
|
---
|
|
347
351
|
|
|
348
352
|
```yaml
|
|
349
|
-
tags: [loader, gltf, ply, splat, fbx, external-model]
|
|
353
|
+
tags: [加载模型, 导入模型, 点云, 内存泄漏, loader, gltf, ply, splat, fbx, external-model, glb, obj, 3d-model, gaussian-splatting, point-cloud, draco, dispose]
|
|
350
354
|
```
|
|
@@ -82,6 +82,7 @@ Five 支持高性能的点云渲染(PBM),并提供灵活的样式配置:
|
|
|
82
82
|
| `receiveShadow` | `boolean` | `false` | 模型是否接收阴影。 |
|
|
83
83
|
| `useAddBlend` | `boolean` | `false` | 是否使用半透明叠加渲染。 |
|
|
84
84
|
| `customShaders` | `PBMCustomShader[]` | `[]` | 自定义 Shader 配置。 |
|
|
85
|
+
| `panoFilter` | `PBMPanoFilter` | `null` | 全景图滤镜 (亮度、对比度、色温等)。详情见 [Pano Filter](./pano-filter.md)。 |
|
|
85
86
|
| `clippers` | `PBMClipperParameter[]` | `[]` | 模型裁切参数。 |
|
|
86
87
|
| `boundingBox` | `THREE.Box3` | `Infinity` | 模型包围盒。 |
|
|
87
88
|
|
|
@@ -97,7 +98,7 @@ Five 支持高性能的点云渲染(PBM),并提供灵活的样式配置:
|
|
|
97
98
|
| `constantColor` | `THREE.Vector3` | `(0.6, 0.6, 0.6)` | 模型纯色模式下的颜色值。 |
|
|
98
99
|
| `outlineGain` | `number` | `0.0` | 轮廓线增益。 |
|
|
99
100
|
| `distanceGain` | `number` | `0.0` | 距离增益。 |
|
|
100
|
-
| `
|
|
101
|
+
| `gaussianSplattingSHDegree` | `number` | `0` | 3D Gaussian Splatting 的球谐阶数。 |
|
|
101
102
|
|
|
102
103
|
### Internal & Low-Level (内部与底层配置)
|
|
103
104
|
|
|
@@ -122,30 +123,37 @@ Five 支持高性能的点云渲染(PBM),并提供灵活的样式配置:
|
|
|
122
123
|
### 1. Adjusting Model Transparency and Style (调整模型透明度与样式)
|
|
123
124
|
|
|
124
125
|
```typescript
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
// 设置半透明
|
|
127
|
+
five.modelScene.parameter.set('opacity', 0.5);
|
|
128
|
+
|
|
129
|
+
// 仅显示原始 UV 贴图
|
|
130
|
+
five.modelScene.parameter.set('modelAlpha', 0.0);
|
|
131
|
+
|
|
132
|
+
// 设置楼层样式
|
|
133
|
+
five.modelScene.parameter.set('floorStyle', 'wireframe');
|
|
130
134
|
```
|
|
131
135
|
|
|
132
136
|
### 2. Configuring Point Cloud Appearance (配置点云外观)
|
|
133
137
|
|
|
134
138
|
```typescript
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
139
|
+
// 大小随距离衰减
|
|
140
|
+
five.modelScene.parameter.set('pointSize', 'ATTENUATION');
|
|
141
|
+
|
|
142
|
+
// 基础大小
|
|
143
|
+
five.modelScene.parameter.set('pointScale', 0.05);
|
|
144
|
+
|
|
145
|
+
// 最大像素限制
|
|
146
|
+
five.modelScene.parameter.set('pointMaxPixel', 20);
|
|
140
147
|
```
|
|
141
148
|
|
|
142
149
|
## Related
|
|
143
150
|
|
|
144
151
|
* [Parameter](./parameter.md): 配置系统入口与继承逻辑。
|
|
152
|
+
* [Pano Filter](./pano-filter.md): 了解全景图滤镜的详细用法。
|
|
145
153
|
* [3DTile Params](./3dtile.md): 性能与加载相关参数。
|
|
146
154
|
|
|
147
155
|
---
|
|
148
156
|
|
|
149
157
|
```yaml
|
|
150
|
-
tags: [material, appearance, pointcloud, parameter, roof, ceiling, config]
|
|
158
|
+
tags: [材质, 透明度, 点云, 楼层, 阴影, 亮度, 天花板, 开盖, 顶点标记, 渲染样式, material, appearance, pointcloud, parameter, roof, ceiling, config, opacity]
|
|
151
159
|
```
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Pano Filter (全景图滤镜)
|
|
2
|
+
|
|
3
|
+
- **Summary**: `PBMPanoFilter` 用于调整全景图的视觉效果,包括亮度、对比度、饱和度、色温、色调等。它作为参数传递给 `ModelScene`,可实时改变全景图的渲染表现。
|
|
4
|
+
- **Schema**: `PBMPanoFilter`, `PBMUpdateable`
|
|
5
|
+
- **Concepts**: Material Filter, Color Correction
|
|
6
|
+
- **Configuration**: Temperature, Tint, Brightness, Contrast, Saturation
|
|
7
|
+
- **Examples**: 滤镜开启与参数调整
|
|
8
|
+
|
|
9
|
+
## Schema
|
|
10
|
+
|
|
11
|
+
> **Definition**: [PBMPanoFilter](../../five/model/materials/pbmMaterial.d.ts)
|
|
12
|
+
|
|
13
|
+
`PBMPanoFilter` 类定义了全景图的滤镜参数。所有属性均为对象引用,直接修改其内部属性即可生效。
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { PBMUpdateable } from "@realsee/five";
|
|
17
|
+
|
|
18
|
+
export class PBMPanoFilter extends PBMUpdateable {
|
|
19
|
+
/** 对比度控制 */
|
|
20
|
+
public readonly contrast: {
|
|
21
|
+
/** 对比度偏移 [-1, 1] (默认 0) */
|
|
22
|
+
contrastBias: number;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/** 饱和度控制 */
|
|
26
|
+
public readonly saturation: {
|
|
27
|
+
/** 饱和度偏移 [-1, 1] (默认 0) */
|
|
28
|
+
saturationBias: number;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/** 颜色控制 (色温与色调) */
|
|
32
|
+
public readonly color: {
|
|
33
|
+
/** 色温偏移 [-100, 100] (默认 0) */
|
|
34
|
+
temperatureBias: number;
|
|
35
|
+
/** 色调偏移 [-100, 100] (默认 0) */
|
|
36
|
+
tintBias: number
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/** 高光与阴影控制 */
|
|
40
|
+
public readonly highlightShadow: {
|
|
41
|
+
/** 全局亮度偏移 [-255, 255] (默认 0) */
|
|
42
|
+
globalBias: number;
|
|
43
|
+
/** 高光偏移 [-255, 255] (默认 0) */
|
|
44
|
+
highlightBias: number;
|
|
45
|
+
/** 阴影偏移 [-255, 255] (默认 0) */
|
|
46
|
+
shadowBias: number;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Concepts
|
|
52
|
+
|
|
53
|
+
### Material Filter (材质滤镜)
|
|
54
|
+
与 [Postprocessing](./postprocessing.md) (后处理) 不同,`PBMPanoFilter` 是作用于全景图材质 (Material) 阶段的滤镜。这意味着它直接影响纹理的采样和着色计算,而不是对最终渲染图像进行二次处理。
|
|
55
|
+
|
|
56
|
+
### Parameter Binding (参数绑定)
|
|
57
|
+
滤镜实例需要通过 `five.modelScene.parameter.set('panoFilter', filter)` 绑定到场景中才能生效。
|
|
58
|
+
|
|
59
|
+
## Configuration
|
|
60
|
+
|
|
61
|
+
以下参数均通过修改 `PBMPanoFilter` 实例的属性进行配置。
|
|
62
|
+
|
|
63
|
+
### Color & Tone (色彩与色调)
|
|
64
|
+
|
|
65
|
+
| Property | Type | Range | Default | Description |
|
|
66
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
67
|
+
| `color.temperatureBias` | `number` | `[-100, 100]` | `0` | **色温**。正值偏暖 (黄),负值偏冷 (蓝)。 |
|
|
68
|
+
| `color.tintBias` | `number` | `[-100, 100]` | `0` | **色调**。正值偏洋红,负值偏绿。 |
|
|
69
|
+
| `saturation.saturationBias` | `number` | `[-1, 1]` | `0` | **饱和度**。`0` 为原色,`-1` 为黑白。 |
|
|
70
|
+
| `contrast.contrastBias` | `number` | `[-1, 1]` | `0` | **对比度**。正值增强对比,负值降低对比。 |
|
|
71
|
+
|
|
72
|
+
### Light & Shadow (光影)
|
|
73
|
+
|
|
74
|
+
| Property | Type | Range | Default | Description |
|
|
75
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
76
|
+
| `highlightShadow.globalBias` | `number` | `[-255, 255]` | `0` | **亮度 (Brightness)**。整体提升或降低画面亮度。 |
|
|
77
|
+
| `highlightShadow.highlightBias` | `number` | `[-255, 255]` | `0` | **高光 (Highlight)**。仅调整画面亮部的亮度。 |
|
|
78
|
+
| `highlightShadow.shadowBias` | `number` | `[-255, 255]` | `0` | **阴影 (Shadow)**。仅调整画面暗部的亮度。 |
|
|
79
|
+
|
|
80
|
+
## Examples
|
|
81
|
+
|
|
82
|
+
### Basic Usage (基础用法)
|
|
83
|
+
|
|
84
|
+
创建一个滤镜实例并应用到 Five 场景中。
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
import { Five, PBMPanoFilter } from "@realsee/five";
|
|
88
|
+
|
|
89
|
+
const five = new Five();
|
|
90
|
+
// ... 初始化 five ...
|
|
91
|
+
|
|
92
|
+
// 1. 创建滤镜实例
|
|
93
|
+
const panoFilter = new PBMPanoFilter();
|
|
94
|
+
|
|
95
|
+
// 2. 配置参数 (例如:增加一点暖色调和亮度)
|
|
96
|
+
panoFilter.color.temperatureBias = 10; // 暖色
|
|
97
|
+
panoFilter.highlightShadow.globalBias = 20; // 提亮
|
|
98
|
+
|
|
99
|
+
// 3. 启用滤镜
|
|
100
|
+
five.modelScene.parameter.set('panoFilter', panoFilter);
|
|
101
|
+
|
|
102
|
+
// 4. (可选) 停用滤镜
|
|
103
|
+
// five.modelScene.parameter.reset('panoFilter');
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Interactive Adjustment (动态调整)
|
|
107
|
+
|
|
108
|
+
滤镜参数支持实时修改,适合制作调节面板。
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
import { Five, PBMPanoFilter } from "@realsee/five";
|
|
112
|
+
|
|
113
|
+
// 假设已经有 five 实例
|
|
114
|
+
const panoFilter = new PBMPanoFilter();
|
|
115
|
+
five.modelScene.parameter.set('panoFilter', panoFilter);
|
|
116
|
+
|
|
117
|
+
// 模拟 UI 绑定的数据对象
|
|
118
|
+
const filterSettings = {
|
|
119
|
+
brightness: 0,
|
|
120
|
+
contrast: 0,
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// 监听 UI 变化 (示例伪代码)
|
|
124
|
+
function onBrightnessChange(value: number) {
|
|
125
|
+
// value range: [-255, 255]
|
|
126
|
+
panoFilter.highlightShadow.globalBias = value;
|
|
127
|
+
// 如果 five 没有开启自动渲染 (play: false),需要手动触发重绘
|
|
128
|
+
five.needsRender = true;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function onContrastChange(value: number) {
|
|
132
|
+
// value range: [-1, 1]
|
|
133
|
+
panoFilter.contrast.contrastBias = value;
|
|
134
|
+
five.needsRender = true;
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Related
|
|
139
|
+
|
|
140
|
+
* [Model](./model.md): 了解 ModelScene 及其参数系统。
|
|
141
|
+
* [Parameter](./parameter.md): 了解 Five 的全局初始化参数。
|
|
142
|
+
* [Postprocessing](./postprocessing.md): 了解屏幕空间的后处理效果。
|
|
143
|
+
* [Material](./material.md): 材质参数配置(透明度、点云等)。
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
```yaml
|
|
148
|
+
tags: [滤镜, 色温, 暖色, 冷色, 饱和度, 亮度, 对比度, filter, material, visual, color, brightness, contrast, color-correction, warm, cool, tone]
|
|
149
|
+
```
|
|
@@ -64,10 +64,34 @@ class Parameter {
|
|
|
64
64
|
reset(...keys: string[]): void;
|
|
65
65
|
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
67
|
+
* 获取经过继承计算后的最终值(每次调用创建新对象)
|
|
68
68
|
* @param upstream 上游 Parameter 对象列表(通常由引擎自动传入)
|
|
69
69
|
*/
|
|
70
70
|
resolveValue(...upstream: Parameter[]): ResolvedParameterValue;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 获取经过继承计算后的最终值(复用 target 对象,避免重复创建)
|
|
74
|
+
* 适用于高频调用场景(如逐帧更新),可显著减少 GC 压力。
|
|
75
|
+
* @param target 用于写入结果的已有对象,其属性会被重置为默认值后重新赋值
|
|
76
|
+
* @param upstream 上游 Parameter 对象列表
|
|
77
|
+
*/
|
|
78
|
+
static resolveValueTo(
|
|
79
|
+
target: Partial<ResolvedParameterValue>,
|
|
80
|
+
...upstream: Partial<ParameterValue>[]
|
|
81
|
+
): ResolvedParameterValue;
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
> `resolveValue()` 内部已委托给 `resolveValueTo({}, ...)`,两者计算逻辑一致,区别仅在于是否复用对象。
|
|
86
|
+
|
|
87
|
+
#### 3. Version (版本标识)
|
|
88
|
+
|
|
89
|
+
`ResolvedParameterValue` 通过 `versionNumber: number` 标识当前配置的版本。引擎内部使用整数哈希(而非字符串拼接)计算版本号,用于高效的脏检查。
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
interface ResolvedParameterValue extends ParameterValue {
|
|
93
|
+
/** 整数哈希,输入参数变化时值会改变,用于脏检查 */
|
|
94
|
+
versionNumber: number;
|
|
71
95
|
}
|
|
72
96
|
```
|
|
73
97
|
|
|
@@ -149,5 +173,5 @@ const finalOpacity = five.modelScene.parameter.resolveValue().opacity;
|
|
|
149
173
|
---
|
|
150
174
|
|
|
151
175
|
```yaml
|
|
152
|
-
tags: [parameter, config, hierarchy, api]
|
|
176
|
+
tags: [配置, 参数, 继承, 覆盖, 全局配置, 局部配置, parameter, config, hierarchy, api, set, reset, modelScene]
|
|
153
177
|
```
|
|
@@ -255,5 +255,5 @@ class FogPass extends FivePass {
|
|
|
255
255
|
---
|
|
256
256
|
|
|
257
257
|
```yaml
|
|
258
|
-
tags: [postprocessing, shader, effect, adaptive-luminance, edl]
|
|
258
|
+
tags: [后处理, 特效, 自定义shader, 滤镜, 描边, 景深, 色彩校正, 渲染管线, postprocessing, shader, effect, adaptive-luminance, edl, effect-composer, addPass]
|
|
259
259
|
```
|
|
@@ -166,10 +166,13 @@ const intersects = five.model.intersectRaycaster(raycaster);
|
|
|
166
166
|
|
|
167
167
|
## Related
|
|
168
168
|
|
|
169
|
-
* [
|
|
169
|
+
* [Parameter](./parameter.md): 了解模型参数配置。
|
|
170
|
+
* [Screen Project](./screen-project.md): 屏幕坐标与空间坐标转换(标签、拾取的前置步骤)。
|
|
171
|
+
* [Event](./event.md): 手势事件系统,获取点击坐标的来源。
|
|
172
|
+
* [Coordinate System](./coordinate-system.md): 坐标系定义,理解 NDC 与世界坐标。
|
|
170
173
|
|
|
171
174
|
---
|
|
172
175
|
|
|
173
176
|
```yaml
|
|
174
|
-
tags: [raycast, bvh, interaction, performance]
|
|
177
|
+
tags: [点击, 拾取, 碰撞检测, 物体选择, raycast, bvh, interaction, performance, picking, hit-test, click, floor-detection]
|
|
175
178
|
```
|
|
@@ -157,9 +157,10 @@ container.addEventListener("click", (event) => {
|
|
|
157
157
|
* [Raycast](./raycast.md): 详细的射线检测文档。
|
|
158
158
|
* [Five](./five.md): Five 核心类说明。
|
|
159
159
|
* [State](./state.md): 了解相机位姿 (Pose)。
|
|
160
|
+
* [Coordinate System](./coordinate-system.md): 坐标系定义,理解世界坐标与屏幕坐标的关系。
|
|
160
161
|
|
|
161
162
|
---
|
|
162
163
|
|
|
163
164
|
```yaml
|
|
164
|
-
tags: [coordinate, screen, project, label, ui]
|
|
165
|
+
tags: [标签, 坐标转换, 信息面板, coordinate, screen, project, label, ui, tag, HUD, 3D转2D, overlay, tooltip]
|
|
165
166
|
```
|
|
@@ -79,8 +79,8 @@ const state = five.state;
|
|
|
79
79
|
|
|
80
80
|
// 在当前状态基础上,向右旋转 90 度,并略微拉远距离
|
|
81
81
|
five.setState({
|
|
82
|
-
longitude:
|
|
83
|
-
distance:
|
|
82
|
+
longitude: state.longitude + Math.PI / 2,
|
|
83
|
+
distance: state.distance + 2.0
|
|
84
84
|
});
|
|
85
85
|
```
|
|
86
86
|
|
|
@@ -89,13 +89,33 @@ five.setState({
|
|
|
89
89
|
1. **单位混淆**: `longitude` 和 `latitude` 使用**弧度**,而 `fov` 使用**角度**(度)。
|
|
90
90
|
2. **Offset 类型**: `offset` 必须是 `THREE.Vector3` 实例。如果在 React 等框架中使用纯对象(Plain Object),Five 内部会自动转换,但在 TypeScript 中需注意类型匹配。
|
|
91
91
|
3. **异步更新**: `setState` 触发的相机运动是异步动画过程。如果需要立即无动画跳转,可传递第二个参数 `immediately: true`。
|
|
92
|
+
4. **JSON 序列化**: `State` 中的 `offset` 是 `THREE.Vector3` 实例,不能直接 `JSON.stringify`。保存时需手动提取 `{ x, y, z }`,恢复时需重新构造 `new THREE.Vector3(x, y, z)`。
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
// 保存
|
|
96
|
+
const snapshot = {
|
|
97
|
+
...five.state,
|
|
98
|
+
offset: { x: five.state.offset.x, y: five.state.offset.y, z: five.state.offset.z }
|
|
99
|
+
};
|
|
100
|
+
localStorage.setItem('fiveState', JSON.stringify(snapshot));
|
|
101
|
+
|
|
102
|
+
// 恢复
|
|
103
|
+
const saved = JSON.parse(localStorage.getItem('fiveState')!);
|
|
104
|
+
five.setState({
|
|
105
|
+
...saved,
|
|
106
|
+
offset: new THREE.Vector3(saved.offset.x, saved.offset.y, saved.offset.z)
|
|
107
|
+
}, true);
|
|
108
|
+
```
|
|
92
109
|
|
|
93
110
|
## Related
|
|
94
111
|
|
|
95
112
|
* [Mode - 模式](./mode.md): 详细了解各种 Mode 的区别。
|
|
113
|
+
* [Camera Animation](./camera-animation.md): 基于 State 的相机动画控制。
|
|
114
|
+
* [Five](./five.md): Five 核心类,`setState` / `getCurrentState` 的宿主。
|
|
115
|
+
* [Coordinate System](./coordinate-system.md): 坐标系定义。
|
|
96
116
|
|
|
97
117
|
---
|
|
98
118
|
|
|
99
119
|
```yaml
|
|
100
|
-
tags: [camera, state, pose, interaction]
|
|
120
|
+
tags: [状态保存, 状态恢复, 场景还原, 快照, camera, state, pose, interaction, save, restore, snapshot]
|
|
101
121
|
```
|