如何消除灰色的ARKit / SceneKit阴影平面?

问题描述 投票:1回答:1

我已经实现了向ARKit和SceneKit场景添加阴影平面的多种方法之一。它工作得很好,阴影看起来很好。

问题是,在大多数情况下,飞机的铸模也呈灰色。换句话说,它不是完全透明的。另一方面,有时发灰的灰烬消失,仅在几秒钟后重新出现。我已经尝试过调整几乎所有我能想到的SCNNode和SCNMaterial属性,但是到目前为止,我似乎还无法可靠地解决问题。有没有人对如何解决这个问题有任何建议?

// Make a transparent shadow plane for the Ground.
let shadowPlane = SCNPlane(width: CGFloat(self.width * 2), height: CGFloat(self.depth * 2))
shadowPlane.cornerRadius = 2
let shadowPlaneNode = SCNNode(geometry: shadowPlane)
shadowPlaneNode.name = shadowPlaneNodeName
shadowPlaneNode.eulerAngles.x = -.pi / 2
shadowPlaneNode.castsShadow = false

let material = SCNMaterial()
material.isDoubleSided = false
material.lightingModel = .constant // .shadowOnly does not show any shadows on iOS
material.colorBufferWriteMask = [.alpha]
shadowPlane.materials = [material]

node.addChildNode(shadowPlaneNode)

enter image description here

scenekit arkit
1个回答
0
投票

尝试将castShadow实例属性应用于geometry,而不是节点本身:

shadowPlaneNode.geometry?.castsShadow = false
© www.soinside.com 2019 - 2024. All rights reserved.