SerializedBVH.index
是three-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
结构打包成二进制文件,可以极大地压缩数据量,缩短加载时间,提升用户体验。