看到蛮牛有人想要两个带透明通道的图片叠加,就是最简单的纹理混合,想想其实实现起来应该很简单,但是搜了一下还真没搜到,这里简单实现一下,要求底图需要是不透明的:

image.png

image.png

image.png

在系统创建的ImageEffectShader基础上略改一下:

Shader "Hidden/图片叠加"
{Properties{_MainTex ("Texture", 2D) = "white" {}_BlendTex ("Blend Texture", 2D) = "white" {}_Blend("Blend", Range(0,1)) = 0}SubShader{// No culling or depthCull Off ZWrite Off ZTest AlwaysPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}sampler2D _MainTex;sampler2D _BlendTex;float _Blend;fixed4 frag (v2f i) : SV_Target{//获取两个贴图的颜色信息fixed4 col = tex2D(_MainTex, i.uv);fixed4 blendcol = tex2D(_BlendTex, i.uv);//增加_Blend值控制第二张贴图的混合度//saturate限制到0-1float blend=saturate(blendcol.a-_Blend);//如果叠加贴图当前像素透明度为0,则取底图像素,否则取叠加图片的像素fixed4 color=col*(1-blend)+blendcol*blend;return color;}ENDCG}}
}

如果想要底图也带透明通道,可以将底图颜色再乘一下底图的alpha,然后开启图片的透明通道设置即可:

image.png

image.png

Shader "Hidden/图片叠加"
{Properties{_MainTex ("Texture", 2D) = "white" {}_BlendTex ("Blend Texture", 2D) = "white" {}_Blend("Blend", Range(0,1)) = 0}SubShader{Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" }Blend SrcAlpha OneMinusSrcAlpha// No culling or depthCull Off ZWrite Off ZTest AlwaysPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}sampler2D _MainTex;sampler2D _BlendTex;float _Blend;fixed4 frag (v2f i) : SV_Target{//获取两个贴图的颜色信息fixed4 col = tex2D(_MainTex, i.uv);fixed4 blendcol = tex2D(_BlendTex, i.uv);//增加_Blend值控制第二张贴图的混合度//saturate限制到0-1float blend=saturate(blendcol.a-_Blend);//如果叠加贴图当前像素透明度为0,则取底图像素,否则取叠加图片的像素fixed4 color=col*(1-blend)*col.a+blendcol*blend;return color;}ENDCG}}
}

http://www.taodudu.cc/news/show-4151314.html

相关文章:

  • java中将两个图片进行叠加
  • python实现两个图片的叠加融合
  • css将两张图片叠加(简易方法)
  • Qt setStyleSheet 透明图片叠加
  • opencv两张图片叠加显示
  • CSS3初级学习(二)背景图片叠加
  • background图片叠加_css在图片上叠加层(其他图标)
  • Python PIL Image 4通道透明图片叠加(ARGB)
  • java图片叠加_[原创]JAVA中图片上叠加文字的方法
  • 图片叠加制作
  • 两个图片叠加在一起css,css实现图片叠加的几种思路(记录笔记)
  • 图片叠加
  • c++调用opencv实现图片叠加以及添加水印效果
  • Java应用:图片叠加
  • java 叠加层_java简单设置图层实现图片叠加
  • matlab 图片叠加
  • android图片叠加方法
  • java如何叠加图片_图片叠加效果Java代码实现
  • python opencv图像叠加/图像融合/mask掩模
  • vue实现文字翻转效果
  • html怎么把字做成动画效果,用纯CSS实现文字的动态效果
  • CSS实现文字动画效果
  • 各种css文字样式效果——多个行内元素居中,三点,缩进,阴影等
  • linux 查询dhcp服务,查找局域网中的DHCP服务器
  • DHCP服务及配置
  • Ubuntu安装DHCP服务
  • dhcp服务器是如何进行租约信息的更新的,DHCP服务器
  • DHCP服务简介
  • Linux网络知识--DHCP服务(理论部分)
  • 给JAVA初学者的建议(转载治phphot的一个牛人给java初学者的建议)

Shader学习12——简易图片叠加相关推荐

  1. CSS3初级学习(二)背景图片叠加

    CSS3初级学习(二) 背景图片叠加 Hello!大家好久不见,这里是学业日渐繁忙的万物之恋,沉迷学习无心写博客(并不是),久违的来和大家分享下自己在学习过程中碰到的一些有趣案列.话不多说: 先看效果 ...

  2. Android的图片叠加

    android.graphics.Bitmap.Config是一个枚举类型,里面定义了位图的四种格式.   ALPHA_8,ARGB_4444,ARGB_8888都是透明的位图,也就是所字母A代表透明 ...

  3. Unity Shader学习:体积光/体积阴影

    Unity Shader学习:体积光/体积阴影 在前向渲染下实现平行光的体积光影效果,需要全屏深度图,延迟渲染会更划算. 思路:通过ray marching的步进点位置计算该点是否在阴影中,采样阴影贴 ...

  4. Kotlin学习的简易练手

    目录 Kotlin学习的简易练手 一.AndroidStudio的gradle配置(重点部分都有双斜杠注释) 1.Module的gradle配置(重点是引入Kotlin以及Kotlin-extenti ...

  5. java图片叠加_[原创]JAVA中图片上叠加文字的方法

    --sunfruit JDK:1.3.x以上 功能:下面是一个简单在图片上面叠加文字的方法,有朋友如果有这方面的问题,就起个了解的作用 代码如下: import java.io.IOException ...

  6. MATLAB | 绘图复刻(二) | 折线图+误差棒+柱状图+散点抖动+灰色背景+图片叠加

    看到gzh R语言ggplot2科研绘图发布了一篇绘图复刻类文章,复刻了: Nature(IF=49.962)文章(Gut microbiota modulates weight gain in mi ...

  7. Shader学习3——半兰伯特

    半兰伯特其实就是把暗的地方提亮了一些,在数值上就是获取到的光源强度* 0.5 + 0.5,也就是原来是0的会变成0.5,原来是1的还是1. 半兰伯特:漫反射颜色 = 光源颜色 x 材质的漫反射颜色 x ...

  8. [摘抄-Java-学习中]Java 图片叠加水印文字自动换行

    从网上找到了前辈们写的代码,然后优化整理下,实现了图片叠加水印,也就是文字叠加,然后再实现根据总文字的长度进行自动换行叠加文字 importjavax.imageio.ImageIO; importj ...

  9. Unity Shader学习:SSR屏幕空间反射

    Unity Shader学习:SSR屏幕空间反射 本文在前向渲染模式下实现,延迟渲染更适合SSR,这里只简单的实现下,未作更深入的优化. 思路:沿视线和法线的反射向量步进光线,判断打到物体(这里用的是 ...

最新文章

  1. android webview 填充,从Android使用WebView自动填充表格
  2. java http请求 乱码_怎么解决java中的http请求乱码
  3. html标题怎么分开,html – 如何使用angularjs将标签标题与其主体分开?
  4. 在IIS服务器上安装SSL证书
  5. 20171116-构建之法:现代软件工程-阅读笔记
  6. MySQL concat函数使用详解
  7. 00 后 CEO 何以“将马云和马化腾两家一网打尽”
  8. JAVA day27,28 线程池
  9. Windows Workflow Foundation(一)(转载)
  10. Gstreamer之重置PTS与DTS流程(二十)
  11. vs 2010调用matlab dll显示窗口核心代码
  12. Unity中加载本地图片
  13. 新手php环境一键安装包,PHP运行环境一键安装包(phpStudy2013)
  14. 如何理解Scala:迷之翻转喵 —— 协变逆变全解析
  15. 联想y7000桌面没有计算机,【联想拯救者Y7000P笔记本电脑使用体验】屏幕|键盘_摘要频道_什么值得买...
  16. python控制苹果手机触摸屏失灵怎么办_iPhone手机触屏不灵敏怎么办 触屏失灵乱跳等问题解决方法大全必看...
  17. Android开发-在Android应用里接入AdMob广告进行变现的实现
  18. 更换服务器IP有哪些步骤,如何操作。
  19. python画正方形-用python画正方形
  20. UCK将私钥硬件化 是数字资产安全储存的又一次革新

热门文章

  1. Jenkins ssh 远程启动 nohup
  2. 洛谷B2099 矩阵交换行(swap函数)
  3. python键盘记录工具开发_多功能Python键盘记录工具:Radium
  4. make makefile cmake qmake都是什么,有什么区别
  5. Kibana常用搜索语法
  6. linux怎么模糊查找文件,linux怎么模糊查找一个文件
  7. pyhton——爬小说网站(顶点最强国防生)
  8. matlab模拟塞曼图谱,基于MATLAB的塞曼效应数值模拟
  9. p1 p 0xf在c语言中啥意思,单片机控制1位共阴极数码管,控制端P1=0x76;则数码管显示的内容是 答案:H...
  10. hdu 4960 Another OCD Patient(动态规划)