2

シェーダーにアタッチしたテクスチャの1つのピクセルを変更したいと思います。単純な関数が必要です。

tex2D(sampler、uv)は、それを読み取り、そのピクセルの色を返すためのものです。そのピクセルの色を操作してテクスチャに書き戻す関数が必要です。それはそれほど難しいことではないはずですが、私はそれを見つけることができませんでした。

4

1 に答える 1

5

それはそれほど難しいことではないはずです

はい、そうあるべきです。

テクスチャに任意に書き込むことは、些細なことでも単純なことでもありません。情報は、OpenGLでは非常に特定の方向に流れます:シェーダーに流れます。シェーダーから許可される出力は、(通常)実際のシェーダー出力変数のみです。たとえば、このようにしてフレームバッファに書き込みます。頂点/ジオメトリシェーダー出力は、フィードバックバッファーを変換するために供給することもできます。

これで、GL 4.xクラスのハードウェアを使用している場合は、 ARB_shader_image_load_store(GL 4.2のコア)を使用してイメージに書き込むことができます。ただし、これをオンにした瞬間に、メモリへのアクセスを同期する全責任を負います。

于 2012-12-03T15:51:41.947 に答える