Добавить в корзинуПозвонить
Найти в Дзене

Живой огонь в реальном времени — как это устроено в Ignitement

https://unity.com/blog/real-time-fluid-simulation-fire-vfx-ignitement-breakdown Соло-разработчик Sørb написал гостевой пост о технической начинке огня в своей игре Ignitement. И там есть на что посмотреть. Вместо классических партиклов — полноценная 2D fluid simulation в реалтайме. Работает через Graphics.Blit, обновляет несколько текстур (density, velocity, temperature, reaction) и намеренно использует fragment shaders вместо compute — ради широкой совместимости. Рендеринг огня построен на reaction texture как heightmap с parallax-эффектом. Дым — из temperature. Искры — GPU-частицы, которые сэмплируют velocity field и естественно следуют потоку воздуха. Всё самописное: никакого Shuriken, никакого VFX Graph. Особенно интересно с освещением: reaction texture даунсэмплится в динамический light map. Один texture lookup в шейдере с небольшим сдвигом по нормали — и среда выглядит так, будто её реально освещает огонь. Тот же light map используется в UI и даже для деформации «стен из плот

Живой огонь в реальном времени — как это устроено в Ignitement

https://unity.com/blog/real-time-fluid-simulation-fire-vfx-ignitement-breakdown

Соло-разработчик Sørb написал гостевой пост о технической начинке огня в своей игре Ignitement. И там есть на что посмотреть.

Вместо классических партиклов — полноценная 2D fluid simulation в реалтайме. Работает через Graphics.Blit, обновляет несколько текстур (density, velocity, temperature, reaction) и намеренно использует fragment shaders вместо compute — ради широкой совместимости.

Рендеринг огня построен на reaction texture как heightmap с parallax-эффектом. Дым — из temperature. Искры — GPU-частицы, которые сэмплируют velocity field и естественно следуют потоку воздуха. Всё самописное: никакого Shuriken, никакого VFX Graph.

Особенно интересно с освещением: reaction texture даунсэмплится в динамический light map. Один texture lookup в шейдере с небольшим сдвигом по нормали — и среда выглядит так, будто её реально освещает огонь. Тот же light map используется в UI и даже для деформации «стен из плоти» в вертексном шейдере.

Симуляционные данные не остаются на GPU: через AsyncGPUReadback они уходят на CPU и влияют на геймплей напрямую.

Из ограничений — всё 2D, вертикаль лишь приближение. Но это осознанный трейдофф: быстро, дёшево, работает везде.

Честный технический разбор от инди-разработчика, где VFX, геймплей и UI держатся на одной системе.

#unity #шейдеры #рендеринг #геймдев