【发布时间】:2017-11-17 23:40:49
【问题描述】:
我添加一个节点并尝试使用 SceneKit 设置阴影模糊
这是我的灯光配置,我确实尝试设置 shadowRadius
light = [SCNLight light];
light.type = SCNLightTypeDirectional;
light.castsShadow = true;
light.shadowMode = SCNShadowModeForward;
light.shadowRadius = 5;
light.shadowMapSize=CGSizeMake(4000, 4000);
light.orthographicScale=25;
light.zNear=1;
light.zFar=1000;
但结果并不比我没有设置shadowRadius时更柔和
在这里:
我确实尝试添加样本计数
light = [SCNLight light];
light.type = SCNLightTypeDirectional;
light.castsShadow = true;
light.shadowMode = SCNShadowModeForward;
light.shadowRadius = 5;
// add samplecount
light.shadowSampleCount = 5;
light.shadowMapSize=CGSizeMake(4000, 4000);
light.orthographicScale=25;
light.zNear=1;
light.zFar=1000;
阴影看起来很柔和,但是这个阴影从节点的底部开始(z坐标为0)。我花了很多时间只在节点边缘设置软阴影,而不是从底部设置。但没有结果。
添加两个节点交叉时也会出现此问题(不仅节点和几何体为SCNFoor)
我的问题是如何用方向光获得阴影模糊(软阴影)。
任何帮助将不胜感激!
【问题讨论】:
-
来自docs.microsoft.com/en-us/windows/win32/dxtecharts/…,我猜你看到的问题可能是所谓的“彼得平移”?我希望 Apple 能够为 SceneKit 提供更好的概念和编程指南类型的内容。今天,下面提到的
automaticallyAdjustsShadowProjection属性仍然没有记录。