我试图在OSX上的SceneKit中的一个完全透明的平面上投射阴影。我几个小时以来一直在努力解决这个问题而且没有任何解决方案。
我的目的是生成一个透明背景的几个对象的屏幕截图,以及隐形平面上的阴影。
你对我如何用苹果SceneKit制作这个有什么建议吗?
我是否必须编写自己的着色器,我可以使用着色器修改器进行此操作还是可以使用内置函数?
答案 0 :(得分:9)
<强>更新强>
我为需要的人找到了另一种解决方案:
答案 1 :(得分:4)
光源配置:
light.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.4)
light.shadowMode = .deferred
对于场地(即对象下面的SCNFloor):
material.diffuse.contents = UIColor.white
material.colorBufferWriteMask = SCNColorMask(rawValue: 0)
答案 2 :(得分:1)
我对你的问题没有答案,但我有一个解决方法:
CIColorInvert
和CIMaskToAlpha
核心图像过滤器您将获得具有正确Alpha通道和透明阴影的图像。您需要调整材料和灯光以获得所需的结果。
阴影可能会变得更亮,并且唯一的方法是将其渲染为另一个图像,并在Mask to Alpha步骤之后用黑色填充它。