@realsee/five-webgpu 1.0.0-alpha.5 → 1.0.0-alpha.6
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/ai_guides/api.md +9 -8
- package/ai_guides/features/camera-animation.md +1 -1
- package/ai_guides/features/event.md +0 -1
- package/ai_guides/features/five.md +8 -8
- package/ai_guides/features/gesture.md +1 -1
- package/ai_guides/features/load-external-model.md +6 -6
- package/ai_guides/features/load-progress.md +2 -2
- package/ai_guides/features/mode.md +3 -23
- package/ai_guides/features/model.md +1 -1
- package/ai_guides/features/state.md +2 -2
- package/ai_guides/features/ultra-hdr.md +41 -32
- package/ai_guides/quick-start.md +2 -2
- package/ai_guides/release_notes/6.8.md +2 -2
- package/ai_guides/support.md +0 -4
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/index.AdaptiveLuminancePass.html +1 -1
- package/docs/classes/index.BoundingMesh.html +1 -1
- package/docs/classes/index.EffectComposer.html +1 -1
- package/docs/classes/index.EyeDomeLightingPass.html +1 -1
- package/docs/classes/index.Five.html +68 -67
- package/docs/classes/index.FivePass.html +1 -1
- package/docs/classes/index.FlowingFireworks3DPass.html +1 -1
- package/docs/classes/index.FlowingLight2DPass.html +1 -1
- package/docs/classes/index.FlowingLight3DPass.html +1 -1
- package/docs/classes/index.GaussianBlurPass.html +1 -1
- package/docs/classes/index.InternalWebGPURenderer.html +4 -4
- package/docs/classes/index.Model.html +1 -1
- package/docs/classes/index.ModelScene.html +1 -1
- package/docs/classes/index.NetworkSubscribe.html +1 -1
- package/docs/classes/index.PBMCustomNode.html +8 -8
- package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +8 -6
- package/docs/classes/index.PBMGaussianSplattingObject.html +10 -4
- package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +26 -15
- package/docs/classes/index.PBMGroup.html +1 -1
- package/docs/classes/index.PBMMesh.html +1 -1
- package/docs/classes/index.PBMMeshBasicMaterial.html +11 -7
- package/docs/classes/index.PBMMeshBasicNodeMaterial.html +11 -7
- package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +11 -7
- package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +11 -7
- package/docs/classes/index.PBMMeshPhongMaterial.html +11 -7
- package/docs/classes/index.PBMMeshPhongNodeMaterial.html +11 -7
- package/docs/classes/index.PBMMeshPhysicalMaterial.html +11 -7
- package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +11 -7
- package/docs/classes/index.PBMPanoFilter.html +8 -8
- package/docs/classes/index.PBMPointCloud.html +1 -1
- package/docs/classes/index.PBMSkinnedMesh.html +1 -1
- package/docs/classes/index.PBMUpdateable.html +1 -1
- package/docs/classes/index.PanoCircleMesh.html +1 -1
- package/docs/classes/index.PanoCircleMeshCustom.html +5 -5
- package/docs/classes/index.PanoCircleMeshSolid.html +1 -1
- package/docs/classes/index.Parameter.html +1 -1
- package/docs/classes/index.Subscribe.html +1 -1
- package/docs/classes/index.TextureLoader.html +4 -1
- package/docs/classes/index.Tile3D.html +23 -21
- package/docs/classes/index.TileNode.html +1 -1
- package/docs/classes/index.Tileset.html +4 -4
- package/docs/classes/index.TrajectoryNode.html +3 -3
- package/docs/classes/index.Work.html +20 -18
- package/docs/classes/index.WorkResolvedObserver.html +22 -22
- package/docs/documents/api.html +11 -10
- package/docs/documents/features_camera-animation.html +1 -1
- package/docs/documents/features_event.html +0 -1
- package/docs/documents/features_five.html +7 -7
- package/docs/documents/features_gesture.html +1 -1
- package/docs/documents/features_load-external-model.html +6 -6
- package/docs/documents/features_load-progress.html +1 -1
- package/docs/documents/features_mode.html +5 -15
- package/docs/documents/features_model.html +1 -1
- package/docs/documents/features_state.html +1 -1
- package/docs/documents/features_ultra-hdr.html +50 -44
- package/docs/documents/quick-start.html +1 -1
- package/docs/documents/release_notes_6.8.html +2 -2
- package/docs/documents/support.html +1 -3
- package/docs/functions/index.customNodesCacheKey.html +1 -1
- package/docs/functions/index.parseWork.html +1 -1
- package/docs/functions/index.workToJson.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/interfaces/index.AddableObject.html +1 -1
- package/docs/interfaces/index.AjaxOptions.html +1 -1
- package/docs/interfaces/index.BaseEvent.html +2 -2
- package/docs/interfaces/index.Clock.html +24 -0
- package/docs/interfaces/index.EventCallback.html +49 -47
- package/docs/interfaces/index.FiveInitArgs.html +49 -40
- package/docs/interfaces/index.GainmapCfgData.html +15 -0
- package/docs/interfaces/index.GestureEvent.html +2 -2
- package/docs/interfaces/index.IPBMMaterial.html +10 -6
- package/docs/interfaces/index.ImageOptions.html +1 -1
- package/docs/interfaces/index.IntersectEvent.html +2 -2
- package/docs/interfaces/index.IntersectMesh.html +1 -1
- package/docs/interfaces/index.IntersectMeshInterface.html +1 -1
- package/docs/interfaces/index.Intersection.html +1 -1
- package/docs/interfaces/index.LoosePanoWork.html +2 -2
- package/docs/interfaces/index.LooseWork.html +2 -2
- package/docs/interfaces/index.LooseWorkInitial.html +2 -2
- package/docs/interfaces/index.LooseWorkModel.html +2 -2
- package/docs/interfaces/index.LooseWorkObserver.html +2 -2
- package/docs/interfaces/index.LooseWorkPanorama.html +4 -3
- package/docs/interfaces/index.LooseWorkWithExtrinsics.html +15 -9
- package/docs/interfaces/index.ModeChangeEvent.html +2 -2
- package/docs/interfaces/index.ModelControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.ModelEvent.html +2 -2
- package/docs/interfaces/index.ModelSceneEvent.html +2 -2
- package/docs/interfaces/index.ModelTileEvent.html +2 -2
- package/docs/interfaces/index.MovePanoOptions.html +1 -1
- package/docs/interfaces/index.NetworkAbortError.html +1 -1
- package/docs/interfaces/index.NetworkFirbiddenError.html +1 -1
- package/docs/interfaces/index.NetworkOptions.html +1 -1
- package/docs/interfaces/index.NetworkProxyError.html +1 -1
- package/docs/interfaces/index.NetworkResourceEvent.html +2 -2
- package/docs/interfaces/index.NetworkResponseError.html +1 -1
- package/docs/interfaces/index.NetworkTimeoutError.html +1 -1
- package/docs/interfaces/index.ObjectEvent.html +2 -2
- package/docs/interfaces/index.PBMClipperParameter.html +2 -2
- package/docs/interfaces/index.PBMCustomNodeContext.html +60 -12
- package/docs/interfaces/index.PBMCustomNodeOptions.html +4 -4
- package/docs/interfaces/index.PBMCustomNodePanoContext.html +12 -5
- package/docs/interfaces/index.PBMCustomNodeSlots.html +6 -6
- package/docs/interfaces/index.PBMPanoDepth.html +5 -5
- package/docs/interfaces/index.PBMPanoFilterValue.html +2 -2
- package/docs/interfaces/index.PBMPanoGainmap.html +6 -0
- package/docs/interfaces/index.PBMPanoPicture.html +9 -8
- package/docs/interfaces/index.PBMRefinedScreen.html +2 -2
- package/docs/interfaces/index.PanoCircleMeshCustomOptions.html +2 -2
- package/docs/interfaces/index.PanoCircleMeshInterface.html +1 -1
- package/docs/interfaces/index.PanoEvent.html +2 -2
- package/docs/interfaces/index.PanoTextureEvent.html +2 -2
- package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +9 -9
- package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.ParameterMaterialValue.html +1 -1
- package/docs/interfaces/index.ParameterTilesetValue.html +1 -1
- package/docs/interfaces/index.ParameterValue.html +1 -1
- package/docs/interfaces/index.Pose.html +1 -1
- package/docs/interfaces/index.RenderEvent.html +2 -2
- package/docs/interfaces/index.ResolvedParameterValue.html +1 -1
- package/docs/interfaces/index.State.html +1 -1
- package/docs/interfaces/index.StateEvent.html +2 -2
- package/docs/interfaces/index.TextureOptions.html +1 -1
- package/docs/interfaces/index.TilesetOptions.html +7 -2
- package/docs/interfaces/index.TopviewControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.VRPanoramaControllerCustomInitArgs.html +37 -0
- package/docs/interfaces/index.ViewLayer.html +23 -21
- package/docs/interfaces/index.WorkCubeHdrGainmapImage.html +10 -0
- package/docs/interfaces/index.WorkCubeImage.html +5 -9
- package/docs/interfaces/index.WorkImage.html +8 -12
- package/docs/interfaces/index.WorkInitial.html +8 -8
- package/docs/interfaces/index.WorkModel.html +8 -8
- package/docs/interfaces/index.WorkModelLayer.html +6 -6
- package/docs/interfaces/index.WorkObserver.html +23 -23
- package/docs/interfaces/index.WorkPanoramaJson.html +3 -2
- package/docs/interfaces/index.WorkTile.html +8 -12
- package/docs/interfaces/index.WorksEvent.html +2 -2
- package/docs/interfaces/index.XRControllerEvent.html +2 -2
- package/docs/interfaces/index.XRGestureEvent.html +2 -2
- package/docs/interfaces/index.XRSessionEvent.html +2 -2
- package/docs/modules/index.html +1 -1
- package/docs/types/index.ControllerCustomInitTypes.html +3 -2
- package/docs/types/index.ControllerEventTypes.html +25 -23
- package/docs/types/index.EventTypes.html +26 -26
- package/docs/types/index.Mode.html +2 -1
- package/docs/types/index.ParseOptions.html +14 -8
- package/docs/variables/index.GSPLAT_PIPELINE_AUTO.html +2 -0
- package/docs/variables/index.GSPLAT_PIPELINE_RASTER_CPU_SORT.html +2 -0
- package/docs/variables/index.GSPLAT_PIPELINE_RASTER_GPU_SORT.html +2 -0
- package/docs/variables/index.PROXY_CONTROLLER_EVENT_NAMES.html +1 -1
- package/docs/variables/index.controllersDefaultInitArgs.html +1 -1
- package/five/application/controllers.d.ts +4 -0
- package/five/application/events.d.ts +1 -1
- package/five/application/five.d.ts +4 -1
- package/five/application/fiveInitArgs.d.ts +13 -0
- package/five/application/mode.d.ts +2 -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/controllers/base.d.ts +3 -0
- package/five/controllers/events.d.ts +5 -3
- package/five/controllers/panorama.d.ts +2 -2
- package/five/controllers/vrPanorama.d.ts +56 -0
- package/five/core/panoVideo.d.ts +4 -1
- package/five/core/tiling.d.ts +25 -11
- package/five/gaussian-splatting/gpu-sort/prefixSumKernel.d.ts +65 -0
- package/five/gaussian-splatting/gpu-sort/radixSortModule.d.ts +128 -0
- package/five/gaussian-splatting/gpu-sort/shaders/prefixSum.d.ts +2 -0
- package/five/gaussian-splatting/gpu-sort/shaders/radixHistogram.d.ts +2 -0
- package/five/gaussian-splatting/gpu-sort/shaders/radixReorder.d.ts +2 -0
- package/five/gaussian-splatting/gpu-sort/shaders/sortKeygen.d.ts +2 -0
- package/five/gaussian-splatting/gpu-sort/sortAdapter.d.ts +234 -0
- package/five/gaussian-splatting/pipelines/cpuSortPipeline.d.ts +159 -0
- package/five/gaussian-splatting/pipelines/gpuSortPipeline.d.ts +98 -0
- package/five/gaussian-splatting/pipelines/gsplatPipeline.d.ts +104 -0
- package/five/gaussian-splatting/pipelines/pipelineMode.d.ts +42 -0
- package/five/gaussian-splatting/pipelines/sortThrottle.d.ts +45 -0
- package/five/index.d.ts +4 -1
- package/five/index.js +272 -269
- package/five/index.mjs +6979 -4610
- package/five/meshes/panoCircleMeshCustom.d.ts +1 -0
- package/five/model/index.d.ts +1 -1
- package/five/model/materials/pbmGaussianSplattingNodeMaterial.d.ts +4 -0
- package/five/model/materials/pbmMaterial.d.ts +113 -18
- package/five/model/materials/tsl/defines.d.ts +6 -1
- package/five/model/materials/tsl/outputBuilder.d.ts +1 -12
- package/five/model/materials/tsl/panoColor.d.ts +8 -2
- package/five/model/materials/tsl/utils.d.ts +13 -0
- package/five/model/objects/pbmGaussianSplattingObject.d.ts +9 -0
- package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +67 -101
- package/five/model/tile3d/index.d.ts +2 -0
- package/five/model/tile3d/tileset.d.ts +5 -0
- package/five/model/tile3d/trajectory-content.d.ts +53 -0
- package/five/texture/loader.d.ts +6 -0
- package/five/types/cube.d.ts +0 -1
- package/five/utils/detector.d.ts +11 -1
- package/five/utils/error.d.ts +1 -0
- package/five/utils/event.d.ts +17 -1
- package/five/utils/gainmap-data.d.ts +23 -0
- package/five/work/index.d.ts +1 -1
- package/five/work/looseWorkType.d.ts +2 -1
- package/five/work/work.d.ts +30 -7
- package/five/work/workJsonType.d.ts +2 -1
- package/gltf-loader/gltf-object.d.ts +17 -0
- package/gltf-loader/index.d.ts +45 -0
- package/gltf-loader/index.js +255 -0
- package/gltf-loader/index.mjs +302 -0
- package/package.json +6 -1
- 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/CSS2DPlugin/Controller.d.ts +59 -0
- package/plugins/CSS2DPlugin/index.d.ts +5 -0
- package/plugins/CSS2DPlugin/typing.d.ts +31 -0
- package/plugins/CSS3DPlugin/Controller.d.ts +64 -0
- package/plugins/CSS3DPlugin/index.d.ts +5 -0
- package/plugins/CSS3DPlugin/typing.d.ts +33 -0
- package/plugins/FloorplanPlugin/Controller.d.ts +100 -0
- package/plugins/FloorplanPlugin/index.d.ts +5 -0
- package/plugins/FloorplanPlugin/render/assets.d.ts +9 -0
- package/plugins/FloorplanPlugin/render/index.d.ts +35 -0
- package/plugins/FloorplanPlugin/render/isPointInPolygon.d.ts +5 -0
- package/plugins/FloorplanPlugin/render/renderFloor.d.ts +22 -0
- package/plugins/FloorplanPlugin/render/roomLabelVisibility.d.ts +10 -0
- package/plugins/FloorplanPlugin/typing.d.ts +156 -0
- package/plugins/FloorplanPlugin/typings/floorplanData.d.ts +112 -0
- package/plugins/FloorplanPlugin/typings/floorplanServerData.d.ts +78 -0
- package/plugins/FloorplanPlugin/typings/index.d.ts +2 -0
- package/plugins/FloorplanPlugin/utils/changeMode.d.ts +5 -0
- package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.d.ts +6 -0
- package/plugins/FloorplanPlugin/utils/correctFiveState.d.ts +11 -0
- package/plugins/FloorplanPlugin/utils/equal.d.ts +9 -0
- package/plugins/FloorplanPlugin/utils/filter.d.ts +8 -0
- package/plugins/FloorplanPlugin/utils/fiveModelLoad.d.ts +6 -0
- package/plugins/FloorplanPlugin/utils/formatData.d.ts +6 -0
- package/plugins/FloorplanPlugin/utils/formatPosition.d.ts +33 -0
- package/plugins/FloorplanPlugin/utils/getDistanceFromModel.d.ts +6 -0
- package/plugins/FloorplanPlugin/utils/getPxmm.d.ts +19 -0
- package/plugins/FloorplanPlugin/utils/isTruelyObject.d.ts +4 -0
- package/plugins/FloorplanPlugin/utils/nearlyEqual.d.ts +8 -0
- package/plugins/FloorplanPlugin/utils/to.d.ts +5 -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 +3 -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/PanoAnimePlugin/Controller.d.ts +49 -0
- package/plugins/PanoAnimePlugin/index.d.ts +5 -0
- package/plugins/PanoAnimePlugin/typing.d.ts +37 -0
- package/plugins/index.d.ts +6 -0
- package/plugins/index.js +393 -3
- package/plugins/index.mjs +3421 -92
- package/plugins/thirdParty/CSS2DRenderer.d.ts +37 -0
- package/plugins/thirdParty/CSS3DRenderer.d.ts +45 -0
- package/plugins/thirdParty/OrbitControls.d.ts +78 -0
- package/plugins/thirdParty/domevents.d.ts +36 -0
- package/plugins/utils/clamp.d.ts +2 -0
- package/plugins/utils/uuid.d.ts +2 -0
- package/react/index.js +2 -2
- package/react/index.mjs +2 -2
- package/umd/five-gltf-loader.js +255 -0
- package/umd/five-plugins.js +461 -3
- package/umd/five-react.js +2 -2
- package/umd/five.js +350 -347
- package/docs/interfaces/index.PBMHDRConfig.html +0 -12
- package/five/gaussian-splatting/worker/dataWorker.d.ts +0 -1
- package/five/three-version-check.d.ts +0 -1
- package/five/utils/hdr-data.d.ts +0 -13
- package/five/utils/shaderContentFix.d.ts +0 -7
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>features/ultra-hdr | 如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">features/ultra-hdr</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="ultrahdr-gainmap-渲染" class="tsd-anchor-link">UltraHDR /
|
|
2
|
-
<p>本篇说明 five-webgpu 如何用 UltraHDR(
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>features/ultra-hdr | 如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">features/ultra-hdr</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="ultrahdr-gainmap-渲染" class="tsd-anchor-link">UltraHDR / gainmap 渲染<a href="#ultrahdr-gainmap-渲染" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1>
|
|
2
|
+
<p>本篇说明 five-webgpu 如何用 UltraHDR(gainmap)方案还原全景图的高动态范围,重点是<strong>最终 RGB 是如何算出来的</strong>。</p>
|
|
3
3
|
<h2 id="基本原理" class="tsd-anchor-link">基本原理<a href="#基本原理" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
4
4
|
<p>UltraHDR 不直接存 HDR 像素,而是拆成两部分:</p>
|
|
5
5
|
<ul>
|
|
6
6
|
<li><strong>SDR 底图(base / color)</strong>:普通的 8bit 全景图,直接可显示。</li>
|
|
7
|
-
<li><strong>
|
|
7
|
+
<li><strong>gainmap(增益图)</strong>:每个像素存一个 <code>[0,1]</code> 的增益值,表示该像素相对 SDR 需要放大多少亮度。</li>
|
|
8
8
|
</ul>
|
|
9
9
|
<p>渲染时的公式是:</p>
|
|
10
10
|
<pre><code><span class="hl-6">finalRGB</span><span class="hl-1"> = </span><span class="hl-6">sdrRGB</span><span class="hl-1"> * </span><span class="hl-5">boost</span><span class="hl-1">(</span><span class="hl-6">gain</span><span class="hl-1">)</span>
|
|
11
11
|
</code><button>Copy</button></pre>
|
|
12
12
|
|
|
13
|
-
<p><code>boost</code> 是由
|
|
13
|
+
<p><code>boost</code> 是由 gainmap 值加上一组元数据(HDR config)算出的每通道增益系数。当没有 HDR(增益全为 1 / 未启用)时 <code>boost = 1</code>,退化为普通 SDR。</p>
|
|
14
14
|
<h2 id="相关数据结构" class="tsd-anchor-link">相关数据结构<a href="#相关数据结构" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
15
|
-
<p>
|
|
15
|
+
<p>gainmap 元数据来自每个点位的 <code>observer.images.gainmap?.cfg</code>(<code>GainmapCfgData</code>):该点位无 HDR 数据时 <code>images.gainmap</code> 字段不存在。</p>
|
|
16
16
|
<table>
|
|
17
17
|
<thead>
|
|
18
18
|
<tr>
|
|
@@ -39,15 +39,15 @@
|
|
|
39
39
|
</tr>
|
|
40
40
|
<tr>
|
|
41
41
|
<td><code>gamma</code></td>
|
|
42
|
-
<td>
|
|
42
|
+
<td>gainmap 的编码 gamma(解码用 <code>1/gamma</code>)</td>
|
|
43
43
|
</tr>
|
|
44
44
|
<tr>
|
|
45
45
|
<td><code>offsetSdr</code></td>
|
|
46
|
-
<td>SDR
|
|
46
|
+
<td>SDR 偏移,缺省 <code>1/64</code>(UltraHDR 规范默认值)</td>
|
|
47
47
|
</tr>
|
|
48
48
|
<tr>
|
|
49
49
|
<td><code>offsetHdr</code></td>
|
|
50
|
-
<td>HDR
|
|
50
|
+
<td>HDR 偏移,缺省 <code>1/64</code>(UltraHDR 规范默认值)</td>
|
|
51
51
|
</tr>
|
|
52
52
|
</tbody>
|
|
53
53
|
</table>
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
<li><code>maxDisplayBoost</code>:当前显示器 / 场景允许的最大显示增益,决定实际能还原多少 HDR。可通过 <code>five.modelScene.parameter.set('maxDisplayBoost', value)</code> 实时调整。</li>
|
|
57
57
|
</ul>
|
|
58
58
|
<h2 id="最终-rgb-的计算步骤" class="tsd-anchor-link">最终 RGB 的计算步骤<a href="#最终-rgb-的计算步骤" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
59
|
-
<p>对应实现见 <code>
|
|
59
|
+
<p>对应实现见 <code>lib/five/model/materials/tsl/utils.ts#hdrBoost</code> / <code>#hdrOffset</code>(以及瓦片路径下等价的 <code>lib/five/core/tiling.ts#computeHDRBoostNode</code>)。</p>
|
|
60
60
|
<h3 id="1-计算显示权重-weight" class="tsd-anchor-link">1. 计算显示权重 weight<a href="#1-计算显示权重-weight" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
61
61
|
<p>根据显示器容量把 <code>maxDisplayBoost</code> 归一化到 <code>[0,1]</code>:</p>
|
|
62
62
|
<pre><code><span class="hl-6">weight</span><span class="hl-1"> = </span><span class="hl-5">clamp</span><span class="hl-1">(</span><br/><span class="hl-1"> (</span><span class="hl-5">log2</span><span class="hl-1">(</span><span class="hl-6">maxDisplayBoost</span><span class="hl-1">) - </span><span class="hl-5">log2</span><span class="hl-1">(</span><span class="hl-6">hdrCapacityMin</span><span class="hl-1">)) /</span><br/><span class="hl-1"> (</span><span class="hl-5">log2</span><span class="hl-1">(</span><span class="hl-6">hdrCapacityMax</span><span class="hl-1">) - </span><span class="hl-5">log2</span><span class="hl-1">(</span><span class="hl-6">hdrCapacityMin</span><span class="hl-1">)),</span><br/><span class="hl-1"> </span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">1</span><br/><span class="hl-1">)</span>
|
|
@@ -68,10 +68,10 @@
|
|
|
68
68
|
<li>中间值:按比例插值。</li>
|
|
69
69
|
</ul>
|
|
70
70
|
<blockquote>
|
|
71
|
-
<p
|
|
71
|
+
<p>两条路径都对分母做了保护:<code>max(denom, 1e-6)</code> 并乘以 <code>step(1e-6, denom)</code>,避免非 HDR(capacity 全为 1)时除零产生 NaN(此时权重取 0,退化为 SDR)。</p>
|
|
72
72
|
</blockquote>
|
|
73
|
-
<h3 id="2-gainmap-解码(gamma)" class="tsd-anchor-link">2.
|
|
74
|
-
<p>
|
|
73
|
+
<h3 id="2-gainmap-解码(gamma)" class="tsd-anchor-link">2. gainmap 解码(gamma)<a href="#2-gainmap-解码(gamma)" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
74
|
+
<p>gainmap 采样值经 gamma 还原为线性增益量(每通道独立),解码使用 gamma 的倒数:</p>
|
|
75
75
|
<pre><code><span class="hl-6">gainLinear</span><span class="hl-1"> = </span><span class="hl-5">pow</span><span class="hl-1">(</span><span class="hl-6">gainRGB</span><span class="hl-1">, </span><span class="hl-11">1</span><span class="hl-1">/</span><span class="hl-6">gamma</span><span class="hl-1">) </span><span class="hl-8">// 对 r/g/b 分别做 pow,与 Adobe 规范一致</span>
|
|
76
76
|
</code><button>Copy</button></pre>
|
|
77
77
|
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
</code><button>Copy</button></pre>
|
|
87
87
|
|
|
88
88
|
<h3 id="5-得到最终颜色" class="tsd-anchor-link">5. 得到最终颜色<a href="#5-得到最终颜色" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
89
|
-
<p>应用
|
|
89
|
+
<p>应用 gainmap 偏移得到最终 HDR 颜色(<code>offset</code> 为 0 时退化为 <code>sdr * boost</code>):</p>
|
|
90
90
|
<pre><code><span class="hl-6">finalRGB</span><span class="hl-1"> = (</span><span class="hl-6">sdrRGB</span><span class="hl-1"> + </span><span class="hl-6">offsetSdr</span><span class="hl-1">) * </span><span class="hl-6">boost</span><span class="hl-1"> - </span><span class="hl-6">offsetHdr</span><br/><span class="hl-6">finalA</span><span class="hl-1"> = </span><span class="hl-6">sdrA</span>
|
|
91
91
|
</code><button>Copy</button></pre>
|
|
92
92
|
|
|
@@ -102,28 +102,19 @@
|
|
|
102
102
|
<p>以下公式来自两个权威开源实现,可作为校验基准。内容已改写以符合许可要求。</p>
|
|
103
103
|
<h3 id="1-google-(c,)" class="tsd-anchor-link">1) Google <code>libultrahdr</code>(C++,<code>gainmapmath.cpp</code>)<a href="#1-google-(c,)" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
104
104
|
<p>解码端 <code>applyGain</code>(带 displayBoost 的重载)核心逻辑:</p>
|
|
105
|
-
<pre><code class="
|
|
106
|
-
|
|
107
|
-
finalRGB = sdr * gainFactor;
|
|
108
|
-
</code><button type="button">Copy</button></pre>
|
|
105
|
+
<pre><code><span class="hl-6">logBoost</span><span class="hl-1"> = </span><span class="hl-5">log2</span><span class="hl-1">(</span><span class="hl-6">minContentBoost</span><span class="hl-1">) * (</span><span class="hl-11">1</span><span class="hl-1"> - </span><span class="hl-6">gain</span><span class="hl-1">) + </span><span class="hl-5">log2</span><span class="hl-1">(</span><span class="hl-6">maxContentBoost</span><span class="hl-1">) * </span><span class="hl-6">gain</span><span class="hl-1">;</span><br/><span class="hl-6">gainFactor</span><span class="hl-1"> = </span><span class="hl-5">exp2</span><span class="hl-1">(</span><span class="hl-6">logBoost</span><span class="hl-1"> * </span><span class="hl-6">displayBoost</span><span class="hl-1"> / </span><span class="hl-6">maxContentBoost</span><span class="hl-1">);</span><br/><span class="hl-6">finalRGB</span><span class="hl-1"> = </span><span class="hl-6">sdr</span><span class="hl-1"> * </span><span class="hl-6">gainFactor</span><span class="hl-1">;</span>
|
|
106
|
+
</code><button>Copy</button></pre>
|
|
109
107
|
|
|
110
108
|
<p>说明:</p>
|
|
111
109
|
<ul>
|
|
112
|
-
<li><code>gain</code> 是
|
|
110
|
+
<li><code>gain</code> 是 gainmap 采样值(<code>[0,1]</code>)。该库固定 <code>gamma = 1.0</code>、<code>offsetSdr = offsetHdr = 0</code>、<code>hdrCapacityMin = 1</code>、<code>hdrCapacityMax = maxContentBoost</code>,所以权重简化成 <code>displayBoost / maxContentBoost</code>。</li>
|
|
113
111
|
<li>元数据里的 <code>minContentBoost</code> / <code>maxContentBoost</code> 是<strong>线性倍数</strong>(非 log),在着色器里才取 <code>log2</code>。</li>
|
|
114
112
|
<li>来源:<a href="https://github.com/ittiam-systems/libultrahdr">ittiam-systems/libultrahdr</a> / <a href="https://android.googlesource.com/platform/external/libultrahdr">AOSP libultrahdr</a>。内容为改写。</li>
|
|
115
113
|
</ul>
|
|
116
|
-
<h3 id="2-monogrid-v340(adobe-gainmap-规范的-threejs-移植)" class="tsd-anchor-link">2) MONOGRID <code>gainmap-js</code> v3.4.0(Adobe
|
|
114
|
+
<h3 id="2-monogrid-v340(adobe-gainmap-规范的-threejs-移植)" class="tsd-anchor-link">2) MONOGRID <code>gainmap-js</code> v3.4.0(Adobe gainmap 规范的 three.js 移植)<a href="#2-monogrid-v340(adobe-gainmap-规范的-threejs-移植)" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
117
115
|
<p>解码 fragment shader 原式(等价重排):</p>
|
|
118
|
-
<pre><code class="
|
|
119
|
-
|
|
120
|
-
hdrColor = (sdr + offsetSdr) * exp2(logBoost * weightFactor) - offsetHdr;
|
|
121
|
-
|
|
122
|
-
weightFactor = clamp(
|
|
123
|
-
(log2(maxDisplayBoost) - hdrCapacityMin) / (hdrCapacityMax - hdrCapacityMin),
|
|
124
|
-
0, 1
|
|
125
|
-
);
|
|
126
|
-
</code><button type="button">Copy</button></pre>
|
|
116
|
+
<pre><code><span class="hl-6">logRecovery</span><span class="hl-1"> = </span><span class="hl-5">pow</span><span class="hl-1">(</span><span class="hl-6">recovery</span><span class="hl-1">, </span><span class="hl-6">gamma</span><span class="hl-1">); </span><span class="hl-8">// gamma uniform = 1.0 / metadataGamma</span><br/><span class="hl-6">logBoost</span><span class="hl-1"> = </span><span class="hl-6">gainMapMin</span><span class="hl-1"> * (</span><span class="hl-11">1</span><span class="hl-1"> - </span><span class="hl-6">logRecovery</span><span class="hl-1">) + </span><span class="hl-6">gainMapMax</span><span class="hl-1"> * </span><span class="hl-6">logRecovery</span><span class="hl-1">;</span><br/><span class="hl-6">hdrColor</span><span class="hl-1"> = (</span><span class="hl-6">sdr</span><span class="hl-1"> + </span><span class="hl-6">offsetSdr</span><span class="hl-1">) * </span><span class="hl-5">exp2</span><span class="hl-1">(</span><span class="hl-6">logBoost</span><span class="hl-1"> * </span><span class="hl-6">weightFactor</span><span class="hl-1">) - </span><span class="hl-6">offsetHdr</span><span class="hl-1">;</span><br/><br/><span class="hl-6">weightFactor</span><span class="hl-1"> = </span><span class="hl-5">clamp</span><span class="hl-1">(</span><br/><span class="hl-1"> (</span><span class="hl-5">log2</span><span class="hl-1">(</span><span class="hl-6">maxDisplayBoost</span><span class="hl-1">) - </span><span class="hl-6">hdrCapacityMin</span><span class="hl-1">) / (</span><span class="hl-6">hdrCapacityMax</span><span class="hl-1"> - </span><span class="hl-6">hdrCapacityMin</span><span class="hl-1">),</span><br/><span class="hl-1"> </span><span class="hl-11">0</span><span class="hl-1">, </span><span class="hl-11">1</span><br/><span class="hl-1">);</span>
|
|
117
|
+
</code><button>Copy</button></pre>
|
|
127
118
|
|
|
128
119
|
<p>说明(这是最贴近 Adobe 官方规范的实现):</p>
|
|
129
120
|
<ul>
|
|
@@ -141,23 +132,33 @@ weightFactor = clamp(
|
|
|
141
132
|
<ul>
|
|
142
133
|
<li>本项目对 <code>minContentBoost / maxContentBoost / hdrCapacityMin / hdrCapacityMax</code> 在 shader 内部统一取 <code>log2</code>,说明这些字段在数据里是<strong>线性倍数</strong>(如 <code>maxContentBoost = 100</code>、<code>hdrCapacityMax = 1000</code>)。这与 <strong>libultrahdr 约定一致</strong>。</li>
|
|
143
134
|
<li>但 <strong>Adobe / gainmap-js 约定相反</strong>:这些字段在元数据里就已经是 <strong>log2 空间</strong>。</li>
|
|
144
|
-
<li>风险:如果
|
|
135
|
+
<li>风险:如果 gainmap 资源是按 Adobe/UltraHDR 标准(XMP <code>hdrgm</code>)导出的,那里的 <code>HDRCapacityMin/Max</code>、<code>GainMapMin/Max</code> 已经是 log2 值,本项目再套一次 <code>log2</code> 就会<strong>二次取对数</strong>导致结果错误。务必确认打包侧写入的到底是线性倍数还是 log2 值。</li>
|
|
145
136
|
</ul>
|
|
146
137
|
</li>
|
|
147
138
|
<li>
|
|
148
|
-
<p><strong>gamma 方向(✅
|
|
139
|
+
<p><strong>gamma 方向(✅ 已修复,pano 与瓦片两条路径一致)</strong></p>
|
|
149
140
|
<ul>
|
|
150
|
-
<li
|
|
151
|
-
<li><code>gamma = 1</code
|
|
152
|
-
<li
|
|
141
|
+
<li>解码使用 <code>pow(gainRGB, 1/gamma)</code>(规范:<code>log_recovery = pow(recovery, 1.0 / map_gamma)</code>),与 Adobe / gainmap-js 规范一致;<code>gamma</code> 做了 <code>> 0</code> 保护,<code>gain</code> 先 clamp 到 <code>[0,1]</code>。</li>
|
|
142
|
+
<li><code>gamma = 1</code>(当前数据默认)时与旧行为相同,无回归;<code>gamma ≠ 1</code> 时结果才会正确。</li>
|
|
143
|
+
<li>注意:<code>PanoSourceNode</code> 已删除,公式现在在 <code>tsl/utils.ts#hdrBoost</code> 与 <code>tiling.ts#computeHDRBoostNode</code> 各有一份,改动需同步。</li>
|
|
153
144
|
</ul>
|
|
154
145
|
</li>
|
|
155
146
|
<li>
|
|
156
147
|
<p><strong>offset 偏移(✅ 已支持)</strong></p>
|
|
157
148
|
<ul>
|
|
158
|
-
<li>完整式:<code>hdr = (sdr + offsetSdr) * boost - offsetHdr</code>,由 <code>
|
|
159
|
-
<li><code>offsetSdr</code> / <code>offsetHdr</code> 已加入 <code>
|
|
160
|
-
<li><strong
|
|
149
|
+
<li>完整式:<code>hdr = (sdr + offsetSdr) * boost - offsetHdr</code>,由 <code>tsl/utils.ts#hdrOffset</code>(pano 路径)与 <code>tiling.ts#hdrOffsetNode</code>(瓦片路径)应用,不需要额外的 <code>applyHDROffset</code> 包装。</li>
|
|
150
|
+
<li><code>offsetSdr</code> / <code>offsetHdr</code> 已加入 <code>GainmapCfgData</code>(支持 <code>offset_sdr</code> / <code>offset_hdr</code> 下划线写法)、pano 材质 uniform(<code>pano0HdrOffsetSdr</code> 等)与瓦片 uniform,可从 <code>images.gainmap.cfg</code> 读取。</li>
|
|
151
|
+
<li><strong>缺省值为 <code>1/64</code></strong>(见导出的 <code>DEFAULT_GAINMAP_CFG_DATA</code>,与 UltraHDR 规范默认一致):cfg 里没有该字段时按 <code>1/64</code> 解码。</li>
|
|
152
|
+
<li>⚠️ 编码/解码 offset 必须一致:若打包侧按 <code>offsetSdr = offsetHdr = 0</code> 生成 gain map,需在 cfg 里显式写 <code>0</code>(否则近黑会略有抬升);反之若按规范 <code>1/64</code> 编码,现在的默认值正好匹配。因此<strong>建议打包侧始终在 cfg 中显式写入这两个字段</strong>。</li>
|
|
153
|
+
</ul>
|
|
154
|
+
</li>
|
|
155
|
+
<li>
|
|
156
|
+
<p><strong>gainmap 纹理的色彩空间(✅ 已改为 <code>NoColorSpace</code>)</strong></p>
|
|
157
|
+
<ul>
|
|
158
|
+
<li>规范要求 gain map 直接使用 <code>encoded_recovery / 255</code>(其自带的色彩配置文件不生效)。</li>
|
|
159
|
+
<li>现在 pano 路径(<code>panorama</code> / <code>floorplan</code> / <code>mapview</code> 的 <code>loadCubeTexture</code>)与瓦片路径(<code>core/tiling.ts</code> 的 <code>loadTexture</code>)都显式传 <code>colorSpace: THREE.NoColorSpace</code>;SDR 底图仍为 <code>SRGBColorSpace</code>。</li>
|
|
160
|
+
<li>three 的 GPU 纹理格式在<strong>首次创建时</strong>按 colorSpace 决定(WebGPU:sRGB → <code>rgba8unorm-srgb</code> 做硬件解码),之后只重传像素、不重建格式。因此瓦片纹理池改为按 <code>尺寸 + colorSpace</code> 分桶,避免色图与 gainmap 串用同一张池化纹理。</li>
|
|
161
|
+
<li>观感变化:gainmap 中间调不再被 sRGB 曲线压低(<code>maxDisplayBoost=4</code>、<code>maxContentBoost=100</code>、capacity <code>1..1000</code> 时,gain=0.5 的 boost 由约 1.22 → 1.59),亮部更亮;gain=0 与 gain=1 两端不变。若打包侧曾把 <code>recovery</code> 按 sRGB 预补偿写进 JPEG(非标准做法),需回退此项。</li>
|
|
161
162
|
</ul>
|
|
162
163
|
</li>
|
|
163
164
|
</ol>
|
|
@@ -169,20 +170,25 @@ weightFactor = clamp(
|
|
|
169
170
|
<p>两式在“capacity 线性 vs log2”约定统一后是同一个公式。</p>
|
|
170
171
|
<h2 id="关键代码位置" class="tsd-anchor-link">关键代码位置<a href="#关键代码位置" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
171
172
|
<ul>
|
|
172
|
-
<li><code>lib/five/model/materials/
|
|
173
|
+
<li><code>lib/five/model/materials/tsl/utils.ts</code>
|
|
174
|
+
<ul>
|
|
175
|
+
<li><code>hdrBoost(gainRGB, maxDisplayBoost, maxContentBoost, minContentBoost, capacityMin, capacityMax, gamma)</code>:增益系数计算(TSL 节点,含 gamma 解码与容量权重)。</li>
|
|
176
|
+
<li><code>hdrOffset(sdrRGB, boost, offsetSdr, offsetHdr)</code>:应用 offset 得到最终 HDR 颜色。</li>
|
|
177
|
+
</ul>
|
|
178
|
+
</li>
|
|
179
|
+
<li><code>lib/five/model/materials/tsl/defines.ts</code>
|
|
173
180
|
<ul>
|
|
174
|
-
<li><code>
|
|
175
|
-
<li><code>sampleHDR(cameraDirection, maxDisplayBoost, rgba?)</code>:采样 SDR 底图与 GainMap 并输出 <code>sdrColor.rgb * boost</code>。</li>
|
|
181
|
+
<li><code>pano0HdrColor</code> / <code>pano1HdrColor</code>:拼接 <code>hdrBoost</code> 与 <code>hdrOffset</code>,材质 uniform 由 <code>pbmMaterial.ts</code> 的 <code>pano0Hdr*</code> / <code>pano1Hdr*</code> 属性驱动。</li>
|
|
176
182
|
</ul>
|
|
177
183
|
</li>
|
|
178
184
|
<li><code>lib/five/core/tiling.ts</code>
|
|
179
185
|
<ul>
|
|
180
|
-
<li><code>computeHDRBoostNode(gainRGB, uniforms)</code>:瓦片细化路径下的等价实现(带除零保护)。</li>
|
|
181
|
-
<li><code>TileMaterial.setupNode()</code>:<code>mix(sdr, sdr*boost, enabled)</code> 的烘焙逻辑。</li>
|
|
186
|
+
<li><code>computeHDRBoostNode(gainRGB, uniforms)</code> / <code>hdrOffsetNode(...)</code>:瓦片细化路径下的等价实现(带除零保护)。</li>
|
|
187
|
+
<li><code>TileMaterial.setupNode()</code> / <code>BoundingMaterial</code>:<code>mix(sdr, (sdr + offsetSdr) * boost - offsetHdr, enabled)</code> 的烘焙逻辑。</li>
|
|
182
188
|
</ul>
|
|
183
189
|
</li>
|
|
184
|
-
<li><code>lib/five/utils/
|
|
190
|
+
<li><code>lib/five/utils/gainmap-data.ts</code>:<code>GainmapCfgData</code> 定义与 <code>parseGainmapCfgData</code> 解析(兼容 camelCase 与下划线 key)。</li>
|
|
185
191
|
</ul>
|
|
186
192
|
<h2 id="使用示例" class="tsd-anchor-link">使用示例<a href="#使用示例" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
187
|
-
<p>参见 <code>examples/hdr/index.ts</code> 与 <code>examples/_tools/hdr-viewer/panes/hdr.ts</code>:到达点位后从 <code>observer.images.
|
|
188
|
-
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#ultrahdr-gainmap-渲染"><span>Ultra<wbr/>HDR /
|
|
193
|
+
<p>参见 <code>examples/hdr/index.ts</code> 与 <code>examples/_tools/hdr-viewer/panes/hdr.ts</code>:到达点位后从 <code>observer.images.gainmap?.cfg</code> 拉取元数据(无 HDR 时该字段不存在),<code>maxDisplayBoost</code> 可实时调节以观察增益变化。</p>
|
|
194
|
+
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#ultrahdr-gainmap-渲染"><span>Ultra<wbr/>HDR / gainmap 渲染</span></a><ul><li><a href="#基本原理"><span>基本原理</span></a></li><li><a href="#相关数据结构"><span>相关数据结构</span></a></li><li><a href="#最终-rgb-的计算步骤"><span>最终 <wbr/>RGB 的计算步骤</span></a></li><li><ul><li><a href="#1-计算显示权重-weight"><span>1. 计算显示权重 weight</span></a></li><li><a href="#2-gainmap-解码(gamma)"><span>2. gainmap 解码(gamma)</span></a></li><li><a href="#3-在-log-域插值出增益"><span>3. 在 log 域插值出增益</span></a></li><li><a href="#4-应用显示权重并还原到线性倍数"><span>4. 应用显示权重并还原到线性倍数</span></a></li><li><a href="#5-得到最终颜色"><span>5. 得到最终颜色</span></a></li></ul></li><li><a href="#完整公式汇总"><span>完整公式汇总</span></a></li><li><a href="#官方参考公式"><span>官方参考公式</span></a></li><li><ul><li><a href="#1-google-(c,)"><span>1) <wbr/>Google (<wbr/>C++,)</span></a></li><li><a href="#2-monogrid-v340(adobe-gainmap-规范的-threejs-移植)"><span>2) <wbr/>MONOGRID v3.4.0(<wbr/>Adobe gainmap 规范的 three.js 移植)</span></a></li></ul></li><li><a href="#本项目公式-vs-官方公式(差异核对)"><span>本项目公式 vs 官方公式(差异核对)</span></a></li><li><ul><li><a href="#weight-公式对比"><span>weight 公式对比</span></a></li></ul></li><li><a href="#关键代码位置"><span>关键代码位置</span></a></li><li><a href="#使用示例"><span>使用示例</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
</ul>
|
|
5
5
|
<h2 id="installation" class="tsd-anchor-link">Installation<a href="#installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
6
6
|
<p>通过 npm 或 yarn 安装:</p>
|
|
7
|
-
<pre><code class="bash"><span class="hl-5">npm</span><span class="hl-1"> </span><span class="hl-9">install</span><span class="hl-1"> </span><span class="hl-9">three@^0.
|
|
7
|
+
<pre><code class="bash"><span class="hl-5">npm</span><span class="hl-1"> </span><span class="hl-9">install</span><span class="hl-1"> </span><span class="hl-9">three@^0.183.2</span><span class="hl-1"> </span><span class="hl-9">@realsee/five-webgpu</span><br/><span class="hl-8"># or</span><br/><span class="hl-5">yarn</span><span class="hl-1"> </span><span class="hl-9">add</span><span class="hl-1"> </span><span class="hl-9">three@^0.183.2</span><span class="hl-1"> </span><span class="hl-9">@realsee/five-webgpu</span>
|
|
8
8
|
</code><button type="button">Copy</button></pre>
|
|
9
9
|
|
|
10
10
|
<blockquote>
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
<ul>
|
|
103
103
|
<li>新增 tile.content.loadProgress 属性,用于查看每个瓦片的加载进度 (0-1)。</li>
|
|
104
104
|
<li>新增 tile.content.byteLength 属性,可在加载过程中获取瓦片内容的字节长度。</li>
|
|
105
|
-
<li>同时,
|
|
105
|
+
<li>同时,models.tileLoad 和 models.tileUnload 事件被添加,用于监控瓦片的生命周期。</li>
|
|
106
106
|
<li>加载函数(loadGltf, loadPly 等)现在支持 onDownloadProgress 回调,用于监控文件下载进度。</li>
|
|
107
107
|
</ul>
|
|
108
108
|
<h4 id="射线检测增强" class="tsd-anchor-link">射线检测增强<a href="#射线检测增强" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4>
|
|
@@ -177,7 +177,7 @@ UV 转换工具函数</p>
|
|
|
177
177
|
<li>优化 mapview 下滚动缩放。避免滚落所发有时会退回的问题。</li>
|
|
178
178
|
<li>优化 floorplan 从下向上看时的交互的屏幕上下滑动反人类下意识的问题。</li>
|
|
179
179
|
<li>优化 camera.autoNearFar 的计算结果。优化对于小物品的 near 过远以及 出现 z-fighting 的问题。</li>
|
|
180
|
-
<li>添加了 gesture.
|
|
180
|
+
<li>添加了 gesture.fire 事件,发生在任意事件被触发。</li>
|
|
181
181
|
<li>gestureEvent.center gestureEvent.pointers 中加入了 buttons button shiftKey ctrlKey metaKey altKey 字段。</li>
|
|
182
182
|
</ol>
|
|
183
183
|
<h2 id="内部机制改动" class="tsd-anchor-link">内部机制改动<a href="#内部机制改动" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
@@ -40,10 +40,8 @@
|
|
|
40
40
|
</tr>
|
|
41
41
|
</tbody>
|
|
42
42
|
</table>
|
|
43
|
-
<h2 id="webxr-support" class="tsd-anchor-link">WebXR Support<a href="#webxr-support" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
44
|
-
<p>如果需要使用 VR 模式 (XRPanorama),需要浏览器支持 <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API">WebXR Device API</a>。</p>
|
|
45
43
|
<h2 id="related" class="tsd-anchor-link">Related<a href="#related" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
46
44
|
<ul>
|
|
47
45
|
<li><a href="quick-start.html">Quick Start</a></li>
|
|
48
46
|
</ul>
|
|
49
|
-
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#browser-support-浏览器支持"><span>Browser <wbr/>Support (浏览器支持)</span></a><ul><li><a href="#compatibility"><span>Compatibility</span></a></li><li><a href="#
|
|
47
|
+
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#browser-support-浏览器支持"><span>Browser <wbr/>Support (浏览器支持)</span></a><ul><li><a href="#compatibility"><span>Compatibility</span></a></li><li><a href="#related"><span>Related</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>customNodesCacheKey | 如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/index.html">index</a></li><li><a href="" aria-current="page">customNodesCacheKey</a></li></ul><h1>Function customNodesCacheKey</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="customnodescachekey"><span class="tsd-kind-call-signature">customNodesCacheKey</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">customNodes</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">readonly</span> <a href="../classes/index.PBMCustomNode.html" class="tsd-signature-type tsd-kind-class">PBMCustomNode</a><span class="tsd-signature-symbol">[]</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><a href="#customnodescachekey" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>生成 customNodes 数组的 customProgramCacheKey 片段。
|
|
2
2
|
在 NodeMaterial 的 customProgramCacheKey() 中调用。</p>
|
|
3
|
-
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">customNodes</span>: <span class="tsd-signature-keyword">readonly</span> <a href="../classes/index.PBMCustomNode.html" class="tsd-signature-type tsd-kind-class">PBMCustomNode</a><span class="tsd-signature-symbol">[]</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources"><ul><li>Defined in lib/five/model/materials/pbmMaterial.ts:
|
|
3
|
+
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">customNodes</span>: <span class="tsd-signature-keyword">readonly</span> <a href="../classes/index.PBMCustomNode.html" class="tsd-signature-type tsd-kind-class">PBMCustomNode</a><span class="tsd-signature-symbol">[]</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources"><ul><li>Defined in lib/five/model/materials/pbmMaterial.ts:349</li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
</div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../classes/index.Work.html" class="tsd-signature-type tsd-kind-class">Work</a></h4><ul>
|
|
5
5
|
<li>签署过的 Work 数据结构</li>
|
|
6
6
|
</ul>
|
|
7
|
-
<aside class="tsd-sources"><ul><li>Defined in lib/five/work/work.ts:
|
|
7
|
+
<aside class="tsd-sources"><ul><li>Defined in lib/five/work/work.ts:431</li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>workToJson | 如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/index.html">index</a></li><li><a href="" aria-current="page">workToJson</a></li></ul><h1>Function workToJson</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="worktojson"><span class="tsd-kind-call-signature">workToJson</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">work</span><span class="tsd-signature-symbol">:</span> <a href="../classes/index.Work.html" class="tsd-signature-type tsd-kind-class">Work</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/index.WorkJson.html" class="tsd-signature-type tsd-kind-interface">WorkJson</a><a href="#worktojson" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">work</span>: <a href="../classes/index.Work.html" class="tsd-signature-type tsd-kind-class">Work</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../interfaces/index.WorkJson.html" class="tsd-signature-type tsd-kind-interface">WorkJson</a></h4><aside class="tsd-sources"><ul><li>Defined in lib/five/work/workJson.ts:
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>workToJson | 如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/index.html">index</a></li><li><a href="" aria-current="page">workToJson</a></li></ul><h1>Function workToJson</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="worktojson"><span class="tsd-kind-call-signature">workToJson</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">work</span><span class="tsd-signature-symbol">:</span> <a href="../classes/index.Work.html" class="tsd-signature-type tsd-kind-class">Work</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/index.WorkJson.html" class="tsd-signature-type tsd-kind-interface">WorkJson</a><a href="#worktojson" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">work</span>: <a href="../classes/index.Work.html" class="tsd-signature-type tsd-kind-class">Work</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../interfaces/index.WorkJson.html" class="tsd-signature-type tsd-kind-interface">WorkJson</a></h4><aside class="tsd-sources"><ul><li>Defined in lib/five/work/workJson.ts:101</li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|