Shader学习12——简易图片叠加
看到蛮牛有人想要两个带透明通道的图片叠加,就是最简单的纹理混合,想想其实实现起来应该很简单,但是搜了一下还真没搜到,这里简单实现一下,要求底图需要是不透明的:
在系统创建的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,然后开启图片的透明通道设置即可:
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——简易图片叠加相关推荐
- CSS3初级学习(二)背景图片叠加
CSS3初级学习(二) 背景图片叠加 Hello!大家好久不见,这里是学业日渐繁忙的万物之恋,沉迷学习无心写博客(并不是),久违的来和大家分享下自己在学习过程中碰到的一些有趣案列.话不多说: 先看效果 ...
- Android的图片叠加
android.graphics.Bitmap.Config是一个枚举类型,里面定义了位图的四种格式. ALPHA_8,ARGB_4444,ARGB_8888都是透明的位图,也就是所字母A代表透明 ...
- Unity Shader学习:体积光/体积阴影
Unity Shader学习:体积光/体积阴影 在前向渲染下实现平行光的体积光影效果,需要全屏深度图,延迟渲染会更划算. 思路:通过ray marching的步进点位置计算该点是否在阴影中,采样阴影贴 ...
- Kotlin学习的简易练手
目录 Kotlin学习的简易练手 一.AndroidStudio的gradle配置(重点部分都有双斜杠注释) 1.Module的gradle配置(重点是引入Kotlin以及Kotlin-extenti ...
- java图片叠加_[原创]JAVA中图片上叠加文字的方法
--sunfruit JDK:1.3.x以上 功能:下面是一个简单在图片上面叠加文字的方法,有朋友如果有这方面的问题,就起个了解的作用 代码如下: import java.io.IOException ...
- MATLAB | 绘图复刻(二) | 折线图+误差棒+柱状图+散点抖动+灰色背景+图片叠加
看到gzh R语言ggplot2科研绘图发布了一篇绘图复刻类文章,复刻了: Nature(IF=49.962)文章(Gut microbiota modulates weight gain in mi ...
- Shader学习3——半兰伯特
半兰伯特其实就是把暗的地方提亮了一些,在数值上就是获取到的光源强度* 0.5 + 0.5,也就是原来是0的会变成0.5,原来是1的还是1. 半兰伯特:漫反射颜色 = 光源颜色 x 材质的漫反射颜色 x ...
- [摘抄-Java-学习中]Java 图片叠加水印文字自动换行
从网上找到了前辈们写的代码,然后优化整理下,实现了图片叠加水印,也就是文字叠加,然后再实现根据总文字的长度进行自动换行叠加文字 importjavax.imageio.ImageIO; importj ...
- Unity Shader学习:SSR屏幕空间反射
Unity Shader学习:SSR屏幕空间反射 本文在前向渲染模式下实现,延迟渲染更适合SSR,这里只简单的实现下,未作更深入的优化. 思路:沿视线和法线的反射向量步进光线,判断打到物体(这里用的是 ...
最新文章
- android webview 填充,从Android使用WebView自动填充表格
- java http请求 乱码_怎么解决java中的http请求乱码
- html标题怎么分开,html – 如何使用angularjs将标签标题与其主体分开?
- 在IIS服务器上安装SSL证书
- 20171116-构建之法:现代软件工程-阅读笔记
- MySQL concat函数使用详解
- 00 后 CEO 何以“将马云和马化腾两家一网打尽”
- JAVA day27,28 线程池
- Windows Workflow Foundation(一)(转载)
- Gstreamer之重置PTS与DTS流程(二十)
- vs 2010调用matlab dll显示窗口核心代码
- Unity中加载本地图片
- 新手php环境一键安装包,PHP运行环境一键安装包(phpStudy2013)
- 如何理解Scala:迷之翻转喵 —— 协变逆变全解析
- 联想y7000桌面没有计算机,【联想拯救者Y7000P笔记本电脑使用体验】屏幕|键盘_摘要频道_什么值得买...
- python控制苹果手机触摸屏失灵怎么办_iPhone手机触屏不灵敏怎么办 触屏失灵乱跳等问题解决方法大全必看...
- Android开发-在Android应用里接入AdMob广告进行变现的实现
- 更换服务器IP有哪些步骤,如何操作。
- python画正方形-用python画正方形
- UCK将私钥硬件化 是数字资产安全储存的又一次革新
热门文章
- Jenkins ssh 远程启动 nohup
- 洛谷B2099 矩阵交换行(swap函数)
- python键盘记录工具开发_多功能Python键盘记录工具:Radium
- make makefile cmake qmake都是什么,有什么区别
- Kibana常用搜索语法
- linux怎么模糊查找文件,linux怎么模糊查找一个文件
- pyhton——爬小说网站(顶点最强国防生)
- matlab模拟塞曼图谱,基于MATLAB的塞曼效应数值模拟
- p1 p 0xf在c语言中啥意思,单片机控制1位共阴极数码管,控制端P1=0x76;则数码管显示的内容是 答案:H...
- hdu 4960 Another OCD Patient(动态规划)