http://blog.sina.com.cn/huaner1006[订阅]
字体大小: 正文
黑白图(B&W)效果(2008-12-31 17:10:01)

黑白图也即是能呈现出旧时代的效果。这种效果说白了,就是将rgb分别设置为一个适度的灰度值。

研究人员通过研究人们的视觉效果,总结出一套计算公式,也即是:

             Intensity = 0.299 * Red + 0.587 * Green + 0.184 * Blue

ps中就很容易了:

float4 ps_main( PS_INPUT Input ) : COLOR0
{
   float4 color = tex2D( baseMap, Input.Texcoord );
  
   float Intensity;
  
   //I = 0.299 * r + 0.587 * g + 0.184 * b
   //Intensity = 0.299f * color.r + 0.587f * color.g + 0.184 * color.b;

   Intensity = dot(color, float4(0.299f, 0.587f, 0.184f, 0.0f));

   return float4(Intensity.xxx, color.a);
}

PS:书上有提到ps的设计结构中,dot运算比手动的进行等式运算的效率要高。

加载中,请稍候...
  • 评论加载中,请稍候...

验证码:请点击后输入验证码  收听验证码

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

相关博文
读取中...
推荐博文
读取中...