对屏幕特定部分进行后期特效处理
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#] 纯文本查看 复制代码?
位块传送,拷贝源纹理到目的渲染纹理。可简单理解为获取该相机的rendertexture作为纹理,通过指定shader再渲染一遍setvector函数用作将横线上两点坐标传入材质setab即为将y=ax+b形式的a,b传入,并指明a是否有意义,因为当直线形式为x=某数字时,a无意义具体计算如下[C#] 纯文本查看 复制代码?
float3(0.299, 0.587, 0.114))就是把彩色信息转化成灰度信息的数学公式,即为x,y,z对应乘0.299 0.587,0.1147.15更新:感谢上苍之冰提供的想法优化了shader,去除了if语句[C#] 纯文本查看 复制代码?
相关文章推荐
- MATLAB处理txt文本文件---数据格式要有规律性,否则要用编写特定方式进行读取
- vb-跨域访问,获得特定的frame进行处理
- 在JavaScript中进行文件处理,第二部分:文件读取
- Python 使用nltk对特定词汇进行双连词处理 (二元语法)
- 视频处理控件TVideoGrabber如何对屏幕进行录制/压缩
- Unity shader(CG) 写一个 散色、折射、反射、菲涅尔、gamma、简单后期屏幕特效
- 在JavaScript中进行文件处理,第四部分:对象URLs
- 在JavaScript中进行文件处理,第五部分:Blobs
- Vision引擎中后期处理特效-渲染器节点介绍
- vb-跨域访问,获得特定的frame进行处理
- 点击屏幕其他部分进行退出,或者自定义popupwindow退出
- matlab处理txt文本文件---数据格式要有规律性,否则要用编写特定方式进行读取
- 在JavaScript中进行文件处理,第三部分:处理事件和错误
- Ubuntu下屏幕录像、后期处理不完全攻略
- c#学习(2):大图片的特效处理与获取屏幕任一点RGB值
- c#学习(2):大图片的特效处理与获取屏幕上任一点的rgb值
- 在特定的屏幕宽度下,合理排版页面元素。根据width进行计算得出
- (串的存储结构4.5.1)POJ 1488 TEX Quotes(同一字符被交替替换+读取所有字符并对特定字符进行处理)
- Android中使用Bitmap对图片进行特效处理
- 利用正则表达式获取特定文件(如java class)并对其进行处理(如代码统计)