1

Android 用のパーティクル フィルタ アプリケーションを作成しています。すべてのパーティクルを GPU で並列処理したい。

現在の位置に基づいて各パーティクルまたは頂点の位置を更新するコードが頂点シェーダーにあるのですが、更新された位置を openGLES に書き戻す方法や、シェーダー処理で使用できるようにする方法さえわかりません。次の実行で同じ頂点。

属性変数には適切なスコープがありますが、頂点シェーダー内でのみ読み取られます。

ユニフォーム変数には適切なスコープがありますが、配列を使用することはできません (そのため、多数の頂点に対してユニフォームを実装するのは困難です)。また、それらは頂点シェーダー内でのみ読み取られます。

可変変数には変更を許可するスコープがありますが、それらはプログラム内のフラグメント シェーダーにのみ表示されます。フラグメント シェーダーが openGLES に情報を書き込める場合、これは機能する可能性があります。Fragment シェーダーは属性変数を変更できますか? (次回の実行のために)?

Fragment シェーダーが変数を更新する方法はありますか? {attribute、uniform、variing、default、other} それとも、ディスプレイではなくメモリにバッファを書き出すのでしょうか?

4

1 に答える 1