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

Update engine.ts

This commit is contained in:
syuilo
2026-04-20 20:50:52 +09:00
parent 2040827615
commit b7b3c07a96

View File

@@ -58,6 +58,10 @@ function mergeMeshes(meshes: BABYLON.Mesh[], root: BABYLON.Mesh, hasTexture: boo
} }
} }
if (toMerge.length <= 1) {
return null;
}
for (const mesh of toMerge) { for (const mesh of toMerge) {
if (hasTexture) { if (hasTexture) {
if (mesh.getVerticesData(BABYLON.VertexBuffer.UVKind) == null) { if (mesh.getVerticesData(BABYLON.VertexBuffer.UVKind) == null) {
@@ -802,19 +806,21 @@ export class RoomEngine extends EventEmitter<RoomEngineEvents> {
if (def.canPreMeshesMerging) { if (def.canPreMeshesMerging) {
const merged = mergeMeshes(loaderResult.meshes, subRoot, def.hasTexture); const merged = mergeMeshes(loaderResult.meshes, subRoot, def.hasTexture);
merged.setParent(subRoot); if (merged != null) {
merged.name = 'preMerged'; merged.setParent(subRoot);
merged.material.freeze(); merged.name = 'preMerged';
if (merged.material instanceof BABYLON.MultiMaterial) { merged.material.freeze();
for (const subMat of merged.material.subMaterials) { if (merged.material instanceof BABYLON.MultiMaterial) {
subMat.freeze(); for (const subMat of merged.material.subMaterials) {
subMat.freeze();
}
} }
}
// TODO: 再帰的にする // TODO: 再帰的にする
for (const m of loaderResult.transformNodes) { for (const m of loaderResult.transformNodes) {
if (m.getChildren().length === 0) { if (m.getChildren().length === 0) {
m.dispose(); m.dispose();
}
} }
} }
} }