SceneKit 阴影电锯像粗糙的边缘

Posted

技术标签:

【中文标题】SceneKit 阴影电锯像粗糙的边缘【英文标题】:SceneKit shadow chainsaw like rough edge 【发布时间】:2021-11-13 05:24:03 【问题描述】:

我的 SceneKit 阴影有类似粗糙/像素化边缘的电锯。我只是通过简单的设置使用默认值:

  func addLightNode() -> SCNNode 
    let light = SCNLight()
    light.type = .directional
    light.castsShadow = true
    light.shadowColor = UIColor.black.copy(alpha: 0.5)
    let node = SCNNode()
    node.light = light
    node.eulerAngles = light_euler_angles
    
    rootNode.addChildNode(node)
    return node
  

这是结果:

我尝试增加 shadowBias 但结果相同。为了防止这种情况,我应该设置什么其他属性?

【问题讨论】:

【参考方案1】:

尝试增加shadowSampleCount:

    light.shadowSampleCount = 8

ios 的默认值为 1,将其增加到 8 或 16 就足够了

【讨论】:

以上是关于SceneKit 阴影电锯像粗糙的边缘的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 11 中将 SKVideoNode 添加到 ARKit-SceneKit?

如何在 SceneKit 的场景视图中为阴影正确添加定向光?

将阴影添加到选定的边缘UIView

在SceneKit / ARKit中出现隐形阴影平面问题

基于CSM和PCF的软阴影实现

OpenGL阴影添加学习材料及总结