我使用Scenekit制作了透明物体,并与ARKit链接。
我使用光线材质制作了阴影,但无法透过透明物体看到阴影。
我制作了一个平面并将物体放置在上面。
然后给透明物体提供光源。
阴影出现在物体后面,但无法透过物体看到。
下面的代码是用于在瓶子下面制作地板的。
这里是制造阴影的代码。
let light = SCNLight()
light.type = .directional
light.castsShadow = true
light.shadowRadius = 200
light.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.3)
light.shadowMode = .deferred
let constraint = SCNLookAtConstraint(target: model)
lightNode = SCNNode()
lightNode!.light = light
lightNode!.position = SCNVector3(model.position.x + 10, model.position.y + 30, model.position.z+30)
lightNode!.eulerAngles = SCNVector3(45.0, 0, 0)
lightNode!.constraints = [constraint]
sceneView.scene.rootNode.addChildNode(lightNode!)
下面的代码是用于在瓶子下面制作地板的。
let floor = SCNFloor()
floor.reflectivity = 0
let material = SCNMaterial()
material.diffuse.contents = UIColor.white
material.colorBufferWriteMask = SCNColorMask(rawValue:0)
floor.materials = [material]
self.floorNode = SCNNode(geometry: floor)
self.floorNode!.position = SCNVector3(x, y, z)
self.sceneView.scene.rootNode.addChildNode(self.floorNode!)
我认为可以通过简单的属性来解决,但我想不出来。
我该如何解决这个问题?