Particles Ghost Mesh

Демо в браузере (WebGL), оно же есть на главной странице сайта

Из меша получается призрак, голограмма или облако летящих искр. Бейкер переводит геометрию в облако точек.

Облако хранится в двух компактных текстурах, и с этого момента исходная модель в эффекте не участвует.

Исходный меш можно вообще не включать в билд.

Облако на него не ссылается.

Так делаются духи и призраки, голографический UI и сканеры в стиле sci-fi.

А ещё переходы с растворением и повторным появлением, заставки с логотипом, визуализация данных и сцены для лендингов.

Всё это получается из моделей, которые уже есть в проекте.

Подходит любой меш, который можно импортировать, от одного объекта до целой иерархии окружения.

Во время работы весь эффект — это один меш, один материал и один draw call.

Во всей цепочке нет ни compute-шейдеров, ни GraphicsBuffer.

Поэтому эффект работает во вкладке браузера и на телефоне.

Там системы частиц на compute-шейдерах просто не запускаются.

★ РАБОТАЕТ НА МОБИЛЬНЫХ И В ВЕБЕ ★

Симуляция — это blit фрагментного шейдера между двумя render texture, которые меняются ролями (ping-pong).

Shader target — 3.5.

Благодаря этому ассет совместим с WebGL2, WebGPU, Android и iOS, где системы частиц на compute-шейдерах не работают.

Размер точки ограничен в пикселях.

Поэтому облако из 160 000 точек остаётся читаемым и дешёвым при любом разрешении и на любом экране.

Particles Ghost Mesh

★ ОДИН КОМПОНЕНТ, ПЯТЬ СИСТЕМ ★

Компонент Liquid Mesh Particles добавляется на пустой объект, в него назначается запечённое облако.

Дальше в одном инспекторе настраиваются отталкивание от курсора, ветер, поток, HDR-градиенты и подкраска по палитре материалов.

Все системы независимы друг от друга.

Каждая выключается одним значением, выставленным в ноль.

Варианты шейдеров и комбинации ключевых слов для этого не нужны.

★ БЕЙКЕР С РАВНОМЕРНЫМ РАСПРЕДЕЛЕНИЕМ, А НЕ СЛУЧАЙНЫЙ РАЗБРОС ★

Point Cloud Baker объединяет все MeshFilter внутри исходного объекта и сваривает совпадающие вершины.

Точки распределяются пропорционально площади треугольников.

Затем проходит отбраковка по Пуассону.

В итоге между точками выдерживается равномерное минимальное расстояние, без комков, которые получаются при наивной выборке.

Жёсткие рёбра можно обойти отдельно, тогда силуэты и изломы остаются чёткими даже при небольшом числе точек.

Цвета материалов собираются в палитру до 32 цветов.

Поэтому модель с несколькими материалами сохраняет свои цвета и в облаке.

★ ПОЛНЫЕ ИСХОДНИКИ, НИЧЕГО СКРЫТОГО ★

Три файла C#, три файла шейдеров и один общий HLSL-инклуд.

Никаких DLL, сторонних зависимостей и скрытого рантайма. Код можно читать, править и выпускать в своём проекте.

Подходит для голографического UI, призраков и духов, эффектов растворения и повторного появления.

Годится для сканеров в стиле sci-fi и визуализации данных.

Можно использовать в заставках с логотипом, на лендингах и в сценах для портфолио.

Particles Ghost Mesh

Возможности

  • Любой меш в облако точек. Целую иерархию MeshFilter можно запечь в одно облако за несколько секунд.
  • До 500 000 запечённых точек и до 1 000 000 отрисовываемых частиц.
  • Плейлист морфинга. Запечённые облака выстраиваются в список, и каждая форма перетекает в следующую. Время показа и время перехода задаются для каждой записи отдельно. В покое затраты как на одно облако, за два облака платится только во время перехода.
  • Все настройки хранятся вместе с облаком. Каждая запись — префаб со своими цветами, ветром, потоком, градиентом, масштабом и ориентацией, и всё это плавно интерполируется при переходе.
  • Вращение как на поворотном столе. Одно поле скорости вращает весь плейлист вокруг оси Y — для шоурилов и демонстрации продуктов.
  • Один draw call. Один меш, один материал, никакой работы CPU на каждую частицу, без GraphicsBuffer и без накладных расходов на инстансинг.
  • Без compute-шейдеров. Симуляция на GPU — это blit во фрагментном шейдере, поэтому всё работает на WebGL2, WebGPU, Android и iOS.
  • Реакция на курсор и тач. Точки отталкиваются в экранном пространстве с экспоненциальным сглаживанием и плавно возвращаются на место. Поддерживаются мышь и тач, новый Input System и старая система ввода.
  • Ветер. Направление, выбор точек по ориентации, смещение по нормали, разброс для каждой точки, дальность сноса, скорость, плавное появление и затухание.
  • Поток. Частицы физически движутся вдоль оси в пространстве объекта, держатся поверхности и растворяются на границе геометрии.
  • HDR-градиент. Два HDR-цвета проецируются на любую ось, середина градиента настраивается, а отдельный слайдер смешивает его с запечённой палитрой материалов.
  • Палитра на 32 цвета материалов. Цвета читаются из _BaseColor или _Color при запекании и сохраняются для каждой точки.
  • Распределение по диску Пуассона. Равномерный шаг вместо шума с комками, детерминированный сид для повторяемого запекания.
  • Отдельная выборка по жёстким рёбрам. Свой бюджет точек на изломы и силуэты, порог задаётся двугранным углом.
  • Размер точки ограничен в пикселях. Минимальный и максимальный экранный размер держат облако читаемым на любом расстоянии и при любом разрешении.
  • Превью прямо в Scene view. Ветер, поток, градиенты и плотность обновляются без входа в Play Mode.
  • Полные исходники C# и HLSL в комплекте. Без DLL и внешних зависимостей.
  • Документация прямо в редакторе. Окно приветствия показывает весь README внутри Unity.

Particles Ghost Mesh

Видео

Particles Ghost Mesh

https://www.youtube.com/watch?v=2_vd50FK8f8

Страница в Asset Store: Particles Ghost Mesh