ARKit 纹理以 XCode 显示,但对象在场景中是遮罩的



我正在使用ARKit,并将一些苹果对象(如椅子)放置在我的场景中;在XCode中,对象按照我预期的方式预览,但在我的场景中,它们看起来不太正确(纹理消失了)。

我将椅子添加到我的场景中:

let scene = SCNScene(named: "Models.scnassets/chair/chair.scn")
let node = scene?.rootNode.childNode(withName: "chair", recursively: false)
node?.position = position
sceneView.scene.rootNode.addChildNode(node!)

椅子在XCode的场景编辑器中看起来像这样

在我的场景中看起来像这样

我使用的是 Apple 示例代码附带的库存模型之一,并且没有做任何事情来弄乱 .scn 文件(例如更改纹理或任何材质选择)。我错过了什么吗?

您看到的是椅子模型没有被照亮,因为您的新场景中没有与原始场景相同的照明。原始场景将全景图像(第一个屏幕截图中的那种条纹灰黄色背景)设置为其照明环境;该图像是物体上的高光和反射的来源。您应该能够像这样将环境从一个场景复制到另一个场景:

sceneView.scene.lightingEnvironment.contents = scene.lightingEnvironment.contents

最新更新