Можно ли применить фильтр размытия к спрайту с маской, но сохранить размытие, содержащееся в форме маски?

Я использую 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;
Другие вопросы по тегам