Применение режима Particle Collision Mode для Distance Fields в Unreal Engine 4

0
11
Применение Particle Collision Mode для Distance Fields ue4

Столкновение частиц в играх может быть ограничено, если полагаться на глубину сцены, которая может использовать только то, что находится внутри камеры для столкновения. Глубина сцены не очень точная при некоторых углах для частиц, которые имеют более длительный срок службы или которые используются на большой площади. Если вы используете Mesh Distance Fields для вашего проекта, режим столкновения частиц Collision Mode может использовать целую сцену для столкновения вместо глубины сцены.

Режим Collision Mode Distance Field обеспечивает более надежное столкновение, чем одно для глубины сцены (Scene Depth). Однако, поскольку Global Distance Fields используется для представления более низкого разрешения всей сцены, вы можете обнаружить, что частицы будут проходить через тонкие объекты или что острые углы округляются при использовании Distance Field Collision Mode. В обмен на меньшее разрешение столкновение с Distance Fields работает очень эффективно. Его эксплуатационная стоимость примерно такая же, как и при столкновении сцены и работает без ограничения вида камеры. Режим столкновения Distance Fields – это функция Shader Model 5 (SM5). На технике, которая не поддерживает SM5, столкновение частиц будет автоматически возвращаться к использованию столкновения глубины сцены.

В этом руководстве вы узнаете, как включить Режим Столкновения для Distance Fields в вашей системе частиц.

Шаги

Для этой функции требуется, чтобы Generate Mesh Distance Fields включались в настройках проекта в разделе RenderingПосмотрите, как включить Mesh Distance Fields здесь, если вы еще этого не сделали.

1. В своем контент браузере найдите и откройте любую систему частиц или создайте новую, если у вас нет доступной.система частиц в Content Browser ue4

Актив P_GPU_particles_collision2 из Примеров Контента является хорошим примером использования в качестве начальной точки с минимальной настройкой.

2. Дважды щелкните по выбранной системе частиц, чтобы открыть редактор Cascade Particle Editor.Применение Particle Collision Mode для Distance Fields ue4

3. Когда откроется редактор Cascade Particle Editor, щелкните правой кнопкой мышки в пустом пространстве и в списке модулей выберите Type Data > New GPU Sprites.Add GPU module ue4

4. Щелкните правой кнопкой мышки еще раз в пустом пространстве и в списке модулей выберите Collision > Collision (Scene Depth).Add Collision Module ue4

5. Выберите модуль Collision (Scene Depth). Перейдите к панели Details и рядом с Collision Mode используйте раскрывающийся список, чтобы выбрать Distance Field.Details Panel Collision Mode ue4

Конечный результат

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

В этом примере для столкновения частиц используется столкновение Distance Fields. Частицы всегда блокируются любой поверхностью, которая имеет сгенерированное Distnace Field, независимо от того, видна ли она внутри камеры или нет. Когда камера движется под деревом, столкновение частиц на поверхности вершины дерева (из камеры) все еще влияет на частицы.

Когда для столкновения частиц используется столкновение глубины сцены (Scene Depth collision), частицы блокируются только тем, что видно на экране камеры, используя буфер глубины сцены. Таким образом, когда камера перемещается под деревом, столкновение частиц на поверхности вершины дерева (вне камеры) больше не влияет на частицы, заставляя их падать на землю перед камерой, даже если они должны быть заблокированы.