Страница 1 из 1

Разрешение текстур на андроиде

СообщениеДобавлено: 18 май 2019, 10:43
Shakhban
Какой размер текстур использовать если,
у меня в игре 3d модельки, каждая на 200-500 треугольников, на сцене максимум штук 20, какие текстурки на них вешать? оптимизировано ли вешать на них текстурки 2048х2048, если игру делаю под андроид? и еще, на что влияет размер текстур, в смысле на озу, процессор, итд.

И был ли у вас опыт в этом?

Re: Разрешение текстур на андроиде

СообщениеДобавлено: 29 дек 2019, 22:59
Kabanelloo
Привет, есть много правил которые нужно выполнять для оптимизации. Но еще больше есть мнений по этому поводу, по этому я дам совет, который может не удовлетворить других участников форума)

Все зависит непосредственно от геометрии, есть 2 типа Динамическая и Статическая и их вы будите разделять обязательным порядком.
Динамическая геометрия по сути самая сложная для мобилки и оптимизация довольно не простая, по этому чтобы разгрузить GPU вы используете отдельный атлас текстур чем меньше тем лучше.
Все текстуры используемые в игре делятся на 3 - 4 основных атласа текстур, где атлас - это упакованные текстуры в 1 файл:

1) Статические объекты до 2048 разрешением.
2) Динамические аналогично отдельным атласом и желательно до 1024 разрешения с поддержкой экземпляров объектов из Shader.
3) Интерфейс атласы, 512 - 1024.
4) Карта света для статических объектов до 1024 - 2048 разрешением и желательно иметь такую карту 1 штуку на 1 уровень, в крайнем случае 2.

Если со статической геометрией все понятно, то с динамикой гораздо сложнее и объяснять почему нет смысла, все можно почитать на основном сайте https://docs.unity3d.com/Manual/DrawCallBatching.html.
Использовать отдельные текстуры и материалы не рекомендуются, так как их пакетирование будет повышать количество вызовов отрисовки, что приведет к падению частоты кадров.

Вообще не советую использовать уникальные текстуры. Используйте палитры, градиенты и разворачивайте свою геометрию на текстуру с разрешением 128 пикселей и радуйтесь простоте и оптимизации.

Все, что отвечает за визуализацию попадает в память GPU, когда просчет геометрии и физики всяких скриптов идет на CPU. Но когда происходит копии экземпляров через Shader, то геометрия попадает в память GPU, еще много разных возможностей, все стараются разгрузить CPU и максимально распределять загруженность. Но скорее всего все ресурсы лежат в Озу, чтобы быстро получать доступ к ним.

Но кто-то бы сказал лучше много маленьких текстур чем 1 большая и всегда весит в памяти но, я бы спросил их, как объединять пакетирование с отдельными текстурами без геморроя и программирования?)

Re: Разрешение текстур на андроиде

СообщениеДобавлено: 29 дек 2019, 23:22
waruiyume
Динамическая геометрия по сути самая сложная для мобилки

В чём принципиальное от статичной?
то с динамикой гораздо сложнее и объяснять почему нет смысла

Мне это напоминает небезызвестную картинку
Скрытый текст:
Изображение

все можно почитать на основном сайте Unity

Можно ссылку?

А у мобилок разве есть отдельная видеопамять?

Re: Разрешение текстур на андроиде

СообщениеДобавлено: 29 дек 2019, 23:49
Kabanelloo
waruiyume писал(а):
В чём принципиальное от статичной?

то с динамикой гораздо сложнее и объяснять почему нет смысла

Ну допустим пакетировать не удобно динамику разве, что экземплярами, не так чихнешь и 30 вызовов отрисовки)

Можно ссылку?

Да конечно, обновлю.

А у мобилок разве есть отдельная видеопамять?

Ах точно, подловили. :| , я не точно знаю все о железе но, имею представление.


[unity 3D]