- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用以下代码片段创建模糊效果:
let glowEffectNode = SKEffectNode()
glowEffectNode.shouldRasterize = true
let glowSize = CGSize(width: barSize.width, height: barSize.height)
let glowEffectSprite = SKSpriteNode(color: barColorData.topColor, size: glowSize)
glowEffectNode.addChild(glowEffectSprite)
let glowFilter = CIFilter(name: "CIGaussianBlur")
glowFilter!.setDefaults()
glowFilter!.setValue(5, forKey: "inputRadius")
glowEffectNode.filter = glowFilter
当然,它在 iOS 8.x 上运行完美,但在 iOS 9.x 上(在 9.0 和 9.1 上都试过)模糊无法正常运行。 (在模拟器上,节点似乎有点透明,但绝对不模糊,在设备上,它看起来模糊但被裁剪了,并且从中心位置也有偏移:/)
有没有使用 CIFilter 快速解决这个问题的方法?
最佳答案
我对此进行了更多调整并找到了解决方案...
首先,似乎使用奇数作为模糊半径会导致整个节点以偏移量 (???) 呈现,因此使用 10 例如可以解决偏移量问题。
其次,似乎模糊被裁剪了,因为整个节点都是渲染的 Sprite ,为了获得模糊效果,你需要一个额外的空间,所以我为额外的空间使用了一个透明的 Sprite ,下面的代码片段现在可以工作了:
let glowEffectNode = SKEffectNode()
glowEffectNode.shouldRasterize = true
let glowBackgroundSize = CGSize(width: barSize.width + 60, height: barSize.height + 60)
let glowSize = CGSize(width: barSize.width + 10, height: barSize.height + 10)
let glowEffectSprite = SKSpriteNode(color: barColorData.topColor, size: glowSize)
glowEffectNode.addChild(SKSpriteNode(color: SKColor.clearColor(), size: glowBackgroundSize))
glowEffectNode.addChild(glowEffectSprite)
let glowFilter = CIFilter(name: "CIGaussianBlur")
glowFilter!.setDefaults()
glowFilter!.setValue(10, forKey: "inputRadius")
glowEffectNode.filter = glowFilter
我应该提到我正在使用 view.textureFromNode(glowEffectNode)
从这个节点创建一个纹理以提高效率,但我尝试使用节点本身并且问题仍然存在所以上面应该无论如何工作
关于sprite-kit - CIFilter GaussianBlur 似乎在 iOS9.x 上被破坏了(与 SKEffectNode 一起使用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33455823/
所以我的游戏中有一个暂停按钮,当您按下它时,场景会暂停,除了一个 SKNode(暂停菜单)之外的所有内容都会变得模糊。我通过创建一个具有过滤器的 SKEffectNode 并向其添加除暂停菜单以外的所
SKEffectionNodes 有一个 shouldRasterise “开关”,可以将它们烘焙到位图中,并且在受效果影响的底层节点发生更改之前不会更新它们。 但是我找不到从这个光栅化“图像”创建
我正在尝试调整一些效果,但我需要使用 SKEffectNode(),所以我编写了以下代码: let rocketPath = NSBundle.mainBundle().pathForResource
如果选择了一个节点,我想显示一个效果节点。如果没有,我想关闭/删除该效果。 (我将一个节点设置为在 touchesBegan 中选中。) 我使用下面的代码。打开和关闭效果节点让我很困惑,因为我将主节点
所以在我的项目中,我有一个 SKEffectNode,我用它在我的一些 spriteNode 周围提供发光效果。我使用 spriteNode (blurNode) 获取障碍物的颜色,然后将其提供给 e
我试图在我的程序中模糊一个 SKShapenode。但是,我希望 shapenode 逐渐模糊,持续时间约为 1 秒。我该如何实现?当前的代码会立即模糊它。 func generateAnimatio
我正在尝试子类化 CIFilter 以便在 SpriteKit 游戏中使用,如 iOS Games by Tutorials 一书中所述。我创建了继承自 CIFilter 的子类,它有一个 (CIIm
我正在尝试创建一个 SKEffectNode,它将在黑色背景上变成透明的任何绿色像素。出于测试目的,当我弄清楚这些东西时,我想确保以下代码不会在 SKEffectNode 的子树中变成透明的。下面的代
是否有更好的方法来创建模糊效果?似乎我目前的做法会产生 FPS 问题,尤其是在旧手机上。似乎 blurAmount 越高,FPS 越低。混合模式可能是这里的原因吗? if effect
我不确定这是一个错误还是我哪里出错了: 我有一个 A 类,它是 SKScene 的子类,还有一个 B 类,它是 SKEffectnode 的子类。然后我将 B 类添加为 A 类的子类。B 类有一个 b
我有一个 SKSpriteNode,我想在它的边缘周围发出蓝色光以突出显示。我猜我需要让我的 Sprite 成为 SKEffectNode 的 child ,然后创建/应用某种过滤器。 更新:我已经用
我有一个 SKEffectNode,其中包含一个节点,该节点会随时间动态更改其子节点(经常删除子节点并动态添加子节点)。我不断在 Fabric 上获取此崩溃日志(仅发生在 iOS10 上),但我无法在
我有一个 SKVideoNode 作为 SKEffectNode 的子节点,这使我能够使用 1 行 x 1 列的 SKWarpGeometryGrid 来倾斜视频。 当您在每个象限中拖动手指时,在 t
我正在尝试模糊多个 SKNode 对象。为此,我将父 SKEffectNode 的 CIFilter 设置为 @"CIGaussianBlur"。像这样: - (SKEffectNode *)crea
在 Swift 中使用 SpriteKit,我的 GameScene(一个 SKScene)中有这段代码: //Init function let self.itemsLayer = SKNode()
我正在尝试将 SKLabelNode 扭曲为 SKEffectNode 的子节点(文档说您可以这样做),但它会在应用扭曲之前颠倒标签节点。这可能是一个错误,但在我提交之前,我想我会在这里问... 这是
我正在尝试使用以下代码片段创建模糊效果: let glowEffectNode = SKEffectNode() glowEffectNode.shouldRasterize = true
我是一名优秀的程序员,十分优秀!