Четверг, 28 Марта 2024, 17:06

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос по оптимизации
Вопрос по оптимизации
Jlexa123Дата: Четверг, 31 Марта 2022, 12:19 | Сообщение # 1
частый гость
Сейчас нет на сайте
Допустим есть модель дерева и два материала для него зеленый и желтый (для изменения цвета дерева). Что лучше для оптимизации (особенно под мобилки):

1. 1 модель - 2 материала или 2 модели - 1 материал
2. 2 модели или 1 модель, содержащая 2 такие же модели
3. 1 модель, содержащая 2 такие же модели - 1 материал или пункт 1,2.


Сообщение отредактировал Jlexa123 - Четверг, 31 Марта 2022, 12:25
TLTДата: Четверг, 31 Марта 2022, 13:41 | Сообщение # 2
Сейчас нет на сайте
Цитата Jlexa123 ()
Что лучше для оптимизации

Что подразумевается под "оптимизацией", нагрузка на CPU, GPU или сокращение размера дистрибутива, времени загрузки?

Также "оптимизация" зависит от того с чем работаешь - одно дело если изначально под мобилы затачиваешь проект, другое - портировать с ПК и более мощных платформ.

Всегда лучше запекать всё в текстуру, если есть возможность. Т.к. нагрузка на производительность, как правило, из-за обработки эффектов освещения, теней и пр. в реальном времени.

Общие советы даны тут (на английском)


Дао, выраженное словами, не есть истинное Дао.
LaushДата: Четверг, 31 Марта 2022, 16:48 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Лучше использовать одну модель, и один материал с шейдером, позволяющий изменять цвет материала. Или же если собираешься чередовать в реальном времени эти два материала для деревьев, то лучше использовать просто два разных материала.
Но опять же, старайся продумывать всё так, чтобы как можно меньше использовать материалов в проекте. Если их много, то я бы вообще пересмотрел подход, и использовал для моделей такую развертку текстуры, которая позволит использовать универсальный материал (атлас, то-есть текстура, с цветовой палитрой), чтобы этот материал использовался на множестве моделей.


[PC/Android/iOS/WEB] 30 Days to survive
[PC] Dead Defense
[PC] Саламандра - история пирата
drcrackДата: Четверг, 31 Марта 2022, 18:48 | Сообщение # 4
старожил
Сейчас нет на сайте
Цитата
Лучше использовать одну модель, и один материал с шейдером, позволяющий изменять цвет материала.

самый универсальный способ который даже в худшем случае будет как минимум на уровне других вариантов, а в отдельных ситуациях на порядок-два быстрее
Jlexa123Дата: Четверг, 31 Марта 2022, 22:05 | Сообщение # 5
частый гость
Сейчас нет на сайте
скрин 1

скрин 2


Судя по профайлеру у меня одно из самых слабых мест это рендеринг, на втором скриншоте видно какие у меня дикие параметры рендеринга. Я посмотрел некоторые видео про оптимизацию графики и там было сказано, что нужно объединять материалы, меши, однако при объединении материалов нельзя менять цвет у одного и того же материала, чтобы одна и та же модель имела разные цвета. Например на скриншоте скала снаружи светлая, а внутри - подземелье и она темная. Но можно сделать 2 одинаковые модели, с разной разверткой, чтобы раскрасить одним материалом, отсюда и такие вопросы. Свет в приемлемом качестве у меня запекается за 7 а то и более часов, так что я это держу в качестве самого крайнего варианта, да и вес приложения тогда ощутимо увеличивается.

Цитата
самый универсальный способ который даже в худшем случае будет как минимум на уровне других вариантов, а в отдельных ситуациях на порядок-два быстрее

Стандартный URP Lit shader позволяет менять цвет материала, но он тогда все модели с этим материалом перекрашивает.


Сообщение отредактировал Jlexa123 - Четверг, 31 Марта 2022, 22:13
drcrackДата: Пятница, 01 Апреля 2022, 06:58 | Сообщение # 6
старожил
Сейчас нет на сайте
Цитата
Стандартный URP Lit shader позволяет менять цвет материала, но он тогда все модели с этим материалом перекрашивает.

https://docs.unity3d.com/ScriptReference/MaterialPropertyBlock.html
https://docs.unity3d.com/Manual/GPUInstancing.html
https://docs.unity3d.com/Manual/SRPBatcher.html


Сообщение отредактировал drcrack - Пятница, 01 Апреля 2022, 06:59
Jlexa123Дата: Пятница, 01 Апреля 2022, 08:43 | Сообщение # 7
частый гость
Сейчас нет на сайте
TLT, Laush, drcrack спасибо большое за помощь. Теперь я смогу еще от трети материалов избавиться )

Сообщение отредактировал Jlexa123 - Пятница, 01 Апреля 2022, 08:56
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос по оптимизации
  • Страница 1 из 1
  • 1
Поиск:

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