我有一个绘图应用程序,我希望我的用户能够使用粒子效果作为他们绘图的一部分。基本上,该应用程序的重点是执行自定义绘图并保存到相机胶卷或通过万维网共享。
我最近遇到了这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
模型图层),动画永远不会提交,因此屏幕外图像渲染不包含粒子。
问题 有没有人渲染过CAEmitterLayer
屏幕外的内容?如果是这样,你是怎么做到的?
替代问题 有谁知道任何不使用 OpenGL 且不是 Cocos2D 的粒子效果系统库?