У меня есть приложение для рисования, и я хотел бы, чтобы мои пользователи могли использовать эффекты частиц как часть своего рисунка. По сути, смысл приложения состоит в том, чтобы выполнять пользовательский рисунок и сохранять его в Camera Roll или делиться им через World Wide Web.
Недавно я познакомился с классом CAEmitterLayer
, который, по моему мнению, был бы простым и эффективным способом добавления эффектов частиц.
Я смог нарисовать частицы на экране в приложении, используя реализацию CAEmitterLayer
. Так что рендеринг на экране работает нормально.
Когда я отрисовываю содержимое чертежа, используя
CGContextRef context = UIGraphicsBeginImageContextWithSize(self.bounds.size);
// The instance drawingView has a CAEmitterLayer instance in its layer/view hierarchy
[drawingView.layer renderInContext:context];
//Note: I have also tried using the layer.presentationLayer and still nada
....
//Get the image from the current image context here for saving to Camera Roll or sharing
....the particles are never rendered in the image.
Что, по моему мнению, происходит
CAEmitterLayer
находится в постоянном состоянии «оживления» частиц. Вот почему, когда я пытаюсь отрендерить слой (, я также пытался отрендерить layers.presentationLayer
и modelLayer ), анимация никогда не фиксируется, и поэтому рендеринг внеэкранного изображения не содержит частиц.
Вопрос Кто-нибудь визуализировал содержимое CAEmitterLayer
за кадром? Если да, то как вы это сделали?
Альтернативный вопрос Кто-нибудь знает какие-либо библиотеки систем эффектов частиц, которые не используют OpenGL и не являются Cocos2D?