WebGAL
WebGAL copied to clipboard
使pixi滤镜顺序固定或可控
遇到的问题
根据实际测试,滤镜加入顺序的不同会影响最终效果。 我在尝试给 WebGAL 添加更多滤镜时,偶然触发了滤镜顺序更换,进而导致最终效果天差地别,这在有“颜色调整”滤镜的情况下尤为明显,其顺序先后直接影响最终效果。
复现
新建一个默认工程,创建一个txt文件,并粘贴一下代码。
changeBg:bg.png -next;
changeFigure:stand.png -id=aaa;
setTransform:{"oldFilm":1,"rgbFilm":0} -target=aaa;
setTransform:{"oldFilm":1,"rgbFilm":1} -target=aaa;第一次开启两个滤镜
setTransform:{"oldFilm":0,"rgbFilm":1} -target=aaa;
setTransform:{"oldFilm":1,"rgbFilm":1} -target=aaa;第二次开启两个滤镜
可能的解决方案
- 使 所有滤镜常驻 并 固定顺序
- 使 部分滤镜常驻 并根据常驻滤镜 划分阶段 ,让后加入的滤镜塞进常驻滤镜之间
- 为滤镜添加 排序值(Sorting order),并根据排序值大小决定加入滤镜的顺序
- 是否应该暴露参数,让用户自行决定滤镜顺序?
除非确定有必要,我觉得没必要限制用户的创作能力,我的提议是将滤镜api完整暴露给用户,开发者省心,用户也不用在有需求的情况下用魔法解除限制 目前的命令有点历史包袱,如果可以的话给一个filters:[["FilterId",uniforms:{}]]或者叠加setFilter命令可能不错