AIMP Forum
AIMP for Windows => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: Kibermanick on November 20, 2018, 05:21:24
-
У меня созрел такой вопрос: если я начну изначально собирать скин в масштабе 200% то, для редактора данный масштаб будет являться 100% и при сборке он тоже будет 100%? Хотя так и есть. Может имеет смысл добавить выбор начального масштаба для верстки? А потом при применении скина понадеяться на ресемплинг для уменьшения текстур.
-
В плеере нет даунсемплинга текстур, т.к. качественного результата можно добиться только с антиалиасингом, а это очень медленно.
Однако даунсемплинг есть в редакторе во время генерации текстуры на основе существующей, т.е. вы можете задавать текстуры для 200%, а 100%-ый размер гененрировать средствами редактора.
-
В плеере нет даунсемплинга текстур, т.к. качественного результата можно добиться только с антиалиасингом, а это очень медленно.
Однако даунсемплинг есть в редакторе во время генерации текстуры на основе существующей, т.е. вы можете задавать текстуры для 200%, а 100%-ый размер гененрировать средствами редактора.
Ну хорошо, а если сделать так, что бы не плеер делал даунсемплинг текстур а редактор но, не во время редактирования текстур, а во время сборки скина. Например: создал я проект и указал что верстка делается для 200% и сверстал скин, потом указал в настройках скина масштабы и при сборки скина редактор сам все отсутствующие текстуры создал. И при этом в самом проекте скина будет только один масштаб со своими текстурами даже после сохранения, только если я сам в свойствах текстуры не добавлю дополнительную текстуру для нужного мастаба.
Я считаю что даунсемплинг например "Билинейный" или "Бикубический (плавные градиенты)" работает довольно хорошо и можно сократить достаточно много времени при создании скина.
И еще вопрос, как происходит генерация дополнительной текстуры? Я тут заметил что, если задать текстуру элементу для мастаба 200% и начать генерировать до 100% то, есть ощущение что следующая дополнительная текстура генерируется из предыдущей или вообще из самой маленькой, а не из самой большой, что делает конечный результат мыльным.
-
... или вообще из самой маленькой, а не из самой большой, что делает конечный результат мыльным.
Да, так и есть. См. [1037] Генерация текстур 2 (https://www.aimp.ru/forum/index.php?topic=58365.0)
-
Да, так и есть. См. [1037] Генерация текстур 2 (https://www.aimp.ru/forum/index.php?topic=58365.0)
Ну вот, значит я не ошибся.)
-
Все расчеты ведутся от 100%, поэтому нельзя брать бОльшую текстуру, нужно брать от 100%. Во время беты мы с этим уже сталкивались
-
Все расчеты ведутся от 100%, поэтому нельзя брать бОльшую текстуру, нужно брать от 100%. Во время беты мы с этим уже сталкивались
Может так сделать?:
Можно просто размеры брать от 100% (а точнее берутся размеры одного кадра), умноженные на коэффициент, и потом наибольшую текстуру подгонять под нужные размеры. Я так и предлагал сделать.
Чтобы избежать ошибки округлений и обеспечить наилучшее качество получившейся текстуры:
Вот, например, при пошаговом увеличении накапливаются округления и в итоге размер 200% текстуры получается не 48x200, а 48x196:
(https://i.imgur.com/4rYmZay.png)
Начинается это с текстуры 150% и дальше размер всё больше отстаёт.
-
Zhenya. Это если есть 100%, а если только 200%?
Все расчеты ведутся от 100%, поэтому нельзя брать бОльшую текстуру, нужно брать от 100%. Во время беты мы с этим уже сталкивались
Не вижу здесь проблемы, здесь же прямая обратная связь. Я бы даже сказал что для увеличения масштаба информации не достаточно, в то время как для уменьшения ее избыточно. Пусть редактор для своих расчетов считает масштаб верстки как 100% но со смещением, типа если масштаб 200% но для расчетов это 100%, то недостающие масштабы рассчитываются со смещением типа: если 200%=>100% то 175=>87.5, 150=>75, 125=>62.5, 100=>50.
-
Есть проблема. Текстура 101х101 пикселей в 200% - это непонятная фигня и для 100% и для 150% и для 300%. Плюс всякого рода рисунки с точностью в 1 пиксель непонятно как масштабировать, в особенности рамки.
Когда отсчёт от 100% - с этим всё попроще.
Тем более, есть же способ сейчас всё корректно отмасштабировать в меньшую сторону.
-
Есть проблема. Текстура 101х101 пикселей в 200% - это непонятная фигня и для 100% и для 150% и для 300%. Плюс всякого рода рисунки с точностью в 1 пиксель непонятно как масштабировать, в особенности рамки.
Когда отсчёт от 100% - с этим всё попроще.
Тем более, есть же способ сейчас всё корректно отмасштабировать в меньшую сторону.
Почему же не понятная? Я понимаю что, будет не целое количество пикселей но, ни кто не отменял округление.
Плюс всякого рода рисунки с точностью в 1 пиксель непонятно как масштабировать, в особенности рамки.
А какие тут проблемы? Если все уменьшается по одним правилам то и смещения не должно быть. И к тому же я не говорю что уже имеющиеся методы нельзя будет использовать. Если результат автоматизации не устроит, можно будет тогда уже в ручном режиме поправить.
-
С "пиксельными" текстурами (оригинал - 100%), как раз, и будут проблемы при масштабировании в плеое.
Во вложении скинчик, текстура в котором превращается, практически, в кашу при масштабах между 100 и 200%, несколько лучше дело обстоит при масштабах > 300%.
Однопиксельные элементы могут вообще потеряться на некратных масштабах или размылиться.
-
... Текстура 101х101 пикселей в 200% - это непонятная фигня и для 100% и для 150% и для 300%.
Кстати, да, размер тоже влияет. "Фигня", видимо, будет наблюдаться для всех нечётных размеров.
Ещё один "скинчик". В верхнем ряду две рамки 100х100 пикс., слева толщиной в 1 пикс., справа - 2 пикс. В нижнем ряду такие же рамки, но размером 101х101 пикс.
Текстуры заданы для масштаба 200%, для меньших масштабов принудительно сгенерированы в редакторе.
Так что, если нужно, чтоб было всё пиксель-в-пиксель, придётся рисовать все текстуры для всех масштабов.
-
Для масштабируемого проекта изначально надо рисовать как минимум в максимальном из масштабов. При этом размеры элементов рассчитывать с учётом уменьшения масштаба, т.е. все размеры для меньших масштабов должны делиться нацело. И не только размеры, но и координаты. В сучае нецелочисленных делений, добавлять "пустое пространство" в нужных местах.
-
Кстати, да, размер тоже влияет. "Фигня", видимо, будет наблюдаться для всех нечётных размеров.
Ещё один "скинчик". В верхнем ряду две рамки 100х100 пикс., слева толщиной в 1 пикс., справа - 2 пикс. В нижнем ряду такие же рамки, но размером 101х101 пикс.
Текстуры заданы для масштаба 200%, для меньших масштабов принудительно сгенерированы в редакторе.
Так что, если нужно, чтоб было всё пиксель-в-пиксель, придётся рисовать все текстуры для всех масштабов.
С "пиксельными" текстурами (оригинал - 100%), как раз, и будут проблемы при масштабировании в плеое.
Во вложении скинчик, текстура в котором превращается, практически, в кашу при масштабах между 100 и 200%, несколько лучше дело обстоит при масштабах > 300%.
Однопиксельные элементы могут вообще потеряться на некратных масштабах или размылиться.
Тут не важно четное или не четное количество пикселей у текстуры, и не важно какой ресемплинг будет, на уменьшение или увеличение, в любом случаи на промежуточных масштабах будет не целое количество пикселей и эффект будет тот же.
Вот как раз к слову про это:
Для масштабируемого проекта изначально надо рисовать как минимум в максимальном из масштабов. При этом размеры элементов рассчитывать с учётом уменьшения масштаба, т.е. все размеры для меньших масштабов должны делиться нацело. И не только размеры, но и координаты. В случае нецелочисленных делений, добавлять "пустое пространство" в нужных местах.
Полностью согласен.
-
Ну, так речь, в сущности, про одно и то же и вывод прежний:
... если нужно, чтоб было всё пиксель-в-пиксель, придётся рисовать все текстуры для всех масштабов.
И в фотошопе с этим дела обстоят не лучше. Если в сторону увеличение в целое число раз ещё можно получить приемлимую картинку, подобрав метод интерполяции, то в сторону уменьшения, даже в целое число раз, неизбежно будут теряться мелкие элементы.
-
Ну, так речь, в сущности, про одно и то же и вывод прежний:
И в фотошопе с этим дела обстоят не лучше. Если в сторону увеличение в целое число раз ещё можно получить приемлимую картинку, подобрав метод интерполяции, то в сторону уменьшения, даже в целое число раз, неизбежно будут теряться мелкие элементы.
Поскольку самая "маленькая" картинка - это 100%, то и сетовать на потерю мелких элементов здесь бессмысленно. При большем же масштабе "разборчивость" будет лучше.
Задавая масштабирование надо учитывать, что для линейки 100, 150, 200 %% размеры и координаты объектов при 100% должны быть чётными, ежели задействовать и "четвертушечные" - 125, 175... то - кратны четырём. Сделать это несложно, вот только мороки с подгонкой...