0

希望有助于理解 Scene Kit 中的定向灯和场景阴影。

SCNLight 上的类引用表示zFar表示the maximum distance between the light and a visible surface for casting shadows.它进一步表明该值仅适用于聚光灯。

但是,在 Xcode 场景编辑器中,在 Attributes Inspector 下,有一个Far Clipping. 更改此值会影响定向光投射的阴影,如下面的屏幕截图所示。

下面的场景是通过将定向光拖到场景中并将X Euler Angle值更改为 -60 并勾选“投射阴影”框来生成的。地板纹理取自 WWDC Fox 演示,

  • Far Clipping 和 zFar 一样吗?如果不是,有什么区别?

  • 既然定向光忽略了位置属性,为什么改变 Far Clipping 值会影响定向光产生的阴影?

  • 目标是照亮整个场景,并在节点上投射阴影,就好像晴天下午 3 点的太阳一样。是否可以使用定向光来实现这一点?到目前为止,使用定向灯可以实现整个场景被照亮的外观,但不能像聚光灯一样控制阴影。

屏幕截图 #1:Far Clipping 值为 10。

在此处输入图像描述

屏幕截图 #2:Far Clipping 值为 30。

在此处输入图像描述

4

1 回答 1

1

尽管 Apple 的文档说了什么,但定向光的位置在投射阴影时非常重要。zNearzFar是与定向光位置的距离。

要移除您看到的伪影,您需要增加zFar或将定向光移近地面。您看到的伪影是由于阴影部分距离定向光比 更远zFar

于 2016-09-15T23:31:37.683 回答