ARKit 纹理显示在 XCode 中,但对象在场景中是无光泽的
ARKit Textures showing in XCode but objects are matte in scene
我正在使用 ARKit 并将一些库存的 Apple 对象(如椅子)放置在我的场景中;在 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
的场景编辑器中椅子看起来像this
在我的场景中看起来像this
我正在使用 Apple 示例代码附带的一种库存模型,并且没有对 .scn 文件进行任何操作(例如更改纹理或任何 material 选择)。有什么我想念的吗?
您看到的是椅子模型没有被照亮,因为您的新场景中的光照与原始场景中的光照不同。原始场景将全景图像(第一个屏幕截图中的条纹灰黄色背景)设置为照明环境;该图像是物体上的高光和反射的来源。您应该能够像这样将环境从一个场景复制到另一个场景:
sceneView.scene.lightingEnvironment.contents = scene.lightingEnvironment.contents
我正在使用 ARKit 并将一些库存的 Apple 对象(如椅子)放置在我的场景中;在 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
的场景编辑器中椅子看起来像this在我的场景中看起来像this
我正在使用 Apple 示例代码附带的一种库存模型,并且没有对 .scn 文件进行任何操作(例如更改纹理或任何 material 选择)。有什么我想念的吗?
您看到的是椅子模型没有被照亮,因为您的新场景中的光照与原始场景中的光照不同。原始场景将全景图像(第一个屏幕截图中的条纹灰黄色背景)设置为照明环境;该图像是物体上的高光和反射的来源。您应该能够像这样将环境从一个场景复制到另一个场景:
sceneView.scene.lightingEnvironment.contents = scene.lightingEnvironment.contents