我正在将我的一些图形绘制代码从SKShapeNodes重写为CGContext / CALayers。我试图在CGContext中绘制一条带有发光的曲线。这就是我以前在SpriteKit中所拥有的:
CGPathRef path = …(some path)
SKShapeNode *node = [SKShapeNode node];
node.path = path;
node.glowWidth = 60;
将其添加到深灰色背景的场景后,结果如下:
是否可以使用CGContext绘制具有此类光晕的线但不使用CIFilter?通常我会画一个非空白的背景背景,所以我不想在绘制线后使用CIFilters。
我已经尝试了“影子”解决方案,但结果远非完美:
UIGraphicsBeginImageContextWithOptions(frame.size, NO, 1);
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat glowWidth = 60.0;
CGContextSetShadowWithColor(context, CGSizeMake(0.0, 0.0), glowWidth, [UIColor whiteColor].CGColor);
CGContextBeginPath(context);
CGContextAddPath(context, path);
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextStrokePath(context);
结果(阴影几乎不可见):
如果您有任何想法,请告诉我。
答案 0 :(得分:0)
您可以创建SKEffectNode
,以便将Core Image过滤器应用于其所有子项。换句话说,你可以创建一个SKEffectNode
然后添加一个花精灵作为孩子,SKEffectNode
将核心图像效果应用于花精灵。
有关详细信息,请参阅SKEffectNode Class Reference。