uniform float4x4 WorldViewProj; uniform float2 prmAtlasTiles; uniform float2 atlasHalfPixel; uniform sampler2D filteredAtlasSampler : register(s0); struct vsInputWalk { float4 pos : POSITION; float2 tex : TEXCOORD0; float2 texAtlas : TEXCOORD1; }; struct vsOutputWalk { float4 pos : POSITION; float2 tex : TEXCOORD0; float2 texAtlas : TEXCOORD1; }; vsOutputWalk vsWalk(vsInputWalk input) { vsOutputWalk output = (vsOutputWalk)0; output.pos = mul(WorldViewProj, input.pos); output.tex = input.tex; output.texAtlas = input.texAtlas; return output; } float4 psWalk(vsOutputWalk input) : COLOR { /* float3 col = 0; for(int iCluster=0; iCluster<16; iCluster++) { float2 prmTexPos = float2( (input.texAtlas.x + (iCluster % prmAtlasTiles.x)) / prmAtlasTiles.x, 1.0 - (input.texAtlas.y + (iCluster / prmAtlasTiles.x)) / prmAtlasTiles.y) + atlasHalfPixel; float4 weight = 0.065; float3 val = tex2D(filteredAtlasSampler, prmTexPos); col += val.xyz * weight.x; iCluster++; prmTexPos.x += 1.0 / prmAtlasTiles.x; val = tex2D(filteredAtlasSampler, prmTexPos); col += val.xyz * weight.y; iCluster++; prmTexPos.x += 1.0 / prmAtlasTiles.x; val = tex2D(filteredAtlasSampler, prmTexPos); col += val.xyz * weight.z; iCluster++; prmTexPos.x += 1.0 / prmAtlasTiles.x; val = tex2D(filteredAtlasSampler, prmTexPos); col += val.xyz * weight.w; } */ float ff = (float)prmAtlasTiles.x; return float4( float3(ff,ff,ff) / 128.0/* + col*0.000000001*/, 1); }