如何在 ARKit 中制作自然光?
How to make natural lighting in ARKit?
我希望我的 ARKit 项目中添加的项目的光照与真实世界的对象相似。请解释如何实现这一目标?谢谢
您可以通过选择 lightingModel
参数之一将光照添加到 SCNMaterial,例如:
要将其中之一添加到 SCNMaterial,您只需执行以下操作:
material.lightingModel = .constant
您还可以通过使用以下 SCNView 变量使对象看起来更逼真:
var autoenablesDefaultLighting: Bool { get set }
autoEnablesDefaultLighting
只是一个 Boolean
值,用于确定 SceneKit 是否自动向场景添加灯光。
默认设置为 false,意思是:
the only light sources SceneKit uses for rendering a scene are those
contained in the scene graph.
如果另一方面,这被设置为真:
SceneKit automatically adds and places an omnidirectional light source
when rendering scenes that contain no lights or only contain ambient
lights.
因此,要将此设置应用于 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
}
希望这对您有所帮助...
我希望我的 ARKit 项目中添加的项目的光照与真实世界的对象相似。请解释如何实现这一目标?谢谢
您可以通过选择 lightingModel
参数之一将光照添加到 SCNMaterial,例如:
要将其中之一添加到 SCNMaterial,您只需执行以下操作:
material.lightingModel = .constant
您还可以通过使用以下 SCNView 变量使对象看起来更逼真:
var autoenablesDefaultLighting: Bool { get set }
autoEnablesDefaultLighting
只是一个 Boolean
值,用于确定 SceneKit 是否自动向场景添加灯光。
默认设置为 false,意思是:
the only light sources SceneKit uses for rendering a scene are those contained in the scene graph.
如果另一方面,这被设置为真:
SceneKit automatically adds and places an omnidirectional light source when rendering scenes that contain no lights or only contain ambient lights.
因此,要将此设置应用于 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
}
希望这对您有所帮助...