index | 着色器中随机写入目标的索引。 |
uav | 要设置为写入目标的 RenderTexture。 |
preserveCounterValue | 是否保持附加/使用计数器的值不变。 |
为 Shader Model 4.5 级别的像素着色器设置随机写入目标。
Shader Model 4.5 及以上级别的像素着色器可以写入某些纹理和缓冲区的任意位置,在 UsingDX11GL3Features 中称为“无序访问视图 (UAV)”。设置这些“随机写”目标与设置多个渲染目标的方式相似。您可以使用设置了 enableRandomWrite
标志的 RenderTexture 或 ComputeBuffer 作为目标。
UAV 索引在不同平台之间略有差异。在 DX11 上,第一个有效的 UAV 索引是激活的渲染目标的数量。因此,单个渲染目标的常见情况是 UAV 索引将从 1 开始。使用自动转换的 HLSL 着色器的平台将匹配该行为。但是,使用手动编写的 GLSL 着色器时,索引将匹配绑定。在 PS4 上,索引始终从 1 开始,以匹配最常见的情况。
在设置 ComputeBuffer 时,preserveCounterValue
参数指示保持计数器值不变,还是将其重置为 0(默认行为)。
在您使用 ClearRandomWriteTargets 清除目标前,目标将保持设置值。
另请参阅:RenderTexture.enableRandomWrite、ComputeBuffer、ComputeBuffer.SetCounterValue、UsingDX11GL3Features。