Можно ли применить фильтр размытия к спрайту с маской, но сохранить размытие, содержащееся в форме маски?
Я использую Pixi для рисования изображения, а затем применяю к нему альфа-маску видео, например так:
var bg = PIXI.Sprite.fromImage(data.imageUrl);
var texture = PIXI.Texture.fromVideo(data.maskUrl);
bg.mask = mask;
app.stage.addChild(mask, bg);
Который прекрасно работает. Затем я решил, что хочу иметь возможность размыть изображение в определенной точке, поэтому я изучил, как применить размытие, и получил следующий код:
var blurFilter = new PIXI.filters.BlurFilter();
bg.filters = [blurFilter];
blurFilter.blur = 10;
Однако это привело к непреднамеренному побочному эффекту размытия составного изображения с помощью маски (иными словами, маска включена в расчет размытия, и размытие распространяется за пределы маски).
Есть ли способ размывать изображение спрайтов, но держать маску четкой, маскируя результат размытого изображения?
1 ответ
В конце концов я понял, что я мог бы создать контейнер PIXI.Container
и добавьте в него спрайт, но вместо этого примените маску к контейнеру... тогда размытие, примененное к спрайту, будет... содержаться.
var container = new PIXI.Container;
container.addChild(bg);
container.mask = mask;