Shader FX и Processor
Shader FX меняет один слой, а Shader Processor — изображение под ним. В обоих случаях можно использовать готовый пресет или свой HLSL. Для настройки пресета писать код не нужно.
Обработать слой или изображение под ним?
Shader FX принадлежит одному слою и меняет его изображение.
Shader Processor — отдельный слой, который обрабатывает собранную картинку ниже себя. Помести его над теми слоями, которые нужно изменить. При наложении Normal уменьшай Opacity, чтобы смешать эффект с исходником; скрой Processor для сравнения до и после.
В группе Pass Through Processor может затронуть и фон под группой. Используй изолированную группу, если эффект должен остаться только внутри неё.
В отличие от Post FX превью, оба варианта попадают в сохранённое изображение.
Применить готовый эффект
- Выбери слой, который хочешь изменить.
- В его разделе FX нажми + Preset ▾ и выбери эффект по категории.
- Настрой параметры эффекта: ползунки, цвета, текстуры, переключатели и выпадающие списки. Изменения сразу видны на изображении.
Или перетащи .hlsl эффекта WhimTex из Project на строку в Layers. Перетаскивание в панель холста
или пустую область списка создаёт Shader Processor наверху композиции.
HLSL-пресеты кистей и файлы без маркировки эффекта не принимаются.
Если в пресете ошибка кода или параметров, при выборе появится сообщение в Console, а слой останется без изменений.
У каждого добавленного эффекта свои настройки. Встроенный Color → Gain меняет яркость и оттенок; Transform → UV Transform перемещает входное изображение. По умолчанию Input Tiling → Clip делает область за рамкой прозрачной; Repeat или Mirror заполняет её повторениями картинки. Добавленные в проект эффекты появляются в каталоге автоматически — настраивать папку пресетов не нужно.
Настройка параметров
Галочка без подписи в заголовке Shader FX включает или пропускает эффект, сохраняя его настройки. У внешних FX-ссылок это состояние общее; для независимой копии используй Embed.
Наведи курсор на параметр, чтобы прочитать подсказку, если автор эффекта её добавил.
Числа и ограничения
Перед числовым полем в заголовке FX есть символ ↔: тяните его влево или вправо для изменения значения. Shift даёт точную настройку, Ctrl ускоряет изменение.
У одного параметра могут быть и ползунок, и выпадающий список: оба меняют общее значение. Custom означает, что текущее число не совпадает ни с одним готовым вариантом списка.
Некоторые ползунки разрешают выходить за один или оба края шкалы: введи число в соседнее поле или потяни подпись параметра. Каждый край может быть жёстким или мягким независимо от другого. Ручка останется у ближайшего края, но эффект получит введённое значение. Другие ползунки ограничивают и перетаскивание, и ручной ввод — это выбирает автор эффекта.
У Gain, Levels, Threshold, фонового освещения и смещений дисторшена доступны мягкие границы там, где это уместно. Levels и Threshold допускают значения выше 1 для HDR; доли смешивания ограничены 0–1. В Pixelate и Posterize можно ввести больше 64 уровней и Gamma выше 5.
Источники текстур
Текстурный параметр принимает Texture (ассет) или Layer (слой текущего документа). Выберите режим источника или перетащите слой в поле параметра. Поддерживаются процедурные и рисовальные слои, в том числе выключенные. Группа передаёт цветное содержимое; выключенные дочерние слои остаются скрытыми. Отсутствующий источник даёт прозрачность, а циклическую ссылку выбрать нельзя.
Источник текстуры Self читает изображение перед текущим FX, с учётом предыдущих эффектов. None возвращает прозрачные пиксели. Для них не нужно назначать ассет или слой; Self продолжает работать при копировании на другой слой.
Точки и направления
Векторные параметры содержат два, три или четыре числовых компонента. point задаёт положение точки: левый нижний угол (0, 0), правый верхний (1, 1), значение по умолчанию (0.5, 0.5). Нажми кнопку с рукой (Edit on Canvas) справа от поля, чтобы перетаскивать точку. Её можно вынести за пределы холста перетаскиванием или вводом координат. При перетаскивании точка примагничивается к краям холста и видимым направляющим; Ctrl отключает привязку. Радиус задаётся в User Settings → Guides & Snapping → Snap Radius (px). Параметр нормали задаёт единичное направление и предлагает ту же кнопку. Потяните конечную точку: около центра нормаль направлена к камере, на предельном радиусе — вдоль холста. Клик по точке переключает + (к камере) и − (от камеры).
Кривые и градиенты
Поле кривой позволяет настроить числовой профиль эффекта. Нажми на него, чтобы изменить ключи и касательные в стандартном редакторе Unity. По умолчанию это прямая от 0 до 1; значения могут быть ниже 0 и выше 1. При сохранении HLSL-пресета настроенная кривая сохраняется.
У эффекта может быть поле градиента. Нажми на полосу, чтобы настроить цвета, прозрачность и интерполяцию,
включая HDR-цвета. По умолчанию градиент идёт от чёрного к белому, но можно задать два начальных цвета:
// @param gradient _Ramp = #FF0000FF -> #0000FF. Hex записывается в порядке RGBA; у шестизначного значения альфа равна 1.
Изменения сразу видны в эффекте; простой двухцветный градиент можно сохранить как дефолт HLSL-пресета.
Без явно заданного значения используется Perceptual; запись двух цветов в HLSL использует Classic.
В редакторе градиента Wrap определяет поведение за пределами 0–1: Clamp удерживает крайние цвета, Repeat повторяет градиент, Mirror чередует его направление. Если сам эффект ограничивает входное значение, повторение может не проявляться.
Синтаксис HLSL описан в разделе объявления параметров.
Настроить эффект прямо на холсте
У эффекта с параметром Transform 2D есть кнопка Edit on Canvas. Она включает зелёную рамку, которую можно перемещать, масштабировать и поворачивать. Вращение идёт вокруг центра, отдельного Pivot нет. Ctrl/Cmd + угол деформирует рамку, Ctrl/Cmd + грань создаёт скос, а Ctrl/Cmd + Alt + Shift + угол позволяет настроить перспективу парой углов. Alt вместе с Ctrl/Cmd симметрично двигает противоположный угол. Поля Position, Size и Rotation сохраняют деформацию; Reset Transform убирает её. Edit on Canvas включает один временный инструмент с рукой под контекстными инструментами; он используется также для Point и Normal. Подсказка кнопки указывает параметр. Клик по кнопке инструмента, повторный Edit on Canvas или Escape возвращает прежний инструмент. Во время перетаскивания первое нажатие Escape лишь отменяет жест. Редактирование другого параметра заменяет временный инструмент, не меняя инструмент возврата. Подробнее о контекстных инструментах.
Рамка меняет эффект, а не трансформ слоя. Её назначение зависит от эффекта: расположение изображения, масштаб узора или область воздействия. Сама по себе рамка не обрезает результат как маска, но у UV Transform с Input Tiling → Clip за её пределами пикселей нет.
Порядок, копирование и общие эффекты
Порядок эффектов влияет на результат. Перетаскивай FX за заголовок, чтобы изменить порядок, или брось его на строку другого слоя, чтобы перенести туда. В контекстном меню заголовка также есть Move Up и Move Down.
+ Reference позволяет выбрать ассет Shader FX с общими настройками для всех мест использования;
⋮ → Embed Copy в заголовке эффекта создаёт независимую копию ассета в документе, не меняя внешний файл. В этом же меню находятся Move Up, Move Down и Remove.
Выбери ⋮ → Copy FX, затем Paste FX As New в другой строке, чтобы вставить после неё независимую копию. Код и параметры Shader FX копируются; ссылки на слои сохраняются внутри того же документа и сбрасываются при вставке в другой. Для Material копируется ссылка на тот же материал.
Проектные HLSL-эффекты получают изменения кода из исходного .hlsl-файла.
Чтобы редактировать код независимо внутри документа, нажми Embed Copy в разделе Code. Параметры находятся под заголовком; в Code доступны редактор, Apply, Save Preset… и справка Shader inputs. Диагностика появляется при наличии сообщений.
Сохранить свой пресет
В редакторе кода эффекта нажми Save Preset…. Создастся .hlsl-файл,
в котором текущие значения параметров станут значениями по умолчанию, включая цвета и Transform 2D.
Имя файла станет именем пресета. Сохранять можно в подпапку ShaderFX пользовательской
библиотеки или любую папку внутри Assets проекта. При перезаписи остаётся копия .bak.
Общий путь задаётся в User Settings → Presets → Presets Folder: кисти лежат в Brushes, эффекты — в ShaderFX. В ShaderFX и её подпапки можно положить готовые HLSL-пресеты; при следующем открытии + Preset они появятся в разделе User. Пресет из пользовательской библиотеки добавляется копией: последующие изменения файла не меняют уже добавленный эффект. Добавление пресета из Assets проекта создаёт связанный экземпляр: правка файла обновляет связанные с ним эффекты. Само сохранение пресета не привязывает экспортированный эффект к новому файлу.
Текстуры в пресете хранятся как ссылки, а не встроенные изображения. Для другого проекта перенеси
также соответствующие ассеты текстур с их .meta-файлами или назначь замену.
Отредактированный градиент сохраняется в документе. Начальное значение HLSL-пресета поддерживает два крайних цвета, интерполяцию Classic, пространство Gamma, повторение Clamp, Smoothness 100% и средние точки по центру. Другие настройки перед экспортом нужно упростить; молча они не отбрасываются.
Запечь эффекты в слой
Запекание превращает текущий результат в пиксели Drawing. Выбирай команду по области действия:
| Команда | Действие |
|---|---|
| Code → Apply | Скомпилировать HLSL и оставить эффект редактируемым. Пиксели не запекаются. |
| ⋮ → Apply в заголовке/меню FX | Запечь этот FX и все предшествующие ему по порядку стека. Последующие эффекты остаются редактируемыми. |
| Apply All рядом с кнопками добавления FX | Запечь весь стек FX. |
Выключенные FX в запекаемой части удаляются, не влияя на изображение.
Для не-Drawing слоя появится подтверждение конвертации. Transform остаётся редактируемым и сохраняет значения; прозрачность, смешивание, swizzle и clipping остаются отдельно. Запекается текущий холст в полном разрешении с плавающей точкой, а не бесконечный процедурный источник или содержимое за границами холста. Undo возвращает исходный слой и стек FX. Группа объединяет видимые дочерние слои с предупреждением о потере отдельных целей и возможном изменении Pass Through.
Shader Processor тоже поддерживает Apply. Запекается его текущий вход, включая внешний фон в Pass Through, без объединения или удаления нижних слоёв. Normal заменяется на Overwrite с сохранением способа смешивания Processor по Opacity, в том числе для полупрозрачных пикселей; другие режимы не меняются. Последующие правки нижних слоёв уже не пересчитывают запечённые эффекты. Оставшиеся FX работают со снимком, а Transform остаётся редактируемым.
Создать свой эффект
Если у тебя есть шейдерный код, нажми + Shader FX, вставь его в редактор и выбери Apply. Код и настройки останутся внутри документа — отдельный файл не нужен. При ошибке компиляции FX пропускается до успешного Apply. Код и настройки остаются доступны для исправления.
В HLSL-эффектах и кистях доступна встроенная библиотека шумов для зерна, органических масок и искажений. См. функции шума и пример.
Написание эффектов — необязательная возможность. Справочник по шейдерам предназначен для создания кода и общих библиотек.
Редактирование во внешнем редакторе
- Open Code открывает рабочий файл в редакторе, выбранном в Unity. Сохранение обновляет черновик в WhimTex; для компиляции нажми Apply.
- Open in VS Code автоматически устанавливает подсветку, подсказки и проверку директив WhimTex в отдельный профиль. Сохранение рабочего файла сразу запрашивает Apply в Unity, без возвращения в окно WhimTex. Режим языка остаётся HLSL; расширение поддерживает Restricted Mode.
- Если кнопки VS Code нет, укажи User Settings → External Code Editor → VS Code Command. Сначала WhimTex проверяет редакторы, зарегистрированные в Unity, и PATH, затем этот запасной путь.
- При ошибке компиляции FX пропускается до успешного Apply, а причина появляется в диагностике; код и значения параметров остаются редактируемыми. Сохрани документ в WhimTex, чтобы записать изменения в TIFF или JSON: сохранение файла кода этого не делает. JSON сохраняет и сломанные FX, а для сохранения TIFF их нужно исправить. После перезагрузки скриптов Unity снова открой код из WhimTex для подключения.
Расширение подсвечивает не только директивы, но и типы, модификаторы, имена параметров, значения и диапазоны. Оно проверяет начальные значения, подсказки, связанные контролы, условия и группы; ошибки компиляции шейдера по-прежнему проверяет Unity. После обновления снова открой код через Open in VS Code; уже открытому окну может понадобиться Developer: Reload Window.
Напиши // @if или // @group и нажми Tab, чтобы создать блок с закрывающей директивой. Tab переводит курсор между частями условия или заголовком группы, затем внутрь блока. Варианты без пробела //@if / //@group тоже работают. Если твои настройки VS Code отключают раскрытие по Tab, выбери сниппет через Ctrl+Space.
Рабочие файлы внешнего редактора — временный кеш, не бэкап. Неактивные копии, не использовавшиеся более 24 часов, удаляются автоматически. Чтобы сохранить код, сохрани документ в WhimTex: сохранения только в редакторе кода недостаточно. После перезапуска Unity или перезагрузки скриптов снова открой код из WhimTex для подключения синхронизации.
Ошибки компиляции
Жёлтый ! рядом со слоем и треугольники в заголовках секции FX и самого эффекта отмечают нескомпилированный или неисправный FX, даже когда блоки свёрнуты. Наведи курсор, чтобы увидеть причину; подробности доступны в Code. FX пропускается, но не выключается и не удаляется. Исправь код и нажми Apply: эффект снова заработает, а индикаторы исчезнут. После неудачного Apply старая скомпилированная версия не используется. Предупреждения при успешной компиляции не отключают эффект.
JSON можно сохранять и открывать со сломанными FX без потери кода и значений параметров. Повтор той же ошибки не дублирует предупреждение WhimTex в Console, пока существует этот экземпляр FX.
Справочник пресетов
Levels, контраст и баланс цвета
В Color → Levels поле Curve применяется после входных точек чёрного/белого и Gamma, перед выходными точками. По умолчанию кривая линейная. С Preserve Color она меняет яркость, без него — каждый RGB-канал отдельно. Альфа не меняется.
Color → Brightness Contrast регулирует яркость средних тонов и контраст. Оба значения по умолчанию 0 — без изменений. Положительный Contrast разводит тёмные и светлые тона, отрицательный приближает их к среднему серому. Шкалы слайдеров охватывают −100…100, но числом или перетягиванием лейбла можно выйти за обе границы. Вместо одинакового смещения RGB используются плавные тональные кривые: чёрный и белый сохраняются, альфа не меняется, RGB вне 0–1 проходят без изменения. Эффект работает во входном цветовом пространстве; это не экспозиция и не точная копия алгоритма другого приложения. На экстремальных значениях детали могут теряться из-за точности вычислений.
Color Balance объединяет Shadows, Midtones и Highlights в одном блоке. RGB Offset задаёт три знаковых смещения RGB; Range управляет влиянием теней и светов, а при нуле соответствующие смещения скрываются. Preserve Luma сохраняет яркость. Opacity в заголовке FX смешивает результат с исходным изображением; альфа не меняется.
Profile в Bevel Emboss преобразует выбранный канал карты высот в высоту рельефа. Mapping в Gradient Map перераспределяет яркость перед выбором цвета градиента. Обе кривые по умолчанию линейные.
HSV-коррекция
Color → HSV меняет оттенок, насыщенность и яркость. Hue сдвигает оттенок в градусах; Saturation и Value — множители: 1 ничего не меняет, 0 убирает насыщенность или делает изображение чёрным. Amount смешивает коррекцию с исходником. Серые пиксели остаются серыми при изменении оттенка и насыщенности. Альфа сохраняется, HDR-яркость поддерживается. При коррекции отрицательные RGB-каналы считаются нулевыми; нейтральные настройки и Amount 0 оставляют исходник без изменений.
Негатив
Color → Negative смешивает исходные RGB с инвертированным цветом (1 - RGB) через Amount.
По умолчанию альфа сохраняется; включи Invert Alpha, чтобы так же инвертировать и её.
Маска
Color → Mask читает выбранный канал из Mask (по умолчанию Self). Transform размещает маску, Profile меняет её значения, Invert инвертирует результат. В Apply To → Channels выбери каналы, которые нужно умножить на маску; изначально включена только альфа. В режиме Color компоненты цвета задают сохранение исходных каналов: 1 оставляет канал без изменений, 0 полностью применяет маску. Это не тонирование. Amount задаёт общую силу эффекта.
Карта градиента
Color → Gradient Map перекрашивает тени, полутона и светлые участки цветами градиента. Source Channel выбирает источник позиции на градиенте: Luminance (по умолчанию), R, G, B или Alpha. По нему выбирается весь цвет градиента, а не отдельный выходной компонент. RGB-источники используют значения sRGB; Alpha читается напрямую. Reverse и Mapping применяются после выбора источника. Нажми Gradient, чтобы выбрать цвета; Amount смешивает результат с исходным изображением, а Reverse меняет направление. Яркость вне диапазона 0..1 получает цвет соответствующего края. Альфа градиента умножается на исходную альфу: прозрачные ключи скрывают соответствующие участки, а непрозрачный градиент сохраняет исходную прозрачность. Сила FX регулирует влияние и на цвет, и на альфу; полностью прозрачные пиксели не становятся видимыми.
Пикселизация с дизерингом
Stylization → Pixelate заменяет каждый блок размером Pixel Size пикселей холста одним значением. Average усредняет сетку 4×4 внутри блока вместо выборки из центра, поэтому тонкие детали не пропадают. Levels задаёт, сколько значений остаётся в каждом канале, а Gamma смещает ступени между тенями и светами. Dither выбирает узор, который распределяет ошибку между ними: Bayer2, Bayer4 и Bayer8 дают классический упорядоченный рисунок, Interleaved — нерегулярный шум, Checker — шахматную сетку из двух тонов, Halftone — растровую точку, Hash — стабильный шум без видимой сетки. Узор считается по блокам, поэтому остаётся виден после пикселизации. Dither Strength ослабляет узор вплоть до обычного округления. Color → Quantization использует Levels и Gamma, а Color → One Bit выбирает Low Color или High Color по яркости. Offset сдвигает сетку без перемещения слоя. Прозрачность сохраняется, пока не включён Alpha Clip; Alpha Cutoff задаёт границу между прозрачными и непрозрачными пикселями. Тот же список узоров доступен попиксельно в Stylization → Posterize.
Контуры границ
Выбери FX → + Preset → Stylization → Edge Outline, чтобы провести линии на резких переходах. Method → Boundary создаёт равномерную обводку; Scharr делает линии на слабых переходах более прозрачными. В Scharr увеличь Strength, чтобы усилить такие линии. В Boundary это поле скрыто. Остальные настройки общие; переключение метода сохраняет их значения. Detection → Color находит различия RGB, в том числе между цветами одинаковой яркости. Luminance реагирует только на перепады яркости, игнорируя смену цвета при одинаковой яркости. Увеличь Threshold, чтобы не обводить слабые переходы, плавные градиенты или мелкие вариации текстуры. Hue обводит смену цветового тона, а не яркости или насыщенности. Hue Threshold (°) задаёт минимальное различие в градусах (0–180). Увеличь Min Saturation, чтобы игнорировать почти серые цвета: граница не обводится, если любая из её сторон ниже порога. Серый и чёрный исключены всегда.
Thickness (px) задаёт полную толщину линии по обе стороны границы, Softness (px) смягчает её края. Оба параметра измеряются в пикселях холста. Scharr также реагирует на ширину переходов изображения: плавные переходы могут давать полосы вместо строго равномерной линии. Contour выбирает скруглённые (Round), квадратные (Square) или ромбовидные (Diamond) стыки. Color в блоке Output задаёт цвет, его альфа — непрозрачность. Output → Overlay сохраняет изображение, Outline Only оставляет только линии на прозрачном фоне. Поле Opacity в шапке FX смешивает полный результат с исходным изображением: 0 оставляет оригинал, 1 применяет эффект полностью. Это работает и в Outline Only. Нулевая Thickness убирает контур. Исходная прозрачность сохраняется: FX не обводит силуэт, заданный только альфой, и не заполняет прозрачные области. Широкие линии считаются дольше, особенно в Scharr.
Другие эффекты стилизации
- Step отдельно порогует выбранные каналы. Красный, зелёный и синий включены по умолчанию, альфа выключена. Выбери Hard для двух значений или Smoothstep, чтобы смягчить переход параметром Hardness. В Apply To → Color компоненты RGBA задают силу эффекта по каналам, а не новый цвет: 0 сохраняет исходный канал, 1 полностью применяет порог. Threshold работает иначе: сравнивает яркость (или альфу) с порогом и выбирает между двумя цветами; переход можно смягчить, исходная альфа сохраняется.
- Halftone превращает изображение в монохромный, CMYK- или RGB-растр. Настрой размер и форму точек; для CMYK/RGB доступны углы экранов и ручная либо автоматическая регистрация цветовых пластин.
- Chromatic Aberration смещает красный и синий каналы в противоположные стороны — радиально от точки или под заданным углом. Amount задан в пикселях холста; зелёный канал и альфа не меняются.
- CRT сочетает кривизну краёв, строки, RGB-полосы люминофора, виньетку, цветовые каймы, зерно и мерцание. VHS добавляет дрожание строк, цветовой шлейф, шум и движущуюся полосу трекинга. Seed меняет детерминированный узор, Effect Time выбирает другой кадр.
- Digital Glitch объединяет разрывы строк, независимо сегментированные блоки, сдвиг каналов, цветовые, шумовые и альфа-артефакты, а также тонирование градиентом. Повторяемую анимацию задают Seed, Effect Time и Frame Rate; Block Order выбирает независимое разбиение сначала по строкам или столбцам.
Освещение и тиснение
- Normal Map → Lighting освещает поверхность по RGB-карте нормалей. Источник Normals по умолчанию — Self. Задай Light Direction манипулятором, затем настрой Base Color, цвета света и тени, Intensity и Ambient. Для стандартного выхода Normal Map оставь Packed Color включённым, для Linear Data — выключи. Flip Y меняет направление зелёной оси. Платформенные упакованные форматы normal map не поддерживаются.
- Lighting → Bevel Emboss вычисляет нормали из Height Map (Self или другой слой). Height Channel выбирает яркость, R, G, B или Alpha; Profile задаёт профиль, Depth — выпуклость или углубление, Smoothing — радиус выборки в пикселях документа. Для SDF ширину скоса задают видимый градиент и диапазоны расстояний.
В обоих FX альфа Base Color плавно смешивает прозрачное освещение (0) с заполненной освещённой поверхностью (1). RGB задаёт цвет поверхности, Ambient проявляется вместе с заливкой. Output выбирает Both, Highlight Only или Shadow Only для прозрачной составляющей; при альфе Base Color = 1 он не влияет на результат. Альфа Light Color/Shadow Color задаёт силу этой составляющей. Общую непрозрачность и смешивание задавай у слоя. По умолчанию альфа Base Color у обоих FX равна 0. Для обновления старой встроенной копии повторно добавь пресет.
Нормализация карты нормалей
Normal Map → Normalize восстанавливает единичную длину нормалей, сохраняя альфу.
Используй его после обработки RGB-карты нормалей, если длина её векторов изменилась.
Нейтральная нормаль (0.5, 0.5, 1) остаётся прежней; неопределённое направление заменяется нейтральным.
Оставь Packed Color включённым для стандартного кодирования слоя Normal Map; для Linear Data выключи.
Этот переключатель учитывает цветовое кодирование, но не распаковывает платформенные форматы карт нормалей.
Пресеты искажения
Выбери FX → + Preset → Distortion → Spherize, Twirl, Radial Shear или Displacement Map.
Числовое поле в шапке каждого FX управляет искажением: Strength у Spherize и Radial Shear, Angle у Twirl, Amount у Displacement Map и Polar Coordinates. Меняется само преобразование, а не прозрачность готового результата.
- Spherize / Mode:
Classicсохраняет прежнее радиальное искажение без обрезки;Sphereпроецирует изображение на сферу и обрезает результат по круглому краю. Край сглажен примерно на один пиксель. - Spherize / Strength: положительное значение раздувает центр, отрицательное — стягивает. В
Classicноль оставляет изображение без изменений; вSphereформа круга остаётся, но текстура не искажается. - Twirl / Angle: скручивание вокруг центра; знак меняет направление. Угол задан в градусах на локальном радиусе 1 и растёт с расстоянием.
- Radial Shear: закручивает координаты выборки всё сильнее по мере удаления от Center. Strength задаёт направление и силу, а Offset добавляет постоянное смещение.
- Area / Edit on Canvas: перемещай, масштабируй и поворачивай зелёную рамку координат. Растяни её, чтобы сделать искажение эллиптическим.
- Displacement Map / Mode:
VectorRGчитает R/G как вектор смещения; значениеNeutral(по умолчанию 0,5) означает нулевое смещение. Для векторных карт и карт высот используй линейные настройки текстуры (Data). Силы по X/Y задаются в пикселях холста.Grayscaleчитает выбранный канал и смещает пиксели по горизонтали, вертикали, радиально, по касательной или под заданным углом.ParallaxOcclusionиспользует выбранный канал карты как высоту и сдвигает выборку вдоль виртуального луча взгляда. - Displacement Map / Amount: умножает силы X/Y, силу Grayscale или глубину Parallax. Ноль оставляет исходное изображение, 1 использует заданные значения, больше 1 — усиливает их. Output Mix остаётся отдельным смешиванием изображений.
- Parallax / Depth и View: Depth задаёт диапазон высот в пикселях холста; View Angle — направление луча, а уменьшение View Elevation усиливает смещение. Invert Height меняет местами выступающие и углублённые области. Parallax Steps задаёт баланс качества и стоимости (4–32 выборки высоты), по умолчанию — 8.
- Map / Transform и Wrap: положение и масштаб карты настраиваются независимо.
Clamp,RepeatиMirrorвлияют на координаты карты, но не на края искажённого изображения. - Strength Mask: по умолчанию выбрана
Constant1, поэтому достаточно одной карты и маску силы можно не задавать.MapChannelберёт канал той же карты,InputAlphaследует альфе входного изображения, аSeparateTextureдобавляет вторую текстуру-маску. Маску можно инвертировать или перенастроить кривой Mask Profile. - Output / Mix: смешивай искажённый результат с исходным.
Tiling, ниже параметров каждого искажения, определяет, что читать за границами
входного изображения: Clamp растягивает край, Repeat повторяет картинку, Mirror
чередует зеркальные повторения, Clip возвращает прозрачность. У искажений по умолчанию
Clamp, у UV Transform — Clip. Это отдельная настройка от Tiling слоя и Map Wrap карты
Displacement. В режиме Sphere круглая граница остаётся при любом Tiling.
Режимы используют готовое изображение, а не продолжают процедурный источник за его пределами.
В Classic у Spherize, а также у Twirl и Polar Coordinates, нет маски у края рамки: искажение продолжается за ней.
Sphere — исключение: оно создаёт круглую маску с чётким сглаженным краем. При сильном значении
в немаскируемых режимах в кадр могут попасть области за границей входного изображения — там повторяется его край.
RGB и альфа искажаются вместе.
Полярные координаты
Distortion → Polar Coordinates — один эффект с переключателем Mode (по умолчанию To Polar):
- Amount в шапке FX постепенно меняет координаты выборки: 0 оставляет исходное изображение, 1 полностью применяет выбранное преобразование ниже.
- To Polar сворачивает полосу в круг: горизонталь идёт вокруг центра, вертикаль — от центра наружу.
- From Polar разворачивает круг в полосу: слева направо идёт полный оборот, снизу вверх — расстояние от центра.
Input задаёт рамку источника: полосы у To Polar, круга у From Polar.
Output задаёт положение и форму результата: круга у To Polar, полосы у From Polar.
У обеих рамок есть позиция, размер и поворот, а также кнопки Edit on Canvas и сброса.
По умолчанию позиция (0.5, 0.5), размер (1, 1) и поворот 0 охватывают всё изображение.
Перемещай, масштабируй или поворачивай Input, чтобы выбирать исходный рисунок независимо от его размещения в Output.
Angle Offset сдвигает начало оборота в градусах; при нуле оно справа от центра, обход — против часовой стрелки.
Radial Offset смещает начало радиуса: положительное значение у To Polar отодвигает рисунок от центра,
а у From Polar начинает выборку дальше от центра. Единица равна половине ширины или высоты рамки круга по её осям: Output у To Polar, Input у From Polar.
Радиус не ограничивается рамкой, плавного затухания нет. Чтобы на круге не было видимого шва, левый и правый края исходной полосы должны совпадать. В самом центре вся ширина полосы сходится в одну точку, поэтому обратное преобразование не восстановит там детали.
