ShadowRadius 不会模糊阴影

pot*_*ato 4 shadow ios scenekit

我试图在我的盒子上设置一个模糊的阴影。这是我到目前为止所得到的。在此输入图像描述

ShadowRadius 的文档说。

SceneKit 通过将几何体的轮廓渲染为 2D 阴影贴图,然后使用阴影贴图的多个加权样本来确定渲染场景中每个像素处的阴影强度,从而生成软边阴影。该属性控制阴影贴图采样的半径。较低的数字会导致阴影具有清晰的像素化边缘;较高的数字会导致阴影模糊。

这是我的影子设置代码

func setupShadow(){
        spotLight.castsShadow = true
        spotLight.shadowRadius = 30000
        spotLight.shadowBias = 1
        spotLight.shadowColor = UIColor.blackColor()
    }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,阴影半径设置为一个很大的数字,但阴影仍然很尖锐。事实上,即使 ShadowRadius 改变,模糊度也不会改变。我究竟做错了什么?

Toy*_*yos 6

您可能需要更小的半径(例如 [1; 3])。

然后在 iOS 上,您还需要使用ShadowSampleCount指定样本数(因为 iOS 上默认只有 1 个样本,这意味着没有模糊)。请注意,增加样本数量会提高质量,但会对性能产生重大影响。

  • 伟大的!对于未来的读者:设置 ShadowSampleCount 后,我​​还需要设置灯光的 zNear 以使阴影可见。在设置 ShadowSampleCount 之前,这是不需要的。 (3认同)