1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-13 14:05:35 +02:00

Update engine.ts

This commit is contained in:
syuilo
2026-04-04 12:42:27 +09:00
parent 4813ea5afc
commit 2a583509ab

View File

@@ -246,12 +246,16 @@ class ModelManager {
toMerge.push(newMesh);
}
const merged = BABYLON.Mesh.MergeMeshes(toMerge, true, true, undefined, false, true);
//merged.bakeCurrentTransformIntoVertices();
const groupedByMaterial = Object.groupBy(toMerge, m => m.material?.uniqueId ?? -1);
// 一度に(multiMultiMaterials: trueで)マージするよりも、いったん同じマテリアルを持つもの同士で(multiMultiMaterials: falseで)マージしてから、改めてそれらを(multiMultiMaterials: trueで)マージした方が(なぜか)ドローコールが減ってお得
const pre = [];
for (const group of Object.values(groupedByMaterial)) {
const merged = BABYLON.Mesh.MergeMeshes(group, true, true, undefined, false, false);
pre.push(merged);
}
const merged = BABYLON.Mesh.MergeMeshes(pre, true, true, undefined, false, true);
merged.parent = this.root;
this.bakedMeshes = [merged];
this.bakedCallback?.([...this.bakedMeshes, ...excludeMeshes]);