AIMP Forum

AIMP for PC => Предложения / Suggestions => Skin Editor, Skin Engine => Skin Engine => Topic started by: Kibermanick on February 28, 2026, 16:31:32

Title: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on February 28, 2026, 16:31:32
Предлагаю добавить дополнительный режим размытия при котором можно указывать начальную и конечную степень размытия в заданном направлении. Этакий градиентный способ размытия. Если я правильно понимаю как работает размытие то, данная функция не сильно сложна в реализации и не требует большей мощности железа. При стандартном размытии для каждого пикселя рассчитывается среднее значение в определенном радиусе, в том что предлагаю я используется тот же метод но добавляется построчное размытие где у каждой новой строки свой радиус усреднения. Сейчас для реализации похожего эффекта приходиться использовать много TASEBlurredGlass что плохо сказывается на производительности.

(https://aimp.ru/forum/index.php?action=dlattach;topic=77378.0;attach=77089)

Дополнение подсказанное Black_AVP_Bim: Определять степень размытия не линейно а маской с произвольным рисунком. 
Я бы несколько изменил начальное предложение, чтобы степень размытия определялась маской, это более гибкий способ, номер кадра маски можно переключать скриптом.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on March 01, 2026, 15:57:22
Слой-маска разве для этого не подходит?
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on March 01, 2026, 16:26:02
Слой-маска разве для этого не подходит?

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

(https://aimp.ru/forum/index.php?action=dlattach;topic=77378.0;attach=77097)
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on March 01, 2026, 16:30:03
А надо так:

(https://aimp.ru/forum/index.php?action=dlattach;topic=77378.0;attach=77099)
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on March 01, 2026, 16:45:37
нет, маска не дает нужного результата и добавляет лишний эффект дымки вместо размытия.
Да, есть такое. Значит, алгоритм размытия нужен другой.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on April 13, 2026, 13:21:38
Редактировал в ФШ портреты, вспомнил про эту тему. В принципе, можно решить эту задачу, используюя пирог из двух каверов: в верхнем градиентная маска (блюр = 0), а нижний расблюрен до нужной кондиции.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 13, 2026, 21:28:02
Редактировал в ФШ портреты, вспомнил про эту тему. В принципе, можно решить эту задачу, используюя пирог из двух каверов: в верхнем градиентная маска (блюр = 0), а нижний расблюрен до нужной кондиции.

А где оно там?
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 13, 2026, 21:51:06
Редактировал в ФШ портреты, вспомнил про эту тему. В принципе, можно решить эту задачу, используюя пирог из двух каверов: в верхнем градиентная маска (блюр = 0), а нижний расблюрен до нужной кондиции.

Это конечно хорошо но работает только в пределах кавера. А мне оно надо везде кроме кавера, ну кавер там конечно тоже подпадает но не как основа😅.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 13, 2026, 22:06:34
А как вообще происходит отрисовка? Элементы отрисовывают себя и помещают на контекст или сначала получают фрагмент контекста а потом рисуют на нем себя и возвращают в общий контекст? И еще вопрос, размытие прям полностью делается процессором?
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on April 13, 2026, 22:14:21
А мне оно надо везде кроме кавера, ну кавер там конечно тоже подпадает но не как основа😅.
Везде - это где, всё окно, включая все контролы?
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 13, 2026, 22:17:53
Везде - это где, всё окно, включая все контролы?

Ага, ну все то же что может размывать обычный TASEBlurredGlass.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on April 13, 2026, 22:23:06
 :-\ Ну, я понимаю, можно размыть фоновую текстуру, но зачем размывать те же кнопки, регуляторы, индикаторы и пр.?
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 13, 2026, 22:27:50
:-\ Ну, я понимаю, можно размыть фоновую текстуру, но зачем размывать те же кнопки, регуляторы, индикаторы и пр.?

Я делаю обложку в которой попытался сымитировать такое размытие на плейлисте сверху и в главном меню(кнопка верхний левый угол). Но повторюсь надо много блюров разом что тяжеловато для некоторых компьютеров.

https://aimp.ru/forum/index.php?topic=65063.0
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on April 13, 2026, 22:41:07
Интересно смотрится. Но как тут по-другому сделаешь? Большой нагрузки на проц я не заметил, даже на старом железе не более 3-4%
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on April 13, 2026, 22:43:44
Нагрузка возрастает до 20% при скольжении курсора по кнопкам. Что ты там за ним таскаешь?
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 13, 2026, 22:47:34
Нагрузка возрастает до 20% при скольжении курсора по кнопкам. Что ты там за ним таскаешь?

Парочка Gauge 😀
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 13, 2026, 22:48:26
Интересно смотрится. Но как тут по-другому сделаешь? Большой нагрузки на проц я не заметил, даже на старом железе не более 3-4%

Хм странно у меня на фикусе лагает. Особенно в моменты когда растягиваешь область с кавером.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 13, 2026, 22:53:38
Но как тут по-другому сделаешь?

Есть пара идей. Как вариант уже озвученный, процессор все ровно при размытии рассчитывает каждый пиксель последовательно, что мешает при смене строк менять и радиус, как счетчики в циклах? Ну или было бы лучше всего поручить это видеокарте, типа элемент блура берет фрагмент контекста и вызывает функцией отработку шейдера по этому фрагменту, где все пиксели обработаются параллельно и с учетом их положения на фрагменте, а потом возвращать его в общий контекст.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on April 13, 2026, 22:58:01
Хм странно у меня на фикусе лагает. Особенно в моменты когда растягиваешь область с кавером.
Тоже возрастает нагрузка ~ до 15%, но плеер играет нормально.

Парочка Gauge 😀
Вот они и грузят.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 13, 2026, 23:05:23
Вот они и грузят.

Хм, попробую их как-нибудь заменить. Спасибо что подметил это.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 13, 2026, 23:26:34
Кстати есть еще косяк с тем что коэффициент размытия не масштабируется вместе с масштабом обложки и это несколько ломает изначальный вид скина.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on April 14, 2026, 15:07:57
Кстати есть еще косяк с тем что коэффициент размытия не масштабируется вместе с масштабом обложки и это несколько ломает изначальный вид скина.
Это можно скорректировать скриптом, обрабатывая событие onResize.

Хм, попробую их как-нибудь заменить.
Пробовал делать на аниматорах, вроде, они грузят поменьше. Где-то выкладывал пример, сейчас найти не смог (см. влож.). Обрабатывал только 2 события: onMouseEnter и onMouserLeave, при желании можно и onMouseMove. Применил для кнопок лишь в одном скине (https://aimp.ru/forum/index.php?topic=74726.0).
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 14, 2026, 17:16:47
Это можно скорректировать скриптом, обрабатывая событие onResize.

Мне кажется это не сработает когда изначальная степень размытия 100, больше не поднять.

Пробовал делать на аниматорах, вроде, они грузят поменьше.

Попробую так
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on April 14, 2026, 21:12:01
Мне кажется это не сработает когда изначальная степень размытия 100, больше не поднять.
Если уж колхозить, то можно между каверами ещё и BlurredGlass засунуть.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Black_AVP_Bim on April 15, 2026, 21:07:18
Я бы несколько изменил начальное предложение, чтобы степень размытия определялась маской, это более гибкий способ, номер кадра маски можно переключать скриптом.
Title: Re: Дополнительные параметры размытия в TASEBlurredGlass
Post by: Kibermanick on April 16, 2026, 15:03:49
Я бы несколько изменил начальное предложение, чтобы степень размытия определялась маской, это более гибкий способ, номер кадра маски можно переключать скриптом.

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

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