@file-viewer/renderer-3d

中文文档
3.3.3发布于 2026/10/31Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 3.6万

由Tree.js加载器和轨道控制器驱动的文件查看器独立3D模型渲染器插件.

中文使用文档

@file-viewer/renderer-3d

English · 简体中文

Flyfish File Viewer 的独立 3D 模型 renderer。它使用 Three.js、OrbitControls 和按格式异步加载的 loader,在浏览器内预览 GLB / GLTF、OBJ、STL、PLY、FBX、DAE、3DS、3MF、AMF、USD、KMZ、PCD、VRML、XYZ、VTK 等模型;STEP / STP、IGES / IGS 和 BREP 则通过本地 OCCT Worker 完成真实几何解析和渲染。

用法

import FileViewer from '@file-viewer/vue3'
import { modelRenderer } from '@file-viewer/renderer-3d'

const options = {
  rendererMode: 'replace',
  renderers: modelRenderer,
  model: {
    workerUrl: '/viewer-assets/wasm/model/occt-worker.js',
    runtimeUrl: '/viewer-assets/wasm/model/occt-import-js.js',
    wasmUrl: '/viewer-assets/wasm/model/occt-import-js.wasm',
    workerTimeoutMs: 120_000,
  },
}

也可以把 modelRenderer 与 CAD 等 renderer 组合,或直接使用已经聚合它的 @file-viewer/preset-all。full 包和 @file-viewer/vite-plugin 会准备默认离线资产;只安装 renderer 时,需要自行托管 OCCT Worker、runtime、WASM 和两个许可证文件。

专用能力继续通过显式子路径按需安装:IFC 使用 @file-viewer/renderer-3d/ifc,LAS / LAZ / COPC / GeoTIFF / COG / CityJSON / 3D Tiles / 3TZ 使用 @file-viewer/renderer-3d/geo3d。普通 3D 入口不会导入这两个子入口,Full preset 也不会隐式加入它们。安装、自托管运行时资源和配置分别见 IFC.md 与 GEO3D.md。

默认路径为:

  • wasm/model/occt-worker.js
  • wasm/model/occt-import-js.js
  • wasm/model/occt-import-js.wasm

部署在子路径或独立资产域名时,通过 options.model.workerUrl、runtimeUrl、wasmUrl 传入最终 URL。不要使用运行时 CDN 回退。严格 CSP 需要在 worker-src、script-src 和 connect-src 中允许对应来源;部分浏览器还需要 script-src 'wasm-unsafe-eval'。

能力边界

  • STEP / STP、IGES / IGS、BREP:在 Worker 中使用 occt-import-js / OpenCascade 三角化,保留装配层级、实例、法线和面颜色,再构建 Three.js 场景。
  • 通用模型:支持 WebGL 轨道控制、适配视图、网格、坐标轴、线框和自动旋转。gltf / dae / fbx 的外部贴图或二进制资源继续以原始 url 目录为基准加载。
  • 全局统一缩放:renderer 注册标准缩放 provider,因此外层工具栏的放大、缩小、比例重置和适配视图会直接控制相机;滚轮、触控板和捏合缩放也会同步更新全局比例状态。
  • IFC 可通过显式的 @file-viewer/renderer-3d/ifc 专用入口启用;LAS / LAZ / COPC / GeoTIFF / COG / CityJSON / 3D Tiles / 3TZ 可通过 @file-viewer/renderer-3d/geo3d 启用。3DM 仍需专门的 rhino3dm renderer。
  • @file-viewer/core 不内置 Three.js 或几何内核。需要模型预览时请显式安装本包、相应 preset,或 full 包。

版本与发布记录

@file-viewer/renderer-3d 共发布 57 个版本,首次发布于 2026/06/23;过去 12 个月发布了 57 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.3.3latest2026/10/3114 天前
3.3.12026/10/3015 天前
3.3.02026/10/2718 天前
3.2.22026/10/1827 天前
3.2.12026/10/1530 天前
3.2.02026/10/1530 天前

关于 @file-viewer/renderer-3d 的常见问题

@file-viewer/renderer-3d 是什么?

由Tree.js加载器和轨道控制器驱动的文件查看器独立3D模型渲染器插件.

如何安装 @file-viewer/renderer-3d?

在项目目录运行 npm install @file-viewer/renderer-3d,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 file-viewer-ifc-assets、file-viewer-geo3d-assets,可以用 npx file-viewer-ifc-assets 直接运行。

@file-viewer/renderer-3d 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@file-viewer/renderer-3d 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@file-viewer/renderer-3d 可以商用吗?

@file-viewer/renderer-3d 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@file-viewer/renderer-3d 的下载量有多少?

根据 npm 官方下载统计,@file-viewer/renderer-3d 在 2026/10/15 – 2026/11/13 这 30 天内被下载 35,654 次,日均约 1,188 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@file-viewer/renderer-3d 还在维护吗?

最新版本 3.3.3 发布于 2026/10/31(14 天前);至今共发布 57 个版本,其中过去 12 个月发布了 57 个;首次发布于 2026/06/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。