Как не заблудиться в сотнях разрешений экранов?
| |
goldsphere | Дата: Понедельник, 24 Августа 2015, 13:36 | Сообщение # 1 |
заслуженный участник
Сейчас нет на сайте
| Интересуют технологии адаптации изображения под различные разрешения экранов android и ios девайсов, без или с минимальной потерей качества. Правильно ли я делаю, что создаю несколько копий изображений под различные соотношения сторон. В моём проекте есть папака с картинками для устройств с экраном 1920x1280, 1920x1080, 1280x720, 480x800 .. (наиболее популярные) Но когда я понял, что у планшетов ещё десятки разных разрешений, задумался насколько этот метод удобен и практичен. Что, если при определении размеров экрана устройства выбирать из вышеперечисленного списка ближайщее разрешение и тупо маштабировать так называемый view под полученное нами разрешение. Поделитесь своим опытом в этом вопросе, какие движки автоматически решают эту проблему, как они её решают?
FinderX - Android Аркада
|
|
| |
Tymonr | Дата: Понедельник, 24 Августа 2015, 13:50 | Сообщение # 2 |
With OpenSource forever♥
Сейчас нет на сайте
| А нафига копировать все? Берешь одну картинку максимального размера и сжимаешь ее при загрузке до нужного, обрезаешь немного и жизнь налажена
Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы. Как правильно задавать вопросы в технических форумах
|
|
| |
Kunka | Дата: Понедельник, 24 Августа 2015, 13:51 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Цитата goldsphere ( ) Интересуют технологии адаптации изображения под различные разрешения экранов android и ios девайсов, без или с минимальной потерей качества. Правильно ли я делаю, что создаю несколько копий изображений под различные соотношения сторон. В моём проекте есть папака с картинками для устройств с экраном 1920x1280, 1920x1080, 1280x720, 480x800 .. (наиболее популярные) Но когда я понял, что у планшетов ещё десятки разных разрешений, задумался насколько этот метод удобен и практичен. Что, если при определении размеров экрана устройства выбирать из вышеперечисленного списка ближайщее разрешение и тупо маштабировать так называемый view под полученное нами разрешение. Поделитесь своим опытом в этом вопросе, какие движки автоматически решают эту проблему, как они её решают? Создай изображение для разных соотношений и их потом от соотношение маштабируй, я бы на твоём месте использовал самое большое разрешение для нужных соотношений, уменьшая, изображение будет красивее чем увеличивая
хочешь сделать убийцу WOW, GTA, CRysis, AC - используй FishFace
|
|
| |
IvanKorobko | Дата: Понедельник, 24 Августа 2015, 13:52 | Сообщение # 4 |
IK Studio
Сейчас нет на сайте
| Как правило у движков существуют различные методы скейла: letterbox(пропорциональное растягивание/сужение), crop(обрезание по границам), а так же scale inner, scale outer, letterbox integer scale...
Позиционирование интерфейсрв/кнопок лучше ставить относительно viewport'ов экрана - т.е. его границ(левый, правый, верхний, нижний) + где-то удобным будет позиционировать опираясь на screen width/screen height.
По поводу копий изображений - как по мне, то зря - лучше будет сделать в высоком разрешении, и при необходимости даунскейлить общую картинку и перепозиционировать при необходимости элементы интерфейса
|
|
| |
goldsphere | Дата: Понедельник, 24 Августа 2015, 14:10 | Сообщение # 5 |
заслуженный участник
Сейчас нет на сайте
| Цитата Tymonr ( ) А нафига копировать все? Берешь одну картинку максимального размера и сжимаешь ее при загрузке до нужного, обрезаешь немного и жизнь налажена Если иметь одно исходное изображение и маштабировать его под все экраны, то оно может выйти сплющенным и "некрасивым". А если создать несколько вариантов этого изображения, то это можно контролировать. Цитата Kunka ( ) Создай изображение для разных соотношений и их потом от соотношение маштабируй, я бы на твоём месте использовал самое большое разрешение для нужных соотношений, уменьшая, изображение будет красивее чем увеличивая Цитата IvanKorobko ( ) при необходимости даунскейлить общую картинку и перепозиционировать при необходимости элементы интерфейса У меня примерно такие же мысли, но соотношений экранов тоже довольно много, взять те же китайские телефоны и планшеты. Про то, что лучше уменьшать чем увеличивать, я тоже знаю, но если картинку разрешением 1920x1280 уменьшить до 320x480, будут видны лесенки и тогда вся игра будет из таких лесенок. Хотя по-моему это уже вторичная проблема, наверно, есть технологии пост обработки, которые решают эту проблему
FinderX - Android Аркада
|
|
| |
OpenGOO | Дата: Понедельник, 24 Августа 2015, 14:25 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| На одном буржуйском сайте один разработчик предложил свой способ, это использовать векторную графику, а потом на конечном устройстве создавать изображение с учетом разрешения.
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
Necrolich | Дата: Среда, 02 Сентября 2015, 21:09 | Сообщение # 7 |
почетный гость
Сейчас нет на сайте
| goldsphere, можно задавать позицию важных элементов относительно экрана(просто я использую Unity, там так можно), а не важные изображения(бекграунды и т.п)можно сделать только под "основные" разрешения и не париться. Т.е те элементы которые не важны можно чутка не вместить в камеру(основную мысль помести в центр), а важные позиционировать относительно экрана.
|
|
| |
goldsphere | Дата: Пятница, 04 Сентября 2015, 14:01 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| С картинками вроде всё ясно, решил проблему с помощью такой замечательной штуки как StetchViewport /FitViewport, работаю я в libgdx. Но как только дело касается шрифтов, то оказывается не всё так просто. Малейшее отклонение разрешения экрана от эталона безобразит текст. Много думал и экспериментировал, но рационального ничего не придумал. Есть идеи? Добавлено (04 сентября 2015, 14:01) --------------------------------------------- У Texture есть такакя штука как setFilter(TextureFilter.Linear, TextureFilter.Linear); она убирает эффект "лесенок", есть ли что-то подобное для шрифтов?
FinderX - Android Аркада
|
|
| |
Saitei | Дата: Пятница, 04 Сентября 2015, 16:26 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| Цитата goldsphere ( ) У Texture есть такакя штука как setFilter(TextureFilter.Linear, TextureFilter.Linear); она убирает эффект "лесенок", есть ли что-то подобное для шрифтов? А зачем? freetype умеет генерировать буковки под такие разрешения, какие ты укажешь
|
|
| |
goldsphere | Дата: Воскресенье, 06 Сентября 2015, 12:28 | Сообщение # 10 |
заслуженный участник
Сейчас нет на сайте
| Saitei, Проблема в том, что экран сжимается после генерации шрифта, и он в любом случае будет искажён, если разрешение не эталонное
Добавлено (06 сентября 2015, 12:28) --------------------------------------------- Кстати говоря провёл анализ существующих разрешений экранов, так вот их полный список, если кому интересно: Тут все разрешения включая айфоны, айпады и за исключением сотовых телнфонов. Сейчас думаю как раскидать их в 4 / 3 большие группы, где у каждой группы будет исходный набор картинок, которые будут уменьшаться до нужных размеров. ещё вот такая картинка отображающая самый большие разрешения:
FinderX - Android Аркада
Сообщение отредактировал goldsphere - Воскресенье, 06 Сентября 2015, 13:15 |
|
| |
Tymonr | Дата: Воскресенье, 06 Сентября 2015, 15:23 | Сообщение # 11 |
With OpenSource forever♥
Сейчас нет на сайте
| goldsphere, во фигней-то страдаешь:D Про scale ничего не слышал?
Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы. Как правильно задавать вопросы в технических форумах
|
|
| |
goldsphere | Дата: Воскресенье, 06 Сентября 2015, 16:09 | Сообщение # 12 |
заслуженный участник
Сейчас нет на сайте
| Tymonr, да в курсе я как растягивать и сжимать картинки. Вот только если взять картинку 1536x2560 и сжать до 720x1280 ,например, всё будет сплющенным. И даже с фильтром для текстур, если сильно сжать, то лесенки будут. Я хочу сделать это всё так, чтобы везде хоть на 1536x2560, хотя на 320x480 всё выглядело качественно более менее.
FinderX - Android Аркада
|
|
| |
Tymonr | Дата: Воскресенье, 06 Сентября 2015, 17:05 | Сообщение # 13 |
With OpenSource forever♥
Сейчас нет на сайте
| goldsphere, обрезать не пробовал?
Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы. Как правильно задавать вопросы в технических форумах
|
|
| |
|