BVH.js

Dynamic BVH implementation based on Erin Catto's paper and three-mesh-bvh

3d · acceleration · acceleration-data-structures · bounds · bounds-hierarchy
入门
GitHub在线演示
Stars:41
License:MIT License
更新:2025/12/4

README

BVH.js

npm Quality Gate Status DeepScan grade Stars BundlePhobia

Work in progress... will be released soon :)

Live example: https://stackblitz.com/edit/three-ezinstancedmesh2-dynamic-bvh?file=index.ts

Create a BVH from a AABB array. You can set whetever value to each node.

Build method: top-down or insertion one by one.

Implemented API:

createFromArray
insert
insertRange
move
delete
clear

traverse
rayIntersections
frustumCulling
frustumCullingLOD
closestPointToPoint
intersectsBox
intersectsSphere
intersectsRay
isNodeIntersected

TODO:

traverseByScore
intersectsRayFirst
intersectsBVH
closestPointToBVH
getAllCollision
getNearestObject

experiment rotation with N leaves and max depth

References