用pixi js替换颜色

时间:2018-06-13 19:10:07

标签: webgl pixi.js webgl2 pixijs

帮助我了解如何在PIXI中更改颜色 有一张红色的图片 假设 http://data.3dtuning.com/tun/4nI0lcnL9b.jpg 对于prtimerna,有必要将颜色从红色更改为绿色。 但是这样阴影仍然存在,也就是说,给定了基调。

我可以逐像素地完成。 如果有关于算法的想法,我也将非常感激

var cR = baseData[i];
                var cG = baseData[i + 1];
                var cB = baseData[i + 2];

                if (alpha) {
                    currentData[i + 3] = alpha[i / COMPONETNS_PER_PIXEL];
                } else {
                    currentData[i + 3] = baseData[i + 3];
                }

                if (cR === cG && cR === cB) {
                    currentData[i] = currentData[i + 1] = currentData[i + 2] = cR * brightness;
                    continue;
                }

                var gray = Math.min(cR, cG, cB);

                // parts should be red
                var percent = (cR - gray) / 255;

                currentData[i] = (cR + (color.r - 255) * percent) * brightness;
                currentData[i + 1] = (cG + color.g * percent) * brightness;
                currentData[i + 2] = (cB + color.b * percent * 0.9) * brightness;

但我想将此更改为VVGL 我非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

我有一个提示,但遗憾的是没有完整的答案。我检查了所有pixi示例一次,并试图理解the one with a color filter

在该示例中,colormatrix滤镜应用于“ app.stage.filters”,它正在替换颜色。

它使用以下代码:

var filter = new PIXI.filters.ColorMatrixFilter();
app.stage.filters = [filter];


app.ticker.add(function(delta) {
  count += 0.1;

  var matrix = filter.matrix;

  matrix[1] = Math.sin(count) * 3;
  matrix[2] = Math.cos(count);
  matrix[3] = Math.cos(count) * 1.5;
  matrix[4] = Math.sin(count / 3) * 2;
  matrix[5] = Math.sin(count / 2);
  matrix[6] = Math.sin(count / 4);
}

矩阵参数的Pixi Documentation has the following description不利于理解:

  

颜色矩阵滤镜的矩阵。   默认值:   [1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]

我还在this image中发现了this Post about Flash,我认为它描述了矩阵的参数和转换。

我尝试使用这些资源创建自己的过滤器,但失败了,没有时间再尝试。