Что не должно кукаться
Быстрее всего то, что не считается. Где прячется лишний кук, почему Switch лучше Blend, что даёт Null CHOP в Selective и какие галки Render TOP экономят видеокарту.
Документация обещает от оптимизации ускорение в 2–20 раз, и в основном оно приходит от работы, которую перестали делать зря. Ищут по порядку: что кукается без нужды, что считается в лишнем разрешении, что считается дважды, что пересчитывается каждый кадр, хотя меняется раз в минуту. Ускорять сами вычисления — в последнюю очередь, и каждый шаг с замером, Performance Monitor и probe.
| Источник | Как найти | Что делать |
|---|---|---|
| Открытые вьюеры | Глазами | Закрыть, мерить в Perform |
Cook Every Frame, Always Cook |
Поиск по параметрам, Alt+S |
Выключить без причины |
| Ветки без вывода, но с вьюером | Performance Monitor | Cooking у компонента — выкл |
| Сцены за Blend или Cross | Логика проекта | Switch |
| Скрипты каждый кадр | onFrameStart в Execute DAT |
На события: CHOP Execute, Parameter Execute — Скрипты и колбэки |
| Медленные выражения Python | Подсказка над параметром | Упростить |
Выражения Python в параметрах обычно компилируются; подсказка над
параметром пишет (Optimized) или (Un-optimized), а Perform CHOP считает
их в activeexpressions и optimizedexpression. Дороже всего длинные
функции в расширениях и модулях.
Switch TOP тянет один вход, и остальные не считаются, пока не включён
Blend between Inputs. Cross и Blend считают оба всегда — при одной
сцене из десяти это десятикратная разница. Между сценами Switch, а на время
перехода считаются две ветки — Кук. Неизменное —
импорт геометрии, однажды сделанные текстуры, таблицы со старта —
запирают Lock, и узел становится сохранёнными данными, Вьюеры и флаги.
Процессор
Null CHOP в Selective останавливает пересчёт ниже по цепочке, если вход не изменился, но сам при этом сравнивает данные на каждом изменении. Transform SOP двигает каждую точку на процессоре, а те же числа в Geometry COMP видеокарта применит разом. DAT, SOP и CHOP куда быстрее, когда от кука к куку меняют значения, не добавляя строк, точек и каналов. Math CHOP, сливающий CHOP разной длины или с разным началом, бывает неожиданно длинным. Кусок Python часто заменяется сетью из CHOP и DAT на порядок быстрее. Антивирус и лишние службы на машине шоу выключают.
Видеокарта
Половина разрешения по осям — четверть пикселей и примерно четверть
времени, а маски, размытие, свечение, feedback,
вход TOP to CHOP и нейросетей
полного размера почти не просят. Blur TOP дорожает с размером фильтра.
В рендере много решают свет и материалы: конус дороже точки, Rim Lighting
в Phong MAT нагружает каждый пиксель. Раннюю проверку глубины и отсечение
задних граней включают против перерисовки. У Render TOP на Advanced —
Draw Depth Only для карты теней и выключенный Color Output Needed,
когда цвет не нужен.
Не всё нужно считать 60 раз в секунду: анализу картинки хватит 15–20 раз, логике — событий, таблицам — раза в секунду, тяжёлой модели — реже с интерполяцией. Timer CHOP или счётчик кадров разрешают кук по условию, а тяжёлое выносят в процесс со своей частотой — Несколько процессов.
Нужное в нескольких местах считают раз и кладут в Null. Дубли цепочек —
самая частая причина внезапных тормозов.
Половина «очевидного» не даёт ничего, а мелочь иногда даёт вдвое. Замер до и после — на каждую правку.
Нашли в статье ошибку, устаревшее или непонятное место?