如视 Five SDK
    Preparing search index...

    Release Note 6.8.x

    6.8.x 版本发布日志

    npm install @realsee/five@6.8
    

    Five 现已支持 Gaussian Splatting (3DGS) 渲染管线。这是一种基于点的渲染技术,能够提供高质量的实时渲染效果。 仅在 WebGL2 环境下可用。

    1. .splat 文档及工具 GitHub - antimatter15/splat: WebGL 3D Gaussian Splat Viewer
    2. .spz 文档及工具 GitHub - nianticlabs/spz: File format for 3D Gaussian splats. About 10x smaller than the PLY equival
    3. .glb .gltf 对应的 KHR_gaussian_splatting, KHR_gaussian_splatting_compression_spz, KHR_gaussian_splatting_compression_spz_2 扩展。

    通过 3d-tile 标准,使用 glb 作为模型格式。

    {
    "asset": {
    "version": "1.0",
    },
    "geometricError": 265.4529731527354,
    "root": {
    "boundingVolume": {
    "box": [
    0.9499778747558594, 3.5037269592285156, 17.48550033569336,
    97.01779174804688, 0.0, 0.0,
    0.0, 88.27268981933594, 0.0,
    0.0, 0.0, 20.292869567871094
    ]
    },
    "content": {
    "uri": "splat.glb"
    },
    "geometricError": 66.36324328818385,
    "refine": "ADD"
    },
    "transform": [
    1.0, 0.0, 0.0, 0.0,
    0.0, 1.0, 0.0, 0.0,
    0.0, 0.0, 1.0, 0.0,
    0.0, 0.0, 0.0, 1.0
    ]
    }
    {
    "work_code": "",
    "model": {
    "layers": {
    "tileset_url": "tileset.json",
    "name": "poincare_3dgs",
    "type": "gaussian_splatting"
    }
    }
    }

    可以通过 five.parameter.gaussianSplattingSHDegree 设置球谐光照阶数,支持 0, 1, 2 阶,默认为 0 阶。

    const five = new Five({
    parameters: {
    gaussianSplattingSHDegree: 1 // 设置为 1 阶 SH
    }
    });

    gaussian_splatting 的模型同时也支持 rayscast 射线检测。同点云的处理保持一致。但是因为 gaussian_splatting 的射线交点对应的法线方向是一个估算值,精度并不高。请酌情使用。

    新增了对更多 glTF 扩展的支持,提升了模型的表现力和动画能力。

    KHR_animation_pointer 允许动画通道指向 glTF 资产中任何对象的任何属性。

    默认的 animtion 只能修改 node 的 transform 实现节点的平移、旋转和缩放

    这个能力可以实现材质动画。比如:

    • 通过 uv transform 实现 texture 的移动,变化贴图位置。
    • 通过修改 material 上的材质属性,可以动态修改金属粗糙,透明度,自发光程度。
    • 通过修改 node 的 KHR_node_visibility 的扩展值,显隐某个节点。
    • 等等

    允许设置节点的可见性属性。 用于 配合 KHR_animation_pointer 实现显隐效果。

    用于在材质上添加一层透明涂层,模拟车漆、碳纤维、清漆木材等真实世界中的表面效果。

    这个能力可以实现材质动画。比如

    • 漆面等光滑的表面
    • 塑料薄膜
    • 等等

    物理透光材质扩展,用于实现光线真正穿过物体的透明 / 半透明效果。

    这个能力可以实现材质动画。比如

    • 玻璃等即透光也反射的表面
    • 等等

    调整自发光强度

    不感光材质 正确解析 KHR_materials_unlit。是否感光作用到对应的 material 上,而不是 gltf 中的所有元素。

    • 处理额外动画骨骼未绑定导致的错误,出现的抖动。
    • 修复 glTF 骨骼 weight 为整型时,导致 boneTransform 计算出错进而引发射线检测错误的问题。gltf parser 在加载非 float 数据时,现已自动转换为 float 使用。

    优化了 ViewLayer 的加载和显隐逻辑,以减少内存占用并提高性能。

    默认情况下,Five 不再加载所有图层,而是根据优先级仅加载一个图层。 优先级顺序:mesh > point_cloud > gaussian_splatting > 其他类型。

    • 显示: 当 viewLayer.visible = true 时,开始加载资源。
    • 隐藏: 当 viewLayer.visible = false 时,释放该图层占用的所有内存资源。
    • 新增 tile.content.loadProgress 属性,用于查看每个瓦片的加载进度 (0-1)。
    • 新增 tile.content.byteLength 属性,可在加载过程中获取瓦片内容的字节长度。
    • 同时,model.tileLoad 和 model.tileUnload 事件被添加,用于监控瓦片的生命周期。
    • 加载函数(loadGltf, loadPly 等)现在支持 onDownloadProgress 回调,用于监控文件下载进度。
    • 射线交点 Intersection 对象新增了 tile, model, viewLayer 字段,便于在射线检测时获取更详细的上下文信息。
    • raycaster.hitFilter 回调函数的参数类型定义已更新,包含 model, viewLayer, tile 等上下文信息。

    为 WorkObserver 提供了更多实用的工具函数,便于进行坐标和 UV 转换。 UV 转换工具函数

    • observer.vectorToEquirectangularUv: 将方向向量转化为全景图 uv。
    • observer.equirectangularUvToVector: 将全景图 uv 转化为方向向量。
    • observer.vectorToCubemapUv: 将方向向量转化为立方体贴图 uv。
    • observer.cubemapUvToVector: 将立方体贴图 uv 转化为方向向量。

    新增 five.panoId 属性,使其与 work.observer 保持一致。

    derived_id 的类型从 number 改为 number | string

    新增了全景图滤镜功能,支持实时调整全景图的亮度、对比度、饱和度、色温和色调等参数。

    通过 five.modelScene.parameter.set('panoFilter', filter) 绑定。 支持的参数如下:

    • color: 颜色调整,包含色温 (Temperature) 和色调 (Tint)。
    • highlightShadow: 高光和阴影的独立调节。包括高光 (Highlight) 和阴影 (Shadow) 全局(Global)。
    • contrast: 对比度调整。
    • saturation: 饱和度调整。

    新增后处理效果 (Post-Processing Passes)

    新增了三个可选的内置后处理 Pass,用于增强视觉效果。

    • FlowingLight2DPass: 2D 流光效果,通常用于在屏幕空间绘制流动的光线(如道路流光)。
    • FlowingLight3DPass: 3D 流光效果,基于深度缓冲区在三维模型表面绘制流光。
    • GaussianBlurPass: 高斯模糊效果,可用于实现毛玻璃等视觉特效。

    https://vradmin.lianjia.com/project/

    • 支持 debug -> stateSync。可以打开两个页面,均开启 stateSync。两边同步相机状态。
    • 支持 work.json 拖拽加载加载。

    https://vradmin.lianjia.com/poincare/

    • 支持 debug -> stateSync。可以打开两个页面,均开启 stateSync。两边同步相机状态。
    • 支持 模型文件拖拽加载加载。

    https://vradmin.lianjia.com/gltf/

    • 支持 debug -> stateSync。可以打开两个页面,均开启 stateSync。两边同步相机状态。
    • 支持 模型文件拖拽加载加载。
    • 支持 额外绑定动画文件(仅读取 gltf 的 animations 的部分,并绑定到当前的模型上)。
    • 支持 额外绑定动画的单独播放和暂停。

    全面重构了文档结构,使其更适合 AI 辅助编程工具 (如 Cursor, Copilot) 阅读和索引。

    • 文档目录迁移至 ai_guides/,并在 package.json 中新增 ai 字段指向该目录。
    • 文档内容包含源码链接 (source 字段),直接指向对应的 .ts 定义文件。
    • 提供了更清晰的 API 定义和概念说明,例如新增了 ViewLayer 的详细文档。
    • TypeScript 支持: 优化了 .d.ts 打包方式,声明文件现在与源码文件一一对应,提升了 IDE 的跳转体验。
    1. 优化 mapview 下滚动缩放。避免滚落所发有时会退回的问题。
    2. 优化 floorplan 从下向上看时的交互的屏幕上下滑动反人类下意识的问题。
    3. 优化 camera.autoNearFar 的计算结果。优化对于小物品的 near 过远以及 出现 z-fighting 的问题。
    4. 添加了 gesture.fire 事件,发生在任意事件被触发。
    5. gestureEvent.center gestureEvent.pointers 中加入了 buttons button shiftKey ctrlKey metaKey altKey 字段。
    6. 修复 gesture.momentum 前没有触发 gesture.create 的问题。
    7. 修复 gesture.pan 中 preventDefault 无法阻止触发 gesture.momentum 的问题。
    8. 修复 gesture.pan 中第一次并没有 event.isFirst = true 的问题。
    9. 添加自定义着色器 mainPanoColor 插入点,可以修改 pano0Color、pano1Color。
    10. 新增 parameter.resolveValue('xxx') 快速获取单个参数的最终值,无需创建完整的 ResolvedParameterValue 对象。
    11. 新增 pano.prepare 事件(ExtendableEvent),支持通过 waitUntil(promise) 在点位切换前插入异步操作。PanoEventPanoPrepareEvent 新增 pano 字段,包含目标点位信息。
    12. PanoPrepareEvent 新增 optionsMovePanoOptions)和 prevModeMode)字段。options 可在回调中直接修改(如修改 effectdurationlongitudelatitudefov 等),修改后的值将影响实际的点位切换行为。
    1. glTF 加载 mesh / points 都将直接使用 PBM 材质,而不是作为 PBM_Mesh 扩展形式去替换覆盖使用three内置材质的方式。
    2. 应用 animation pointer 以及 动画优化的原因。目前会重写 hack THREE.PropertyBinding.findNode。
    3. 打包不再合并 .d.ts 文件。便于文档可以更便于找到对应的类型声明。
    4. Parameter 性能优化:新增 resolveValueTo 支持对象复用以减少 GC,版本标识改用整数哈希(versionNumber: number)替代字符串拼接。