gpt4 book ai didi

ios - 我如何对 SKSpriteNode 进行 alpha mask ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:20:37 26 4
gpt4 key购买 nike

我知道有 SKCropNode,但它只会根据 maskNode 的 alpha 阈值完全进入或排除像素。我已经尝试过将 SKEffectNodeCIBlendWithAlphaMask 过滤器一起使用,但我得到的结果是不可见的,而且我也不确定如何移动 mask 大约。这是代码:

SKSpriteNode* overlay = [SKSpriteNode spriteNodeWithImageNamed:@"Overlay.png"];
//...
SKEffectNode* blendNode = [[SKEffectNode alloc] init];
blendNode.filter = [CIFilter filterWithName:@"CIBlendWithAlphaMask"];

UIImage* maskImage = [UIImage imageNamed:@"MaskImage.png"];
[blendNode.filter setValue:[maskImage CIImage] forKey:@"inputMaskImage"];

[blendNode addChild:overlay];
[self addChild:blendNode];

我已经找到了完美的解决方案,使用 SKLightNode 照亮纹理,然后使用 SKBlendModeAdd 将其混合到帧缓冲区中,但由于某些原因它不会'不适用于 iPhone 5 ( here's a related topic )。我知道 this topic也是,这也没有帮助。

任何能正确对 SKSpriteNode 进行 alpha 掩码的解决方案将不胜感激!运行 iOS 8。

最佳答案

使用动态生成的 CIImage 作为 mask 就可以了。它可以由 CIFilter 创建,使用您需要的任何渐变或图像作为 mask ,并将 inputCenter 属性设置为您想要的位置。

关于ios - 我如何对 SKSpriteNode 进行 alpha mask ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25928729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com