uniform float4x4 ViewProj; uniform texture2d image; uniform texture2d image2; uniform float ratio; sampler_state textureSampler{ Filter = Linear; AddressU = Clamp; AddressV = Clamp; MinLOD = 0; MaxLOD = 0; }; struct VertData { float4 pos : POSITION; float2 uv : TEXCOORD0; }; VertData mainTransform(VertData v_in) { v_in.pos = mul(float4(v_in.pos.xyz, 1.0), ViewProj); return v_in; } float4 mainImage(VertData v_in) : TARGET { // 1. Sample incoming pixel float4 c1 = image.Sample(textureSampler, v_in.uv); float4 c2 = image2.Sample(textureSampler, v_in.uv); return lerp(c1, c2, float4(ratio, ratio, ratio, ratio)); } technique Draw { pass { vertex_shader = mainTransform(v_in); pixel_shader = mainImage(v_in); } }