Заменить цвет в pixi js

Помогите разобраться как поменять цвета в PIXI есть картинка красного цвета Предположим http://data.3dtuning.com/tun/4nI0lcnL9b.jpg Нужно изменить цвет с красного на зеленый, для пртимерна. Но чтобы тени остались, то есть с учетом тона.

Я могу сделать это попиксельно. Если есть идеи по алгоритму, я тоже буду очень признателен

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 ответ

У меня есть подсказка, но, к сожалению, не полный ответ. Я проверил все примеры pixi один раз и попытался понять пример с цветным фильтром.

В этом примере фильтр 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 содержит следующее описание параметра матрицы, которое, к сожалению, не помогает понять его:

Матрица цветовой матрицы фильтра. Значение по умолчанию: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]

Я также нашел это изображение в этом посте о Flash, который, как я предполагаю, описывает параметры матрицы и преобразования.

Я пытался использовать эти ресурсы для создания своего собственного фильтра, но у меня не получилось и у меня не было времени попробовать дальше.

Другие вопросы по тегам