如视 Five SDK
    Preparing search index...

    Release Note 6.6.x

    6.6.x 版本发布日志

    npm install @realsee/five@6.6
    

    6.6.0 版本对开发环境依赖进行了较大幅度的升级,以支持更新的特性和更好的开发体验。

    • Node.js: 升级至 v20。
    • TypeScript: 升级至 v5.9.2 (tslib -> 2.8.1)。
    • Vite: 升级至 v7.1.2。
    • Protobufjs: 升级至 v7.5.3。

    针对大模型加载和销毁过程中的内存占用进行了多轮优化:

    • 实例销毁: 修复了 five.dispose() 时,部分 WebGL 资源(纹理、几何体)及事件监听器未被完全释放的问题。
    • 加载过程: 优化了模型下载和解析过程中临时对象的生命周期管理,解决了材质解析可能导致的内存驻留。
    • 瓦片加载: 修复了全景图瓦片在特定网络环境下取消请求时可能导致的内存泄漏。

    优化了 BVH (Bounding Volume Hierarchy) 射线碰撞检测逻辑,引入了“首个命中即停止”的机制,显著提升了点击交互性能。

    • firstHitOnly: 在 THREE.Raycaster 上扩展了 firstHitOnly 属性。当设置为 true 时,BVH 遍历算法会在找到第一个满足条件的交点后,利用该交点的距离对后续搜索进行剪枝(Pruning),避免遍历所有可能的交点。这对于点击拾取(Picking)操作有极大的性能提升。
    const raycaster = new THREE.Raycaster();
    // 开启首个命中优化
    raycaster.firstHitOnly = true;
    const intersects = five.model.intersectRaycaster(raycaster);
    • floorIndex: 支持在射线检测时通过 filter 机制快速筛选楼层(需配合上层逻辑)。
    • 静态化存储: 重构了 Work 数据解析逻辑 (workParser)。使用 Object.definePropertyObject.freeze 将解析后的 Work 数据及其子对象(如 Observer, Model)定义为不可变对象。这有助于 V8 引擎进行 Hidden Class 优化,减少内存占用并提升属性访问速度。
    • 解析优化: 增强了 work.parse 的容错能力,优化了对异常数据的处理逻辑。
    • 字段补充: work.observers 中补充了 panoId 字段,修复了 derivedIdStr 的生成逻辑。

    支持使用浏览器原生的 ImageBitmap API 替代传统的 HTMLImageElement 进行纹理加载。ImageBitmap 的解码过程可以在后台线程进行,避免了解码大图时阻塞主线程导致的掉帧现象。

    import { Five } from "@realsee/five";

    // 开启 Native ImageBitmap 支持 (全局配置)
    Five.useNativeImageBitmap = true;

    // 之后创建的 Five 实例将自动应用此配置
    const five = new Five({ ... });

    imageOptions 新增 forceUseExifOrientation 参数。针对部分未在服务端处理旋转的图片,该参数可强制读取并应用图片 Exif 中的 Orientation 信息,确保渲染方向正确。

    const five = new Five({
    imageOptions: {
    forceUseExifOrientation: true
    }
    });

    优化了航拍全景图(Aerial Panorama)的交互体验,改进了视角限制和过渡效果,使其浏览更加自然顺畅。

    • Safari:
      • 修复了 BVH 碰撞检测在 Safari 下可能出现的精度不一致问题。
      • 禁用 Safari 下的 image.decode 调用,修复了由此导致的 WebGL updateTexture 失败问题。
    • 微信: 修复了点云(PointCloud)在微信查看器中因 Shader 兼容性问题导致的显示错误。
    • High-DPI: 修复了当屏幕分辨率导致计算出的瓦片尺寸超过 WebGL 材质尺寸上限(MAX_TEXTURE_SIZE)时,瓦片渲染黑屏的问题。
    • moveToPano: 修复了当目标点位即为当前点位时,moveToPano 命令可能被忽略的问题。
    • 交互逻辑:
      • 修复了 panorama 模式下点击走点可能出现回退的问题。
      • 修复了 model 模式下 onTapGesture 回调中获取的 raycaster 状态不正确的问题。
    • 渲染显示: 修复了全景图瓦片在正交相机(OrthographicCamera)下的显示错误。