0

Core Graphics の代わりに OpenGL ES2 を使用して iPad 描画アプリケーションを書き直しています。線分を描画できる GLKView のサブクラスを既に作成しており、ストーリーボードに GLKView をドラッグしてカスタム クラスに設定するだけです。これまでのところ、描画は機能しますが、Photoshop や GIMP のようなレイヤーも実装したいと考えています。

レイヤーごとに複数の GLKView を作成し、UIKit にブレンドと並べ替えを処理させることを考えましたが、それではブレンド モードが許可されず、パフォーマンスが低下する可能性があります。

これまでのところ、すべてを 1 つの GLKView で行うことが最善の解決策だと思います。レイヤーとして何らかのオフバッファーを使用する必要があると思います。私のアプリは元に戻す/やり直しも処理できるはずなので、テクスチャを使用して以前のデータを保存する必要があるかもしれません。

ただし、私はopenGLを初めて使用するので、質問は次のとおりです。レイヤーをどのように実装すればよいですか?

4

1 に答える 1

4

質問は非常に広範であるため、より詳細な調査の出発点となる広範で一般的な回答を以下に示します。

おそらく良い方法は、個々のレイヤーを個々のテクスチャとして管理することです。フレームバッファ オブジェクト (FBO)を使用すると、レイヤ内に描画するテクスチャに直接簡単にレンダリングできます。各テクスチャは、(多かれ少なかれ) 単一レイヤーの画像を永続的に保存します。レイヤーを組み合わせるには、単純なテクスチャ付きクワッドと必要なブレンド関数を使用して、各レイヤー テクスチャを (適切な順序で) 重ねてレンダリングします。

于 2013-07-01T11:39:02.303 に答える