В PixiJS заливка графических объектов реализуется
через объекты типа Graphics. Основные свойства заливки —
цвет, прозрачность (alpha) и
возможность создания градиентных эффектов через
дополнительные методы и текстуры. Управление заливкой осуществляется
сочетанием методов beginFill, lineStyle и
endFill.
Для установки сплошного цвета используется метод:
const graphics = new PIXI.Graphics();
// Сплошная заливка красным цветом
graphics.beginFill(0xFF0000);
graphics.drawRect(50, 50, 100, 100);
graphics.endFill();
0xFF0000 задаёт цвет в
шестнадцатеричной форме.beginFill(color, alpha) принимает вторым
параметром прозрачность (alpha) от 0 до
1. Например:graphics.beginFill(0x00FF00, 0.5); // зелёный полупрозрачный
graphics.drawCircle(200, 200, 50);
graphics.endFill();
Значение alpha позволяет создавать эффекты наложения и
прозрачности. Можно комбинировать несколько объектов с различной
прозрачностью для сложных визуальных эффектов.
Прозрачность может быть задана как на уровне заливки, так и на уровне
всего объекта Graphics:
graphics.alpha = 0.3; // применится ко всем фигурам объекта
Использование alpha в beginFill применяется
только к конкретной заливке. При необходимости изменения прозрачности
всех элементов объекта следует использовать свойство
graphics.alpha.
PixiJS напрямую не поддерживает градиенты через
Graphics.beginFill, но их можно создавать несколькими
способами:
Создаётся объект PIXI.Texture с заранее подготовленным
градиентом, затем используется Sprite:
const canvas = document.createElement('canvas');
canvas.width = 200;
canvas.height = 200;
const ctx = canvas.getContext('2d');
const gradient = ctx.createLinearGradient(0, 0, 200, 0);
gradient.addColorStop(0, 'red');
gradient.addColorStop(1, 'blue');
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, 200, 200);
const texture = PIXI.Texture.from(canvas);
const sprite = new PIXI.Sprite(texture);
app.stage.addChild(sprite);
createLinearGradient(x0, y0, x1, y1) создаёт
линейный градиент.createRadialGradient для радиальных
эффектов.Градиенты можно накладывать через шейдеры и фильтры
PixiJS. Например, PIXI.filters.GradientFilter позволяет
динамически создавать плавные переходы цветов по координатам:
const graphics = new PIXI.Graphics();
graphics.drawRect(0, 0, 300, 150);
app.stage.addChild(graphics);
const gradientFilter = new PIXI.filters.GradientFilter();
graphics.filters = [gradientFilter];
Фильтры дают гибкость: градиенты можно изменять анимационно, менять угол наклона, диапазон и цвета.
Для сложных визуальных эффектов можно комбинировать сплошные заливки и градиентные текстуры, контролируя прозрачность отдельных слоёв. Например:
Graphics.beginFill.Sprite с текстурой.alpha.Такой подход позволяет создавать насыщенные визуальные композиции без использования внешних библиотек для градиентов.
Graphics в PIXI.Container позволяет управлять
общими параметрами прозрачности и позицией сразу для группы фигур.lineStyle и beginFill можно использовать
совместно для создания рамок с градиентной или сплошной заливкой.В PixiJS сплошная заливка и прозрачность
обеспечиваются средствами Graphics.beginFill и
alpha, а градиенты реализуются через
текстуры и фильтры. Комбинация этих методов позволяет создавать богатые
визуальные эффекты и анимации, управлять прозрачностью, наложением
цветов и плавными переходами внутри сцены.
Сбалансированное использование этих инструментов обеспечивает высокую производительность и гибкость при разработке графики в браузере.