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

Lav*_*azh 0 lighting ios scenekit swift arkit

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

Bla*_*orz 8

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

在此输入图像描述

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

material.lightingModel = .constant 
Run Code Online (Sandbox Code Playgroud)

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

var autoenablesDefaultLighting: Bool { get set }
Run Code Online (Sandbox Code Playgroud)

autoEnablesDefaultLighting只是一个Boolean值,用于确定SceneKit是否自动将灯光添加到场景中.

默认情况下,此值设置为false表示:

SceneKit用于渲染场景的唯一光源是场景图中包含的光源.

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

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

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

augmentedRealityScene.autoenablesDefaultLighting = true
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助...