Оптимизация графика в Substance Designer. Часть 1

Оптимизация всегда зависит от конечной цели. Например, если мы создаём материал исключительно для портфолио и рендера, и наша конечная цель — получить карты материала и красивую картинку, то оптимизация не слишком важна.


Но если мы работаем в команде, делаем материалы для стока или используем связку Designer-Painter, то оптимизация приобретает огромное значение. Никому не понравится, если относительно простой материал будет прогружаться очень тяжело и медленно, до предела нагружая компьютер. В этой статье Василина Сиротина расскажет, как сделать материал более быстрым и лёгким.


Автор: Василина Сиротина

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

Работа из портфолио Василины


Условно есть два вида оптимизации: техническая, связанная с ускорением работы и рендера материала, и визуальная, которая скорее относится к организации графика, что тоже важно. Рассмотрим оба вида.


Техническая оптимизация

Техническая оптимизация графика сводится к ускорению вычислений. В верхней части графа есть полка с функциями настройки вида графика. Если нажать на иконку «i» (infomation), то появится всплывающее окно, в котором можно выбрать, какую информацию отображать в графе, — в том числе и тайминг, который позволяет отслеживать, сколько времени требуется на просчёт каждой ноды.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

С помощью тайминга легко определить, на что требуется больше вычислений. Чем меньше миллисекунд занимает вычисление какой-либо ноды, тем легче и быстрее материал. Но это не значит, что нельзя использовать «тяжёлые» ноды. Наоборот: можно и нужно, если это требуется. Просто не стоит забывать о «чистке» графика от лишних действий, которые его нагружают.


Далее опишем способы, при помощи которых можно сделать материал более лёгким.


1. Размеры нод Uniform Color и Gradient Linear

Когда используется однотонный цвет, нет смысла оставлять ему большое разрешение, поскольку на конечный результат это не влияет. Зато высокие значения разрешения влияют на производительность.


Поэтому имеет смысл в ноде Uniform Color переключить output size с Relative to Parent на Absolute и выставить значения 16 на 16 пикселей, — но не ниже. Значения ниже 16х16 только замедлят рендеринг, — о чём предупреждают разработчики.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост
Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

Градиенты типа Gradient Linear можно сжать до 16 пикселей по оси, по которой их значения не меняются.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

2. Ноды — драйверы

Ноды типа Perlin Noise, Gaussian Noise и Clouds2 имеют мягкие градиенты и мало шума. Они часто становятся драйверами для нод, которые деформируют изображение: Slope Blur Grayscale, Warp, Directional Warp, Mosaic Grayscale и других.


Здесь можно «порезать» разрешение ноды-драйвера в целях оптимизации. Конечный результат практически не изменится, зато тайминг уменьшится в разы. Но с остальными шумами стоит быть осторожнее в плане урезания разрешения, — чем фактурнее шум, тем сильнее его разрешение влияет на конечный результат.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост
Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

Важно: при смешивании урезанной ноды с нодой обычного размера через Blend нужно внимательно следить, чтобы бленд и весь дальнейший график вместе с ним не поменял разрешение на урезанное.


Если бленд меняет разрешение, внутри него нужно поменять Output Size с Relative to Input на Relative to Parent. В таком случае разрешение урезанной ноды не поменяет разрешение последующей цепочки нод.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

3. Tile Generators

В Substance Designer достаточно инструментов для создания тайлов. Tile Sampler — самый популярный, потому что в нём больше всего настроек и гибкости. Это очень полезная нода, но и очень дорогая.


Иногда без неё не обойтись, но, чаще всего, ее легко можно заменить более дешевыми аналогами: Splatter, Tile Generator и Tile Random. Они отлично справляются с несложными тайлами, будь то кирпичи, плитка, деревянные доски или черепица.


4. Shape and Tile Generator

Если ты генерируешь тайл из шейпа, и внутри тайла он будет небольшого размера, то разрешение шейпа можно также понизить. Это не повлияет на результат, но сделает график легче.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

5. Оптимизация Flood Fill

В ноде Flood Fill есть параметр, в котором можно выбрать режим просчёта градиентов. По умолчанию всегда стоит режим Complex or big shapes, и он почти всегда работает корректно, но часто его меняют на No failure mode, чтобы избежать ошибок. Этот режим — более «дорогостоящий». Если в ноду Flood Fill подключена жёсткая чёрно-белая маска, то ошибок возникнуть не должно: следовательно, режима No failure mode в таком случае нужно избегать ради оптимизации.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

