如何在ARKit中制作自然采光?

时间:2018-03-17 17:39:26

标签: ios swift scenekit arkit lighting

我希望在我的ARKit项目中添加项目的照明类似于真实世界的对象。请解释一下如何实现这个目标?谢谢

1 个答案:

答案 0 :(得分:7)

您可以通过选择lightingModel参数中的一个来为SCNMaterial添加照明,例如:

enter image description here

要将其中一个添加到SCNMaterial,您只需执行以下操作:

material.lightingModel = .constant 

您还可以通过使用SCNView的以下变量使对象看起来更逼真:

var autoenablesDefaultLighting: Bool { get set }

autoEnablesDefaultLighting只是一个Boolean值,用于确定SceneKit是否自动为场景添加灯光。

默认设置为false表示:

  

SceneKit用于渲染场景的唯一光源是那些   包含在场景图中。

另一方面,如果设置为true:

  

SceneKit会自动添加并放置全向光源   渲染不包含灯光或仅包含环境的场景时   灯。

要将此设置应用于SCNView,您需要做的就是使用以下内容:

augmentedRealityScene.autoenablesDefaultLighting = true

除了这些建议之外,您还可以创建不同类型的灯光以添加到场景中,例如:

enter image description here

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
}

希望这会有所帮助......