【发布时间】:2023-11-22 03:45:01
【问题描述】:
我希望我的 ARKit 项目中添加的项目的照明与现实世界的对象相似。请解释如何实现这一点?谢谢
【问题讨论】:
标签: ios swift scenekit arkit lighting
我希望我的 ARKit 项目中添加的项目的照明与现实世界的对象相似。请解释如何实现这一点?谢谢
【问题讨论】:
标签: ios swift scenekit arkit lighting
您可以通过从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
}
希望这会有所帮助...
【讨论】: