据我所知,HLSL着色器模型5.0存在一个限制,即无法从非标量类型的RWTexture2D资源加载数据。也就是说,以下是非法的:
RWTexture2D<float4> __color;
float4 c = __color[PixelCoord]; // error here
那么解决方法究竟是什么?我试图在计算着色器中累积到float4缓冲区,如下所示:
c = computeColor( ... );
__color[PixelCoord] += c;
答案 0 :(得分:0)
尝试做:
float4 c = __color.Load(int3(UV,0));
其中UV是您要采样的纹素的屏幕空间(0 - >分辨率)中的xy坐标。
如果您需要写入,请确保它是从UAV绑定的,而不是着色器资源视图。