我正在尝试在 OSX 上的 SceneKit 中的完全透明的平面上投射阴影。我在这个问题上挣扎了几个小时,但没有找到任何解决方案。
我的目的是生成几个具有透明背景的对象的屏幕截图,并且只有不可见平面上的阴影。
你对我如何用苹果 SceneKit 做这个有什么建议吗?
我是否必须编写自己的着色器,我可以使用着色器修改器来实现此功能还是可以使用内置功能?
UPDATE:
我为任何有需要的人找到了替代解决方案:
- 在3D模型下创建一个白色平面,注意平面颜色必须是纯白色。
- 将平面材质的混合模式设置为
SCNBlendModeMultiply
.
- 将平面材质的灯光模型设置为
SCNLightingModelLambert
.
这是有效的,因为任何颜色乘以白色 (1, ,1, 1) 都会返回自身,并且朗伯光模型不会考虑定向光,因此平面将始终是看起来透明的背景色。该解决方案的另一个好处是您不需要更改灯光的阴影渲染模式。
对于曾经使用过 Xcode 检查器的人。
根据SceneKit:新增内容.
First, add a plane under you model. Then prevent it from writing to colorBuffer.
Second, change your light model's shadow rendering mode to deferred. Notice that you must use light which can cast shadows.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)