八叉树空间 初学

学了 three 元宇宙开发后发现人物只能在平面上行走,于是我人物上楼梯 跳跃就特别的好奇……
对于知识的好奇不下于我爱喝啤酒,于是我全世界的去找资料和在技术群里问同学,终于让我知道three 有一个东西叫 八叉树 接下来记录一下我用 八叉树 的一些小心得……

必须的引入的库

import { Octree } from 'three/examples/jsm/math/Octree.js';

import { Capsule } from 'three/examples/jsm/math/Capsule.js';

这两个库必须引入,在 八叉树空间 的一切撞检和重力都靠这两个库实现

申明 Capsule 和 Octree

const worldOctree = new Octree();
const playerCollider = new Capsule( new Vector3(0,0.35,0), new Vector3(0,1,0), 0.35 );

场景模型引入添加入八叉树空间

new GLTFLoader().setPath("./model/test/").load("collision-world.glb", (gltf) => {
  ...

  worldOctree.fromGraphNode( gltf.scene );  // 把场景模型加入到八叉树空间

  ...
});

整体的来说就是 整个八叉树空间 就是 Capsule 和 Octree 运算

全部代码







运行效果如下

https://www.bilibili.com/vide...

你可能感兴趣的:(three.js)