【问题标题】:How to make natural lighting in ARKit?如何在 ARKit 中制作自然光?
【发布时间】:2023-11-22 03:45:01
【问题描述】:

我希望我的 ARKit 项目中添加的项目的照明与现实世界的对象相似。请解释如何实现这一点?谢谢

【问题讨论】:

    标签: ios swift scenekit arkit lighting


    【解决方案1】:

    您可以通过从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
    }
    

    希望这会有所帮助...

    【讨论】:

      最近更新 更多