#include "common_ps_fxc.h" sampler BaseTextureSampler : register( s0 ); struct PS_INPUT { HALF2 vBaseTexCoord0 : TEXCOORD0; HALF2 vBaseTexCoord1 : TEXCOORD1; HALF2 vBaseTexCoord2 : TEXCOORD2; HALF2 vBaseTexCoord3 : TEXCOORD3; HALF2 vBaseTexCoord4 : TEXCOORD4; }; HALF4 main( PS_INPUT i ) : COLOR { /* Sample original pixel color */ HALF4 mainColor = tex2D( BaseTextureSampler, i.vBaseTexCoord1 ); /* Calculate the intensity of the pixel */ float Intensity = dot(mainColor, float4(0.299, 0.587, 0.184, 0)); /* Decide which color to use based on intensity. Color ranges are: dark blue - light blue - dark green - light green - yellow - orange - red */ if(Intensity < 0.1) mainColor = float4(0.0, 0.0, 0.5, mainColor.a); if(Intensity >= 0.1 && Intensity < 0.3) mainColor = float4(0.5, 0.5, 1.0, mainColor.a); if(Intensity >= 0.3 && Intensity < 0.5) mainColor = float4(0.0, 0.5, 0.0, mainColor.a); if(Intensity >= 0.5 && Intensity < 0.6) mainColor = float4(0.5, 1.0, 0.5, mainColor.a); if(Intensity >= 0.6 && Intensity < 0.7) mainColor = float4(1.0, 1.0, 0.0, mainColor.a); if(Intensity >= 0.7 && Intensity < 0.8) mainColor = float4(1.0, 0.5, 0.0, mainColor.a); if(Intensity > 0.8) mainColor = float4(1.0, 0.0, 0.0, mainColor.a); return mainColor; }