Skip to content

NIVIOBIM-GraphicsEngine 文档

欢迎使用 NIVIOBIM 轻量化图形引擎 API 文档!

NIVIOBIM-GraphicsEngine 是北京逆维悦动科技有限公司开发的高性能 WebGL 图形渲染引擎,专门用于 BIM 模型的轻量化可视化。该引擎提供了完整的 3D 渲染解决方案,支持大规模 BIM 模型的流式加载、高性能渲染和丰富的交互功能。

NIVIOBIM轻量化图形引擎

重要说明:这是一个纯图形库,专注于 3D 渲染和数据处理,不包含任何 UI 组件。开发者需要基于此库自行构建用户界面。

技术亮点:基于微内核的插拔式架构,将内核系统与插件系统相分离,用户可以通过自定义插件来实现业务需求,同时保持着代码的简洁、便于后期维护。

📚 文档导航

核心模块

  • Viewer3D - 主引擎类,提供完整的3D场景管理
  • Config - 配置管理类,用于引擎初始化配置
  • Utils - 工具类,提供各种实用工具函数
  • Selection - 选择系统,支持3D对象交互选择
  • SelectionBase - 选择基础类,提供射线检测功能

管理器模块

模型系统

加载器

插件系统

🎯 核心特性

🚀 高性能渲染

  • 流式加载:支持大型 BIM 模型的分批流式加载,避免浏览器阻塞
  • 实例化渲染:智能识别重复对象,自动转换为实例化渲染,大幅提升性能
  • 几何合并:对相似对象进行几何合并,减少 Draw Call,优化渲染效率
  • BVH 加速结构:内置 BVH 树,优化碰撞检测、射线拾取和视锥剔除
  • Web Worker:多线程处理 BVH 树构建和文件解压,保持 UI 流畅

📦 智能文件处理

  • 多格式支持:支持 GLB、GLTF 和自研 NIVIO 格式
  • 压缩解压:集成 libarchive.js,支持 ZIP、7-Zip、RAR、TAR 等多种压缩格式
  • 加密解密:自动处理加密压缩包,保护模型数据安全
  • DRACO 压缩:支持 DRACO 几何压缩,大幅减小模型文件体积
  • WebAssembly:利用 WASM 实现高性能文件解压和处理

🏗️ BIM 专业功能

  • 图模映射:支持 CAD 图纸与 3D 模型的双向关联和联动
  • 构件属性:完整的 BIM 构件属性管理和查询系统
  • 树形结构:支持模型的层级树形结构导航
  • 截面分析:支持任意平面的模型剖切和截面分析
  • 碰撞检测:基于 BVH 树的高效碰撞检测

🎮 丰富的交互体验

  • 轨道控制:流畅的鼠标和触摸轨道相机控制
  • 漫游模式:支持第一人称和第三人称漫游,键盘+鼠标控制
  • 精确拾取:基于射线的精确 3D 对象选择和高亮
  • 测量工具:距离、角度、面积等多种测量功能
  • 视图立方:直观的六面体视图方向控制

🔌 插件化架构

  • 微内核设计:核心功能与插件分离,保持代码简洁
  • 插件热插拔:支持动态加载和卸载插件
  • 标准接口:统一的插件开发接口和生命周期管理
  • 扩展性强:轻松扩展测量、标注、分析等业务功能
  • 独立打包:插件独立打包,按需加载,减小初始加载体积

🛠️ 技术栈

  • Three.js 0.145.0 - 3D 图形渲染库(共享实例,避免多实例问题)
  • libarchive.js - WebAssembly 归档文件处理库(支持多种压缩格式)
  • WebGL - 硬件加速图形渲染
  • Web Workers - 多线程处理
  • WebAssembly - 高性能 WASM 模块
  • Webpack 5 - 模块打包工具,支持ESM输出和版本化命名
  • ES Modules - 现代JavaScript模块系统

📖 使用指南

  1. 快速开始 - 5分钟快速上手
  2. 基础概念 - 理解引擎的核心概念

🔗 相关链接

📄 许可证

本项目为北京逆维悦动科技有限公司的专有技术,受法律保护。未经书面许可,禁止复制、传播、修改或用于商业用途。如需授权或合作:

  • 请联系:李南南
  • 联系方式:186 1220 3599

版本: 2.1.0
最后更新: 2025年5月

文档内容为北京逆维悦动科技有限公司版权所有,禁止未授权转载