seamExpander – Подавление швов текстуры


Type: Photoshop Java Script (jsx)
Name: seamExpander
Version: 1.0
Released: 2007.01.05
Download

Скрипт предназначен для быстрого автоматического расширения контуров текстур для исправления проблем со швами. К примеру, zBrush может выдать текстуру с артефактами на швах (в основном при наклонных border edges в маппинге) и при рендере будут пролезать черные пикселы (в общем-то, именно эта проблема и побудила меня придумать данную утилиту).


– Назначение и использование –

Выделяем слой, содержащий текстуру, которой хотим расширить контура. Исполняем скрипт. Получаем дополнительный слой seamExpand, содержащий результирующие контура. Исходная текстура никаким образом не модифицируется.

Теперь как это работает. GUI скрипта выглядит следующим образом:

Прямо сразу можно нажимать Expand contours и получать результат на основе дефолтовых настроек. Скрипт ищет области “пустоты” в текстуре, т.е. те, где текстуры нет – обычно для текстур это черный фон. Цвет этой “пустоты” скрипт определяет по самому верхнему самому левому пикселу изображения (так как обычно он не используется для шелловых текстур 🙂 ) По найденному цвету производится выделение в зависимости от одного из следующих режимов:

Sample 1×1 pixel – non contiguous – расширение только внешних границ текстурных кусков. От упомянутого пиксела выделение будет увеличено до замыкания цветовой области. Так как сами текстуры обычно отодвигают от границ изображения, выделиться должны все внешние границы. Внутренние границы текстуры с “пустотой” (к примеру, область глаза или ноздри, или ногти в прилагаемом тестовом изображении) останутся нетронутыми.

Sample 1×1 pixel – contiguous – (по дефолту) расширение всех границ. Найденный цвет будет выделен по всему изображению, и контуры расширятся как на внешних, так и на внутренних границах (могут проскочить и ненужные области, если они покрашены в тот же цвет, что и пустой фон, но так как результат будет создан в отдельном слое – его всегда потом можно подправить вручную).

Use custom selection – расширение границ выделенных пользователем областей. Предварительно надо выделить области пустого фона самостоятельно. Цвет в 1х1 пикселе уже не будет играть роли. Предназначено для сложных ситуаций или для расширения только определенных границ. На примере ниже я пометил красным выделенную мною предварительно область ногтя (так как небегающие муравьи выглядят совсем ужасно 🙂 ) – расширяются только ее границы.

Num pixels to expand – толщина расширения. По дефолту – 1 – и обычно это дает самый чистый результат. При необходимости можно попросту исполнить скрипт несколько раз по одному пикселу. Но при желании можно попробовать и эту опцию.

Overlap contours – нахлест расширенных контуров на исходные границы. По дефолту – отключено, что добавляет новые контура к исходным, не перекрывая их. Соответственно, при значении 1 новый контур перекроет оригинальную границу на 1 пиксел, при значении 2 – на 2 пиксела и т.д.

На иллюстрации выше расширение поставлено в значение 2, а нахлест – 1. В итоге новый контур будет содержаться в следующих областях – два пиксела наружу и один внутрь от исходной границы:

Tolerance – управляет выделением “по похожести” цвета на полученный из 1х1 пиксела. По дефолту – 0 – выделяются только пикселы с точно таким же цветом. При увеличении значения будут выделены с близкими значениями. Мне это нужно в первую очередь для устранения артефактов, которые иногда появляются на границах текстур из zBrush’а. На иллюстрации ниже видны отдельные пикселы почти-белого цвета. Я залил черный фон чисто-белым, но так как они почти-белые – при толерантности = 0 считаются частью текстуры и остаются при расширении. Подняв толерантность до 10 их удалось устранить в новых контурах:

Anti-Aliased – включает антиалиасинг при создании выделения – может пригодиться если текстура с жесткими границами была уменьшена с фильтрацией и в прочих ситуациях.


– Установка –

Для установки скрипта его нужно поместить в папке Photoshop’а в Presets>Scripts (к примеру, D:\Photoshop\Presets\Scripts\), перезапустить Photoshop, и вызывать скрипт из File>Scripts>Seam Expander:

Posted on January 5, 2007 at 16:25 by Ark · Permalink
In: Texturing · Tagged with: , , , , , ,

One Response

Subscribe to comments via RSS

  1. Written by Владимир
    on 26 September 2014 at 11:18
    Permalink

    Спасибо, тебе добрый человек.

Subscribe to comments via RSS

Leave a Reply