Previous 15994 Revisions Next

r11577 Wednesday 18th May, 2011 at 02:17:14 UTC by MooglyGuy
Merging latest 'heavy' color changes into color_heavy.fx
[hlsl]color_heavy.fx

hlsl/color_heavy.fx
r11576r11577
129129float4 ps_main(PS_INPUT Input) : COLOR
130130{
131131   // -- Bandwidth Subsampling --
132   float YSubsampleWidth = (RawWidth * 2.0f) / YSubsampleLength;
133   float ISubsampleWidth = (RawWidth * 2.0f) / ISubsampleLength;
134   float QSubsampleWidth = (RawWidth * 2.0f) / QSubsampleLength;
135   float3 SubsampleWidth = float3(YSubsampleWidth, ISubsampleWidth, QSubsampleWidth);
136   float3 SubsampleFrac = frac(Input.TexCoord.x * SubsampleWidth);
137   float3 SubsampleCoord = (Input.TexCoord.x * SubsampleWidth - SubsampleFrac) / SubsampleWidth + SubsampleFrac / (SubsampleWidth * 2.0f);
138
132   float3 SubsampleWidth = float3(YSubsampleLength, ISubsampleLength, QSubsampleLength);
133   SubsampleWidth = (RawWidth * 2.0f) / SubsampleWidth;
134   float3 SubsampleCoord = Input.TexCoord.x;
135   float3 SubsampleFrac = frac(SubsampleCoord * SubsampleWidth); // Fraction is in subsample width units!
136   SubsampleCoord = (SubsampleCoord * SubsampleWidth - SubsampleFrac) / SubsampleWidth;
137   
139138   float4 BaseTexel = tex2D(DiffuseSampler, Input.TexCoord);
140139   
141140   float3 YTexel = tex2D(DiffuseSampler, float2(SubsampleCoord.x, Input.TexCoord.y)).rgb;
142141   float3 ITexel = tex2D(DiffuseSampler, float2(SubsampleCoord.y, Input.TexCoord.y)).rgb;
143142   float3 QTexel = tex2D(DiffuseSampler, float2(SubsampleCoord.z, Input.TexCoord.y)).rgb;
144143   
145   float3 LastYTexel = tex2D(DiffuseSampler, float2(SubsampleCoord.x - SubsampleFrac.x / RawWidth, Input.TexCoord.y)).rgb;
146   float3 LastITexel = tex2D(DiffuseSampler, float2(SubsampleCoord.y - SubsampleFrac.y / RawWidth, Input.TexCoord.y)).rgb;
147   float3 LastQTexel = tex2D(DiffuseSampler, float2(SubsampleCoord.z - SubsampleFrac.z / RawWidth, Input.TexCoord.y)).rgb;
144   float3 LastYTexel = tex2D(DiffuseSampler, float2(SubsampleCoord.x + YSubsampleLength / (RawWidth * 2.0f), Input.TexCoord.y)).rgb;
145   float3 LastITexel = tex2D(DiffuseSampler, float2(SubsampleCoord.y + ISubsampleLength / (RawWidth * 2.0f), Input.TexCoord.y)).rgb;
146   float3 LastQTexel = tex2D(DiffuseSampler, float2(SubsampleCoord.z + QSubsampleLength / (RawWidth * 2.0f), Input.TexCoord.y)).rgb;
148147   
149   YTexel = lerp(LastYTexel, YTexel, SubsampleFrac.x);
150   ITexel = lerp(LastITexel, ITexel, SubsampleFrac.y);
151   QTexel = lerp(LastQTexel, QTexel, SubsampleFrac.z);
148   YTexel = lerp(YTexel, LastYTexel, SubsampleFrac.x);
149   ITexel = lerp(ITexel, LastITexel, SubsampleFrac.y);
150   QTexel = lerp(QTexel, LastQTexel, SubsampleFrac.z);
152151
153152   // -- RGB Tint & Shift --
154153   float ShiftedRedY = dot(YTexel, float3(RedFromRed, RedFromGrn, RedFromBlu));
r11576r11577
199198
200199   // -- Final Pixel --
201200   float4 Output = lerp(Input.Color, float4(OutRGB, BaseTexel.a) * Input.Color, Input.ExtraInfo.x);
202   
203   return BaseTexel;
201
202   return Output;
204203}
205204
206205//-----------------------------------------------------------------------------

Previous 15994 Revisions Next


© 1998-2018 The MESS Team