全局
MeshBVH
SerializedBVH
MeshBVHVisualizer
ExtendedTriangle
OrientedBox
Raycaster
StaticGeometryGenerator
GenerateMeshBVHWorker

SerializedBVH.index

SerializedBVH.indexthree-bvh-mesh库中的一项重要数据结构,用于存储BVH(Bounding Volume Hierarchy,边界体层次结构)的序列化数据。

简介

SerializedBVH.index是一个二进制文件,其中存储了所有的BVH节点数据,以及对应的三角形网格数据。通过对SerializedBVH.index文件进行反序列化操作,可以还原出完整的BVH结构和三角形网格结构。

文件结构

SerializedBVH.index文件的结构如下:

├── header
│   ├── signature
│   ├── version
│   ├── triangle_count
│   ├── bvh_root
│   ├── bvh_node_count
│   └── mesh_node_count
└── data
    ├── BVH node data
    └── Triangle mesh data
  • header部分包括文件的头信息,其中包括文件的数字签名、版本号、三角形网格数量、BVH根节点的偏移量、BVH节点总数以及三角形网格节点总数。
  • data部分是实际的节点数据,其中包括所有的BVH节点数据和对应的三角形网格数据。节点数据按照深度优先遍历的顺序从左至右存储。

反序列化

要使用SerializedBVH.index文件,必须先进行反序列化操作。three-bvh-mesh库提供了deserializeBVH函数,可直接将二进制文件转换为BVH实例。

import { deserializeBVH } from 'three-bvh-mesh';

const bvh = await deserializeBVH('SerializedBVH.index');

应用

SerializedBVH.index文件通常用于在Web端加载3D网格模型。由于网络传输的限制,将完整的三角形网格数据和BVH结构打包成二进制文件,可以极大地压缩数据量,缩短加载时间,提升用户体验。

参考链接