Comments 13
Небольшой пример – исходный набор графики от игры весил 57 мегабайт, после замены всех png на jng – набор графики стал весить 15 мегабайт.
а чем не подошли хардварные форматы: pvr, bc, и тп? ведь их не придется разжимать в памяти, в отличии от вышеприведенного.
Потому что нет единного формата, который бы поддерживали все ускорители.
В теории ETC должны понимать все, но вопервых он без прозрачки, а во вторых теже эпловские девайсы его не поддерживают, так что возможно и на андроиде попадётся какой-то зверь, который не понимает ETC.
А по скольку нам для андроида нужен один билд, который будет работать везде — то придётся ложить несколько наборов пожатых текстур, которые покроют все варианты встречающихся чипсетов/драйверов. И таким образом вся идея экономии размера apk идёт лесом.
Также есть ещё одна большая проблема — это качество сжатых текстур. Даже четырёхбитный pvrtc даёт сильные потери качества — на прозрачных частях, вокруг непрозрачных пикселей начинает вылезать мусор. Края непрозрачных пикселей изнутри тоже портятся. В итоге, если из такой графики собирать GUI из кусочков (уголки, тайлы для серединок окошек и т.п.) то выглядит это страшно — место стыка элементов часто выделяется грязью, вокруг уголков окошек парит грязевой ореол и т.п.
Поэтому для GUI у нас используются не пожатые текстуры. (хотя для других частей используем пожатые, чтоб сэкономить видеопамять). Специфика игры такова, что в ней очень много графики для GUI и подобных элементов — есть несколько скинов, которые зависят от игрового сеттинга.
В теории ETC должны понимать все, но вопервых он без прозрачки, а во вторых теже эпловские девайсы его не поддерживают, так что возможно и на андроиде попадётся какой-то зверь, который не понимает ETC.
А по скольку нам для андроида нужен один билд, который будет работать везде — то придётся ложить несколько наборов пожатых текстур, которые покроют все варианты встречающихся чипсетов/драйверов. И таким образом вся идея экономии размера apk идёт лесом.
Также есть ещё одна большая проблема — это качество сжатых текстур. Даже четырёхбитный pvrtc даёт сильные потери качества — на прозрачных частях, вокруг непрозрачных пикселей начинает вылезать мусор. Края непрозрачных пикселей изнутри тоже портятся. В итоге, если из такой графики собирать GUI из кусочков (уголки, тайлы для серединок окошек и т.п.) то выглядит это страшно — место стыка элементов часто выделяется грязью, вокруг уголков окошек парит грязевой ореол и т.п.
Поэтому для GUI у нас используются не пожатые текстуры. (хотя для других частей используем пожатые, чтоб сэкономить видеопамять). Специфика игры такова, что в ней очень много графики для GUI и подобных элементов — есть несколько скинов, которые зависят от игрового сеттинга.
с правильными билд тулами, сделать свой формат для каждой платформы вообще не проблема. я не знаю что-там у андроидов, но думаю и для них можно как-то выкрутиться, ибо от хардварно сжатого формата графики плюсов намного больше чем от формата описанного выше.
у нас UI был на флеше, мы тоже его не жали.
у нас UI был на флеше, мы тоже его не жали.
Ситуация такая — платформа Andriod
Нужен один APK, который будет работать на любом андроид девайсе.
APK строго ограничен по размерам.
Андроидные девайсы бывают на тегре, на куалкомовских чипах, на powervr, самсунговские мали и т.п.
Каждый этот чип обычно поддерживает один-два формата сжатия — pvrtc, atitc, s3tc, dxt
Поэтому, чтоб гарантированно работало везде, в apk надо хранить текстуры во всех хардварных форматах сжатия.
В другой игре, где в размер apk мы помещались, но было не плохо экономить видеопамять мы делали так:
— основная масса текстур, которая не имела прозрачки — ложилась в etc
— текстуры с прозрачкой ложились несколько раз, запакованные в pvrtc, s3tc (и для самых гиблых случаев был вариант с png).
Нужен один APK, который будет работать на любом андроид девайсе.
APK строго ограничен по размерам.
Андроидные девайсы бывают на тегре, на куалкомовских чипах, на powervr, самсунговские мали и т.п.
Каждый этот чип обычно поддерживает один-два формата сжатия — pvrtc, atitc, s3tc, dxt
Поэтому, чтоб гарантированно работало везде, в apk надо хранить текстуры во всех хардварных форматах сжатия.
В другой игре, где в размер apk мы помещались, но было не плохо экономить видеопамять мы делали так:
— основная масса текстур, которая не имела прозрачки — ложилась в etc
— текстуры с прозрачкой ложились несколько раз, запакованные в pvrtc, s3tc (и для самых гиблых случаев был вариант с png).
В статье, как вы уже догадались — речь пойдёт о графическом формате JNG, а отнюдь не об оружии.
Ну заебали же вставлять в каждую-каждую статью по картинке, даже если (а чаще всего именно так) она не связана с содержимым.
За собственную либу и вообще статью — жирный плюс и спасибо!
За отсутствие прикладных примеров (для тех же моб. устройств) и повсеместные грамматические ошибки — ма-а-аленький минус :)
За отсутствие прикладных примеров (для тех же моб. устройств) и повсеместные грамматические ошибки — ма-а-аленький минус :)
Word меня не спас — текст писал в нём, в надежде что это поможет избежать ошибок, но похоже я безнадёжен в вопросе грамматики :(
Была мысль сделать примерчик на GL ES, но подумал что двух примеров просто загрузки будет достаточно.
В примерах показанно как загрузить картинку в буфер, а что с ней дальше делать — это уже несколько за рамками описания формата JNG.
Была мысль сделать примерчик на GL ES, но подумал что двух примеров просто загрузки будет достаточно.
В примерах показанно как загрузить картинку в буфер, а что с ней дальше делать — это уже несколько за рамками описания формата JNG.
Статья про графический формат без примеров изображений? Ну ладно.
Sign up to leave a comment.
Графический формат JNG — чем полезен, как устроен, чем сконвертить, посмотреть и загрузить