我已经为平面使用了着色器修改器,但它不起作用.任何人都可以建议我如何解决它?
let myShaderfragment = "#pragma transparent;\n" + "_output.color.a = 0.0;"
let myShaderSurface = "#pragma transparent;\n" + "_surface.diffuse.a = 0.0;"
material.shaderModifiers = [SCNShaderModifierEntryPoint.fragment : myShaderfragment, SCNShaderModifierEntryPoint.surface : myShaderSurface]
Run Code Online (Sandbox Code Playgroud) 这是我用来在平面上显示对象的函数。
private func loadScene(path: String) -> SCNNode {
let spotLight = SCNLight()
spotLight.type = SCNLight.LightType.probe
spotLight.spotInnerAngle = 30.0
spotLight.spotOuterAngle = 80.0
spotLight.castsShadow = true
let result = SCNNode()
result.light = spotLight
result.position = SCNVector3(-10.0, 20.0, 10.5)
result.addChildNode(result)
let scene = SCNScene(named: path)!
for node in scene.rootNode.childNodes {
result.addChildNode(node)
}
return result
}
Run Code Online (Sandbox Code Playgroud)
我想在平面上显示阴影,如下图所示。

当我设置如下聚光灯类型时
spotLight.type = SCNLight.LightType.directional
Run Code Online (Sandbox Code Playgroud)
它用明暗阴影显示对象本身,并且不会将阴影落在表面上。
有人可以指导我如何实现如图所示的输出吗?