2

反復的にディスパッチされ、2D テクスチャを使用して一時的に値を格納する計算シェーダーがあります。各呼び出し ID は、テクスチャ内の特定の行にアクセスします。

問題は、各シェーダーがディスパッチされる前に、このテクスチャーを 0 に初期化する必要があることです。

現在、imageStore() を使用するシェーダー コードの最後にループを使用して、それぞれの行のすべてのピクセルを 0 にリセットします。

for (uint i = 0; i < CONSTANT_SIZE; i++)
{  
     imageStore( myTexture, ivec2( i, global_invocation_id ), vec4( 0, 0, 0, 0) );          
} 

これを行うためのより高速な方法、1 回の呼び出し (できれば行全体) で複数のピクセルを設定する方法があるかどうか疑問に思っていました。画像操作に関する GLSL 4.3 仕様を見てきましたが、特定のピクセル位置を必要としない仕様が見つかりません。

CPU でこれを実現するためのより高速な方法があれば、私もそれを受け入れます。

4

1 に答える 1