我正在学习ARKit。我在增强现实场景中放置虚拟对象,但遇到了一些问题!
1-如何为SceneKit的全部(单独)节点添加一个定向光,并随着相机位置移动定向光?以便我的添加的阴影也可以随着光线方向移动。
如果我转换对象,则阴影会按预期工作。但如果我旋转对象,则阴影不应在平面上移动。它们移动是由于光源在固定位置。
2-阴影看起来只在平面上添加一个对象的情况下才正常。但是如果我在平面上添加两个或更多对象,则在SceneView中添加了更多的定向光源。现在每个对象都有一个以上的阴影。我希望将其限制为一个阴影。
我已在SceneKit编辑器中添加了光线和阴影平面(非编程方式)。以下是我的SceneKit编辑器的截图。
3-我已经阅读并确认只有将定向光属性设置为deffered
时才会添加阴影。但是在这种情况下,如果我从sceneView的根节点调用remove all nodes,则应用程序会崩溃。我的删除节点代码如下。
self.sceneView.scene.rootNode.enumerateChildNodes { (node, stop) -> Void in
node.removeFromParentNode()
print("removed ", node.name as Any)
}
您可以观看我的应用程序视频以获得更清晰的了解。应用程序视频,现在它如何工作 我的要求是为每个对象添加一个阴影。当我旋转和平移对象时,阴影应该看起来很真实。
我也尝试将花瓶的光从scn文件中删除,并添加一个仅包含光的单独light.scn文件。将这两个(花瓶和光)节点添加到sceneView中。但是没有出现阴影。