Я нашел несколько отличных примеров того, как добавить направленный свет в свой код, но не как изменить ориентацию, а также добавить его в мою сцену. Как мне сделать это с моим кодом? Вот мой легкий класс:
class Lighting: Entity, HasDirectionalLight {
required init() {
super.init()
self.light = DirectionalLightComponent(color: .white,
intensity: 100000,
isRealWorldProxy: true)
}
}
А вот функция, которая его вызывает:
func addTableToPlane(arView: ARView) {
let tableAnchor = AnchorEntity(plane: .horizontal)
let table = try! Entity.load(named: "Table_1500")
tableAnchor.addChild(table)
let dirLight = Lighting().light
let shadow = Lighting().shadow
tableAnchor.components.set(shadow!)
tableAnchor.components.set(dirLight)
}
Я новичок в ARKit, поэтому я не понял, как редактировать ориентацию направленного света, поскольку он у меня есть.
Еще один неудачный метод, который я пробовал, - это создать функцию освещения, но я не смог понять, как добавить ее в сцену:
func addLights(arView: ARView) {
// 1
let directionalLight = SCNLight()
directionalLight.type = .directional
directionalLight.intensity = 500
// 2
directionalLight.castsShadow = true
directionalLight.shadowMode = .deferred
// 3
directionalLight.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
// 4
let directionalLightNode = SCNNode()
directionalLightNode.light = directionalLight
directionalLightNode.rotation = SCNVector4Make(1, 0, 0, -Float.pi / 3)
sceneView.scene.rootNode.addChildNode(directionalLightNode)
}
Затем я добавил addLights (arView: uiView) в функцию addTableToPlane. Я попытался добавить света с помощью:
arView.scene.rootNode.addChildNode(ambientLightNode)
но это дает ошибку, что у меня нет childNode и так далее. Я полагаю, что я избалован приличной документацией для Python, в которой представлены примеры, перемежающиеся, чтобы помочь выяснить проблемы, в отличие от чрезмерно кратких документов для Xcode, таких как, черт возьми, я делаю с помощью «Используйте взгляд света (at: from: upVector : relativeTo :) Метод наведения света ". Куда мне это поставить? Где я могу найти ответы на эти простые вопросы? Последние пару дней гоняться за хвостом только для того, чтобы повернуть свет, разочаровывает.