您的位置:首页 > 其它

对屏幕特定部分进行后期特效处理

2016-08-23 15:16 267 查看
最近在做一个效果:用一条线将整个屏幕分成两部分,一部分是灰色,一部分是彩色,线的位置是可变的如果只是区分的话,简单的方法就是相机前加一个灰色quad,如下图,但明显不如灰化对比度高下面就来实现这个功能首先,我们要建一个屏幕特效脚本挂在到相机上[C#] 纯文本查看 复制代码?
Graphics.Blit
位块传送,拷贝源纹理到目的渲染纹理。可简单理解为获取该相机的rendertexture作为纹理,通过指定shader再渲染一遍setvector函数用作将横线上两点坐标传入材质setab即为将y=ax+b形式的a,b传入,并指明a是否有意义,因为当直线形式为x=某数字时,a无意义具体计算如下[C#] 纯文本查看 复制代码?
shader就是一个转彩色为灰度的shader,增加了判断片原位于哪个区域的功能,判断区域的代码可以根据需求更改[C#] 纯文本查看 复制代码?
dot(c.xyz,
float3(0.299, 0.587, 0.114))就是把彩色信息转化成灰度信息的数学公式,即为x,y,z对应乘0.299 0.587,0.1147.15更新:感谢上苍之冰提供的想法优化了shader,去除了if语句[C#] 纯文本查看 复制代码?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