功能需求:UI边界太硬,需要做个渐变看起来更柔和。

最终效果:(UI上方透明度渐变)

正文开始:

方法一:通过获取 Image/RawImage UI顶点数据(color属性的Alpha)来处理。可参考文档->Image透明度渐变(Graphic)

但是,此方法实现透明渐变(自下而上),但是最终透明效果是整张图都有了透明(最下方透明度为1,最上方为0,自下而上渐变)。与我们最终需求不同,于是开始了方法二。

方法二:通过一张白色透明度渐变的png贴图,实现与原图的正片叠底(任何颜色于白色正片叠底,原颜色保持不变)

shader代码贴出来:

Shader "Unlit/BlendMod2"
{Properties{_MainTex ("Texture", 2D) = "white" {}_BlendTex ("Texture", 2D) = "white" {}}CGINCLUDE#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;UNITY_FOG_COORDS(1)float4 vertex : SV_POSITION;};sampler2D _MainTex;float4 _MainTex_ST;sampler2D _BlendTex;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);UNITY_TRANSFER_FOG(o,o.vertex);return o;}fixed4 frag (v2f i) : SV_Target{fixed4 A = tex2D(_MainTex, i.uv);    //A为底图rgba 四维向量 fixed4 B = tex2D(_BlendTex,i.uv);  //B为混合图rgba 四维向量fixed4 C = A * B;return C;}ENDCGSubShader{Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }Pass{Tags {"LightMode" = "ForwardBase"}ZWrite offBlend SrcAlpha OneMinusSrcAlphaCGPROGRAM#pragma vertex vert#pragma fragment frag// make fog work#pragma multi_compile_fogENDCG}}
}

注意:Pass代码块中要添加 Blend SrcAlpha OneMinusSrcAlpha

Blend 是 ShaderLab 命令,在Pass块中使用可为该通道设置渲染状态。

开启混合,并设置混合因子。源颜色(该片元产生的颜色)会乘以SrcAlpha,而目标颜色(已经存在于颜色缓存的颜色)会乘以 OneMinusSrcAlpha,然后把两者相加后存入颜色缓冲中。

即可实现以上效果。

unity Image/RawImage贴图透明度渐变/融合 正片叠底相关推荐

  1. Unity 使用一张贴图来控制材质主贴图的透明度

    最近有个需求:通过一张贴图的颜色值来控制材质主贴图的透明度. 先做一个注明:用来控制主贴图透明度的贴图,我们暂且称之为"Alpha贴图":主贴图就叫"主贴图". ...

  2. android 缩放透明动画,Android旋转、平移、缩放和透明度渐变的补间动画

    android实现旋转.平移.缩放和透明度渐变的补间动画,具体实现如下: 1.在新建项目的res目录中,创建一个名为anim的目录,并在该目录中创建实现旋转.平移.缩放和透明度渐变的动画资源文件. 透 ...

  3. 【游戏开发实战】Unity UGUI制作雷达图/天赋图/属性图/能力图,因为太怕痛就全点了防御力

    文章目录 一.前言 二.最终效果 三.原理 四.具体实现 1.雷达图背景图 2.封装UIPolygon.cs 3.制作预设 4.测试脚本RadarTest.cs 五.运行测试 六.结束语 七.附录:U ...

  4. WebGL透明度与α融合

    WebGL透明度与α融合 WebGL教程(电子书) 本文是WebGL电子书的1.15节内容 半透明三角形叠加.html源码效果如下如图所示. 渲染管线之融合 GPU的渲染管线有各种功能单元,比如前面讲 ...

  5. Unity Shader法线贴图(Normal Map)及其原理

    简介 以前经常听说"模型不好看啊,怎么办啊?"答曰"加法线","做了个高模,准备烘一下法线贴图","有的美术特别屌,直接画法线贴图 ...

  6. css实现自适应背景图及背景图透明度处理

    前言 大屏可视化在展示方式上之所炫酷是因为有很多科技感图形的衬托,这些图形可以来自图表组件,也可以是UI组件,具备科技感的UI组件实际上比常见的组件库中的组件多了一个样式属性(即backgroundI ...

  7. CV之FD:基于dlib、cv2库利用warpPerspective函数和_68_face_landmarks文件实现AI换脸渐变融合视频效果

    CV之FD:基于dlib.cv2库利用warpPerspective函数和_68_face_landmarks文件实现AI换脸渐变融合视频效果 目录 输出结果 设计思路 输出结果 设计思路 实现代码 ...

  8. JS实现透明度渐变动画

    <!doctype html> <html lang="en"> <head><meta charset="UTF-8" ...

  9. Flutter透明度渐变动画Opacity实现透明度渐变动画效果

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. ** 你可能需要 CSDN 网易云课堂教程 掘金 EDU学院教程 知乎 Flutter系列文章 在Flutter 中实 ...

最新文章

  1. mendix归还界面如何只显示登录人自己借阅的书籍,而不显示全部人借阅的书籍
  2. Linux压缩包和用户管理及开关机指令
  3. Nginx全局块的其他配置指令
  4. Dapr牵手.NET学习笔记:Actor小试
  5. 台达plc控制伺服电机编程实例_PLC控制伺服电机:控制脉冲的相关计算
  6. Spark记录-Scala记录(基础程序例子)
  7. 使用countDownLahct模拟多线程并发场景
  8. 设计模式---开闭原则
  9. java最基础的小总结
  10. JZOJ 3503. 粉刷(paint)
  11. 哈希函数的构造方法以及哈希表解决冲突的方式
  12. JDBC和数据库连接池的关系
  13. win10照片查看器不能点下一张的方法
  14. facenet lfw训练
  15. 腾讯云--OOS对象存储服务--java程序封装
  16. 解读爱奇艺Q2财报:会员数破亿,其他收入打开新增长空间?
  17. APP微信支付的后台实现
  18. 【转】How To Ask Questions The Smart Way---提问的智慧
  19. SAP QM 检验批里某检验特性的取样数量跟检验计划设置不符?
  20. 继承 super的讲解

热门文章

  1. Sql注入-1:sql注入基本原理
  2. Pycharm 启用相对行号(IdeaVim)
  3. 串口服务器支持多少模块,ADVANTECH研华ADAM-4571L模块1端口RS-232串口服务器
  4. 编译google Zxing,实现安卓一、二维码的扫描与生成
  5. 大数据DMP画像系统
  6. WY37 - 操作序列 - 网易
  7. OpenProcessToken令牌函数使用方法
  8. 记录下刷机步骤Pixel 3 XL
  9. FFmpeg添加字幕的详细操作
  10. C++命名空间 namesapce