Загрузка из RWTexture2D<float4> в вычислительный шейдер
Я понимаю, что в модели 5.0 шейдеров HLSL есть ограничение, когда нельзя загружать данные из ресурса RWTexture2D, не являющегося скалярным типом. То есть следующее незаконно:
RWTexture2D<float4> __color;
float4 c = __color[PixelCoord]; // error here
Так что же такое обходной путь? Я пытаюсь накопить в буфере float4 в вычислительном шейдере, вот так:
c = computeColor( ... );
__color[PixelCoord] += c;
1 ответ
Попробуйте сделать:
float4 c = __color.Load (int3 (UV, 0));
Где UV - это координата xy в пространстве экрана (0 -> Resolution) текселя, который вы хотите сэмплировать.
Если вам нужно написать в него, убедитесь, что он связан с БПЛА, а не с представлением ресурсов шейдера.