Очень многие заинтересовались программой, несколько дней я занимался конвертацией тестовых изображений и за это время мы определились с тем куда двигаться дальше. Сейчас я постараюсь развеять все вопросы.
Для тех кто ещё не видел -
видео
Vectorizer
– Что это?
Это программа для автоматизированной работы с векторной графикой. С её помощью создание векторных иллюстраций
получит свободу и гибкость, больше характерную для растровых рисунков.
– Как именно?
В основе идеи лежит «умная градиентная сетка», которая автоматически адаптируется под связанную растровую графику. В
целом, этот процесс принято называть векторизацией изображения – вот только до сих пор нет инструмента с поддержкой
плавных переходов цвета.
На данный момент наша технология уже проверена, хотя ещё предстоит немало работы для повышения удобства
использования и устранения слабостей. Вот один из реальных примеров, на котором тестировался алгоритм в процессе
разработки:
Справа – автоматически построенная градиентная сетка 25х25 ячеек (выкл и вкл каркас).
Слева – растровый оригинал 256х256 pix.
Удачнее всего конечно распознаются изображения с плавными переходами цвета. Кроме того,
алгоритм вычислительно тяжелый, нужен хороший процессор для обработки настолько
детальных сеток и дальнейшие оптимизации.
Поэтому следующий шаг развития будет направлен на сегментирование изображения, и
представление его частей более простыми сетками: это положительно скажется на скорости,
точности и редактируемости. Потому что иногда умные градиент меши слишком умны, что
приносит множество мелких проблем сказывающихся на качестве (см. пример с цветком,
25х25 ячеек; справа для наглядности дополнительно выведен каркас сетки).
Кроме плотных сеток, мы также исследовали задачу с другого края: изображение формируется множеством треугольников
из мешей с одной ячейкой. После предварительного рассчёта вы можете простым движением слайдера изменить количество
треугольных мешей, от практически полной фотореалистичности до стилизации. Например:
Кстати, о практике.
В Иллюстраторе есть баг, проявляющийся когда в его настройках включено
сглаживание (см. скриншот слева).
Баг проявляется только на рабочем холсте Иллюстратора, а финальные
результаты отрисовываются корректно. Но мы предусмотрели обходной маневр
и подкладываем под треугольники цельный градиент меш маскирующий
проблему.
– Какие планы по развитию?
Версия 1.0 — включает в себя то что уже работает (превращение картинки 512х512 без дыр в альфа-канале в набор
треугольников желаемой детализации с грубым градиент мешем на фоне) и доработки, связанные с построением треугольной
сетки.
● Поддержка psd и «горячего обновления» данных после пересохранения исходного файла.
● Добавление опциональной стилизации – плоских треугольников. На момент написания этого текста, прямо на главной
ShutterStock висит векторный тигр:
Уже сейчас Векторайзер может создавать вот такие изображения (слева растровый оригинал, справа треугольные меши низкой детализации):
И если отключить у треугольников сглаживание, то получатся изображения, сходные по стилистике с популярным тигром. Только
созданные за несколько минут.
● Опция слияния треугольников в квады. Кроме того, что это освежит стилистику это уменьшит количество градиент мешей и вес
итогового файла в два раза.
● Алгоритм поддерживает ручную регуляцию зон повышенной \ пониженной детализации. Вплоть до рисования линий, к которым
будут стремиться вершины треугольников. При наличии интереса, эта возможность будет реализована в виде кистей «увеличить \
уменьшить детализацию».
● Извлечение элемента изображения в отдельный объект, с закрыванием дыры под ним:
● В запасе есть улучшение алгоритма упрощения: при том же числе треугольников результат станет ближе к оригиналу примерно
на треть (оценка математическая; человеческое восприятие результата сложно измерить заранее).
● Разные технические задачи, пользователю не очень интересные, но необходимые для нормальной работы программы и
получения хорошего результата.
Версия 2.0 —развитие умного градиент меша. Как уже упоминалось, даже умную сетку нужно направлять в правильном
направлении человеку. Поэтому планируется два смежных набора функций: для векторизации сетками и для удобного
редактирования результатов.
● Сегментирование изображения с помощью инструмента, который можно описать как многоточечная волшебная палочка (из
Фотошопа). То есть автоматизированное разделение изображения на отдельные логические куски — ровно те, которые вам нужны
и\или удобны для дальнейшего превращения в градиент меш.
● Редактирование самих полученных сеток: покраска их вершин кисточкой, добавление\уменьшение детализации сетки,
рисование подсказок для автоматической адаптации сетки (например, в каком направлении должны идти линии в нужном месте).
● Режим автоматического сглаживания касательных при перемещении вершин — не нужно постоянно править их руками, только
один раз в конце (и то, если не устроил результат).
●Общее улучшение качества автоматической векторизации — реже сетка, быстрее работа, меньше артефактов.
● Режим художника. У вас, возможно, есть какие-то графические идеи, отложенные до лучших времен из-за того, что качественно
реализовать их в векторе не так-то просто за разумное время. Чтобы подобных сомнений никогда не возникало, мы думаем не
только об использовании готовых изображений, но и о создании их с нуля прямо в Векторайзере!
Второй главной целью развития будет свободное рисование кистями на холсте, с тем чтобы умные градиентные сетки «на
лету» адаптировались к изменениям и показывали результат векторизации. Взгляните на эти примеры иллюстраций и попробуйте
представить, как легко было бы их просто «нарисовать» в векторе, если градиентные сетки были бы достаточно умными:
Версия 3D — направлена на интеграцию ещё одного способа создания иллюстраций: с использованием трехмерной графики.
Вот, к примеру, пара топовых векторных иллюстраций:
Кстати, 3D тоже можно стилизовать, ниже примеры стилизованной графики, полученной из моделей автоматически. И нет
никаких причин, чтобы всё это невозможно было превратить в вектор:
Продолжение ниже.