【发布时间】:2018-03-28 00:50:16
【问题描述】:
我用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!)
我认为可以用简单的属性来解决,但我想不通。
我该如何解决这个问题?
【问题讨论】:
-
相关节点中是否有“Alpha”设置(您希望使其透明)?如果是这样,请将其更改为“0.5”以使 50% 透明。
-
当然它有透明的alpha值(可能是0.2)。但是虽然它有 alpha,但通过透明物体是看不到阴影的。