diff --git a/packages/editor/src/lib/glb-export.ts b/packages/editor/src/lib/glb-export.ts index 7f614993c..f6997f540 100644 --- a/packages/editor/src/lib/glb-export.ts +++ b/packages/editor/src/lib/glb-export.ts @@ -120,6 +120,7 @@ export function prepareSceneForExport( } pruneNonRenderableMeshes(scene, identityNodes) + normalizeGeometryIndex(scene) convertMaterials(scene) const { clips, clipNamesByNode } = bakeAnimationClips(cloneByOriginal, nodes) @@ -219,6 +220,24 @@ function pruneNonRenderableMeshes(root: THREE.Object3D, identityNodes: Set { + const mesh = object as THREE.Mesh + if (!mesh.isMesh) return + const geometry = mesh.geometry as THREE.BufferGeometry | undefined + if (geometry && geometry.index === undefined) geometry.index = null + }) +} + function isRenderableMesh(mesh: THREE.Mesh): boolean { const position = mesh.geometry?.getAttribute('position') if (!position || position.count === 0) return false