Как правильно готовить статик геометрию для Unity?

Импорт текстур, моделей, звуков и пр.

Как правильно готовить статик геометрию для Unity?

Сообщение jr900 07 июн 2018, 17:06

Привет всем!
Есть у меня один открытый уровень в исходниках в 3ds Max-е, хочу перенести его в Unity. Там есть террейн, дома, постройки и.т.д

Вопрос - как оптимально объединять/разделять объекты для лучшей оптимизации, с учетом того, что в дальнейшем будет юзаться Occlusion Culling?

Вот к примеру: есть деревенька на уровне - несколько домов, несколько заборов, разбросанные пропсы. Те-же заборы объединять в один меш? Но как я понимаю, для Occlusion Culling лучше оставлять объекты отдельно, чтобы одни могли перекрывать другие.

Есть вообще фундаментальные правила подготовки статической геометрии на больших уровнях для экспорта в Юнити?

Буду рад любой информации и личному опыту. Спасибо.
jr900
UNец
 
Сообщения: 26
Зарегистрирован: 16 апр 2016, 10:13

Re: Как правильно готовить статик геометрию для Unity?

Сообщение alt3d 07 июн 2018, 18:00

Объединяй по материалам.
Это поможет батчингу.

Остальное - делаешь как удобно.
Если у тебя там не ГТА5, сильно заморачиваться не стоит.
Особенно в начале, потратишь на переделку кучу времени )
alt3d
Старожил
 
Сообщения: 671
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ

Re: Как правильно готовить статик геометрию для Unity?

Сообщение jr900 07 июн 2018, 18:21

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

Если объединять меши по текстурам (будущим материалам) то получится дикие совершенно куски объектов. В принципе, с этим можно и смириться, но свет потом нормально будет запекаться и GI реалтайм просчитываться??
jr900
UNец
 
Сообщения: 26
Зарегистрирован: 16 апр 2016, 10:13

Re: Как правильно готовить статик геометрию для Unity?

Сообщение OctoLumen 08 июн 2018, 20:45

Разделяйте на объекты, т.е.:

1) В Максе имеем уровень с деревенькой и заборами

2) Делим на крупные объекты - дома, заборы, водные полигоны (включая лужи), деревья и т.д.

3) Каждый объект представляем себе как он будет виден со стороны камеры - если камера будет близко находиться к объектам (человек идет по улице деревни, вид от 1-го лица) - то проще всего сделать ЛОДы; если камера высоко\далеко и быстро движется (самолет летит над деревней), то либо ЛОДы, либо ДроуДистанс, который реализуется скриптом на детали объектов, которые можно дальше определенного расстояния отключать для показа

[пример]: объект размером в 30х30м, с расстояния 110м - можно убирать все детали размером 1-2м - Юнити это сделает сам, когда они станут меньше 1 пикселя, но эффективнее вот так - разумеется, юниты могут быть произвольными, я привел пример пропорции для камеры с ФОВ == 80 градусов

4) Материалы сейчас бэтчатся при загрузке сцены самым оптимальным способом, никаких особых выигрышей ручными настройками добиться на производительных таргет-платформах почти не выйдет

5) окклюжн каллинг - дефолтный метод поведения камеры, можно его отключить или кинуть свой шейдер если нужно рендерить невидимые (обратные по углу к камере) полигоны, но это редко когда нужно, в остальном как и в Максе окклюжн каллинг всегда включен

... ну и еще годы и годы опыта и советов, пробуйте - "узкие мезта" (в плане просадок фпс + юнити аналитикс насчет дроуколлов и треугольников) вылезут со временем и придумаете свою версию оптимизации ;-) Ну или спрашивайте - по мере поступления - попробуем подсказать )
Профессиональная разработка 3D-контента для игр. Специализация в качественном лоу-поли. 3D и 2D UI.

Готовые элементы (классы сложных данных, необычные сериализаторы, оптимизация проектов) на заказ.
Аватара пользователя
OctoLumen
UNец
 
Сообщения: 7
Зарегистрирован: 30 май 2018, 20:34
Откуда: Moscow | Stansted | Limassol
Skype: octolumen

Re: Как правильно готовить статик геометрию для Unity?

Сообщение alt3d 09 июн 2018, 09:01

OctoLumen писал(а):Разделяйте на объекты, т.е.:
4) Материалы сейчас бэтчатся при загрузке сцены самым оптимальным способом, никаких особых выигрышей ручными настройками добиться на производительных таргет-платформах почти не выйдет


Может версии старше 5-ой и могут, но в моей пока не очень.
На скрине по ссылке видно что меш объединенный по материалам выигрывают по времени затрачиваемом на рендер.
Ну и по драуколам лучше статистика при скомбайненых мешах
https://hkar.ru/Uoi4

OctoLumen писал(а):5) окклюжн каллинг - дефолтный метод поведения камеры, можно его отключить или кинуть свой шейдер если нужно рендерить невидимые (обратные по углу к камере) полигоны, но это редко когда нужно, в остальном как и в Максе окклюжн каллинг всегда включен

то что вы описали это frustrum culling, а окклюжен - это совсем другая штука, требующая отдельного просчета в редакторе
Опять же, может в версиях 2018 и выше все поменялось, и юнитехи как-то умудрились автоматом отсекать загораживающие друг-друга полигоны :)


jr900 писал(а):Спасибо за ответ, но тут с материалами еще полная неопределенность как делать.

Поэтому я и говорю - делайте пока как удобно вам в данный конкретный момент.
Ближе к завершению работы уже будет видно что и как оптимизировать
alt3d
Старожил
 
Сообщения: 671
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ

Re: Как правильно готовить статик геометрию для Unity?

Сообщение jr900 13 июн 2018, 10:12

Что интересно - экспортировал два домика: один цельным мешем, другой порезанный на текстуры (материалы) - так вот, на порезанном правильно запеклось GI, а на цельном - засветы на стыках стен и потолка.
jr900
UNец
 
Сообщения: 26
Зарегистрирован: 16 апр 2016, 10:13


Вернуться в Медиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3