Соло‑разработчик Joyen поделился техническим апдейтом по Loya — мультиплеерной survival‑игре в открытом мире с крафтом, где игроки строят огромные ходячие структуры, исследуют мир и сражаются с монстрами.
Объёмные облака: подход и производительность
Главное обновление — оптимизированные объёмные облака на compute‑шейдерах. Ключевые параметры:
- Рендер облаков в 1/4 разрешения с последующим апскейлом по границам depth‑buffer.
- Стоимость рендера облаков — 3–4 мс на кадр.
- Самый тяжёлый элемент сцены по производительности — трава, а не облака.
- На GTX 1080 Ti игра выдаёт ~110 FPS без травы и ~90 FPS с травой.
Базовая технология
Система облаков основана на статье The Real-time Volumetric Cloudscapes of Horizon: Zero Dawn, описывающей подход к реалтайм‑облакам в экшене Horizon: Zero Dawn (open-world action/RPG).
Пайплайн, по описанию Joyen, выглядит так:
- На вход compute‑шейдеру (1/4 разрешения) подаются depth‑текстура, 3D‑noise текстуры и набор параметров.
- Выполняется ray marching по объёму облаков.
- Дополнительно выполняется marching для окклюзии солнца (подсчёт освещения/затенения облаков).
- Второй проход уточняет края облаков (edge refinement).
- Результат передаётся в post‑processing шейдер, который уже встраивает финальные облака в сцену.
Значительная часть работы — это «месяцы итераций», пока разработчик не добился нужного визуального результата при приемлемой стоимости по кадру.
Loya как продукт
Loya позиционируется как мультиплеерный survival с открытым миром и крафтом, в котором игроки строят и командуют огромными ходячими структурами (по сути, мобильными крепостями) для исследования и боёв с монстрами. Игра недавно получила новый геймплейный трейлер.
Выводы
- Облака рендерятся в 1/4 разрешения с апскейлом по depth‑границам, что даёт 3–4 мс на кадр.
- Трава — главный потребитель производительности, а не объёмные облака.
- Технология вдохновлена и частично основана на подходе из Horizon: Zero Dawn.
- Пайплайн строится вокруг compute‑шейдера с ray marching и отдельным проходом окклюзии солнца.
- Качество результата достигнуто за счёт длительных визуальных итераций поверх базовой техники.