Version: 5.5
public static void SetRandomWriteTarget (int index, ComputeBuffer uav, bool preserveCounterValue= false);
public static void SetRandomWriteTarget (int index, RenderTexture uav);

パラメーター

index シェーダーのランダム書き込みターゲットのインデックス
uav 書き込むターゲットとして設定する RenderTexture
preserveCounterValue CounterValue を変更なしに維持するかどうか

説明

Shader Model 5.0 レベルのピクセルシェーダーのランダム書き込みのターゲットを設定します。

Shader Model 5.0 レベルのピクセルシェーダーは UsingDX11GL3Features の "順序なしアクセスビュー"(UAV) と呼ばれるいくつかのテクスチャやバッファーの任意の場所に書くことができます。これらの "ランダム書き込み" ターゲットは複数のレンダーターゲットを設定するのと同様に設定します。enableRandomWrite フラグ設定する RenderTexture かターゲットとして ComputeBuffer のいずれかを使用できます。

異なるプラットフォーム間では UAV(アンオーダード・アクセス・ビュー) インデックスは少し変化します。 DX11 では最初の有効な UAV インデックスはアクティブなレンダーターゲット番号です。だから、レンダーターゲットの一般的なケースでは、 UAV インデックスは 1 から開始します。変換された HLSL シェーダーを使用するとき、OpenGL ES 3.1 はこの動作に一致します。ただし、GLSL シェーダーの手書きのインデックスはバインディングに一致します。 PS4 ではもっとも一般的なケースに合わせて常に 1 からインデックスを開始します。

ComputeBuffer を設定するとき、preserveCounterValue パラメーターは CounterValue を変更しないか、または、0 にリセットする (デフォルト) かを示します。

手動で ClearRandomWriteTargets とそれらをクリアするまでターゲットを Stay に設定します。

See Also: RenderTexture.enableRandomWrite, ComputeBuffer, ComputeBuffer.SetCounterValue, UsingDX11GL3Features.