mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-05-14 02:55:39 +02:00
Update engine.ts
This commit is contained in:
@@ -246,12 +246,16 @@ class ModelManager {
|
|||||||
toMerge.push(newMesh);
|
toMerge.push(newMesh);
|
||||||
}
|
}
|
||||||
|
|
||||||
const merged = BABYLON.Mesh.MergeMeshes(toMerge, true, true, undefined, false, true);
|
const groupedByMaterial = Object.groupBy(toMerge, m => m.material?.uniqueId ?? -1);
|
||||||
|
|
||||||
//merged.bakeCurrentTransformIntoVertices();
|
|
||||||
|
|
||||||
|
// 一度に(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;
|
merged.parent = this.root;
|
||||||
|
|
||||||
this.bakedMeshes = [merged];
|
this.bakedMeshes = [merged];
|
||||||
|
|
||||||
this.bakedCallback?.([...this.bakedMeshes, ...excludeMeshes]);
|
this.bakedCallback?.([...this.bakedMeshes, ...excludeMeshes]);
|
||||||
|
|||||||
Reference in New Issue
Block a user