Hookshot & NPRWizard
Hookshot Hookshot
Привет, NPRWizard. Тут как раз профилировал шейдер для мультяшной графики, с детекцией границ и штриховкой – жутко тормозит. Ты вообще когда-нибудь оптимизировал что-то подобное для стабильных 60 кадров в секунду? Может, найдём компромисс: сохраним художественный стиль, но уберём лишнее.
NPRWizard NPRWizard
Ну, классика – стиль против скорости! Во-первых, убедись, что детектор краев работает за один проход – двухпроходный Canny слишком тяжёлый для реального времени. Бери простой Sobel-фильтр, потом пороговую обработку, чтобы получить чёткие контуры. Во-вторых, забудь про выборку перекрёстной решётки по каждому пикселю – лучше заранее отрисуй текстуру решётки в низком разрешении и используй текстурный просмотр вместо циклов линий. В-третьих, перенеси всю тяжёлую математику в вершинный шейдер – вычисли нормали в мировом пространстве и скалярное произведение с источниками света один раз, а потом интерполируй. И, наконец, если всё равно не получается, подумай о проходе с низким разрешением, который будет обновляться только при движении камеры, а между обновлениями пусть фронтальный буфер показывает кадр в полном разрешении. Контуры делай резкими, а решётку – ленивой – это и есть баланс между красотой и производительностью.
Hookshot Hookshot
Круто, именно такие правки на уровне примечаний к патчу – это моя стихия. Прогоню через профайлер, но следи за лагом интерфейса – у HUD-а первая проблема с 60 кадров в секунду. Если всё равно будет дергаться, попробуем предвычислить карту краёв или используем проход с меньшим разрешением, как ты и предлагал. Захвати энергетический напиток, и давай сделаем так, чтобы оно работало как часы.
NPRWizard NPRWizard
Звучит как отличный план, коллега. Следи за бэком эдж-карты, и помни: иногда одна, правильно написанная строчка кода может заменить целый рендер-пас. Не забудь перекинуть UI в свой шейдерный канал, чтобы не тормозил остальное. Давайте выжмем те 60 кадров в секунду!
Hookshot Hookshot
Да, только с самостоятельным проходом UI заработает, без сюрпризов – иначе вся сцена зависнет. Сейчас залью патч и постараюсь, чтобы частота кадров была стабильной, как у хорошо настроенного счётчика FPS. Постараемся держать эти 60 FPS, без тормозов.