Substance Painter: Как пофиксить баг с постоянно обновляющимися миниатюрами ресурсов на панели Assets
Если вы работаете в Substance Painter, вы вполне могли столкнуться с тем, что при просмотре большого количества самых разных ресурсов — будь то смарт-материалы, альфы, кисти или даже обычные текстуры — их миниатюры (thumbnails) постоянно пытаются обновиться и отрисовываются в окне Assets заново.
С одной стороны, страшного в этом ничего нет — обычный косметический дефект с подгрузкой ресурсов, который, благодаря сверхскоростным SSD, достаточно быстро пропадёт. Часть пользователей эту проблему вообще не замечает, списывая на стандартное поведение программы.
С другой стороны, подобное поведение может крайне расстроить особо впечатлительных пользователей, которые привыкли к плавной и быстрой работе, особенно на фоне того, сколько ресурсов потребляют последние версии Adobe Substance Painter даже с пустым проектом.
Если вы попробуете задать вопрос по поводу кэширования иконок в SP, то практически сразу найдёте ответ:
Зайдите в File → Settings и увеличьте размер кэша (параметр Local cache budget (in MB)). Его значение по умолчанию — всего 500 MB.
Казалось бы, всё. Ответ найден. Проблема решена. Устанавливаем значение побольше, перезагружаем Painter, обновляем иконки... и видим, что проблема никуда не делась. Painter по-прежнему подгружает иконки. Даже если вы выставите размер кэша в 10 GB — проблема всё равно никуда не денется.
Проблема в том, как работает SP: сначала он генерирует изображение миниатюр и загружает их в кэш, а затем, по мере необходимости, загружает часть миниатюр в оперативную память. Если верить документации, то количество памяти, зарезервированной под иконки/миниатюры, должно быть равно 500 MB. Однако, по какой-то причине, при запуске программы SP выделяет всего 100 MB. В результате этот кэш довольно быстро переполняется: иконки выгружаются, затем загружаются другие иконки с диска — и так по кругу. До бесконечности. Даже если убрать в сторону косметический эффект, подобное поведение приводит к тому, что ваша система тупо гоняет ресурсы туда-сюда. Это точно НЕ НОРМА!
Сложно сказать, насколько распространена эта проблема, но судя по темам на форуме Adobe и Reddit, люди сталкиваются с ней уже 2–3 года как минимум:
Теперь перейдём к тому, как узнать текущий размер кэша. Для этого достаточно зайти в панель Log (MM Windows → Views → Log) сразу после запуска программы. Ищем эту строчку.
[Resources List Model] Icons memory budget set to 100MB.
Чтобы увеличить размер кэша, достаточно создать переменную окружения SUBSTANCE_PAINTER_PREVIEWS_MEMORY_BUDGET и выставить нужное значение. Для работы с переменными крайне рекомендую использовать Rapid Environment Editor (RapidEE).
Как мы видим, после перезагрузки и полного кэширования всё работает как надо, без лишних подгрузок.