赞
踩
叠加在书本168页。
Shader "Custom/BlendMode_Effect" {
Properties {}
- 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 struct
- fixed4 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 lerp
- renderTex = lerp(renderTex, blendedImage, _Opacity);
-
- return renderTex;
- }
这里增加一个内容,就是对各种混合模式的理解。
正片叠底(Multiply)和滤色(Screen)是两种基本的混合模式,分别用于使图片变暗和变亮。它们之间的组合还可以形成更复杂的混合模式,如叠加(Overlay)和柔光(Soft Light)。
正片叠底 —— 就是把两层图像的像素相乘,最后会得到一个更暗的图像。这个模式是对称的,也就是说交换基色和混合色得到的结果是一样的。
,其中a是基色,b是混合色。
滤色 —— 首先把两层图像的像素值取互补数,然后将它们相乘,最后再去互补数。这和正片叠底得到的结果是相反的。它会得到一个更亮的图像。
,其中a是基色,b是混合色。
叠加 —— 结合了正片叠底和滤色两种混合模式。基色中亮色的部分会更加亮,而暗色的部分会更暗。
,其中a是基色,b是混合色。
更多信息:http://blog.csdn.net/candycat1992/article/details/39343309
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。