首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKCropNode掩码边缘反走样

SKCropNode掩码边缘反走样
EN

Stack Overflow用户
提问于 2013-12-17 03:35:38
回答 3查看 1.4K关注 0票数 13

我创建了一个圆形蒙版,并使用精灵工具包SKCropNode类在蒙版内部制作了一个精灵的动画。但蒙版的边缘看起来像像素。

有没有一种方法可以使用抗锯齿来平滑边缘?

EN

回答 3

Stack Overflow用户

发布于 2015-09-02 17:18:15

如果要使用抗锯齿效果遮罩任何SKNode/SKSpriteNode,可以使用SKEffectNode而不是SKCropNode。它也适用于动画节点。下面是一个示例:

代码语言:javascript
复制
// Set up your node
SKNode *nodeToMask = [SKNode node];
// ...

// Set up the mask node
SKEffectNode *maskNode = [SKEffectNode node];

// Create a filter
CIImage *maskImage = [[CIImage alloc] initWithCGImage:[UIImage imageNamed:@"your_mask_image"].CGImage];
CIFilter *maskFilter = [CIFilter filterWithName:@"CISourceInCompositing"
                                  keysAndValues:@"inputBackgroundImage", maskImage, nil];
// Set the filter
maskNode.filter = maskFilter;

// Add childs
[maskNode addChild:nodeToMask];
[scene addChild:maskNode];
票数 5
EN

Stack Overflow用户

发布于 2013-12-30 21:11:04

来自官方文档:

如果蒙版中的像素的alpha值小于0.05,则图像像素将被遮罩。

因此,SKCropNode不支持每像素的Alpha值。它要么绘制像素,要么不绘制。如果alpha (反走样使用的)对你很重要,你应该考虑替代路线。例如:

How to Mask an UIImageView

票数 3
EN

Stack Overflow用户

发布于 2018-06-06 04:41:45

到目前为止(2018年6月),我可以确认SKCropNode将进行每像素的alpha混合。如果裁剪节点具有SKSpriteNode作为遮罩,并且遮罩节点使用具有抗锯齿遮罩图像的纹理,则裁剪节点将执行正确的混合。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20619378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档