我希望在我的ARKit项目中添加项目的照明类似于真实世界的对象。请解释一下如何实现这个目标?谢谢
答案 0 :(得分:7)
您可以通过选择lightingModel
参数中的一个来为SCNMaterial添加照明,例如:
要将其中一个添加到SCNMaterial,您只需执行以下操作:
material.lightingModel = .constant
您还可以通过使用SCNView的以下变量使对象看起来更逼真:
var autoenablesDefaultLighting: Bool { get set }
autoEnablesDefaultLighting
只是一个Boolean
值,用于确定SceneKit是否自动为场景添加灯光。
默认设置为false表示:
SceneKit用于渲染场景的唯一光源是那些 包含在场景图中。
另一方面,如果设置为true:
SceneKit会自动添加并放置全向光源 渲染不包含灯光或仅包含环境的场景时 灯。
要将此设置应用于SCNView
,您需要做的就是使用以下内容:
augmentedRealityScene.autoenablesDefaultLighting = true
除了这些建议之外,您还可以创建不同类型的灯光以添加到场景中,例如:
func createDirectionalLight(){
let spotLight = SCNNode()
spotLight.light = SCNLight()
spotLight.scale = SCNVector3(1,1,1)
spotLight.light?.intensity = 1000
spotLight.castsShadow = true
spotLight.position = SCNVector3Zero
spotLight.light?.type = SCNLight.LightType.directional
spotLight.light?.color = UIColor.white
}
希望这会有所帮助......