TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
GameDev HACK

9 Mar, 22:04

Открыть в Telegram Поделиться Пожаловаться

Procedural Grass в Ghost of Tsushima

Здесь трава — это не набор расставленных мешей. По сути это GPU-driven procedural pipeline, который генерирует, фильтрует и рендерит растительность почти полностью на стороне GPU.

Цели у системы довольно практичные:

• минимальная нагрузка на CPU
• масштабируемость для большого open world
• высокая визуальная плотность
• правдоподобное поведение на ветру

😡Procedural placement

Растительность не хранится как тысячи объектов сцены. Вместо этого на поверхности генерируются seed points — компактные записи, описывающие будущую траву. В них обычно лежат:

• тип растения
• вариация формы
• плотность
• параметры анимации

Распределение сидов учитывает особенности поверхности:

• угол наклона (slope)
• высоту
• тип материала
• контекст окружения (дороги, тропинки и т.п.)

За счёт этого данных хранится немного, а плотность растительности можно менять динамически.

⚡️ GPU-driven pipeline

CPU здесь в основном задаёт правила. Основная работа происходит на GPU.

Упрощённо пайплайн выглядит так:

seed data → visibility pass → LOD selection → instance buffer → indirect draw

Используются:

• compute shaders для подготовки instance buffer
• GPU frustum и distance culling
• indirect draw calls

CPU не управляет миллионами объектов — он лишь передаёт исходные данные и параметры.

---

🌾 LOD управляет не только геометрией

LOD здесь работает не просто как «меньше полигонов дальше от камеры».

Меняется и геометрия, и плотность растительности:

• рядом с камерой — полноценные blades
• на средней дистанции — grass cards
• вдали — impostor-поля

Так удаётся сохранить ощущение плотного травяного покрытия без перегрузки GPU.

---

🌬 Система ветра

Фирменный “Wind of Tsushima” — важная часть визуального стиля игры.

Для движения травы используется vector field. Он задаёт направление и силу ветра в пространстве.

Поверх этого комбинируются:

• крупные порывы ветра
• мелкие высокочастотные колебания
• локальная деформация от персонажа

Реакция травы задаётся кривыми (curve parameters), поэтому движение выглядит естественно и не синхронно.

---

⚙️ Оптимизации

Несколько вещей, которые делают систему дешёвой:

• секторный procedural culling
• очень компактные instance-данные
• многоступенчатые GPU-буферы

pipeline буферов выглядит примерно так:

visibility → LOD → final draw buffer

В результате одна травинка описывается буквально несколькими байтами данных.

---

🧩 Почему эта система интересна

Ghost of Tsushima хорошо показывает современный подход к растительности:

• data-driven
• GPU-centric
• процедурная генерация
• масштабируемость для open worlds

Трава здесь — не просто декор. Это часть динамической системы окружения, которая реагирует на ветер, камеру и игрока.

---

🎥 Разбор от разработчиков:
https://www.youtube.com/watch?v=Ibe1JBF5i5Y
Procedural Grass in 'Ghost of Tsushima'
In this 2021 Advanced Graphics Summit talk, graphics programmer Eric Wohllaib will discuss how they generate acres of grass within reasonable memory and performance limits, techniques for rendering and animating individual blades, and methods for making thousands of individual blades of grass look l...

70 0 2 2
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot