code: function flatFilter(filterString) {
  
      var filter_list = [];
  
      if (typeof filterString == 'string') {
          filter_list = matches$1(filterString);
      } else if (Array.isArray(filterString)) {
          filter_list = filterString;
      }
  
      var allFilter = [];
  
      filter_list.forEach(function (filterObj) {
          var filterName = filterObj.arr[0];
  
          if (GLFilter[filterName]) {
              var f = makeFilterFunction(filterObj);
  
              if (f.type == 'convolution' || f.type == 'shader') {
                  allFilter.push(f);
              } else {
                  f.forEach(function (subFilter) {
                      allFilter = allFilter.concat(flatFilter(subFilter));
                  });
              }
          }
      });
  
      // console.log(filter_list, allFilter)
  
      return allFilter;
  }
docs: 겹쳐져 있는 Filter 함수를 1차원으로 나열한다.
  ex)  ['sobel'] => ['sobel-horizontal', 'sobel-vertial']
  
  @param {String|Array} filterString