AIMP Forum

AIMP for Windows => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: Kibermanick on November 20, 2018, 05:21:24

Title: Начальный масштаб верстки и сборка готового скина...
Post by: Kibermanick on November 20, 2018, 05:21:24
У меня созрел такой вопрос: если я начну изначально собирать скин в масштабе 200% то, для редактора данный масштаб будет являться 100% и при сборке он тоже будет 100%? Хотя так и есть. Может имеет смысл добавить выбор начального масштаба для верстки? А потом при применении скина понадеяться на ресемплинг для уменьшения текстур.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Artem on November 20, 2018, 10:29:06
В плеере нет даунсемплинга текстур, т.к. качественного результата можно добиться только с антиалиасингом, а это очень медленно.
Однако даунсемплинг есть в редакторе во время генерации текстуры на основе существующей, т.е. вы можете задавать текстуры для 200%, а 100%-ый размер гененрировать средствами редактора.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Kibermanick on November 20, 2018, 15:25:08
В плеере нет даунсемплинга текстур, т.к. качественного результата можно добиться только с антиалиасингом, а это очень медленно.
Однако даунсемплинг есть в редакторе во время генерации текстуры на основе существующей, т.е. вы можете задавать текстуры для 200%, а 100%-ый размер гененрировать средствами редактора.



Ну хорошо, а если сделать так, что бы не плеер делал даунсемплинг текстур а редактор но, не во время редактирования текстур, а во время сборки скина. Например: создал я проект и указал что верстка делается для 200% и сверстал скин, потом указал в настройках скина масштабы и при сборки скина редактор сам все отсутствующие текстуры создал. И при этом в самом проекте скина будет только один масштаб со своими текстурами даже после сохранения, только если я сам в свойствах текстуры не добавлю дополнительную текстуру для нужного мастаба.

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




