15 lines
499 B
HLSL
15 lines
499 B
HLSL
Texture2DMS<float4,1> in0 : register(t0);
|
|
RWTexture1D<uint> histogramBucketR : register(u1);
|
|
RWTexture1D<uint> histogramBucketG : register(u2);
|
|
RWTexture1D<uint> histogramBucketB : register(u3);
|
|
RWTexture1D<float4> histogramOut : register(u4);
|
|
|
|
[numthreads(16, 16, 1)]
|
|
void main(uint3 id : SV_DispatchThreadID)
|
|
{
|
|
int3 iPixel = in0[id.xy].rgb * 255.0f;
|
|
|
|
InterlockedAdd(histogramBucketR[iPixel.r], 1);
|
|
InterlockedAdd(histogramBucketG[iPixel.g], 1);
|
|
InterlockedAdd(histogramBucketB[iPixel.b], 1);
|
|
} |