В Paper.js BlendMode определяет способ, с помощью
которого один объект рисования взаимодействует с объектами, находящимися
под ним. Каждый слой или объект может иметь свой режим наложения,
который управляет смешением цветов при отрисовке. Режимы наложения
реализованы на основе стандартов Canvas API и
соответствуют привычным режимам из графических редакторов, таких как
Photoshop или Illustrator.
var circle = new Path.Circle({
center: [80, 50],
radius: 40,
fillColor: 'red',
blendMode: 'multiply'
});
var rectangle = new Path.Rectangle({
point: [50, 30],
size: [100, 80],
fillColor: 'blue'
});
В этом примере красный круг с режимом multiply наложится
на синий прямоугольник, и область пересечения будет темнее, так как
цвета умножаются друг на друга.
Paper.js поддерживает следующие ключевые режимы:
multiply и
screen для контрастного эффекта.multiply и
screen, используя верхний слой как источник света.hard-light.difference, но с
меньшей контрастностью.BlendMode можно применять не только к отдельным объектам, но и ко
всему слою (Layer). Это позволяет создавать сложные
композиции без необходимости задавать режим для каждого элемента
отдельно.
var layer = new Layer();
layer.blendMode = 'overlay';
var circle = new Path.Circle({
center: [100, 100],
radius: 50,
fillColor: 'yellow'
});
var rectangle = new Path.Rectangle({
point: [80, 80],
size: [100, 60],
fillColor: 'green'
});
layer.addChild(circle);
layer.addChild(rectangle);
Все объекты, добавленные в этот слой, будут взаимодействовать друг с
другом и с нижними слоями согласно выбранному режиму
overlay.
BlendMode тесно связан с alpha-каналом
(opacity). Полупрозрачные объекты создают более сложные
эффекты смешивания:
var semiTransparent = new Path.Circle({
center: [150, 150],
radius: 60,
fillColor: 'red',
opacity: 0.5,
blendMode: 'screen'
});
Полупрозрачность объекта усиливает эффекты таких режимов, как
screen, overlay или soft-light.
Эффект особенно заметен при наложении нескольких объектов с разными
цветами и прозрачностью.
Светящиеся эффекты: screen + яркий
цвет + высокая прозрачность создают реалистичный световой
эффект.
Тень и темные области: multiply +
тёмные оттенки + частичная прозрачность позволяет добавлять глубокие
тени без изменения базового цвета.
Контрастные акценты: overlay или
hard-light хорошо работают для создания контрастных слоёв с
минимальными корректировками цветов.
При использовании Group или Clipping Mask режимы наложения применяются ко всему контенту группы:
var group = new Group();
group.blendMode = 'difference';
var path1 = new Path.Circle({ center: [100, 100], radius: 40, fillColor: 'pink' });
var path2 = new Path.Rectangle({ point: [80, 80], size: [60, 60], fillColor: 'cyan' });
group.addChild(path1);
group.addChild(path2);
Все элементы группы будут взаимодействовать друг с другом и с нижними слоями, создавая сложные визуальные эффекты.
blendMode работает на уровне объектов, слоёв и
групп.Эффективное использование BlendMode в Paper.js позволяет создавать графические эффекты профессионального уровня, имитируя методы работы в растровых редакторах, но с гибкостью и динамикой в веб-среде.