И еще вопрос, как происходит генерация дополнительной текстуры?  Я тут заметил что, если задать текстуру элементу для мастаба 200% и начать генерировать до 100% то, есть ощущение что следующая дополнительная текстура генерируется из предыдущей или вообще из самой маленькой, а не из самой большой, что делает конечный результат мыльным.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: gr-e on November 20, 2018, 15:35:15
... или вообще из самой маленькой, а не из самой большой, что делает конечный результат мыльным.
Да, так и есть. См. [1037] Генерация текстур 2 (https://www.aimp.ru/forum/index.php?topic=58365.0)
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Kibermanick on November 20, 2018, 15:39:29
Да, так и есть. См. [1037] Генерация текстур 2 (https://www.aimp.ru/forum/index.php?topic=58365.0)

Ну вот, значит я не ошибся.)
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Artem on November 20, 2018, 16:19:01
Все расчеты ведутся от 100%, поэтому нельзя брать бОльшую текстуру, нужно брать от 100%. Во время беты мы с этим уже сталкивались
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Zhenya on November 20, 2018, 17:44:13
Все расчеты ведутся от 100%, поэтому нельзя брать бОльшую текстуру, нужно брать от 100%. Во время беты мы с этим уже сталкивались

Может так сделать?:

Можно просто размеры брать от 100% (а точнее берутся размеры одного кадра), умноженные на коэффициент, и потом наибольшую текстуру подгонять под нужные размеры. Я так и предлагал сделать.

Чтобы избежать ошибки округлений и обеспечить наилучшее качество получившейся текстуры:

Вот, например, при пошаговом увеличении накапливаются округления и в итоге размер 200% текстуры получается не 48x200, а 48x196:

(https://i.imgur.com/4rYmZay.png)

Начинается это с текстуры 150% и дальше размер всё больше отстаёт.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Kibermanick on November 20, 2018, 18:14:13
Zhenya. Это если есть 100%, а если только 200%?


Все расчеты ведутся от 100%, поэтому нельзя брать бОльшую текстуру, нужно брать от 100%. Во время беты мы с этим уже сталкивались

Не вижу здесь проблемы, здесь же прямая обратная связь. Я бы даже сказал что для увеличения масштаба информации не достаточно, в то время как для уменьшения ее избыточно. Пусть редактор для своих расчетов считает масштаб верстки как 100% но со смещением, типа если масштаб 200% но для расчетов это 100%, то недостающие масштабы рассчитываются со смещением типа: если 200%=>100% то 175=>87.5, 150=>75, 125=>62.5, 100=>50.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Soolo on November 20, 2018, 18:23:55
Есть проблема. Текстура 101х101 пикселей в 200% - это непонятная фигня и для 100% и для 150% и для 300%. Плюс всякого рода рисунки с точностью в 1 пиксель непонятно как масштабировать, в особенности рамки.
Когда отсчёт от 100% - с этим всё попроще.
Тем более, есть же способ сейчас всё корректно отмасштабировать в меньшую сторону.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Kibermanick on November 20, 2018, 18:31:49
Есть проблема. Текстура 101х101 пикселей в 200% - это непонятная фигня и для 100% и для 150% и для 300%. Плюс всякого рода рисунки с точностью в 1 пиксель непонятно как масштабировать, в особенности рамки.
Когда отсчёт от 100% - с этим всё попроще.
Тем более, есть же способ сейчас всё корректно отмасштабировать в меньшую сторону.

Почему же не понятная? Я понимаю что, будет не целое количество пикселей но, ни кто не отменял округление.


Quote
Плюс всякого рода рисунки с точностью в 1 пиксель непонятно как масштабировать, в особенности рамки.


А какие тут проблемы? Если все уменьшается по одним правилам то и смещения не должно быть. И к тому же я не говорю что уже имеющиеся методы нельзя будет использовать. Если результат автоматизации не устроит, можно будет тогда уже в ручном режиме поправить.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Black_AVP on November 20, 2018, 19:15:12
С "пиксельными" текстурами (оригинал - 100%), как раз, и будут проблемы при масштабировании в плеое.
Во вложении скинчик, текстура в котором превращается, практически, в кашу при масштабах между 100 и 200%, несколько лучше дело обстоит при масштабах > 300%.
Однопиксельные элементы могут вообще потеряться на некратных масштабах или размылиться.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Black_AVP on November 20, 2018, 21:55:52
... Текстура 101х101 пикселей в 200% - это непонятная фигня и для 100% и для 150% и для 300%.
Кстати, да, размер тоже влияет. "Фигня", видимо, будет наблюдаться для всех нечётных размеров.
Ещё один "скинчик". В верхнем ряду две рамки 100х100 пикс., слева толщиной в 1 пикс., справа - 2 пикс. В нижнем ряду такие же рамки, но размером 101х101 пикс.
Текстуры заданы для масштаба 200%, для меньших масштабов принудительно сгенерированы в редакторе.

Так что, если нужно, чтоб было всё пиксель-в-пиксель, придётся рисовать все текстуры для всех масштабов.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: McClaud on November 21, 2018, 15:27:49
Для масштабируемого проекта изначально надо рисовать как минимум в максимальном из масштабов. При этом размеры элементов рассчитывать с учётом уменьшения масштаба, т.е. все размеры для меньших масштабов должны делиться нацело. И не только размеры, но и координаты. В сучае нецелочисленных делений, добавлять "пустое пространство" в нужных местах.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Kibermanick on November 21, 2018, 17:59:00
Кстати, да, размер тоже влияет. "Фигня", видимо, будет наблюдаться для всех нечётных размеров.
Ещё один "скинчик". В верхнем ряду две рамки 100х100 пикс., слева толщиной в 1 пикс., справа - 2 пикс. В нижнем ряду такие же рамки, но размером 101х101 пикс.
Текстуры заданы для масштаба 200%, для меньших масштабов принудительно сгенерированы в редакторе.

Так что, если нужно, чтоб было всё пиксель-в-пиксель, придётся рисовать все текстуры для всех масштабов.
С "пиксельными" текстурами (оригинал - 100%), как раз, и будут проблемы при масштабировании в плеое.
Во вложении скинчик, текстура в котором превращается, практически, в кашу при масштабах между 100 и 200%, несколько лучше дело обстоит при масштабах > 300%.
Однопиксельные элементы могут вообще потеряться на некратных масштабах или размылиться.

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

Вот как раз к слову про это:

Для масштабируемого проекта изначально надо рисовать как минимум в максимальном из масштабов. При этом размеры элементов рассчитывать с учётом уменьшения масштаба, т.е. все размеры для меньших масштабов должны делиться нацело. И не только размеры, но и координаты. В случае нецелочисленных делений, добавлять "пустое пространство" в нужных местах.

Полностью согласен.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: Black_AVP on November 21, 2018, 18:26:41
Ну, так речь, в сущности, про одно и то же и вывод прежний:
... если нужно, чтоб было всё пиксель-в-пиксель, придётся рисовать все текстуры для всех масштабов.

И в фотошопе с этим дела обстоят не лучше. Если в сторону увеличение в целое число раз ещё можно получить приемлимую картинку, подобрав метод интерполяции, то в сторону уменьшения, даже в целое число раз, неизбежно будут теряться мелкие элементы.
Title: Re: Начальный масштаб верстки и сборка готового скина...
Post by: McClaud on November 21, 2018, 22:39:29
Ну, так речь, в сущности, про одно и то же и вывод прежний:
И в фотошопе с этим дела обстоят не лучше. Если в сторону увеличение в целое число раз ещё можно получить приемлимую картинку, подобрав метод интерполяции, то в сторону уменьшения, даже в целое число раз, неизбежно будут теряться мелкие элементы.
Поскольку самая "маленькая" картинка - это 100%, то и сетовать на потерю мелких элементов здесь бессмысленно. При большем же масштабе "разборчивость" будет лучше.
Задавая масштабирование надо учитывать, что для линейки 100, 150, 200 %% размеры и координаты объектов при 100% должны быть чётными, ежели задействовать и "четвертушечные" - 125, 175... то - кратны четырём. Сделать это несложно, вот только мороки с подгонкой...