7

Делаю игру на Unity3d. Эпизод 10: Level of detail

Здравствуйте, дорогие Пикабушники и Пикабушницы! 👋

Я занимаюсь разработкой 3D action RPG в открытом мире на Unity. И в процессе разработки такой игры можно столкнуться с кучей проблем. Одна из самых больших — это производительность. Когда у тебя в кадре сотни объектов, от гигантских замков до мелких камешков, твой FPS начинает плакать в уголке. Знакомо? Одна из техник, позволяющих решить эту проблему - LOD.

Для тех, кто не в теме: LOD (Level of Detail) — это штука, которая позволяет объектам в игре подменять свои модели в зависимости от расстояния до игрока. Чем дальше объект — тем проще его модель. Например, когда герой смотрит на дерево в 100 метрах, это уже не дерево с 10к полигонов, а «китайская копия» из 300. А если дерево совсем далеко, то это вообще плоская картинка (ну или вообще ничего, кто его разглядит?).

Кстати, знаете, что самое классное? Игрок этого не замечает. Если настроить всё грамотно, подмена моделей происходит настолько плавно, что игроку никогда не придёт в голову, что на экране происходят подобные чудеса обмана.

Почему это правда важно для RPG в открытом мире?
В моём случае это не просто способ "немного ускорить игру". Если включать в расчет весь мир — леса, горы, здания, NPC — то без LOD такую игру просто невозможно сделать комфортной. Да и не все игроки будут запускать мою игру на золотой RTX 5090, а хочется, чтобы поиграли все.

Я записал видео, где показываю, как работать с Unity LOD Group и новой системой Mesh LOD!

А пока напишите, сталкивались ли вы с проблемами оптимизации в своих проектах? Или, может, у вас есть свои трюки для разгрузки сцены? Делитесь в комментариях! 🚀

Youtube:

VK:

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"