sampler2D RT : register(s0);
sampler3D pattern : register(s1);

float4 ASCII_ps( float4 pos : POSITION,
      float2 TexCoord : TEXCOORD0,
			uniform float2 numTiles,
			uniform float2 iNumTiles,
			uniform float2 iNumTiles2,
			uniform float4 lum,
			uniform float charBias) : COLOR
{
    float3 local;

	//sample RT
	local.xy = fmod(TexCoord, iNumTiles);
	float2 middle = TexCoord - local.xy;
	local.xy = local.xy * numTiles;
	
	//iNumTiles2 = iNumTiles / 2
	middle = middle + iNumTiles2;
	float4 c = tex2D(RT, middle );
	
	//multiply luminance by charbias , beacause not all slices of the ascii
	//volume texture are used
	local.z = dot(c , lum)*charBias;
	
	//fix to brighten the dark pixels with small characters
	//c *= lerp(2.0,1.0, local.z);
	
	c *= tex3D(pattern,local);
	return c;
}