2

我了解 HLSL 着色器模型 5.0 存在一个限制,即无法从非标量类型的 RWTexture2D 资源加载数据。也就是说,以下是非法的:

    RWTexture2D<float4> __color;
    float4 c = __color[PixelCoord];  // error here

那么具体的解决方法是什么?我正在尝试在计算着色器中累积到 float4 缓冲区,如下所示:

    c = computeColor( ... );
    __color[PixelCoord] += c;
4

1 回答 1

0

尝试做:

float4 c = __color.Load(int3(UV, 0));

其中 UV 是您要采样的纹素在屏幕空间中的 xy 坐标(0 -> 分辨率)。

如果您需要写入它,请确保它是从 UAV 而不是着色器资源视图绑定的。

于 2014-07-29T02:21:27.583 回答