
Демо в браузере (WebGPU) (в настройках браузера нужно включить флаг WebGPU)
Вживую — в приложении «lumasphere» в Google Play и App Store
Светящееся дерево из энергии. Без моделирования, без анимационных клипов, без Shader Graph.
Energy Tree строит целое дерево из сида: энергетические нити закручиваются вверх от кончиков корней, проходят через ствол, расходятся по ветвям и заканчиваются «дышащими» листьями-билбордами. Одновременно выброс на GPU циклически выпускает из кроны светящиеся частицы-листья. Стоит сдвинуть слайдер, и дерево сразу пересобирается в Scene view.
Форма, листья и частицы задаются тремя ассетами ScriptableObject с независимыми сидами, поэтому настройка ветвей не перемешивает листья.
Работает во вкладке браузера. Демо выше — настоящий WebGPU-билд Unity, а не видео.
Процедурная форма
- Нити идут от кончика корня через ствол до кончика ветки, всё строится из одного главного сида
- Разлёт, глубина и закрутка корней: основание может быть расширенным или похожим на когти
- Высота ствола, число витков и кривая радиуса пучка для спирали
- Два поколения ветвей с диапазонами угла, длины и спада
- Направление роста — от поникших, как у ивы, ветвей до тянущихся к солнцу, с кривой спада
- Независимый шум на оси ствола и на ветвях
- Радиус ограничения кроны держит кончики веток внутри заданного силуэта
- Сглаживание складок не даёт лентам перегибаться через себя при любой ширине
Шейдер энергетических нитей
- Два прокручивающихся слоя атласа со смешиванием Add, Multiply или Screen
- HDR-градиент от цвета корня к цвету кончика
- Проход со стенсилом: перекрывающиеся нити добавляют свет только один раз на пиксель, без белой каши
- Покачивание вершин сильнее к кончикам, корни остаются на месте
- Затухание на стыках и кончиках, мягкость краёв задаётся в пикселях
- Совместим с SRP Batcher
«Дышащие» листья
- Один билборд, повёрнутый к камере, на каждую точку крепления ветки
- Два слоя текстуры со сдвигом в полцикла, поэтому листья появляются и исчезают плавно, без резких скачков
- Размер, скорость цикла, поворот и кадр атласа для каждого листа берутся из независимого сида
- Кривые альфы и масштаба запекаются и передаются прямо на GPU
Выброс листьев на GPU
- Симуляция на compute-шейдере, частицы бесконечно перезапускаются, каждая со своим периодом
- Кривая скорости интегрируется, поэтому если поменять её форму, меняется темп, а дальность полёта остаётся прежней
- Время жизни, гравитация, размер, яркость и кадр атласа для каждой частицы
- Один буфер, выделяется один раз, до 8192 частиц
- Burst, Stop и Play On Enable — из инспектора или из скрипта
Работа с ассетом
- Три ассета настроек, при движении слайдера дерево пересобирается на лету
- Сгенерированные меши и дочерние объекты не попадают в файл сцены или префаб
- Полные исходники HLSL, без Shader Graph и скрытых зависимостей
- Бюджет полигонов задаётся одним слайдером
- Окно приветствия с полным руководством прямо в редакторе
Мобильные платформы и веб
- Нити и листья рассчитаны на Shader Model 3.5 и работают на любом мобильном GPU
- Выброс листьев использует compute-шейдер, он поддерживается на Vulkan, Metal, GLES 3.1 и WebGPU
- Один draw call на систему, никакой работы CPU на каждую частицу, никакого мусора каждый кадр
- Для телефонов всё можно урезать до нескольких нитей, а для главного объекта сцены — наоборот, добавить детализации
Сделано для Unity 6 и Universal Render Pipeline. Подходит как главный объект сцены, святилище, основа для портала, фон для дерева навыков, центральный элемент меню или маяк в конце уровня.


Возможности
- Процедурное энергетическое дерево из сида, меши моделировать не нужно
- Закрученные нити-ленты от кончиков корней через ствол в ветви
- Два прокручивающихся HDR-слоя атласа со смешиванием Add, Multiply и Screen
- Проход со стенсилом не даёт перекрывающимся аддитивным нитям пересветиться
- «Дышащие» листья-билборды из двух слоёв со сдвигом в полцикла
- Бесконечный цикл выброса листьев на compute-шейдере, до 8192 частиц
- Три ассета настроек с независимыми сидами
- Пересборка на лету в Scene view, Play Mode не нужен
- Покачивание вершин сильнее к кончикам веток
- Бюджет полигонов задаётся одним слайдером
- Шейдеры нитей и листьев совместимы с SRP Batcher
- Полные исходники HLSL, Shader Graph не нужен
- Работает на мобильных и в вебе, есть интерактивное демо на WebGPU
- Сгенерированная геометрия не попадает в файл сцены
- Сделано для Unity 6 и URP
Видео
![]()
https://www.youtube.com/watch?v=xKN2_cjDcXU
Страница в Asset Store: Energy Tree