Как нарисовать кривую с жаром в CGContext - что-то вроде SKShapeNode с glowWidth
Я переписываю некоторые из моих графических кодов рисования из SKShapeNodes в CGContext/CALayers. Я пытаюсь нарисовать кривую с жаром в CGContext. Вот что я имел в SpriteKit:
CGPathRef path = …(some path)
SKShapeNode *node = [SKShapeNode node];
node.path = path;
node.glowWidth = 60;
После добавления его в сцену с темно-серым фоном, результат был следующим:
Можно ли нарисовать линию с таким свечением, используя CGContext, но без использования CIFilters? Обычно я буду рисовать на непустом фоне контекста, поэтому я предпочитаю не использовать фильтры CIF после прорисовки линии.
Я уже пробовал "теневое" решение, но результаты далеки от идеальных:
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);
Результат (тень едва заметна):
Пожалуйста, дайте мне знать, если у вас есть идеи.
1 ответ
Вы можете создать SKEffectNode
который позволяет применять фильтры Core Image ко всем его дочерним элементам. Другими словами, вы можете создать SKEffectNode
затем добавить цветок спрайт, как ребенок, и SKEffectNode
применил бы эффект Core Image к цветочному спрайту.
Для получения более подробной информации, пожалуйста, смотрите ссылку на класс SKEffectNode.