【问题标题】:CIMotionBlur broken in iOS16?iOS16 中的 CIMotionBlur 坏了?
【发布时间】:2022-11-10 23:42:15
【问题描述】:

以下代码的行为方式与 iOS 16 和 iOS 16 之前的行为方式不同。模糊效果在 iOS 16 中似乎无法正常工作。

class GameScene: SKScene {
    override func didMove(to view: SKView) {
    
        let shapeNode = SKShapeNode(circleOfRadius: 30)
        shapeNode.fillColor = .green
        shapeNode.strokeColor = .clear
        addChild(shapeNode)

        let blurredShapeNode = SKShapeNode(circleOfRadius: 30)
        blurredShapeNode.fillColor = .red
        blurredShapeNode.strokeColor = .clear
    
        let effectNode = SKEffectNode()
        addChild(effectNode)
        effectNode.addChild(blurredShapeNode)
    
        let blurAngle = NSNumber(value: 0)
        effectNode.filter = CIFilter(
        name: "CIMotionBlur", parameters: [kCIInputRadiusKey: 30, kCIInputAngleKey: blurAngle])
    }
}

iOS < 16 看起来像:

而且 iOS 16 看起来很糟糕(模糊被移动和拉伸)

【问题讨论】:

  • 与 CIFilter CIGaussianBlur 相同,它会抵消它并缩小它(取决于 inputRadius 的大小)。

标签: sprite-kit core-graphics core-image ios16


【解决方案1】:

你在 iOS 16.1 beta 3 上试过吗?

它可能与已在 beta 中修复的 SpriteKit shaders on iOS 16 - Y-axis is inverted 有关。

【讨论】:

    【解决方案2】:

    该错误已由 Apple 在 16.1 中修复

    【讨论】:

      猜你喜欢
      • 2022-10-30
      • 2022-08-24
      • 2022-12-01
      • 2022-11-30
      • 2022-10-20
      • 2022-12-23
      • 2022-09-27
      • 2022-11-01
      • 1970-01-01
      相关资源
      最近更新 更多