Делаю игру на 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: