bate's blog

調べたこと実装したことなどを取りとめもなく書きます。

ボカシ

簡単なボカシをしてみた。
ガウスは後でやることにした。

//--------------------------------------------------------------------------------------
// Pixel Shader
//--------------------------------------------------------------------------------------
float4 PS(PS_INPUT input) : SV_Target
{
        // SizeInfo = { x:width, y:height, z:1/width, w:1/height };
	float2 p = 2.0f*SizeInfo.zw;
	if(input.Pos.x < SizeInfo.x/2) {
		float4 c = 0.2f*Texture.Sample(SamplerLinear, input.Tex0)
		 + 0.1f*Texture.Sample(SamplerLinear, input.Tex0+float2(-p.x, 0))
		 + 0.1f*Texture.Sample(SamplerLinear, input.Tex0+float2(+p.x, 0))
		 + 0.1f*Texture.Sample(SamplerLinear, input.Tex0+float2(0, -p.y))
		 + 0.1f*Texture.Sample(SamplerLinear, input.Tex0+float2(0, +p.y))
		 + 0.1f*Texture.Sample(SamplerLinear, input.Tex0+float2(-p.x, -p.y))
		 + 0.1f*Texture.Sample(SamplerLinear, input.Tex0+float2(-p.x, +p.y))
		 + 0.1f*Texture.Sample(SamplerLinear, input.Tex0+float2(+p.x, -p.y))
		 + 0.1f*Texture.Sample(SamplerLinear, input.Tex0+float2(+p.x, +p.y));
		return c;
	} else {
		float4 c = Texture.Sample(SamplerLinear, input.Tex0);
		float4 mono = 0.3f*c.r+0.6f*c.g+0.1f*c.b;
		return mono;
	}
}