Пытаюсь с помощью Compute shader проверить сколько у текстуры черных пикселей, но как только начинаю работать с текстурой, то шейдер откаывается работать.
#pragma kernel CheckMask
// Create a RenderTexture with enableRandomWrite flag and set it
// with cs.SetTexture
RWTexture2D<float4> InputTexture;
RWStructuredBuffer<float> EmptyPixels;
[numthreads(16,16,1)]
void CheckMask (uint3 id : SV_DispatchThreadID)
{
float4 texColor = InputTexture[id.xy];
float result = texColor.x + texColor.y + texColor.z;
int count = EmptyPixels.IncrementCounter();
uint ids = id.x + id.y * 16 * 32;
EmptyPixels[ids] = result; // Тут проблемы
InputTexture[id.xy] = float4(1,1,1,1);
}
Если я подставляю вместо result count то все работает и текстура отображается белой, но как только я подставляю туда result текстура окрашивается в черный (хотя должна в белый, учитывая последнюю строку. В таком случае я делаю вывод что шейдер ломается и по каким-то причинам не хочет этого делать)
Кто знает в чем может быть проблема?