AIMP Forum

AIMP for Windows => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: Artem on June 27, 2020, 21:28:35

Title: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Artem on June 27, 2020, 21:28:35
Интересует такой вопрос.

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



От результатов голосования будет зависеть принцип реализации этого предложения (https://www.aimp.ru/forum/index.php?topic=62543.0)
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Black_AVP on June 28, 2020, 08:51:17
... Однако, в отличие от мобильной версии, в ПК версии текстура представляет собой самостоятельную ленту и не позволяет переиспользовать уже существующие текстуры.
Вот это не совсем понятно. ImageList?
При наложении цвета будут доступны разные методы наложения?
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Artem on June 28, 2020, 10:32:16
Вот это не совсем понятно. ImageList?

В мобильной версии ты задаешь каждый "кадр" как самостоятельную сущность - либо цвет, либо область текстуры.

При наложении цвета будут доступны разные методы наложения?

Например?
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Black_AVP on June 28, 2020, 13:13:22
Например?
Все те, что доступны в свойстве BlendingMode.
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Zhenya on June 28, 2020, 20:23:43
Вкратце:
Да, на каждый кадр отдельно.



Подробнее:
Делаю скин, с цветными кнопками. А точнее с отображением цветного состояния на кнопках:

(https://i.imgur.com/Qj7GKtO.png)

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

Придумал способ реализовать задуманное — оставляю в текстуре кнопки один набор кадров, первый кадр без пиктограммы (но с тенью вокруг):

(https://i.imgur.com/162htpJ.png)

Под кнопкой размещаю две текстовые метки с текстурой из пустого кадра и маски в виде пиктограммы:

(https://i.imgur.com/P6gwqKU.png)

Задаю текстовым меткам цвет (благо у них есть такое свойство), одной метке белый полупрозрачный, другой — свой цвет, который уже можно будет менять из скрипта.
Видимость текстовых меток переключается в зависимости от состояния того, что отображает кнопка.
Текстовые метки также обёрнуты в панель, видимость которой зависит от доступности того, к чему привязана кнопка, — для корректного отображения последнего кадра текстуры кнопки (недоступное состояние).
Итого 4 элемента вместо одного.
Плюс есть недостаток — второй и третий кадр цветной кнопки выглядят тусклее, чем нужно, так как поверх цветной пиктограммы накладывается белый полупрозрачный.



Если будет возможность наложить цвет на кадр текстуры, то можно будет разделить текстуру кнопки на текстуру с глифами (только пиктограммы) и текстуру с тенью кнопок и фоном при наведении и нажатии на кнопку. И перекрашивать только глифы кнопок.
Но, если текстуру тени кнопки можно повесить на какой-нибудь элемент под кнопкой, то фон при наведении и нажатии на кнопку уже так не сымитируешь, он же меняется при наведении и нажатии на кнопку...

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

В идеале, для моей задачи, нужна возможность отдельно задать для кнопки текстуру фона (с кадрами наведения и т. д.) и глиф (или глифы? пиктограмма же может поменяться в другом наборе кадров), который можно перекрасить для разных состояний кнопки?
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Black_AVP on June 29, 2020, 17:01:25
Да, на каждый кадр отдельно.
А если эти кадров 200+?

Я всё-таки так и не понял - как цвет будет накладываться на изображение/текстуру?
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Zhenya on June 29, 2020, 17:24:14
А если эти кадров 200+?

Ну накладывать цвет на всю текстуру кнопки, даже если оставить только пиктограммы, бессмысленно, в моём случае.

Я всё-таки так и не понял - как цвет будет накладываться на изображение/текстуру?

Как в мобильной версии — все пиксели перекрашиваются в заданный цвет с сохранением прозрачности.
Пример: слева оригинальное изображение, справа — результат наложения зелёного цвета:

(https://i.imgur.com/IglbC2w.png)
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Black_AVP on June 29, 2020, 17:58:04
Ну накладывать цвет на всю текстуру кнопки, даже если оставить только пиктограммы, бессмысленно, в моём случае.
В случае аниматоров - как иначе?

Как в мобильной версии — все пиксели перекрашиваются в заданный цвет с сохранением прозрачности.
Про мобильную версию мне ничего не ведомо, смартфона у меня нет, есть, правда, планшет на Android 4, но на нём АИМП нормально не работает.

Т. е. это режим наложения Color? Почему бы его тогда не добавить во все элементы?
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Zhenya on June 29, 2020, 18:40:01
В случае аниматоров - как иначе?

Имеется ввиду, например, перекраска светлых катушек в тёмные? Но тут скорее нужно не наложение цвета, а перекраска, как в настройках AIMP.
Но катушки же в оттенках серого, вроде. Плюс, например, цветные надписи на них.

Про мобильную версию мне ничего не ведомо, смартфона у меня нет, есть, правда, планшет на Android 4, но на нём АИМП нормально не работает.

Можно попробовать в редакторе скинов для мобильной версии.

Т. е. это режим наложения Color? Почему бы его тогда не добавить во все элементы?

Нет. Похоже на Source Atop:
— https://en.wikipedia.org/wiki/Alpha_compositing#Straight_versus_premultiplied
— https://developer.android.com/reference/android/graphics/PorterDuff.Mode#SRC_ATOP
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Black_AVP on June 30, 2020, 09:34:18
Можно попробовать в редакторе скинов для мобильной версии.
Ради того, чтоб увидеть режим наложения цвета, мне разбираться в новой и ненужной мне программе?
Чем дальше в лес ... , тем больше непоняток в этой теме. За что голосовать - не знаю...
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Artem on June 30, 2020, 11:23:26
Ради того, чтоб увидеть режим наложения цвета, мне разбираться в новой и ненужной мне программе?
Чем дальше в лес ... , тем больше непоняток в этой теме. За что голосовать - не знаю...

Да все просто, раз с такой задачей не сталкивались - значит и не надо оно.
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: samix on April 09, 2021, 02:47:48
Я давно костыль придумал. Например нужно чтоб в определённом положении кнопкаи.т.д. меняла цвет , то создаются две текстуры положений кнопки. В первой пустое место где должен быть другой цвет и разрешаю менять цвет пользователю , а во второй пустые места где не должен меняться цвет и в настройках запрещаю изменение цвета пользователю. Эти тайлы совмещаю и готово.
Title: Re: Опрос: была бы полезной функция наложения цвета на текстуру?
Post by: Artem on April 09, 2021, 08:40:39
Ну костыли - оно понятно. Речь шла про фичу. Фича в мобильной версии есть и активно используется в скинах. А на ПК, как я вижу, никому не нужна