我创建了一个圆形蒙版,并使用精灵工具包SKCropNode类在蒙版内部制作了一个精灵的动画。但蒙版的边缘看起来像像素。
有没有一种方法可以使用抗锯齿来平滑边缘?
发布于 2015-09-02 17:18:15
如果要使用抗锯齿效果遮罩任何SKNode/SKSpriteNode,可以使用SKEffectNode而不是SKCropNode。它也适用于动画节点。下面是一个示例:
// 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];发布于 2013-12-30 21:11:04
来自官方文档:
如果蒙版中的像素的alpha值小于0.05,则图像像素将被遮罩。
因此,SKCropNode不支持每像素的Alpha值。它要么绘制像素,要么不绘制。如果alpha (反走样使用的)对你很重要,你应该考虑替代路线。例如:
发布于 2018-06-06 04:41:45
到目前为止(2018年6月),我可以确认SKCropNode将进行每像素的alpha混合。如果裁剪节点具有SKSpriteNode作为遮罩,并且遮罩节点使用具有抗锯齿遮罩图像的纹理,则裁剪节点将执行正确的混合。
https://stackoverflow.com/questions/20619378
复制相似问题