Новые возможности API:
- Появилась 3D-версия библиотеки. Библиотека теперь имеет 2 версии: 2D и 3D. Справка и заголовочный файл magic.h являются общими для обоих версий. 3D-версия библиотеки умеет проигрывать 2D-эмиттеры, используя заданную плоскость в пространстве.
- Универсальная обертка (враппер) была полностью переработана под одновременное использование и в 2D, и в 3D режиме.
- Сделаны серьезные доработки текстурного атласа. Сейчас API умеет работать с 2-мя видами атласов: статическими и динамическими. Статические атласы строятся при помощи редактора и привязываются к ptc-файлу. Динамические атласы строятся в момент выполнения программы из текстур, хранящихся внутри ptc-файлов. В старых версиях динамический атлас строился только для всех загруженных в память эмиттеров, сейчас же можно указать эмиттеры выборочно. Библиотека самостоятельно следит за состоянием атласов, и если, например, какой-то эмиттер был удален, то его текстуры в атласе также удаляются и образовавшиеся пустоты могут использоваться под текстуры другого эмиттера. Если пользователь задействовал стандартный враппер, то разницы между использованием статических и динамических атласов не должно быть никакой, так как враппер сам разбирается с тем "что" и "откуда" загружать, а также самостоятельно производит очистку неиспользуемых атласов в случае необходимости.
- Враппер теперь самостоятельно восстанавливает потерянные текстуры в случае переключения режима экрана.
- Редактор автоматически подрезает "пустоты" по краям загружаемых текстур, что приводит к значительной экономии текстурной памяти, а также к увеличению скорости отрисовки частиц. Подрезанная текстура ведет себя визуально точно также как и раньше, а для дизайнера спецэффекта экономит время по оптимизации частиц.
- Редактор позволяет масштабировать текстуры наблюдая визуально работу спецэффекта. Очень часто дизайнер делает заведомо большую текстуру для частицы, что очень нехорошо сказывается на ресурсах компьютера. Теперь такую текстуру можно уменьшить прямо в редакторе до необходимого размера.
- Библиотека совместима с таймлайном редактора, т.е. все действия выполненные в редакторе с помощью таймлайна будут в точности повторяться библиотекой. Также имеется возможность программного создания/удаления/редактирования ключей таймлайна.
- Появилась возможность создавать "хвост" из частиц, между двумя позициями эмиттера. Это может понадобиться, если эмиттер был резко перемещен на большое расстояние, в этом случае иногда полезно создать как бы переходный "след" из частиц. Построение этого хвоста/следа может быть настроено через структуру MAGIC_TAIL, чтобы получить максимально эффектный результат. Для удобства пользователя конфигурировать структуру MAGIC_TAIL можно визуально при помощи редактора.
- Появилась возможность ограничивать область рождения новых частиц. Например, можно создать эмиттер огня на большой площади, а затем ограничить эту площадь небольшой сферой по центру. Тогда новые частицы будут рождаться лишь в пределах этой сферы. Но у сферы можно постепенно увеличивать радиус, что практически даст эффект "расползания" пламени.
- В общей сложности в библиотеку добавлено около 40 новых функций. Решено много малых и больших проблем, которые были не всегда очевидны.