我如何才能实现一个节点,使其下方的所有内容都去饱和?

How can I achieve a node that will desaturate everything below it?

我正在构建一款游戏,其中玩家身后的所有内容都是灰色的,就好像它存在于记忆中一样。但我不知道如何才能达到这种效果。这是使用着色器的地方吗?

现在我可以创建一个 SKLightNode 来创建照明并使边缘变暗。但我喜欢角色的视野为 120 度。该角度之外的所有内容都应显示为灰色。

当然以后我喜欢被障碍物挡住视线,但这不在本题范围内

SpriteKit 的去饱和着色器可以在我的 blog post 上找到。请注意,这适用于输入纹理,因此您可能需要调整内容以在平铺背景上工作。另请注意,有一个新的 iOS 9 API 支持捕获整个节点的输出,这可能对您实现此功能有用。