diff --git a/src/voxel_mesh.ts b/src/voxel_mesh.ts index a13a360..a3f6b2e 100644 --- a/src/voxel_mesh.ts +++ b/src/voxel_mesh.ts @@ -87,12 +87,14 @@ export class VoxelMesh { const pos = inPos.copy().round(); const voxel = this._voxels.get(pos.hash()); - if (voxel !== undefined && this._voxelMeshParams.voxelOverlapRule === 'average') { - voxel.colour.r = ((voxel.colour.r * voxel.collisions) + colour.r) / (voxel.collisions + 1); - voxel.colour.g = ((voxel.colour.g * voxel.collisions) + colour.g) / (voxel.collisions + 1); - voxel.colour.b = ((voxel.colour.b * voxel.collisions) + colour.b) / (voxel.collisions + 1); - voxel.colour.a = ((voxel.colour.a * voxel.collisions) + colour.a) / (voxel.collisions + 1); - ++voxel.collisions; + if (voxel !== undefined) { + if (this._voxelMeshParams.voxelOverlapRule === 'average') { + voxel.colour.r = ((voxel.colour.r * voxel.collisions) + colour.r) / (voxel.collisions + 1); + voxel.colour.g = ((voxel.colour.g * voxel.collisions) + colour.g) / (voxel.collisions + 1); + voxel.colour.b = ((voxel.colour.b * voxel.collisions) + colour.b) / (voxel.collisions + 1); + voxel.colour.a = ((voxel.colour.a * voxel.collisions) + colour.a) / (voxel.collisions + 1); + ++voxel.collisions; + } } else { this._voxels.set(pos.hash(), { position: pos,