Comments 8
Похоже, blur не учитывает соотношения сторон и размытый вариант выглядит так, как видит мир человек при астигматизме. В данном примере (как мне кажется) по горизонтали изображение размывается дальше, чем по вертикали, и для глаз размытый вариант выглядит не очень приятно.
Да, есть такое дело. Это зависит от стандартного шейдера, который используется:
Возможно, это можно улучшить. Немного поиграл со значениями, добавил эффект вертикального размытия, вроде, стало получше:

effect_blur_v = '''
vec4 effect(vec4 color, sampler2D texture, vec2 tex_coords, vec2 coords)
{{
float dt = ({} / 4.0)
* 1.0 / resolution.x;
vec4 sum = vec4(0.0);
sum += texture2D(texture, vec2(tex_coords.x, tex_coords.y - 4.0*dt))
* 0.05;
sum += texture2D(texture, vec2(tex_coords.x, tex_coords.y - 3.0*dt))
* 0.09;
sum += texture2D(texture, vec2(tex_coords.x, tex_coords.y - 2.0*dt))
* 0.12;
sum += texture2D(texture, vec2(tex_coords.x, tex_coords.y - dt))
* 0.15;
sum += texture2D(texture, vec2(tex_coords.x, tex_coords.y))
* 0.16;
sum += texture2D(texture, vec2(tex_coords.x, tex_coords.y + dt))
* 0.15;
sum += texture2D(texture, vec2(tex_coords.x, tex_coords.y + 2.0*dt))
* 0.12;
sum += texture2D(texture, vec2(tex_coords.x, tex_coords.y + 3.0*dt))
* 0.09;
sum += texture2D(texture, vec2(tex_coords.x, tex_coords.y + 4.0*dt))
* 0.05;
return vec4(sum.xyz, color.w);
}}
'''
Возможно, это можно улучшить. Немного поиграл со значениями, добавил эффект вертикального размытия, вроде, стало получше:

Спасибо, очень интересны ваши статьи
Спасибо, а вы добавите виджеты из futter ui в kivyMD?
Не совсем понимаю, что вы имеете в виду. Виджеты, которые есть во Flutter, но которых еще нет в KivyMD? Например SliverAppBar?
Да. В youtube много туториалов по flutter. Там получаются довольно красивые приложения. Почему-то, все переходят на flutter. Если бы вы взяли парочку приложений на flutter, и переделали бы их на kivy/kivymd, было бы просто супер. А чтобы людям было проще, вам стоит добавить виджеты из flutter, и переработать некоторые виджеты, как например: MDcard(чтобы был готовый виджет MDcard с blur'ом и другими эффектами. Чтобы люди в большинстве случаев не создавали custom'ный MDcard, а если им понадобится создать custom'ный MDcard, чтобы это — было проще.). Просто по kivymd очень мало туториалов, есть один канал на youtube, но этого мало.
Что вы об этом думаете?
Что вы об этом думаете?
Если бы вы взяли парочку приложений на flutter, и переделали бы их на kivy/kivymd, было бы просто супер.
В статье именно такое приложение и рассматривается.
… и переработать некоторые виджеты, как например: MDcard(чтобы был готовый виджет MDcard с blur'ом и другими эффектами
Принцип создания MDcard такой же, как и в любом другом фреймворке.
Просто по kivymd очень мало туториалов
Есть официальная документация.
Спасибо за статью.
Пожалуйста, посмотрите.
Пожалуйста, посмотрите.
Sign up to leave a comment.
Материальный Python. Кастомные карточки с OpenGL-эффектами