Rik*_*kas 13 objective-c antialiasing masking sprite-kit skcropnode
我创建了一个圆形蒙版,并使用精灵工具包SKCropNode类为蒙版内的精灵设置动画.但是掩模的边缘看起来像素化.
有没有办法使用抗锯齿来平滑边缘?
如果要屏蔽任何具有抗锯齿效果的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];
Run Code Online (Sandbox Code Playgroud)
来自官方文档:
如果掩模中的像素的 alpha 值小于 0.05,则图像像素将被掩模掉。
因此,SKCropNode 不支持每像素 alpha 值。它要么绘制像素,要么不绘制。如果 Alpha(抗锯齿使用的)对您很重要,您应该考虑其他路线。例如:
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |