You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SceneKit flattenedClone导致节点位置意外变更问题求助

USDZ模型使用flattenedClone后几何体位置异常问题

我有一个包含3个几何体的3D模型,正常显示效果如下:
正常显示的3D模型

以下是我从USDZ文件创建SCNNode的原始代码:

private func readGeo(fn: String) -> SCNNode {
  let bundle = Bundle.main
  let url = bundle.url(forResource: fn, withExtension: nil)!
  let asset = MDLAsset(url: url)
  asset.loadTextures()
  let object = asset.object(at: 0)
  let node = SCNNode(mdlObject: object)
  return node
}

为了将多个子节点合并为单个几何体,以便更轻松地附加物理体,我将返回语句修改为:

return node.flattenedClone()

修改后几何体位置出现异常,可见盖子突出显示,效果如下:
位置异常的3D模型

可获取示例项目用于排查问题。

补充说明:执行flatten操作后,原本处于非零坐标的子节点位置发生了变化,仿佛被重置到了零坐标位置,不清楚原因。


内容的提问来源于stack exchange,提问作者OMGPOP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 10:57:34