diff --git a/src/client/object/world/quadtree/quadtree-mesher.ts b/src/client/object/world/quadtree/quadtree-mesher.ts index 7283315..8dbe945 100644 --- a/src/client/object/world/quadtree/quadtree-mesher.ts +++ b/src/client/object/world/quadtree/quadtree-mesher.ts @@ -7,7 +7,7 @@ export class QuadtreeMesher { public root!: QuadtreeNode; public container = new Object3D(); public actionsLeft = 1; - public maxDepth = 3; + public maxDepth = 1; constructor( public size: number, diff --git a/src/client/object/world/quadtree/quadtree-node.ts b/src/client/object/world/quadtree/quadtree-node.ts index 120976b..b7a23ad 100644 --- a/src/client/object/world/quadtree/quadtree-node.ts +++ b/src/client/object/world/quadtree/quadtree-node.ts @@ -87,6 +87,7 @@ export class QuadtreeNode { if (abs.distanceTo(camera) > size) { this._merge(); this.root.actionsLeft -= 1; + return; } if ( @@ -265,9 +266,9 @@ export class QuadtreeNode { private _createMesh() { if (this._mesh) { - this.root.container.remove(this._mesh); - this._mesh = null; + this._destroyMesh(); } + const geometry = this._createGeometry(); const mesh = new Mesh(geometry, this.root.material); mesh.position.set(this.position.x, 0, this.position.y);