0

私は概念を理解するのに苦労していて、誰かが私にそれを正してくれることを望んでいました.

各描画呼び出し間でデータを保持する GLSL シミュレーションを構築しようとしていますが、迅速かつ効率的にするために、すべてを GPU で実行したいと考えています。必要なデータをテクスチャにレンダリングし、そのテクスチャから読み取ることでこれを行うことを理解しています。

色を描画しているrendertargetがあり、各描画呼び出しで現在の色を読み取って0.01を追加することで色の値を0.01増やしたい簡単なデモがありますが、エラーが発生します:

Source and destination textures of the draw are the same.

現在のレンダーターゲットをテクスチャとして渡すことができないという印象を受けるため、この概念を完全に誤解していると思います。私は今かなり混乱しているので、誰かが私のためにこれを片付けてもらえますか

4

1 に答える 1

1

同じテクスチャからの読み取りと書き込みの両方を行っていることは明らかです。2 つのテクスチャを作成するだけです。1 つはレンダー ターゲットとして設定され、もう 1 つは読み取り元になります。したがって、tex1を読み取り、tex2に書き込み、次のフレームでそれらの使用法を交換するため、tex1に書き込み、tex2から読み取ります。フレームを交互に使用するだけです。

webGL では同時読み取り/書き込みはサポートされていません。OpenGL のごく最近のバージョンだけがこのような方法で使用できる Image オブジェクトを持っていますが、webGL はまだそれらをサポートしていません。

于 2016-05-07T16:00:15.383 に答える