@realsee/five 6.8.0-alpha.2 → 6.8.0-alpha.21
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 +4 -0
- package/AI_CONTEXT.md +4 -0
- package/README.md +9 -6
- package/{guides → ai_guides}/README.md +12 -2
- package/ai_guides/ai-doc-guidelines.md +102 -0
- package/{guides → ai_guides}/api.md +24 -1
- package/ai_guides/features/3dtile.md +172 -0
- package/{guides → ai_guides}/features/camera-animation.md +24 -3
- package/{guides → ai_guides}/features/clipper.md +2 -0
- package/{guides/features/coordnate-system.md → ai_guides/features/coordinate-system.md} +2 -0
- package/{guides → ai_guides}/features/event.md +2 -0
- package/{guides → ai_guides}/features/five.md +4 -0
- package/ai_guides/features/flowing-light-2d-pass.md +438 -0
- package/ai_guides/features/flowing-light-3d-pass.md +420 -0
- package/ai_guides/features/gaussian-blur-pass.md +202 -0
- package/{guides → ai_guides}/features/gesture.md +3 -0
- package/{guides → ai_guides}/features/get-screen-pixels.md +2 -0
- package/{guides → ai_guides}/features/image-options.md +3 -0
- package/{guides → ai_guides}/features/load-external-model.md +21 -0
- package/ai_guides/features/load-progress.md +140 -0
- package/ai_guides/features/material.md +153 -0
- package/{guides → ai_guides}/features/mode.md +4 -0
- package/{guides → ai_guides}/features/model.md +4 -1
- package/{guides → ai_guides}/features/move-pano-effect.md +2 -0
- package/{guides → ai_guides}/features/multi-work.md +2 -0
- package/ai_guides/features/pano-filter.md +148 -0
- package/{guides → ai_guides}/features/pano-tile.md +7 -14
- package/ai_guides/features/pano-uv.md +131 -0
- package/ai_guides/features/parameter.md +153 -0
- package/ai_guides/features/plugin.md +210 -0
- package/{guides → ai_guides}/features/postprocessing.md +39 -4
- package/{guides → ai_guides}/features/raycast.md +11 -0
- package/{guides → ai_guides}/features/request-proxy.md +2 -0
- package/{guides → ai_guides}/features/screen-project.md +2 -0
- package/{guides → ai_guides}/features/state.md +2 -0
- package/ai_guides/features/view-layer.md +187 -0
- package/{guides → ai_guides}/features/work.md +63 -2
- package/{guides → ai_guides}/glossary.md +26 -5
- package/{guides → ai_guides}/intro.md +1 -1
- package/{guides → ai_guides}/quick-start.md +1 -0
- package/ai_guides/release_notes/6.8.md +208 -0
- package/{guides → ai_guides}/template.md +17 -3
- package/docs/00_FOR_AI_AGENTS.md +11 -0
- package/docs/README.md +4 -7
- package/docs/assets/hierarchy.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.BoundingMesh.html +2 -2
- package/docs/classes/five.Camera.html +1 -1
- package/docs/classes/five.EyeDomeLightingPass.html +1 -1
- package/docs/classes/five.Five.html +73 -72
- 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 +31 -31
- package/docs/classes/five.ModelScene.html +1 -1
- package/docs/classes/five.NetworkSubscribe.html +1 -1
- 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 +16 -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 -53
- package/docs/classes/five.Scene.html +1 -1
- package/docs/classes/five.Subscribe.html +1 -1
- package/docs/classes/five.Tile.html +1 -1
- package/docs/classes/five.Tile3D.html +30 -26
- package/docs/classes/five.TileNode.html +1 -1
- package/docs/classes/five.Trajectory.html +1 -1
- package/docs/classes/five.TrajectoryNode.html +1 -1
- package/docs/classes/five.Work.html +16 -16
- package/docs/classes/five.WorkResolvedObserver.html +27 -2
- 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 +1 -1
- 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 +1 -1
- 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.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 +1 -1
- package/docs/classes/vfx.ParticleGPU.html +1 -1
- package/docs/classes/vfx.SpotLight.html +1 -1
- package/docs/documents/README.html +11 -2
- package/docs/documents/ai-doc-guidelines.html +60 -15
- package/docs/documents/api.html +40 -15
- package/docs/documents/features_3dtile.html +142 -45
- package/docs/documents/features_camera-animation.html +62 -5
- package/docs/documents/features_clipper.html +3 -0
- package/docs/documents/{features_coordnate-system.html → features_coordinate-system.html} +4 -1
- package/docs/documents/features_event.html +3 -0
- package/docs/documents/features_five.html +4 -0
- package/docs/documents/features_flowing-light-2d-pass.html +356 -0
- package/docs/documents/features_flowing-light-3d-pass.html +351 -0
- package/docs/documents/features_gaussian-blur-pass.html +182 -0
- package/docs/documents/features_gesture.html +4 -0
- package/docs/documents/features_get-screen-pixels.html +3 -0
- package/docs/documents/features_image-options.html +3 -0
- package/docs/documents/features_load-external-model.html +25 -2
- package/docs/documents/features_load-progress.html +110 -0
- package/docs/documents/features_material.html +341 -0
- package/docs/documents/features_mode.html +5 -0
- package/docs/documents/features_model.html +5 -1
- package/docs/documents/features_move-pano-effect.html +3 -0
- package/docs/documents/features_multi-work.html +3 -0
- package/docs/documents/features_pano-filter.html +122 -0
- package/docs/documents/features_pano-tile.html +34 -19
- package/docs/documents/features_pano-uv.html +82 -0
- package/docs/documents/features_parameter.html +76 -56
- package/docs/documents/features_plugin.html +105 -0
- package/docs/documents/features_postprocessing.html +22 -5
- package/docs/documents/features_raycast.html +4 -1
- package/docs/documents/features_request-proxy.html +3 -0
- package/docs/documents/features_screen-project.html +3 -0
- package/docs/documents/features_state.html +3 -0
- package/docs/documents/features_view-layer.html +158 -0
- package/docs/documents/features_work.html +63 -2
- package/docs/documents/glossary.html +31 -6
- package/docs/documents/intro.html +1 -1
- package/docs/documents/quick-start.html +1 -0
- package/docs/documents/release_notes_6.8.html +189 -0
- package/docs/documents/template.html +45 -4
- package/docs/functions/five.loadAt3d.html +1 -1
- package/docs/functions/five.loadB3dm.html +1 -1
- package/docs/functions/five.loadDome.html +1 -1
- package/docs/functions/five.loadDomez.html +1 -1
- package/docs/functions/five.loadFbx.html +1 -1
- package/docs/functions/five.loadGltf.html +1 -1
- package/docs/functions/five.loadPbm.html +1 -1
- package/docs/functions/five.loadPly.html +1 -1
- package/docs/functions/five.loadPnts.html +1 -1
- package/docs/functions/five.loadSplat.html +1 -1
- package/docs/functions/five.loadSpz.html +1 -1
- package/docs/functions/five.loadX3p.html +1 -1
- package/docs/functions/five.parseWork.html +1 -1
- package/docs/functions/vue.useFiveWorks.html +2 -2
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +11 -2
- package/docs/interfaces/five.AddableObject.html +1 -1
- package/docs/interfaces/five.AjaxOptions.html +1 -1
- package/docs/interfaces/five.BaseEvent.html +2 -2
- package/docs/interfaces/five.EventCallback.html +53 -47
- package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +9 -9
- package/docs/interfaces/five.GestureEvent.html +2 -2
- package/docs/interfaces/five.ImageOptions.html +1 -1
- package/docs/interfaces/five.IntersectEvent.html +2 -2
- package/docs/interfaces/five.IntersectMesh.html +1 -1
- package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
- package/docs/interfaces/five.Intersection.html +4 -3
- package/docs/interfaces/five.LooseWorkWithExtrinsics.html +6 -6
- package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +9 -9
- package/docs/interfaces/five.ModeChangeEvent.html +2 -2
- package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ModelEvent.html +2 -2
- package/docs/interfaces/five.ModelSceneEvent.html +2 -2
- package/docs/interfaces/five.ModelTileEvent.html +8 -0
- package/docs/interfaces/five.MovePanoOptions.html +7 -7
- 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 +2 -2
- package/docs/interfaces/five.NetworkResponseError.html +1 -1
- package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
- package/docs/interfaces/five.ObjectEvent.html +2 -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 +1 -1
- package/docs/interfaces/five.PanoEvent.html +2 -2
- package/docs/interfaces/five.PanoTextureEvent.html +2 -2
- package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.ParameterMaterialValue.html +42 -38
- package/docs/interfaces/five.ParameterTilesetValue.html +15 -15
- package/docs/interfaces/five.ParameterValue.html +56 -52
- package/docs/interfaces/five.Pose.html +1 -1
- package/docs/interfaces/five.RenderEvent.html +2 -2
- package/docs/interfaces/five.ResolvedParameterValue.html +56 -52
- 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 +2 -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 +30 -26
- package/docs/interfaces/five.WorkCubeImage.html +1 -1
- package/docs/interfaces/five.WorkImage.html +1 -1
- package/docs/interfaces/five.WorkModel.html +8 -8
- package/docs/interfaces/five.WorkModelLayer.html +6 -6
- package/docs/interfaces/five.WorkObserver.html +27 -2
- package/docs/interfaces/five.WorkTile.html +1 -1
- package/docs/interfaces/five.WorksEvent.html +2 -2
- package/docs/interfaces/five.XRControllerEvent.html +2 -2
- package/docs/interfaces/five.XRGestureEvent.html +2 -2
- package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/five.XRSessionEvent.html +2 -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.DynamicPathLinePluginController.html +1 -1
- package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
- package/docs/interfaces/plugins.ItemMaskController.html +1 -1
- package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
- package/docs/interfaces/plugins.ItemMaskPluginType.State.html +1 -1
- package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
- 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.PluginTemplateType.EventMap.html +1 -1
- package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
- package/docs/interfaces/plugins.TrajectoryController.html +1 -1
- package/docs/interfaces/react.FiveInjectionTypes.html +13 -13
- package/docs/modules/five.html +1 -1
- package/docs/modules.html +1 -1
- package/docs/types/five.ControllerEventTypes.html +27 -25
- package/docs/types/five.EasingFunction.html +1 -0
- package/docs/types/five.EventTypes.html +27 -25
- package/docs/types/five.FivePlugin.html +1 -1
- package/docs/types/five.FivePluginInit.html +1 -1
- package/docs/types/five.FivePluginInstance.html +1 -1
- package/docs/types/five.NetworkProgressCallback.html +1 -1
- 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/plugins.BasePlugin.EventMap.html +1 -1
- package/docs/variables/five.PROXY_CONTROLLER_EVENT_NAMES.html +1 -1
- package/five/application/analysis.d.ts +40 -0
- package/five/application/controllers.d.ts +41 -0
- package/five/application/events-legacy.d.ts +454 -0
- package/five/application/events.d.ts +69 -0
- package/five/application/five.d.ts +519 -0
- package/five/application/fiveInitArgs.d.ts +176 -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 +28 -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-png-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 +18 -0
- package/five/bvh/bvhPoints.d.ts +6 -0
- package/five/bvh/index.d.ts +10 -0
- package/five/bvh/worker.d.ts +35 -0
- package/five/cardboard/helper.d.ts +2 -0
- package/five/cardboard/index.d.ts +13 -0
- package/five/cardboard/sensor.d.ts +158 -0
- package/five/certificates/hardware.d.ts +1 -0
- package/five/controllers/base.d.ts +167 -0
- package/five/controllers/events.d.ts +71 -0
- package/five/controllers/floorplan.d.ts +119 -0
- package/five/controllers/mapview.d.ts +139 -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/controllers/vrPanorama.d.ts +56 -0
- package/five/controllers/xrPanorama.d.ts +81 -0
- package/five/core/camera.d.ts +65 -0
- package/five/core/internalWebGLRenderer.d.ts +14 -0
- package/five/core/panoVideo.d.ts +18 -0
- package/five/core/scene.d.ts +10 -0
- package/five/core/tiling.d.ts +43 -0
- package/five/declare.d.ts +2 -1
- package/five/gaussian-splatting/util/renderData.d.ts +52 -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 +60 -4637
- package/five/index.js +193 -341
- package/five/index.mjs +26455 -31011
- package/five/meshes/boundingMesh.d.ts +12 -0
- package/five/meshes/intersectMesh.d.ts +8 -0
- package/five/meshes/panoCircleMesh.d.ts +35 -0
- package/five/meshes/panoCircleMeshCustom.d.ts +40 -0
- package/five/meshes/panoCircleMeshSolid.d.ts +34 -0
- package/five/meshes/panoSphereMesh.d.ts +27 -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 +70 -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 +9 -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_compression_spz.d.ts +9 -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 +10 -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 +24 -0
- package/five/model/loaders/glTF-helpers/glTF.d.ts +713 -0
- package/five/model/loaders/glTF-helpers/index.d.ts +47 -0
- package/five/model/loaders/glTF-helpers/parser.d.ts +114 -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 +35 -0
- package/five/model/loaders/x3p.d.ts +22 -0
- package/five/model/materials/pbmMaterial.d.ts +137 -0
- package/five/model/materials/pbmMeshMaterial.d.ts +126 -0
- package/five/model/materials/pbmPointCloudMaterial.d.ts +70 -0
- package/five/model/model-scene.d.ts +172 -0
- package/five/model/model.d.ts +209 -0
- package/five/model/objects/pbmContainer.d.ts +28 -0
- package/five/model/objects/pbmGaussianSplattingObject.d.ts +43 -0
- package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +55 -0
- package/five/model/objects/pbmGaussianSplattingTestMesh.d.ts +7 -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 +7 -0
- package/five/model/parameter.d.ts +140 -0
- package/five/model/shaders/pbm_gaussian_splatting/fragment.d.ts +2 -0
- package/five/model/shaders/pbm_gaussian_splatting/vertex.d.ts +2 -0
- package/five/model/shaders/pbm_mesh_basic/fragment.d.ts +2 -0
- package/five/model/shaders/pbm_mesh_basic/vertex.d.ts +2 -0
- package/five/model/shaders/pbm_mesh_none/fragment.d.ts +2 -0
- package/five/model/shaders/pbm_mesh_none/vertex.d.ts +2 -0
- package/five/model/shaders/pbm_mesh_phong/fragment.d.ts +2 -0
- package/five/model/shaders/pbm_mesh_phong/vertex.d.ts +2 -0
- package/five/model/shaders/pbm_mesh_standard/fragment.d.ts +2 -0
- package/five/model/shaders/pbm_mesh_standard/vertex.d.ts +2 -0
- package/five/model/shaders/pbm_pointcloud/fragment.d.ts +2 -0
- package/five/model/shaders/pbm_pointcloud/vertex.d.ts +2 -0
- package/five/model/tile3d/header.d.ts +88 -0
- package/five/model/tile3d/index.d.ts +214 -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 +24 -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 +69 -0
- package/five/model/tile3d/trajectory-content.d.ts +9 -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/five-renderer.d.ts +17 -0
- package/five/renderer/index.d.ts +3 -0
- package/five/renderer/postprocessing/composer.d.ts +37 -0
- package/five/renderer/postprocessing/index.d.ts +7 -0
- package/five/renderer/postprocessing/passes/adaptive-luminance-pass.d.ts +17 -0
- package/five/renderer/postprocessing/passes/eye-dome-lighting-pass.d.ts +14 -0
- package/five/renderer/postprocessing/passes/flowing-light-2d-pass.d.ts +36 -0
- package/five/renderer/postprocessing/passes/flowing-light-3d-pass.d.ts +36 -0
- package/five/renderer/postprocessing/passes/gaussian-blur-pass.d.ts +12 -0
- package/five/renderer/postprocessing/passes/pass.d.ts +38 -0
- package/five/renderer/scene-renderers/point-cloud-high-quality-scene-renderer.d.ts +11 -0
- package/five/renderer/scene-renderers/scene-renderer.d.ts +9 -0
- package/five/renderer/scene-renderers/ssaa-scene-renderer.d.ts +15 -0
- package/five/renderer/tools/full-screen-quad.d.ts +15 -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 +1 -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 +17 -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/formatRad.d.ts +7 -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 +29 -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/webglError.d.ts +7 -0
- package/five/utils/worker.d.ts +26 -0
- package/five/webxr/XRControllerModelFactory.d.ts +28 -0
- package/five/webxr/motionHelper.d.ts +68 -0
- package/five/webxr/xrButton.d.ts +4 -0
- package/five/webxr/xrController.d.ts +24 -0
- package/five/webxr/xrManager.d.ts +84 -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 +121 -0
- package/five/work/verify.d.ts +7 -0
- package/five/work/work.d.ts +236 -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/gltf-loader/gltf-object.d.ts +17 -0
- package/gltf-loader/index.d.ts +60 -160
- package/gltf-loader/index.js +9 -9
- package/gltf-loader/index.mjs +1351 -1451
- package/gltf-loader/thirdparty/DDSLoader.d.ts +23 -0
- package/gltf-loader/thirdparty/DRACOLoader.d.ts +18 -0
- package/gltf-loader/thirdparty/GLTFLoader.d.ts +59 -0
- package/line/circle_png.d.ts +1 -0
- package/line/index.d.ts +19 -69
- package/line/index.js +4 -4
- package/line/index.mjs +334 -513
- package/line/utils/Line2.d.ts +7 -0
- package/line/utils/LineGeometry.d.ts +10 -0
- package/line/utils/LineMaterial.d.ts +20 -0
- package/line/utils/LineSegments2.d.ts +11 -0
- package/line/utils/LineSegmentsGeometry.d.ts +15 -0
- package/llms.txt +43 -31
- package/package.json +11 -2
- package/plugins/BackgroundPlugin/Controller.d.ts +20 -0
- package/plugins/BackgroundPlugin/index.d.ts +5 -0
- package/plugins/BackgroundPlugin/typings.d.ts +44 -0
- package/plugins/BasePlugin/index.d.ts +119 -0
- package/plugins/DynamicPathLinePlugin/Controller.d.ts +167 -0
- package/plugins/DynamicPathLinePlugin/index.d.ts +5 -0
- package/plugins/DynamicPathLinePlugin/line2/Line2.d.ts +7 -0
- package/plugins/DynamicPathLinePlugin/line2/LineGeometry.d.ts +10 -0
- package/plugins/DynamicPathLinePlugin/line2/LineMaterial.d.ts +17 -0
- package/plugins/DynamicPathLinePlugin/line2/LineSegments2.d.ts +11 -0
- package/plugins/DynamicPathLinePlugin/line2/LineSegmentsGeometry.d.ts +15 -0
- package/plugins/DynamicPathLinePlugin/typing.d.ts +129 -0
- package/plugins/DynamicPathLinePlugin/typings.d.ts +72 -0
- package/plugins/ItemMaskPlugin/Controller.d.ts +48 -0
- package/plugins/ItemMaskPlugin/index.d.ts +5 -0
- package/plugins/ItemMaskPlugin/typing.d.ts +58 -0
- package/plugins/OrientationPlugin/Controller.d.ts +82 -0
- package/plugins/OrientationPlugin/RoundedBoxGeometry.d.ts +11 -0
- package/plugins/OrientationPlugin/index.d.ts +6 -0
- package/plugins/OrientationPlugin/typing.d.ts +25 -0
- package/plugins/PanoAnimePlugin/Controller.d.ts +46 -0
- package/plugins/PanoAnimePlugin/index.d.ts +5 -0
- package/plugins/PanoAnimePlugin/typing.d.ts +37 -0
- package/plugins/PluginTemplate/Controller.d.ts +27 -0
- package/plugins/PluginTemplate/index.d.ts +5 -0
- package/plugins/PluginTemplate/typing.d.ts +21 -0
- package/plugins/TrajectoryPlugin/Controller.d.ts +85 -0
- package/plugins/TrajectoryPlugin/index.d.ts +6 -0
- package/plugins/TrajectoryPlugin/typing.d.ts +25 -0
- package/plugins/index.d.ts +9 -1102
- package/plugins/index.js +17 -21
- package/plugins/index.mjs +3342 -4245
- package/plugins/thirdParty/CSS3DRenderer.d.ts +32 -0
- package/plugins/thirdParty/OrbitControls.d.ts +78 -0
- package/plugins/utils/absoluteUrl.d.ts +5 -0
- package/plugins/utils/clamp.d.ts +2 -0
- package/plugins/utils/loadImage.d.ts +1 -0
- package/plugins/utils/motion.d.ts +38 -0
- package/plugins/utils/now.d.ts +6 -0
- package/plugins/utils/uuid.d.ts +5 -0
- package/react/canvas.d.ts +19 -0
- package/react/context.d.ts +11 -0
- package/react/createProvider.d.ts +95 -0
- package/react/createStore.d.ts +144 -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/useFiveProject2d.d.ts +20 -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 +24 -830
- package/react/index.js +3 -3
- package/react/index.mjs +572 -783
- package/react/rendererPool.d.ts +7 -0
- package/react/withFive.d.ts +213 -0
- package/shader-lib/EvenessPlane/index.d.ts +10 -0
- package/shader-lib/PointCloudExpand/index.d.ts +59 -0
- package/shader-lib/PolygonCuter/index.d.ts +52 -0
- package/shader-lib/PolygonCuter/worker.d.ts +14 -0
- package/shader-lib/ShineModel/index.d.ts +7 -0
- package/shader-lib/SweepModel/index.d.ts +7 -0
- package/shader-lib/index.d.ts +5 -86
- package/shader-lib/index.js +13 -14
- package/shader-lib/index.mjs +424 -824
- package/sticker/geometry.d.ts +3 -0
- package/sticker/index.d.ts +68 -71
- 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 +17 -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 +188 -336
- package/vfx/airflow/airflow.d.ts +18 -0
- package/vfx/airflow/fragment-shader.d.ts +2 -0
- package/vfx/airflow/vertex-shader.d.ts +2 -0
- package/vfx/common/scale-shader.d.ts +2 -0
- package/vfx/common/simplex-noise-shader.d.ts +2 -0
- package/vfx/frame/fragment-shader.d.ts +2 -0
- package/vfx/frame/frame.d.ts +22 -0
- package/vfx/frame/vertex-shader.d.ts +2 -0
- package/vfx/index.d.ts +7 -363
- package/vfx/index.js +21 -21
- package/vfx/index.mjs +454 -910
- package/vfx/particle/fragment-shader.d.ts +2 -0
- package/vfx/particle/instance.d.ts +36 -0
- package/vfx/particle/particle.d.ts +205 -0
- package/vfx/particle/utils.d.ts +11 -0
- package/vfx/particle/vertex-shader.d.ts +2 -0
- package/vfx/particle-gpu/fragment-shader.d.ts +2 -0
- package/vfx/particle-gpu/instance.d.ts +36 -0
- package/vfx/particle-gpu/particle.d.ts +95 -0
- package/vfx/particle-gpu/utils.d.ts +11 -0
- package/vfx/particle-gpu/vertex-shader.d.ts +2 -0
- package/vfx/spotLight/fragment-shader.d.ts +2 -0
- package/vfx/spotLight/spotLight.d.ts +15 -0
- package/vfx/spotLight/vertex-shader.d.ts +2 -0
- package/vue/context.d.ts +7 -0
- package/vue/hooks/FiveCanvas.d.ts +36 -0
- package/vue/hooks/FiveProvider.d.ts +35 -0
- package/vue/hooks/unsafe__useFiveInject.d.ts +9 -0
- package/vue/hooks/useFiveAction.d.ts +178 -0
- package/vue/hooks/useFiveCameraDirection.d.ts +8 -0
- package/vue/hooks/useFiveCameraRaycaster.d.ts +8 -0
- package/vue/hooks/useFiveCurrentObserver.d.ts +12 -0
- package/vue/hooks/useFiveCurrentState.d.ts +16 -0
- package/vue/hooks/useFiveEventCallback.d.ts +11 -0
- package/vue/hooks/useFiveFloor.d.ts +16 -0
- package/vue/hooks/useFiveHelper.d.ts +15 -0
- package/vue/hooks/useFiveModel.d.ts +7 -0
- package/vue/hooks/useFiveModelBounding.d.ts +7 -0
- package/vue/hooks/useFiveModelIntersectRaycaster.d.ts +23 -0
- package/vue/hooks/useFiveModelReadyState.d.ts +9 -0
- package/vue/hooks/useFiveProject2d.d.ts +26 -0
- package/vue/hooks/useFiveScene.d.ts +6 -0
- package/vue/hooks/useFiveState.d.ts +16 -0
- package/vue/hooks/useFiveWork.d.ts +30 -0
- package/vue/index.d.ts +23 -467
- package/vue/index.js +3 -3
- package/vue/index.mjs +309 -301
- package/vue/rendererPool.d.ts +10 -0
- package/work-downloader/components/model-3d-tile.d.ts +2 -0
- package/work-downloader/components/model.d.ts +3 -0
- package/work-downloader/components/observer.d.ts +7 -0
- package/work-downloader/download.d.ts +16 -0
- package/work-downloader/index.d.ts +2 -33
- package/work-downloader/index.js +3 -3
- package/work-downloader/index.mjs +317 -556
- package/work-downloader/type.d.ts +28 -0
- package/work-downloader/utils/download-to-file.d.ts +1 -0
- package/work-downloader/utils/image-processing.d.ts +7 -0
- package/work-downloader/utils/join-url.d.ts +2 -0
- package/work-downloader/utils/log.d.ts +1 -0
- package/work-downloader/utils/relative-url.d.ts +1 -0
- package/docs/documents/five.FivePlugin.plugin.html +0 -60
- package/docs/documents/plugin.html +0 -60
- package/docs/media/five.ts +0 -2881
- package/docs/media/pass.ts +0 -64
- package/guides/ai-doc-guidelines.md +0 -72
- package/guides/features/3dtile.md +0 -264
- package/guides/features/parameter.md +0 -178
- package/guides/plugin.md +0 -206
- /package/{guides → ai_guides}/release_notes/6.6.md +0 -0
- /package/{guides → ai_guides}/release_notes/6.7.md +0 -0
- /package/{guides → ai_guides}/support.md +0 -0
package/docs/media/pass.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import { FullScreenQuad } from '../../tools/full-screen-quad';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Pass基类
|
|
7
|
-
* three.js 的 Pass 接口,用于 EffectComposer
|
|
8
|
-
*/
|
|
9
|
-
export interface Pass {
|
|
10
|
-
enabled: boolean;
|
|
11
|
-
needsSwap: boolean;
|
|
12
|
-
clear: boolean;
|
|
13
|
-
renderToScreen: boolean;
|
|
14
|
-
setSize(width: number, height: number): void;
|
|
15
|
-
render(
|
|
16
|
-
renderer: THREE.WebGLRenderer,
|
|
17
|
-
writeBuffer: THREE.WebGLRenderTarget,
|
|
18
|
-
readBuffer: THREE.WebGLRenderTarget,
|
|
19
|
-
deltaTime?: number,
|
|
20
|
-
maskActive?: boolean
|
|
21
|
-
): void;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* FivePass
|
|
27
|
-
*
|
|
28
|
-
* Five 引擎优化的 Pass 基类
|
|
29
|
-
* 支持 G-Buffer 注入,避免重复渲染场景
|
|
30
|
-
*/
|
|
31
|
-
export class FivePass implements Pass {
|
|
32
|
-
|
|
33
|
-
public static FullScreenQuad = FullScreenQuad;
|
|
34
|
-
|
|
35
|
-
public enabled: boolean = true;
|
|
36
|
-
public needsSwap: boolean = true;
|
|
37
|
-
public clear: boolean = false;
|
|
38
|
-
public renderToScreen: boolean = true;
|
|
39
|
-
public dependencies: ('depth' | 'normal' | 'color')[];
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* G-Buffer 纹理集合
|
|
43
|
-
* 包含 depth、normal、color 等纹理
|
|
44
|
-
* 由 EffectComposer 在 render 时注入
|
|
45
|
-
*/
|
|
46
|
-
public gbuffer!: Map<'depth' | 'normal' | 'color', THREE.Texture>;
|
|
47
|
-
|
|
48
|
-
constructor(dependencies?: ('depth' | 'normal' | 'color')[]) {
|
|
49
|
-
this.dependencies = dependencies ?? [];
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
public setSize(width: number, height: number): void {};
|
|
53
|
-
|
|
54
|
-
public render(
|
|
55
|
-
renderer: THREE.WebGLRenderer,
|
|
56
|
-
writeBuffer: THREE.WebGLRenderTarget,
|
|
57
|
-
readBuffer: THREE.WebGLRenderTarget,
|
|
58
|
-
deltaTime?: number,
|
|
59
|
-
maskActive?: boolean
|
|
60
|
-
): void {}
|
|
61
|
-
|
|
62
|
-
public dispose(): void {}
|
|
63
|
-
|
|
64
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
<!-- AI-friendly guide template for `guides/` -->
|
|
2
|
-
# AI 文档与维护指南 (AI Documentation & Maintenance Guide)
|
|
3
|
-
|
|
4
|
-
## Summary
|
|
5
|
-
本文档包含两部分内容:
|
|
6
|
-
1. **Writing Guide**: 供 AI 和人类编写新文档时的标准模板与风格规范。
|
|
7
|
-
2. **Maintenance Guide**: 供 AI 维护者进行文档更新、同步与体检的操作指南。
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Part 1: Writing Guide (编写指南)
|
|
12
|
-
|
|
13
|
-
## 目的
|
|
14
|
-
提供统一、结构化的 Markdown 模板,便于 AI 自动解析、索引与生成功能性示例。
|
|
15
|
-
|
|
16
|
-
## 建议风格
|
|
17
|
-
- 使用中文为主,代码示例使用 TypeScript。
|
|
18
|
-
- **受众意识**: 文档面向 SDK 的**外部使用者**。避免暴露无用的内部实现细节(如私有属性、临时状态),除非对调试有帮助。
|
|
19
|
-
- **结构规范**: 严格使用二级标题 (`##`) 作为主要段落分割(如 `## Schema`, `## Concepts`),避免使用中文标题(如 `## 格式说明`)。
|
|
20
|
-
- **代码缩进**: 强制使用 **两个空格** 缩进。
|
|
21
|
-
- **相对路径**: 内部文档链接必须使用 **相对路径**(如 `./state.md`)。
|
|
22
|
-
- **Schema**: 必须提供 TypeScript Interface 定义,并保留关键字段的注释(JSDoc)。
|
|
23
|
-
- **Metadata**: 结尾必须包含 YAML 格式的 `tags`。
|
|
24
|
-
|
|
25
|
-
## 标准模板结构 (Standard Template Structure)
|
|
26
|
-
|
|
27
|
-
新建文档时,请参考独立模板文件:[template.md](./template.md)。
|
|
28
|
-
|
|
29
|
-
请严格遵循该模板的结构,以保证文档风格一致性。
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
# Part 2: Maintenance Guide (维护指南)
|
|
34
|
-
|
|
35
|
-
## 核心原则 (Core Principles)
|
|
36
|
-
为了防止文档与代码脱节,我们遵循 **“代码变更驱动文档更新”** 的原则。
|
|
37
|
-
|
|
38
|
-
## 1. 语义化检索 (Semantic Retrieval)
|
|
39
|
-
不再维护硬编码的“源码-文档”映射表。AI 维护者在修改代码后,应利用自身的语义搜索能力(如 `SearchCodebase` 或 `Grep`)来定位需要更新的文档。
|
|
40
|
-
|
|
41
|
-
**推荐策略**:
|
|
42
|
-
- 搜索**类名/方法名**: 如修改了 `five.load`,搜索 `five.load` 或 `load`。
|
|
43
|
-
- 搜索**概念关键词**: 如修改了射线检测逻辑,搜索 `Raycast` 或 `project2d`。
|
|
44
|
-
|
|
45
|
-
## 2. 单一事实来源 (Single Source of Truth)
|
|
46
|
-
- **API 签名**: 以 `package/five/index.d.ts` 和代码中的 TSDoc 为准。
|
|
47
|
-
- **guides/api.md**: 仅作为 **索引 (Index)** 和 **摘要 (Summary)**。不要试图复制所有参数细节,除非是核心参数。
|
|
48
|
-
- **guides/features/*.md**: 重点解释 **“为什么”** 和 **“怎么用”**,避免机械复制类型定义。
|
|
49
|
-
|
|
50
|
-
## 3. 维护工作流 (Maintenance Workflow)
|
|
51
|
-
|
|
52
|
-
### 场景 A:代码功能迭代后 (Post-Coding)
|
|
53
|
-
当修改了 SDK 源码后,请执行以下检查:
|
|
54
|
-
1. **反向查找**: 利用工具搜索关键词(API 名称、Feature 名称),找到 `guides/` 下相关的文档。
|
|
55
|
-
2. **更新文档**:
|
|
56
|
-
* 如果修改了 API 签名 -> 更新对应的 `Schema` 和 `Examples`。
|
|
57
|
-
* 如果废弃了功能 -> 在文档中添加 `> [!WARNING] Deprecated` 提示。
|
|
58
|
-
3. **更新索引**: 如果是新功能,确保将其添加到 `guides/README.md` 的合适章节中。
|
|
59
|
-
|
|
60
|
-
### 场景 B:API 文档同步 (Sync API Doc)
|
|
61
|
-
定期检查 `guides/api.md` 的完整性:
|
|
62
|
-
1. 读取 `package/five/index.d.ts` 获取最新公开 API。
|
|
63
|
-
2. 对比 `guides/api.md`,找出缺失的高频 API 或已删除的 API。
|
|
64
|
-
3. **注意**: 只收录高频/核心 API,低频 API 应引导用户查看源码或专门的 Feature 文档。
|
|
65
|
-
|
|
66
|
-
## 目录结构说明
|
|
67
|
-
- `guides/`: 文档根目录。
|
|
68
|
-
- `guides/features/`: 功能性文档 (Features)。
|
|
69
|
-
- `guides/release_notes/`: 版本更新记录。
|
|
70
|
-
- `guides/api.md`: 核心 API 索引。
|
|
71
|
-
- `guides/README.md`: 文档总索引。
|
|
72
|
-
- `package/five/index.d.ts`: **API 签名的真理来源**。
|
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
# 3DTile
|
|
2
|
-
|
|
3
|
-
- **Summary**: Five 用于加载和渲染大规模三维场景的核心模块,支持动态 LOD 调度与流式加载。
|
|
4
|
-
- **Schema**: 通过 Parameter 配置 LOD、显存与并发控制。
|
|
5
|
-
- **Concepts**: LOD, SSE, Cache Management, ViewLayer。
|
|
6
|
-
- **Examples**: 画质平衡与多图层优化。
|
|
7
|
-
|
|
8
|
-
## Schema
|
|
9
|
-
|
|
10
|
-
3DTile 的核心配置通过 `Parameter` 系统进行控制。以下是 `ParameterValue` 接口中与 3DTile 调度相关的关键字段。
|
|
11
|
-
|
|
12
|
-
```typescript
|
|
13
|
-
interface Tile3DParameterValue {
|
|
14
|
-
// --- 核心画质控制 ---
|
|
15
|
-
/**
|
|
16
|
-
* 屏幕空间误差阈值 (Screen Space Error, SSE)
|
|
17
|
-
* 单位: 像素
|
|
18
|
-
* 默认值: 16
|
|
19
|
-
* 说明: 控制加载精度的核心参数。
|
|
20
|
-
* - 值越小: 画质越高,加载更精细的瓦片,网络/渲染压力越大。
|
|
21
|
-
* - 值越大: 画质越低,性能越好。
|
|
22
|
-
*/
|
|
23
|
-
maxScreenSpaceError: number;
|
|
24
|
-
|
|
25
|
-
// --- 显存与内存管理 ---
|
|
26
|
-
/**
|
|
27
|
-
* 最大显存占用
|
|
28
|
-
* 单位: MB
|
|
29
|
-
* 默认值: 512
|
|
30
|
-
* 说明: 当已加载瓦片的显存占用超过此阈值时,引擎会自动卸载不可见或低优先级的瓦片。
|
|
31
|
-
*/
|
|
32
|
-
maxMemoryUsage: number;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* 是否开启基于内存的动态 SSE 调整
|
|
36
|
-
* 默认值: false
|
|
37
|
-
* 说明: 开启后,引擎会根据当前显存占用情况自动调整 maxScreenSpaceError。
|
|
38
|
-
* - 目标: 尽量占满 maxMemoryUsage 设定的显存配额。
|
|
39
|
-
* - 行为: 实际使用的 SSE 会在 1.0 到 maxScreenSpaceError 之间动态变化。
|
|
40
|
-
*/
|
|
41
|
-
memoryAdjustedScreenSpaceError: boolean;
|
|
42
|
-
|
|
43
|
-
// --- 几何误差控制 ---
|
|
44
|
-
/**
|
|
45
|
-
* 最小几何误差 (精度上限锁)
|
|
46
|
-
* 默认值: 0
|
|
47
|
-
* 说明: 当瓦片的几何误差小于此值时,强制停止细分。
|
|
48
|
-
* - 作用: 限制加载的最精细层级,防止过度细分。
|
|
49
|
-
* - 场景: 数据本身层级过深,或者不需要看清极微小细节时,调大此值可显著节省性能。
|
|
50
|
-
*/
|
|
51
|
-
minGeometricError: number;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* 最大几何误差 (最低精度保证)
|
|
55
|
-
* 默认值: 10000
|
|
56
|
-
* 说明: 当瓦片的几何误差大于此值时,强制继续细分,直到误差小于此值。
|
|
57
|
-
* - 作用: 设定模型允许的最粗糙程度。
|
|
58
|
-
* - 场景: 无论相机距离多远,都希望模型至少保持一定的精细度(例如不希望看到过于简化的多边形)时,调小此值。
|
|
59
|
-
*/
|
|
60
|
-
maxGeometricError: number;
|
|
61
|
-
|
|
62
|
-
// --- LOD 层级控制 (不推荐) ---
|
|
63
|
-
/**
|
|
64
|
-
* 最小 LOD 层级
|
|
65
|
-
* 默认值: 0
|
|
66
|
-
* 说明: 限制加载的最小层级深度 (Tree Depth)。即小于此层级的瓦片(更粗糙的)不会被显示。
|
|
67
|
-
* - 建议: 推荐优先使用 maxGeometricError。两者都用于控制模型显示的“最粗糙”程度(下限)。
|
|
68
|
-
*/
|
|
69
|
-
minLevelOfDetail: number;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* 最大 LOD 层级
|
|
73
|
-
* 默认值: 20
|
|
74
|
-
* 说明: 限制加载的最大层级深度 (Tree Depth)。即大于此层级的瓦片(更精细的)不会被加载。
|
|
75
|
-
* - 建议: 推荐优先使用 minGeometricError。两者都用于控制模型显示的“最精细”程度(上限)。
|
|
76
|
-
*/
|
|
77
|
-
maxLevelOfDetail: number;
|
|
78
|
-
|
|
79
|
-
// --- 剔除策略 ---
|
|
80
|
-
/**
|
|
81
|
-
* 视锥体剔除
|
|
82
|
-
* 默认值: true
|
|
83
|
-
* 说明: 是否不加载/渲染相机视锥体之外的瓦片。
|
|
84
|
-
*/
|
|
85
|
-
cameraCulling: boolean;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* 是否预加载兄弟节点
|
|
89
|
-
* 默认值: true
|
|
90
|
-
* 说明: 是否在加载当前瓦片时,同时预加载其兄弟节点(同一层级的其他瓦片)。
|
|
91
|
-
*/
|
|
92
|
-
loadSiblings: boolean;
|
|
93
|
-
/**
|
|
94
|
-
* 是否允许跳级加载
|
|
95
|
-
* 默认值: false
|
|
96
|
-
* 说明: 是否在加载当前瓦片时,允许跳级加载。
|
|
97
|
-
* - 作用: 在快速移动视角或直接跳转到深层级位置时,跳过中间层级的瓦片,直接加载目标精度的瓦片。
|
|
98
|
-
* - 场景: 倾斜摄影等外表面模型,为了减少请求数并加快最终形态的呈现(可能会看到明显的从空白到精细的跳变)。
|
|
99
|
-
*/
|
|
100
|
-
skipLevelOfDetail: boolean;
|
|
101
|
-
|
|
102
|
-
// --- 网络并发控制 ---
|
|
103
|
-
/**
|
|
104
|
-
* 最大并发请求数
|
|
105
|
-
* 范围: 0 - 20
|
|
106
|
-
* 默认值: 4
|
|
107
|
-
* 说明: 同时进行的最大网络下载请求数。建议保持默认,过大可能阻塞主线程或导致拥堵。
|
|
108
|
-
*/
|
|
109
|
-
maxRequests: number;
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* 请求优先级策略
|
|
113
|
-
* 默认值: 'SCREEN_SPACE_ERROR'
|
|
114
|
-
* 选项:
|
|
115
|
-
* - 'SCREEN_SPACE_ERROR': 优先加载 SSE 最大的瓦片 (最影响视觉质量的部分)。
|
|
116
|
-
* - 'SCREEN_LEVEL_VERTICAL': 优先加载垂直方向层级较高的瓦片 (通常用于多楼层建筑,优先加载当前楼层)。
|
|
117
|
-
* - 'SCREEN_VERTICAL': 优先加载屏幕垂直方向的瓦片。
|
|
118
|
-
*/
|
|
119
|
-
requestOrder: 'SCREEN_SPACE_ERROR' | 'SCREEN_LEVEL_VERTICAL' | 'SCREEN_VERTICAL';
|
|
120
|
-
}
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
## Concepts
|
|
124
|
-
|
|
125
|
-
### 1. LOD & Screen Space Error (SSE)
|
|
126
|
-
|
|
127
|
-
LOD (Level of Detail) 是 3DTile 的核心机制。引擎不会一次性加载整个从宏观到微观的所有模型数据,而是根据相机位置动态计算每个瓦片的 **屏幕空间误差 (SSE)**。
|
|
128
|
-
|
|
129
|
-
* **Geometric Error (几何误差)**: 3D Tiles 数据源中定义的指标(单位:米),表示当前瓦片与真实物体之间的最大形状差异。
|
|
130
|
-
* **根节点**: 误差巨大(如 100米),仅有模糊轮廓。
|
|
131
|
-
* **叶子节点**: 误差极小(如 0.01米),细节丰富。
|
|
132
|
-
* **SSE 计算逻辑**: `SSE = (GeometricError / DistanceToCamera) * ScreenHeight`。
|
|
133
|
-
* **判定标准**: 如果 `SSE > maxScreenSpaceError`,说明当前瓦片在屏幕上看起来太粗糙(误差像素太大),需要分裂并加载下一级子瓦片;反之则停止细分。
|
|
134
|
-
* **调整影响**: 调低 `maxScreenSpaceError` 会迫使引擎加载更深层级的瓦片,从而获得更清晰的细节,但也会急剧增加渲染三角形数量和显存占用。
|
|
135
|
-
|
|
136
|
-
### 2. 显存管理 (Cache Management)
|
|
137
|
-
|
|
138
|
-
为了在浏览器有限的资源下渲染海量数据(如城市级倾斜摄影),3DTile 实现了基于 LRU (Least Recently Used) 的缓存淘汰机制和动态画质调整策略。
|
|
139
|
-
|
|
140
|
-
* **LRU 淘汰**: 当 `maxMemoryUsage` 超限时,引擎会优先保留当前视锥体内的瓦片。视锥体外的、或者距离相机较远的瓦片会被优先释放。
|
|
141
|
-
* **动态画质调整 (Dynamic Scaling)**: 如果开启了 `memoryAdjustedScreenSpaceError`,引擎会以 `maxMemoryUsage` 为目标,实时调整 SSE。
|
|
142
|
-
* **目标**: 尽量跑满 `maxMemoryUsage` 设定的显存额度,不浪费资源。
|
|
143
|
-
* **范围**: 实际 SSE 会在 `1.0` (极高画质) 到 `maxScreenSpaceError` (设定底线) 之间波动。
|
|
144
|
-
* **场景**: 适合显存充足但希望自动平衡画质的场景。
|
|
145
|
-
|
|
146
|
-
### 3. 并发控制 (Max Requests)
|
|
147
|
-
|
|
148
|
-
为了平衡网络加载与渲染性能,3DTile 限制了最大并发请求数。
|
|
149
|
-
|
|
150
|
-
* **默认值**: 4
|
|
151
|
-
* **建议**: 保持默认值,避免设置过大导致网络拥堵。
|
|
152
|
-
* **影响**: 增加并发数可能提升加载速度,但也会增加服务器压力。
|
|
153
|
-
|
|
154
|
-
### 4. 格式支持 (Supported Formats)
|
|
155
|
-
|
|
156
|
-
Five 的 3DTile 引擎支持多种 3D Tiles 1.0/1.1 规范的瓦片格式及主流压缩标准。
|
|
157
|
-
|
|
158
|
-
* **瓦片格式**:
|
|
159
|
-
* **B3DM (Batched 3D Model)**: 传统的 3D Tiles 格式,用于建筑模型。
|
|
160
|
-
* **PNTS (Point Cloud)**: 传统的点云格式。
|
|
161
|
-
* **GLB / GLTF**: 3D Tiles 1.1 标准推荐的格式,支持 Mesh 和点云。
|
|
162
|
-
* **压缩与优化**:
|
|
163
|
-
* **[Draco](https://google.github.io/draco/)**: 几何压缩,显著减小模型体积。
|
|
164
|
-
* **[Meshopt](https://github.com/zeux/meshoptimizer)**: 另一种高效的几何压缩算法。
|
|
165
|
-
* **[KTX2](https://github.com/KhronosGroup/KTX-Software) / [BasisU](https://github.com/BinomialLLC/basis_universal)**: 纹理压缩,大幅降低显存占用并提升上传速度。
|
|
166
|
-
|
|
167
|
-
### 5. ViewLayer 与 3DTile
|
|
168
|
-
|
|
169
|
-
目前所有的 `ViewLayer` 在底层都是一个 `Tile3D` 实例。它们各自拥有独立的:
|
|
170
|
-
* **配置**: `maxScreenSpaceError`, `maxMemoryUsage` 等参数互不干扰。
|
|
171
|
-
* **缓存**: 显存配额各自独立计算。
|
|
172
|
-
|
|
173
|
-
> **注意**: 即使是通过 `file_url` 加载的单体模型(如 `.obj`, `.at3d`),在 Five 内部也会被封装为 `Tile3D` 实例进行统一管理。
|
|
174
|
-
|
|
175
|
-
### 6. Lod 参数调整
|
|
176
|
-
|
|
177
|
-
优先修改 `maxScreenSpaceError` 而不是 `minLevelOfDetail` `maxGeometricError`。 SSE 是更直接、更符合渲染逻辑的 LOD 控制指标,而 `minLevelOfDetail` `maxGeometricError` 更关注数据切片方式,容易引入错误的 LOD 决策。
|
|
178
|
-
|
|
179
|
-
可以适当开启 `memoryAdjustedScreenSpaceError` 动态调整 SSE,以平衡画质与显存占用。但是同时,需要合理配置 `maxScreenSpaceError` 与 `maxMemoryUsage`,避免出现内存整体占用过高导致 Crash 问题。
|
|
180
|
-
- `maxScreenSpaceError` 尽量设置较为大的值,比如 32 / 48,根据场景和设备性能调整。
|
|
181
|
-
- `maxMemoryUsage` 建议根据设备显存和场景复杂度调整。
|
|
182
|
-
|
|
183
|
-
在特定场景,比如 **全景模式下** 不需要很高清的模型,可以定义上限的 `maxLevelOfDetail` `minGeometricError` 来限制加载层级优化性能。
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
## Examples
|
|
187
|
-
|
|
188
|
-
### 调整画质与内存平衡
|
|
189
|
-
|
|
190
|
-
在移动端或性能受限设备上,建议适当降低画质以保证流畅度。
|
|
191
|
-
|
|
192
|
-
```typescript
|
|
193
|
-
const parameter = five.modelScene.parameter;
|
|
194
|
-
|
|
195
|
-
// 1. 性能优先模式 (适用于低端设备)
|
|
196
|
-
// 增大 SSE 阈值,降低画质
|
|
197
|
-
parameter.set('maxScreenSpaceError', 16);
|
|
198
|
-
// 限制显存,防止 Crash
|
|
199
|
-
parameter.set('maxMemoryUsage', 256);
|
|
200
|
-
|
|
201
|
-
// 2. 画质优先模式 (适用于桌面端/截图)
|
|
202
|
-
// 减小 SSE 阈值,提升细节
|
|
203
|
-
parameter.set('maxScreenSpaceError', 4);
|
|
204
|
-
// 允许更多显存占用
|
|
205
|
-
parameter.set('maxMemoryUsage', 1024);
|
|
206
|
-
|
|
207
|
-
// 3. 重置为默认
|
|
208
|
-
parameter.reset('maxScreenSpaceError', 'maxMemoryUsage');
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
### 多 ViewLayer 优化
|
|
212
|
-
|
|
213
|
-
在对比查看或多楼层场景中,通常存在多个 `ViewLayer`。为了避免资源竞争,建议对非焦点的 ViewLayer 进行降级处理。
|
|
214
|
-
|
|
215
|
-
```typescript
|
|
216
|
-
// 假设 viewLayerA 是当前主要查看的模型,viewLayerB 是背景参考
|
|
217
|
-
|
|
218
|
-
// 聚焦 ViewLayerA: 正常画质
|
|
219
|
-
viewLayerA.parameter.reset('maxScreenSpaceError');
|
|
220
|
-
|
|
221
|
-
// 降级 ViewLayerB: 仅显示轮廓,节省资源
|
|
222
|
-
viewLayerB.parameter.set('maxScreenSpaceError', 48); // 极低画质
|
|
223
|
-
viewLayerB.parameter.set('maxMemoryUsage', 128); // 极低显存配额
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
## Debugging
|
|
227
|
-
|
|
228
|
-
在开发过程中,可以通过访问 `ViewLayer` 内部的 `tileset` 对象来实时监控渲染状态。
|
|
229
|
-
|
|
230
|
-
```typescript
|
|
231
|
-
// 假设已获取 viewLayer 实例
|
|
232
|
-
const tileset = viewLayer.tileset;
|
|
233
|
-
|
|
234
|
-
// 1. 查看当前加载的瓦片数量
|
|
235
|
-
console.log(tileset.loadedTiles.size);
|
|
236
|
-
|
|
237
|
-
// 2. 查看当前实际生效的 SSE (如果开启了动态调整,此值会波动)
|
|
238
|
-
console.log(tileset.currentMaxScreenSpaceError);
|
|
239
|
-
|
|
240
|
-
// 3. 查看显存占用 (近似值,单位字节)
|
|
241
|
-
// 注意: 这是内部私有属性,仅供调试参考
|
|
242
|
-
console.log((tileset as any).cacheMemoryUsageInBytes / 1024 / 1024 + ' MB');
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
## Common Pitfalls
|
|
246
|
-
|
|
247
|
-
1. **误解 GeometricError 作用域**: `minGeometricError` 和 `maxGeometricError` 是**全局硬约束**,不随相机距离变化。
|
|
248
|
-
* 错误设置(例如将 `maxGeometricError` 设得极小)会强制全场景所有瓦片(哪怕是远处的背景)都加载到极高精度。
|
|
249
|
-
* 这会导致三角形数量和显存占用**指数级爆炸**,瞬间卡死浏览器。
|
|
250
|
-
2. **过度降低 `maxScreenSpaceError`**: 设置过小(如 < 4)可能导致每帧需要加载和渲染的三角形数量指数级上升,瞬间撑爆显存或导致掉帧。
|
|
251
|
-
3. **忽略 `cameraCulling`**: 默认应该开启。如果手动关闭视锥体剔除,引擎将尝试加载全场景数据,极易导致崩溃。
|
|
252
|
-
4. **频繁切换配置**: `maxMemoryUsage` 等参数的修改会触发缓存整理,高频修改可能导致卡顿。
|
|
253
|
-
|
|
254
|
-
## Related
|
|
255
|
-
|
|
256
|
-
* [parameter.md](./parameter.md): 了解参数的继承关系及材质、点云相关配置。
|
|
257
|
-
* [model.md](./model.md): 了解 Model 和 ViewLayer 的关系。
|
|
258
|
-
* [work.md](./work.md): 了解 Work 数据结构。
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
```yaml
|
|
263
|
-
tags: [3dtile, viewLayer, performance, lod, optimization]
|
|
264
|
-
```
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
# Parameter (配置)
|
|
2
|
-
|
|
3
|
-
- **Summary**: Five 用于控制三维模型渲染表现的核心配置系统,采用树形继承设计。
|
|
4
|
-
- **Schema**: 包含材质、楼层、阴影、LOD 等配置项。
|
|
5
|
-
- **Concepts**: Hierarchy (树形继承), Material, LOD, Point Cloud。
|
|
6
|
-
- **Examples**: 全局设置与局部差异化配置。
|
|
7
|
-
|
|
8
|
-
## Schema
|
|
9
|
-
|
|
10
|
-
### Parameter Class
|
|
11
|
-
|
|
12
|
-
`Parameter` 是一个配置容器,提供了读写配置项的方法。
|
|
13
|
-
|
|
14
|
-
```typescript
|
|
15
|
-
// 简化定义
|
|
16
|
-
class Parameter implements Readonly<Partial<ParameterValue>> {
|
|
17
|
-
// 可以直接通过属性访问配置项,例如 parameter.opacity
|
|
18
|
-
readonly [key in keyof ParameterValue]?: ParameterValue[key];
|
|
19
|
-
|
|
20
|
-
/** 设置配置项 */
|
|
21
|
-
set<K extends keyof ParameterValue>(key: K, value: ParameterValue[K]): void;
|
|
22
|
-
set(values: Partial<ParameterValue>): void;
|
|
23
|
-
|
|
24
|
-
/** 重置当前层级的配置项 (恢复继承) */
|
|
25
|
-
reset(...keys: (keyof ParameterValue)[]): void;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* 获取最终计算值 (包含继承逻辑)
|
|
29
|
-
* @param upstream - 上游 Parameter 对象列表
|
|
30
|
-
*/
|
|
31
|
-
resolveValue(...upstream: Parameter[]): ResolvedParameterValue;
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### ParameterValue Interface
|
|
36
|
-
|
|
37
|
-
所有的配置项定义在 `ParameterValue` 接口中。
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
import * as THREE from 'three';
|
|
41
|
-
|
|
42
|
-
export interface ParameterValue {
|
|
43
|
-
// --- 基础材质表现 ---
|
|
44
|
-
/** 模型透明度 [0-1] */
|
|
45
|
-
opacity: number;
|
|
46
|
-
/** 模型整体亮度 */
|
|
47
|
-
brightness: number;
|
|
48
|
-
/** 颜色饱和度调整 */
|
|
49
|
-
colorSaturation: number;
|
|
50
|
-
/** 颜色亮度调整 */
|
|
51
|
-
colorBrightness: number;
|
|
52
|
-
|
|
53
|
-
// --- 全景混动与过渡 ---
|
|
54
|
-
/** 模型贴图和全景图的混合程度 [0-1] (0:纯模型纹理, 1:纯全景纹理) */
|
|
55
|
-
modelAlpha: number;
|
|
56
|
-
|
|
57
|
-
// --- 楼层控制 ---
|
|
58
|
-
/** 当前显示的楼层索引 (null 为显示所有) */
|
|
59
|
-
shownFloorIndex: number | null;
|
|
60
|
-
/** 楼层隐藏样式 ('OPACITY': 透明, 'VISIBILITY': 隐藏) */
|
|
61
|
-
floorStyle: 'OPACITY' | 'VISIBILITY';
|
|
62
|
-
|
|
63
|
-
// --- 阴影 ---
|
|
64
|
-
/** 是否产生阴影 */
|
|
65
|
-
castShadow: boolean;
|
|
66
|
-
/** 是否接受阴影 */
|
|
67
|
-
receiveShadow: boolean;
|
|
68
|
-
|
|
69
|
-
// --- 点云特有 ---
|
|
70
|
-
/** 点云大小 */
|
|
71
|
-
pointSize: number;
|
|
72
|
-
/** 点云基础缩放 */
|
|
73
|
-
pointScale: number;
|
|
74
|
-
|
|
75
|
-
// --- 3DTile / LOD 控制 ---
|
|
76
|
-
/** 最小细节层级 */
|
|
77
|
-
minLevelOfDetail: number;
|
|
78
|
-
/** 最大细节层级 */
|
|
79
|
-
maxLevelOfDetail: number;
|
|
80
|
-
/** 几何误差阈值 (越小越精细) */
|
|
81
|
-
minGeometricError: number;
|
|
82
|
-
/** 最大网络并发请求数 */
|
|
83
|
-
maxRequests: number;
|
|
84
|
-
/** 最大内存使用量 (MB) */
|
|
85
|
-
maxMemoryUsage: number;
|
|
86
|
-
|
|
87
|
-
// ... 更多高级参数请参考 five/index.d.ts
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Concepts
|
|
92
|
-
|
|
93
|
-
### 1. 树形继承关系 (Hierarchy)
|
|
94
|
-
|
|
95
|
-
Parameter 遵循 **“就近原则” (Override)** 的继承逻辑。当渲染引擎需要获取某个属性值时,会按照以下顺序查找:
|
|
96
|
-
|
|
97
|
-
1. **ViewLayer Parameter**: 最具体,优先级最高。
|
|
98
|
-
2. **Model Parameter**: 覆盖该 Model 下的所有 ViewLayer。
|
|
99
|
-
3. **ModelScene Parameter**: 全局默认值,优先级最低。
|
|
100
|
-
|
|
101
|
-
```mermaid
|
|
102
|
-
graph TD
|
|
103
|
-
Scene[ModelScene.parameter] -->|Inherit| Model[Model.parameter]
|
|
104
|
-
Model -->|Inherit| Layer1[ViewLayer.parameter]
|
|
105
|
-
Model -->|Inherit| Layer2[ViewLayer.parameter]
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
**示例逻辑**:
|
|
109
|
-
* 如果 `ModelScene` 设置 `opacity = 0.5`,所有模型都会变半透明。
|
|
110
|
-
* 如果此时 `Model A` 设置 `opacity = 1.0`,那么 `Model A` 及其下的 ViewLayer 会变为不透明,而其他 Model 保持半透明。
|
|
111
|
-
|
|
112
|
-
### 2. 参数分类
|
|
113
|
-
|
|
114
|
-
#### 材质与外观 (Material & Appearance)
|
|
115
|
-
控制模型“长什么样”。比如:
|
|
116
|
-
* **`modelAlpha`**: 核心参数。Five 的模型纹理通常来自全景图投影。该值控制是显示原始模型 UV 贴图,还是显示全景投影贴图。
|
|
117
|
-
* **`shownFloorIndex`**: 实现“分层拆解”效果。
|
|
118
|
-
* **`floorStyle`**: 控制楼层隐藏的表现形式。
|
|
119
|
-
|
|
120
|
-
#### 3DTile & 性能 (LOD)
|
|
121
|
-
控制模型“怎么加载”。比如:
|
|
122
|
-
* **`maxMemoryUsage`**: 显存控制。当加载的模型块超过此限制时,会自动卸载不可见的块。
|
|
123
|
-
* **`maxScreenSpaceError`**: 画质控制。值越小,加载的模型精度越高(允许的屏幕空间误差越小),但网络和渲染开销越大。
|
|
124
|
-
* **`minGeometricError`**: 几何误差阈值。值越小,加载的模型精度越高(允许的几何误差越小),但网络和渲染开销越大。
|
|
125
|
-
* **`maxRequests`**: 最大并发请求数。控制同时加载的模型块数量,避免对服务器压力过大。
|
|
126
|
-
|
|
127
|
-
#### 点云 (Point Cloud)
|
|
128
|
-
专用于 `type: point_cloud` 的 ViewLayer。比如:
|
|
129
|
-
* **`pointSize`**: 控制点的像素大小。
|
|
130
|
-
* **`pointScale`**: 点云整体缩放。
|
|
131
|
-
|
|
132
|
-
## Examples
|
|
133
|
-
|
|
134
|
-
### 基础用法:设置全局透明度
|
|
135
|
-
|
|
136
|
-
```typescript
|
|
137
|
-
// 将整个场景的模型设为半透明
|
|
138
|
-
five.modelScene.parameter.set('opacity', 0.5);
|
|
139
|
-
|
|
140
|
-
// 恢复默认
|
|
141
|
-
five.modelScene.parameter.remove('opacity');
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### 进阶用法:差异化配置
|
|
145
|
-
|
|
146
|
-
```typescript
|
|
147
|
-
// 1. 全局开启阴影
|
|
148
|
-
five.modelScene.parameter.set('castShadow', true);
|
|
149
|
-
|
|
150
|
-
// 2. 但让第一个模型不产生阴影
|
|
151
|
-
const mainModel = five.models[0];
|
|
152
|
-
if (mainModel) {
|
|
153
|
-
mainModel.parameter.set('castShadow', false);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// 3. 让特定的点云图层点变大
|
|
157
|
-
const pointCloudLayer = mainModel.viewLayers.find(l => l.type === 'point_cloud');
|
|
158
|
-
if (pointCloudLayer) {
|
|
159
|
-
pointCloudLayer.parameter.set('pointSize', 2.0);
|
|
160
|
-
}
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
## Common Pitfalls
|
|
164
|
-
|
|
165
|
-
1. **拼写错误**: `parameter.set()` 的 key 是字符串,拼写错误不会报错(除非使用 TypeScript),但配置不会生效。
|
|
166
|
-
2. **层级混淆**: 在 `ModelScene` 上设置了 `shownFloorIndex`,却期望只影响某个 Model。请务必确认操作的 `parameter` 对象所属的层级。
|
|
167
|
-
3. **类型错误**: 某些数值参数(如 `opacity`)需要 `number` 类型,传入字符串可能导致渲染计算 NaN 错误。
|
|
168
|
-
|
|
169
|
-
## Related
|
|
170
|
-
|
|
171
|
-
* [Model](./model.md): Parameter 的宿主之一。
|
|
172
|
-
* [3DTile](./3dtile.md): 受 Parameter 控制的底层技术。
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
```yaml
|
|
177
|
-
tags: [parameter, config, appearance, 3dtile]
|
|
178
|
-
```
|