Blur
화면을 뿌옇게 만드는 효과이다.
각 픽셀에서 위, 아래, 대각선에 있는 픽셀들의 색을 갖고와 평균값을 내어준다.
Shader
104_Blur.fx
uint BlurCount = 8;
float4 PS_Blur(VertexOutput input) : SV_Target
{
float2 arr[9] =
{
float2(-1, -1), float2(+0, -1), float2(+1, -1),
float2(-1, +0), float2(+0, +0), float2(+1, +0),
float2(-1, +1), float2(+0, +1), float2(+1, +1)
};
float3 color = 0;
for (uint blur = 1; blur < BlurCount; blur++)
{
for (int i = 0; i < 9; i++)
{
float x = arr[i].x * (float) blur * PixelSize.x;
float y = arr[i].y * (float) blur * PixelSize.y;
float2 uv = input.Uv + float2(x, y);
color += DiffuseMap.Sample(LinearSampler, uv).rgb;
}
}
color /= (BlurCount) * 9;
return float4(color, 1.0f);
}
이렇게 각각 픽셀을 갖고와 평균값을 내어주면
이렇게 블러 효과가 적용된다.
하지만, 가장 일반적인 방법의 블러이다. 하지만 실제 사용하는 블러는 가우시안 블러이다.