1
我怎樣才能實現WPF的bleach bypass着色器效果?
我也有興趣實施前兩個Tehnicolor Film Processes,或任何可能會導致舊影片外觀的變化。我怎樣才能爲WPF實現漂白旁路着色器效果?
我怎樣才能實現WPF的bleach bypass着色器效果?
我也有興趣實施前兩個Tehnicolor Film Processes,或任何可能會導致舊影片外觀的變化。我怎樣才能爲WPF實現漂白旁路着色器效果?
退房:http://developer.download.nvidia.com/shaderlibrary/packages/post_bleach_bypass.fx.zip
最重要的部分是:
float4 bypassPS(QuadVertexOutput IN, uniform sampler2D SceneSampler) : COLOR
{
float4 base = tex2D(SceneSampler, IN.UV);
float3 lumCoeff = float3(0.25,0.65,0.1);
float lum = dot(lumCoeff,base.rgb);
float3 blend = lum.rrr;
float L = min(1,max(0,10*(lum- 0.45)));
float3 result1 = 2.0f * base.rgb * blend;
float3 result2 = 1.0f - 2.0f*(1.0f-blend)*(1.0f-base.rgb);
float3 newColor = lerp(result1,result2,L);
float A2 = Opacity * base.a;
float3 mixRGB = A2 * newColor.rgb;
mixRGB += ((1.0f-A2) * base.rgb);
return float4(mixRGB,base.a);
}