如何排除模型的阴影?

时间:2017-08-18 14:52:35

标签: ios scenekit arkit

我的SCNLight类型为SCNLightTypeDirectional。当场景渲染时,模型会在自身上投射阴影,这不是我的期望。如何排除模型的阴影?

或如何平滑阴影边缘?现在看起来很不自然。

有这样的场景: enter image description here

1 个答案:

答案 0 :(得分:2)

好吧,我找到了一种简单的方法来实现这一目标,但却失去了一些重要的细节。

将素材的灯光模型更改为SCNLightingModelConstant,并从SCNLight的灯光计算中排除模型。

<强> 1。设置轻型模型

SCNLightingModelConstant只考虑环境光到阴影,所以我们需要环境光来保持模型可见。

model.geometry.materials.firstObject.lightingModelName = SCNLightingModelConstant;

<强> 2。设置模型和灯光的类别位掩码

model.categoryBitMask = 1;
directionalLight.categoryBitMask = ~1UL;

如果categoryBitMask的按位AND结果为零,则节点不会考虑光照,因此不再有自阴影。投射的阴影模型仍将保留在场景中。