С помощью цепочки нод из Flood Fill часто получают разные варианты тайла в градациях серого (нода Flood Fill to Random Grayscale), чтобы получить разнообразные маски.


В этом случае дублирование одной и той же ноды с разными настройками можно заменить на Flood Fill to Random Color + RGBA Split. Таким образом, из RGBA Split мы получим четыре вариации градаций серого, что очень упрощает работу.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост
Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

6. RGBA Merge + RGBA Split

В работе с материалом бывают такие моменты, когда нужно разные тайлы и формы прогнать через одну и ту же цепочку действий. А каждая повторяющаяся цепочка с одинаковыми данными уводит нас от оптимизации. Есть прекрасный способ избежать дублирования и облегчить себе работу: это нода RGBA Merge.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

Суть метода в следующем: в ноду RGBA Merge подключаются нужные тайлы или формы, в три канала по цветам. После чего результат этой ноды можно подключить в цепь действий, где все три формы будут изменяться. После чего цветную ноду можно снова разделить по каналам с помощью RGBA Split и получить исходные чёрно-белые карты, но уже в измененном виде. Так несколько одинаковых цепочек действий можно заменить всего лишь одной, сократив при этом количество нод.


Важно: для ноды RGBA Merge как цветной нужно использовать соответствующие ноды с припиской «Color»: Slope Blur Color, Blur HQ Color и тд.


7. Сэмплы

В нодах типа AO, Slope Blur, Mosaic Grayscale, Blur HQ и некоторых других, есть возможность настраивать сэмплы. Чем выше сэмплы, тем качественнее результат и, соответственно, больше тайминг. Поэтому можно смело урезать сэмплы с 32 до 16 или меньше, в зависимости от результата. В большинстве случаев это практически не повлияет на результат, но заметно уменьшит тайминг.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

Качество внутри карты АО напрямую связано со скоростью рендеринга этой ноды. Поэтому, если разница в сэмплах не критична, а материал по разрешению не выше 2к, то можно ставить сэмплы на 8 и ниже, — это уменьшит тайминг чуть ли не вдвое.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

8. Замена дорогостоящих нод на более дешевый и быстрый аналог

Некоторые шумы сильно увеличивают затраты на вычисления в зависимости от масштаба рисунка. Чем выше scale, тем медленнее нода. Это относится к таким нодам, как BnW Spots, Directional Noise, Cells, Dirt, а также к другим, в которых можно увеличить scale. Поэтому, когда требуется добавить в текстуру мелкий шум, лучше заменить его более дешевым и быстрыми аналогами: White Noise, Fractal Sum Base, Blue Fast Noise и Anisotropic Noise.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

Нода Blur HQ размывает более качественно, чем простой Blur, но и весит она, соответственно, больше. Поэтому в случаях, когда можно ограничиться обычным Blur, лучше его и использовать. Таким же образом можно заменить Anisotropic Blur на Directional Blur.


9. Switch, Blending mode Switch

Часто бывает нужно сделать процедурный материал, в котором можно менять основной паттерн. Например, округлые камни заменить квадратными, поменять одну форму черепицы на другую — и тому подобное. Для таких случаев приходится создавать разные формы и вариации паттернов, которые также будут занимать дополнительное место в графе и памяти.


Для оптимизации этого процесса придумали Blending mode Switch в ноде Blend, который заменяет один паттерн на другой. А на основе Blending mode Switch сделали ноду Switch, более удобный в использовании аналог этого режима. Переключение между паттернами происходит только в целых значениях: 0 или 1 в ноде Blend и False/True в ноде Switch.

Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост
Оптимизация графика в Substance Designer. Часть 1 Xyz, 3D, 3D моделирование, Substance Designer, Урок, Гайд, Гифка, Длиннопост

Прелесть в том, что в двух этих нодах рендерится только тот паттерн, который вы укажете. Другой просчитываться не будет, — следовательно, не даст дополнительной нагрузки на график.

CGI Media

2.9K пост6.5K подписчиков

Добавить пост

Правила сообщества

• Посты должны соответствовать тематике cообщества.

• Не допускается спам и нарушение правил сайта pikabu.