Shader混合模式--正片叠底、滤色、叠加
叠加在书本168页。
Shader "Custom/BlendMode_Effect" {
Properties {
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Blendtex("Blend Texture",2D) = "white"{}
_Opacity("Blend Opacity",Range(0,1)) = 1
}
SubShader {
Pass
{
CGPROGRAM
#pragma vertex vert_img
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc"
uniform sampler2D _MainTex;
uniform sampler2D _BlendTex;
fixed _Opacity;
fixed4 frag(v2f_img i) : COLOR
{
fixed4 renderTex = tex2D(_MainTex,i.uv);
fixed4 blendTex= tex2D(_BlendTex,i.uv);
//fixed4 blendedMultiply = renderTex * blendTex;
fixed4 blendedScreen = (1.0 - ((1.0 - renderTex) * (1.0 - blendTex)));//这里是颜色计算核心
renderTex= lerp(renderTex,blendedScreen,_Opacity);
return renderTex;
}
ENDCG
}
}
}
fixed OverlayBlendMode(fixed basePixel, fixed blendPixel) {if (basePixel < 0.5) {return (2.0 * basePixel * blendPixel);} else {return (1.0 - 2.0 * (1.0 - basePixel) * (1.0 - blendPixel));}}
fixed4 frag(v2f_img i) : COLOR {//Get the colors from the RenderTexture and the uv's//from the v2f_img structfixed4 renderTex = tex2D(_MainTex, i.uv);fixed4 blendTex = tex2D(_BlendTex, i.uv);fixed4 blendedImage = renderTex;blendedImage.r = OverlayBlendMode(renderTex.r, blendTex.r);blendedImage.g = OverlayBlendMode(renderTex.g, blendTex.g);blendedImage.b = OverlayBlendMode(renderTex.b, blendTex.b);// Adjust amount of Blend Mode with a lerprenderTex = lerp(renderTex, blendedImage, _Opacity);return renderTex;}
叠加模式的算法
知识补习
这里增加一个内容,就是对各种混合模式的理解。
正片叠底(Multiply)和滤色(Screen)
正片叠底(Multiply)和滤色(Screen)是两种基本的混合模式,分别用于使图片变暗和变亮。它们之间的组合还可以形成更复杂的混合模式,如叠加(Overlay)和柔光(Soft Light)。
正片叠底 —— 就是把两层图像的像素相乘,最后会得到一个更暗的图像。这个模式是对称的,也就是说交换基色和混合色得到的结果是一样的。
,其中a是基色,b是混合色。
滤色 —— 首先把两层图像的像素值取互补数,然后将它们相乘,最后再去互补数。这和正片叠底得到的结果是相反的。它会得到一个更亮的图像。
,其中a是基色,b是混合色。
叠加 —— 结合了正片叠底和滤色两种混合模式。基色中亮色的部分会更加亮,而暗色的部分会更暗。
,其中a是基色,b是混合色。
更多信息:http://blog.csdn.net/candycat1992/article/details/39343309
Shader混合模式--正片叠底、滤色、叠加相关推荐
- 混合模式之四:叠加组
叠加模式组中共有七种混合模式,分别是:叠加.柔光.强光.亮光.线性光.点光和实色混合. 本组模式主要功能:亮的变得更亮,暗的变得更暗,对比加强.反之亦然. 本组模式中性色:中性灰,即与 50% 灰混合 ...
- 比较高明的暗部提亮方法:选取暗部,滤色叠加
1.用曲线.也不是不可以. 2.选取暗部,滤色叠加. 选取暗部的方法是: 在通道选取高光,回到图层,反选. 原图: 特别适合儿童摄影等人像处理. 有的人糖水效果处理出来的人物不太通透很可能就是因为不懂 ...
- 图像混合模式 正片叠底、滤色、叠加
1 public class OverlayBlendModeTest : MonoBehaviour 2 { 3 // 两张需要混合的图片 4 public Texture2D ima1; 5 pu ...
- html图片颜色加深,CSS教程:图片使用混合模式和颜色叠加filter滤镜,改变PNG图标颜色...
目前很多网站使用PNG来做图标,那么能否通过CSS更改其颜色? 从而适应不同的网站风格? 混合模式 css3添加了两个与混合模式相关的属性: mix-blend-mode,background-ble ...
- 柔光混合模式android,滤色与柔光两种图层混合模式的理解和应用实例
上午逛了下许久没有来的网站,很有一种久违的感觉,随即浏览了下,发现里面有个帖子叫做"唯美效果轻松做",仔细阅读了一遍,体会较深.首先的感觉是整个图片处理过程简单明了,短短几步就达到 ...
- html5 图片处理 开源,AlloyImage 基于 HTML5 的专业级图像处理开源引擎 - 文章教程...
AlloyImage(AI)是一个基于html5技术的JS图像处理库,集成了一些方便快捷的图像处理API,您可以将它引用到您的网页中,结合css3等技术,做出一些之前无法做到的优美效果,或者,提供一个 ...
- 正片叠底(Multiply)和滤色(Screen)是两种基本的混合模式
正片叠底(Multiply)和滤色(Screen)是两种基本的混合模式,分别用于使图片变暗和变亮.它们之间的组合还可以形成更复杂的混合模式,如叠加(Overlay)和柔光(Soft Light). 正 ...
- unity后期特效shader之photoshop混合模式公式的应用
在网上看到了一些颜色混合模式的公式,链接:https://jingyan.baidu.com/article/36d6ed1f7c04801bcf4883c2.html 觉着挺实用的,写个shader ...
- 基于OpenGL实现PS部分混合模式
混合模式介绍 1.什么是混合模式? 为了让不同色彩的图片叠加后能够实现更多种色彩组合,从而渲染出各式各样的画面,PS 提供了各式各样规则的混合模式(这里就不具体一一介绍了,提供一个传送门,有兴趣的可自 ...
最新文章
- snpeff注释变异(variants)
- kubernetes Authorization
- php 文件写入磁盘错误,Linux磁盘读写故障的通常处理流程
- python爬虫什么网站都能爬吗_python如何爬取动态网站
- nginx基础概念(100%)之request
- python学习之网络编程
- 百度SDN实践与思考
- Linux下的文件共享全攻略系列之二:NFS快速配置教程与安全策略
- Linux必学的60个命令【转载】
- 访问网址(使用CDN)时 智能DNS调度 与 用户定位调度(根据IP定位)
- 阿里在线字体库超级简单又快捷的使用方法+Dcloud插件使用图标
- 少年Pi的奇幻漂流-我们的后台自动化发布方案
- 【微信小程序更改appid失败】微信小程序修改appid一直失败报错tourist appid解决办法
- WINDOWS 7 X64专业版SP1后续补丁包20150901(微软官方下载地址列表)
- 记SUSE系统安装DM8开发版(单实例)
- 和华明诚教育:店铺降权应该要怎么样优化
- html分列代码,科学网—EXCEL 分列 (TextToColumns) 的C#代码 - 丁祥欢的博文
- 国产最强负载均衡器LVS(理论+实战)
- 无需训练,自动扩展的视觉Transformer来了
- 霍尔电机的霍尔信号(转向+速度)
热门文章
- [免费]CAD批量清理与版本转换工具——无需打开图纸清理及转换版本
- AutoCAD清理顽固图层的方法
- AE2022 Ver22.3内容更新点汇总 一文了解AE2022最新版本
- IDEA谷歌翻译插件提示:更新 TKK 失败,请检查网络连接
- 使用 Dva 开发复杂 SPA
- Win8 RP微软原版光盘镜像下载大全(含中文版)
- 通过SqlDbx导出*.sql,然后倒入到SQLServer2005
- Identifying App Installations
- linux怎么切换键盘布局,Ubuntu 切换键盘布局(colemak - workman - norman)
- 傅里叶级数(Fourier Series)