私は描画アプリを持っており、ユーザーが描画の一部としてパーティクル エフェクトを使用できるようにしたいと考えています。基本的に、アプリのポイントは、カスタム描画を実行し、カメラ ロールに保存するか、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 ではないパーティクル エフェクト システム ライブラリを知っている人はいますか?