Технология VFX Graph позволяет создавать визуальные эффекты, используя визуальную логику на основе узлов. Эту технологию можно использовать для создания как простых эффектов, так и очень сложных симуляций. Она позволяет создавать более гибкие и сложные эффекты, чем встроенная технология создания частиц Unity.
Основные различия технологий VFX и Shuriken:
- Встроенная технология создания частиц Shuriken дает полный доступ для чтения/записи к системе и содержащимся в ней частицам из сценариев C#. Для настройки поведения системы частиц используется соответствующий API.
VFX работает на графическом процессоре. Настройка этих эффектов происходит в отдельном редакторе - VFX Graph. - Число частиц которое может обработать Shuriken достигает нескольких тысяч, в то время как VFX позволяет создавать миллионы частиц.
- Частицы встроенной технологии могут взаимодействовать с базовой физической системой Unity.
Частицы, созданные технологией VFX могут взаимодействовать только с определенными элементами, которые определяются в редакторе визуальных эффектов. Например, с буфером глубины.
Принцип работы VFX
VFX Graph использует два разных рабочих процесса:
- Процесс обработки (вертикальная логика) определяет различные этапы обработки визуального эффекта. Здесь определяется, когда происходит создание (spawn), инициализация (initialisation), обновление (updating) и отрисовка (rendering) частиц во время эффекта. Каждый этап здесь называется контекстом. Каждый контекст подключается к другому совместимому контексту, который определяет, как следующий этап обработки использует текущий контекст. Все контексты состоят из блоков, которые представляют собой узлы, отвечающие за одну операцию.
- Процесс свойств (горизонтальная логика) определяет математические операции для улучшения визуального эффекта. Это влияет на внешний вид и поведение частиц. Рабочий процесс свойств связывает контексты с помощью слотов свойств их блоков. Левая часть - это вход, а правая - выход. Встроеннная библиотека VFX содержит большое количество заготовленных узлов, с помощью которых можно настроить поведение блоков, и кроме этого можно создавать собственные операции и передавать их блокам.