[threejs] Fix batch capacity calculation, closes #2163

This commit is contained in:
Mario Zechner 2022-10-04 08:58:11 +02:00
parent 8a2e25ba05
commit a5ea7a808d
2 changed files with 4 additions and 4 deletions

View File

@ -98,9 +98,9 @@ export class MeshBatcher extends THREE.Mesh {
this.indicesLength = 0;
}
canBatch (verticesLength: number, indicesLength: number) {
if (this.indicesLength + indicesLength >= this.indices.byteLength / 2) return false;
if (this.verticesLength + verticesLength >= this.vertices.byteLength / 2) return false;
canBatch (numVertices: number, numIndices: number) {
if (this.indicesLength + numIndices >= this.indices.byteLength / 2) return false;
if (this.verticesLength / MeshBatcher.VERTEX_SIZE + numVertices >= (this.vertices.byteLength / 4) / MeshBatcher.VERTEX_SIZE) return false;
return true;
}

View File

@ -249,7 +249,7 @@ export class SkeletonMesh extends THREE.Object3D {
}
// Start new batch if this one can't hold vertices/indices
if (!batch.canBatch(finalVerticesLength, finalIndicesLength)) {
if (!batch.canBatch(finalVerticesLength / SkeletonMesh.VERTEX_SIZE, finalIndicesLength)) {
batch.end();
batch = this.nextBatch();
batch.begin();