GPUSprites Type Data в Unreal Engine 4

0
4
GPUSprites Type Data в Unreal Engine 4

Модуль данных GPUSprite поддерживает моделирование частиц на графическом процессоре. Традиционные системы ЦП позволяют тысячам частиц в кадре. Моделирование GPU позволяет эффективно и эффективно имитировать сотни тысяч частиц.

GPUSprites Type Data в Unreal Engine 4

Частицы GPU не поддерживают все функции, доступные для традиционных частиц процессора, но они обеспечивают большую эффективность, а также несколько уникальных функций. Излучение частиц по-прежнему происходит на процессоре, чтобы определить, где, когда и сколько частиц должно появиться. ЦП также может назначать начальные атрибуты, такие как размер и скорость, используя методы, доступные традиционным частицам ЦП.

Обработчики частиц GPU создаются в Cascade путем добавления модуля данных типа «GPU Sprites» к эмиттеру. Как и в других эффектах, созданных в Cascade, параметры моделирования изменяются путем добавления и редактирования модулей на эмиттере. Обновления моделирования в реальном времени по мере изменения свойств.

Свойства

СвойствоОписание
Beam
Camera Motion Blur AmountНасколько растянуть спрайты на основе размытия движения камеры.

Поддерживаемые атрибуты

Следующие атрибуты поддерживаются с помощью GPU-частиц:

  • Initial Location
  • Initial Velocity
  • Drag
  • Lifetime
  • Color
  • Size
  • Rotation
  • RotationRate
  • Sub Image Index
  • Acceleration

Критические понятия

При использовании GPU-частиц в вашей сцене важно понимать следующие ключевые понятия.

Движение

Движение частиц определяется простой ньютоновской динамикой. На каждом временном шаге положение и скорость частицы интегрируются вперед в зависимости от ее текущего положения, скорости тока, постоянного ускорения и силы из-за сопротивления.

Частицы GPU также поддерживают орбиту, хотя детали отличаются от деталей, которые предусмотрены для традиционных частиц процессора. Концептуально частица движется так, как будто спрайт вращается вокруг фактического местоположения смещения частицы на различное количество. Орбиту можно использовать для добавления дополнительного движения детали к частицам.

Векторные поля

Наиболее интересной особенностью частиц GPU, помимо их эффективности, является векторное поле. Векторное поле представляет собой однородную сетку векторов, которая влияет на движение частиц. Векторные поля помещаются в мир как Актеры (Global Vector Field) и могут быть транслированы, повернуты и масштабированы, как и любой другой Актер. Они динамичны и могут быть перемещены в любое время. Поле также может быть помещено в каскад (Local Vector Field), ограничивая его влияние на эмиттер, с которым он связан. Когда частица входит в границы векторного поля, на ее движение будет влиять ее, и когда частица покидает границы, влияние поля будет исчезать.

По умолчанию векторные поля прикладывают силу к частицам внутри них. Векторные поля также имеют параметр «герметичность». Этот параметр управляет тем, как прямые частицы следуют за векторами в поле. Когда плотность установлена ​​равной 1, частицы считывают свою скорость непосредственно из поля и точно следуют за полем.

Статические векторные поля – это те, в которых сетка векторов никогда не изменяется. Эти поля могут быть экспортированы с Maya и импортированы как объемная текстура. Статические поля очень дешевы и могут быть использованы для добавления интересного движения к частицам, особенно путем оживления движения самого поля.

Кроме того, векторные поля могут быть восстановлены из 2D-изображения. В этом случае изображение, похожее на карту нормали, можно импортировать и использовать для восстановления точной текстуры путем экструдирования или вращения ее вокруг вольюма. Статическое векторное поле может быть добавлено поверх этой реконструкции, чтобы ввести некоторый шум и случайность. Кроме того, 2D-изображения могут быть анимированы путем хранения отдельных кадров в текстуре атласа. Это позволяет выполнять автономное моделирование жидкости и восстанавливать движение в реальном времени с минимальными затратами.

Представление

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

Стоимость GPU частиц определяется в первую очередь количеством частиц. Немногие функции добавляют дополнительные затраты на частицы графического процессора выше фиксированных затрат, которые уже существуют. Большинство затрат GPU можно отнести к сортировке и рендерингу. Сортировка является необязательной и должна быть включена только тогда, когда это требуется для конкретного эмиттера. В рендеринге часто преобладает скорость заполнения. Уменьшение размера частиц, число инструкций на материале частицы и общее количество частиц могут помочь. В некоторых случаях, когда частицы очень малы, в рендеринге преобладает стоимость вершин, и в этом случае уменьшение количества частиц является единственным способом снижения стоимости.

Стоимость моделирования масштабируется с количеством векторных полей, перекрывающих излучатель, поэтому уменьшение количества перекрывающихся векторных полей может помочь в уменьшении стоимости моделирования.

GPU Sprites на мобильных устройствахGPU Sprites на мобильных устройствах ue4

Теперь на мобильных устройствах можно использовать частицы графического процессора и векторные поля. Однако, поскольку эта функция требует, чтобы мобильное устройство поддерживало 32-битные точки с плавающей запятой с поддержкой MRT, эта функция будет работать только на следующих мобильных устройствах.

НаименованиеКласс девайсаИмя девайса
AppleA8+iPhone 6, iPad Air 2, iPad Mini 4, and newer.
Android6.0 devices with Adreno 4xx and Mali-T7xx GPUsGalaxy Note 4, Note 5, S6, S7, Nexus 6P and others.

Чтобы ваши частицы могли использовать эту функцию, вам нужно будет убедиться, что ваши частицы имеют следующие type data, добавленные к ним.настройка GPU Sprites_VFXC ue4

  • GPU Sprites type data
  • Global Vector Fields type data

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

GPU Спрайты на ограничениях мобильных устройств

При использовании спрайтов GPU на мобильных устройствах следует учитывать следующие ограничения.

  • Взаимодействие с векторным полем: Как и в случае с Vector Fields на ПК, на спрайты на мобильных GPU может влиять максимум четыре векторных поля одновременно. Это разбивается на одно локальное векторное поле и до трех векторных полей, помещенных в мир.
  • Столкновение частиц с графическим процессором: Спрайты с мобильным графическим процессором не поддерживают никаких параметров столкновения, таких как столкновения со сценой или mesh distance fields, поскольку они не поддерживаются на мобильных устройствах.