Чем отличаются 2D и 3D версии
Визуальный редактор
Magic Particles 3D умеет работать со следующими видами эффектов:
- 3D эффекты
- 2D эффекты
- 2D эффекты на плоскости, которая ориентирована в пространстве произвольным образом
3D API умеет работать со следующими видами эффектов:
- 3D эффекты
- 2D эффекты на плоскости, которая ориентирована в пространстве произвольным образом
2D API умеет работать со следующими видами эффектов:
2D эффекты на плоскости
С 3D и 2D эффектами всё более-менее понятно, а вот что такое 2D эффекты на плоскости ?
В редакторе этот вид эффекта включается через свойство 3d сцена:

Например, обычный 2D эффект выглядит так:

А если включить свойство 3D сцена, то он уже будет выглядеть иначе:

В данном случае, для отображения эффекта в 3D пространстве выбрана плоскость Y, поэтому огонь как бы "лежит" на полу. Однако можно выбрать другие варианты ориентации, например, ориентация на камеру, тогда эффект всегда будет поворачиваться плоскостью по направлению к наблюдателю, что очень напоминает 2D, где нет камеры.
Но очень важно понимать следующее:
- Эмиттер у такого эффекта имеет пространственные координаты X, Y, Z.
- Частицы у такого эффекта имеют координаты только X и Y.
- Такие эффекты являются некоторой смесью 2D и 3D эффектов. Но не обладают в полной мере их свойствами.
2D эффекты на плоскости чаще всего могут 1 в 1 повторять собой обычные 2D эффекты, но есть некоторые ограничения:
- Вращение 2D эффекта при помощи двумерной Шкалы времени не может быть использовано и будет игнорироваться. Дело в том, что в 3D вращение выполняется совсем по другому. Например, можно вращать плоскость эффекта в пространстве.
- Никакие события для таких эффектов не работают. Т.е. если изначально 2D эффект был настроен на работу с физикой (например, частицы отскакивали от препятствия), то после включения галочки 3D сцена, физика сразу же перестанет функционировать. Это связано с тем, что частица вообще не может уйти с плоскости, а столкновения в пространстве предполагают резкое изменение направления движения. Также и сами препятствия не могут быть преобразованы в 3D. В общем попытка взаимодействия с чем-либо таких эффектов в общем случае просто невозможно, а поэтому отсутствует.
- В 2D имеется возможность смешивать между собой разные типы частиц:
Например, это позволяет смешать пламя и дым:
Для эффектов на плоскости такая возможность отсутствует, а вместо неё имеется возможность обычной сортировки частиц по расстоянию до камеры как в обычном 3D эффекте.
Зато имеется интересная возможность для эффектов на плоскости использовать разные плоскости для разных типов частиц. Например, с огнем можно сделать вот что:
В данном примере частицы продублированы по трём разным плоскостям, что создает иллюзию трехмерности.
Как 3D API преобразует 2D эффекты
Как было сказано в начале, 3D API не умеет работать с обычными 2D эффектами. Вместо этого API при чтении 2D эффекта преобразует его в 2D эффект на плоскости. При этом в качестве плоскости автоматически выбирается плоскость Z, но её можно изменить по своему усмотрению.
Такой подход позволяет почти всегда отобразить 2D эффект в 3D API точно также, как он выглядел на плоскости. Но, естественно, что могут иногда встречаться ситуации, которые не позволят этого сделать. Они были описаны выше. Также стоит учесть, что в 2D эффекте частицы не могут сортироваться по расстоянию до камеры, так как там никакой камеры просто нет. Поэтому включение сортировки может вызвать нарушение порядка частиц по сравнению с оригинальным 2D эффектом.
Порядок рисования частиц у 2D эффектов определяется следующими свойствами:

К слову говоря, если для 3D эффекта не включена сортировка частиц по расстоянию до камеры, то порядок рисования частиц определяется этими же свойствами.