Устранение Z-конфликта в Origami
Видели ли вы когда-нибудь, как полигоны вашего дизайна перекрываются, создавая так называемый эффект “z-fighting”?

В этом уроке мы объясним, почему это происходит и что с этим можно сделать.
Простейший пример
Создайте новый документ Illustrator и нарисуйте простую развёртку. Красный прямоугольник — линия реза, зелёная пунктирная линия — линия сгиба, настроенная на складывание под 180 градусов.

Задайте слою имя “Origami” и добавьте синий прямоугольник в другой слой в качестве изображения:

У нас должна получиться бело-синяя бумага, сложенная пополам где-то посередине. Посмотрим на эту развёртку в Origami:

Вот и он, простейший Z-конфликт. Синяя часть “конфликтует” с белой (фактически обратной стороной) фигуры, и поверхность частично синяя, частично белая, в зависимости от угла обзора.
Почему это происходит?
Причина проста: линия сгиба на 180 градусов размещает левую часть фигуры точно там же, где и правую. Итоговая модель состоит из двух плоскостей в одной позиции, поэтому при рендеринге практически невозможно определить, какая из них перекрывает другую. Наконец, поскольку рендеринг округляет числа для ускорения, даже соседние пиксели могут давать разный результат! Вот почему вы видите обе плоскости одновременно.
На самом деле не обязательно иметь линию сгиба ровно 180 градусов для этого эффекта. Представьте клапан для склейки, расположенный точно там же, где другая панель (боковая или передняя). Это даёт аналогичный Z-конфликт.
Как это исправить?
Чтобы избежать Z-конфликта, нужно избегать перекрывающихся панелей. Это решает 99% случаев Z-конфликта, поэтому полезно знать несколько приёмов. Есть разные способы, и самые простые не всегда лучшие. Вот что можно сделать:
Поиграйте с углом сгиба
Самый простой способ убрать Z-конфликт в примере выше — установить угол складывания чуть меньше 180 градусов, скажем, 179 градусов.

Этим вы говорите Origami не складывать детали полностью вместе, поэтому плоскости не перекрываются, и мы легко избавляемся от Z-конфликта:

Однако это имеет свою цену: виден зазор в правой части фигуры. Поскольку угол равен 179 градусам, панели больше не параллельны, и верхняя постепенно приподнимается над нижней.
Этот метод хорошо работает для маленьких и/или невидимых панелей, таких как клапаны для склейки. Просто сложите их немного внутрь, чтобы избежать перекрытия и предотвратить Z-конфликт.
Используйте две линии сгиба вместо одной
Другой подход — заменить одну линию сгиба на 180 градусов двумя линиями по 90 градусов с небольшим зазором между ними. Так плоскости остаются параллельными, но появляется небольшое расстояние в 3D, что устраняет Z-конфликт. Сделаем это с нашей тестовой развёрткой:

Мы добавили две линии сгиба с зазором между ними. Посмотрим на 3D-модель в Origami:

Z-конфликта нет, и зазор постоянный. Хотя он выглядит большим, это не важно, так как мы всегда можем его контролировать, сдвигая линии сгиба ближе в развёртке. Сделайте зазор примерно равным толщине бумаги, и никто этого не заметит. Кстати, именно это и происходит с бумагой в реальной жизни, когда её так складывают.
Этот метод подходит для различных ярлычков, бирок и других деталей, складываемых вместе на 180 градусов. Именно так Origami делает для коробок с язычком в своём онлайн-генераторе развёрток.
Используйте правильные размеры
Для большинства картонных коробок правильное решение — скорректировать размер панели так, чтобы Z-конфликт был невозможен. Например, если у вас развёртка с четырьмя сторонами и клапаном для склейки:

Нужно сделать “Панель 1” слева немного меньше противоположной “Панели 2” посередине. Первая панель может быть задней, а вторая — передней, и они должны быть одинакового размера, но из-за клапана возникнет Z-конфликт между ним и самой правой панелью, если ширина первой и второй панелей одинакова.
Однако если уменьшить ширину первой панели и сдвинуть клапан с его линией сгиба немного вправо (на толщину бумаги), клапан фактически окажется внутри коробки, как и должно быть.
Генератор развёрток Origami делает это для клапанов склейки в коробках FEFCO и для покровных панелей в ECMA.
Используйте сложные линии реза для клапанов
Иногда можно сохранить размер панели как есть. Вместо этого линию реза у клапана делают немного сложнее, чтобы он сам заходил внутрь коробки. Сравните простой клапан слева с изменённым справа:

Правому варианту не нужно сужать панель. Вместо этого она немного подрезана, что фактически сдвигает линию сгиба вправо, и клапан оказывается внутри коробки.
Origami использует этот метод в генераторе развёрток для клапанов склейки в коробках ECMA.
Вот и всё
Теперь вы лучше понимаете Z-конфликт и не должны удивляться ему. В следующий раз, увидев его, просто выберите один из описанных методов и измените развёртку, чтобы избежать этого эффекта.
Не стесняйтесь делиться своими приёмами борьбы с Z-конфликтом, чтобы мы могли обновить этот учебник.
Хотите еще?
- Почти вертикаль/горизонталь — линия чуть отклонена;
- Невозможная фигура — не складывается как целое;
- Незамкнутый контур — нужен сплошной непрерывный контур;
- Линия сгиба во внешнем контуре — контур должен быть из линий реза;
- Пересечение кривых — это может быть непросто;
- Пустая развёртка — почему развёртка не видна?
- Висячий элемент — если контур никуда не ведёт;
- Невозможная линия сгиба — линия сгиба, которой не должно быть;
- Несогласованные линии сгиба — одинаковые линии — один угол;
- Некорректная линия сгиба — у линий сгиба есть ограничения;
- Перекрывающиеся линии — линии не должны перекрываться;
- Отдельный элемент — развёртка должна быть цельной;
- Точки слишком близко — избегайте скученности;
- Z-конфликт — что делать с перекрывающимися полигонами.
Ниже перечислены проблемы, которые выявляли старые движки складывания развёрток:
- Пересекающиеся отверстия — отверстия не должны перекрываться;
- Внешнее отверстие — все отверстия внутри внешнего контура;
- Смещённые элементы — концы должны совпадать идеально;
- Слишком маленькие элементы — контуры должны быть простыми;
- Ошибка триангуляции — Origami не может создать 3D-сетку развёртки.
Adobe и Adobe Illustrator являются зарегистрированными товарными знаками или товарными знаками компании Adobe Systems Incorporated в Соединённых Штатах и/или других странах.