Четверг, 28 Марта 2024, 16:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Общие обсуждения программистов » Как не заблудиться в сотнях разрешений экранов?
Как не заблудиться в сотнях разрешений экранов?
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 умеет генерировать буковки под такие разрешения, какие ты укажешь smile
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, обрезать не пробовал?

Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
Как правильно задавать вопросы в технических форумах
Форум игроделов » Программирование » Общие обсуждения программистов » Как не заблудиться в сотнях разрешений экранов?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг