UGUI 图片去色,变灰度图
UGUI 图片将其他颜色去除,显示灰色图片
本例适用于 UGUI
一般项目中会有一些图标,当你拥有该图标显示为彩色图标,一般项目中最占资源的就是图片,不允许添加一张彩色图片,一张灰色图片,必须通过一些方法将彩色图标的颜色去掉,获取图标的灰色值。
UGUI 自带了一个Shader, Sprites/Default, 默认给了一个添加该Shader 的材质球
1 Shader "UISprites/DefaultGray" 2 { 3 Properties 4 { 5 [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} 6 _Color ("Tint", Color) = (1,1,1,1) 7 [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 8 9 //---Add--- 10 // Change the brightness of the Sprite 11 _GrayScale ("GrayScale", Float) = 1 12 //---Add--- 13 } 14 15 SubShader 16 { 17 Tags 18 { 19 "Queue"="Transparent" 20 "IgnoreProjector"="True" 21 "RenderType"="Transparent" 22 "PreviewType"="Plane" 23 "CanUseSpriteAtlas"="True" 24 } 25 26 Cull Off 27 Lighting Off 28 ZWrite Off 29 Blend One OneMinusSrcAlpha 30 31 Pass 32 { 33 CGPROGRAM 34 #pragma vertex vert 35 #pragma fragment frag 36 #pragma multi_compile _ PIXELSNAP_ON 37 #include "UnityCG.cginc" 38 39 struct appdata_t 40 { 41 float4 vertex : POSITION; 42 float4 color : COLOR; 43 float2 texcoord : TEXCOORD0; 44 }; 45 46 struct v2f 47 { 48 float4 vertex : SV_POSITION; 49 fixed4 color : COLOR; 50 half2 texcoord : TEXCOORD0; 51 }; 52 53 fixed4 _Color; 54 55 v2f vert(appdata_t IN) 56 { 57 v2f OUT; 58 OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex); 59 OUT.texcoord = IN.texcoord; 60 OUT.color = IN.color * _Color; 61 #ifdef PIXELSNAP_ON 62 OUT.vertex = UnityPixelSnap (OUT.vertex); 63 #endif 64 65 return OUT; 66 } 67 68 sampler2D _MainTex; 69 float _GrayScale; 70 71 fixed4 frag(v2f IN) : SV_Target 72 { 73 fixed4 c = tex2D(_MainTex, IN.texcoord) * IN.color; 74 75 //---Add-- 76 float cc = (c.r * 0.299 + c.g * 0.518 + c.b * 0.184); 77 cc *= _GrayScale; 78 c.r = c.g = c.b = cc; 79 //---Add-- 80 81 c.rgb *= c.a; 82 return c; 83 } 84 ENDCG 85 } 86 } 87 }
UGUI 图片去色,变灰度图相关推荐
- Android之给图片去色,返回灰度图片以及ColorMatrix中setSaturation方法的用法
原图: 效果图: 实现以上效果其实很简单,直接上代码: public class MainActivity extends Activity {private Button btn_start;pri ...
- OprenCV学习之路一:将彩色图片转换成灰度图
//将一张彩色图片转成灰度图:#include<cv.h> #include<cvaux.h> #include<highgui.h> #include<ml ...
- 精雕软件怎么把图片转成灰度图_怎么把普通的照片变成浮雕用的灰度图 精雕图 灰度图 浮雕图之间怎么能联系起来使用...
怎么把普通的照片变成浮雕用的灰度图 用PS啊,里面有这种效果的,若需要帮忙的话,可以加发给我一份啊,尽量帮你哈,呵呵 用 photoshop 把照片变成灰度图,用PS做有很多方法,介绍两种: 方法1: ...
- 单通道图片转换为3通道图片,实现灰度图上添加彩色标注
对于纯粹的单通道图片(灰度图)利用opencv是无法在图片上附加彩色标注的,这时就需要将单通道图片转换为三通道图片才行.由于图片中没有另外两个通道的数据,因此直接将已有的数据给另外两个通道就行. 注意 ...
- python将图片转成灰度图
运行代码工具:jupyter notebook 图片保存在运行目录下 from PIL import Image I = Image.open('C:/Users/LitmoonHoney/Deskt ...
- matlab批量将图片处理为灰度图
matlab批量处理图片的灰度,将其保存在指定创建的文件夹之中. 代码案例如下: clc clear % 将图片批量转化为灰度图 % 首先需要创建灰度图保存的文件夹 % 读取图片的路径格式:'F:\M ...
- 把图片做成html,HTML5实践-图片设置成灰度图
以前,在web上要显示灰度图片的话,只有手工使用图片软件转换.但是现在借助于html5的canvas可以实现这个过程,而不需要再借助图片编辑软件了.我用html5和jquery做了一个demo,来展示 ...
- 精雕软件怎么把图片转成灰度图_bmp灰度图怎么转精雕浮雕图和做刀路?
1.文件--输入--点阵图像(选择灰度图,bmp格式的) 2.绘制--绘制出一个你需要做的图案的形状,注意计算比例尺 3.用你绘制的图形来截取灰度图,截取你要的图案部分,截取的部分就是你要做出来的路径 ...
- UGUI 图片去色,取灰色(借鉴大神,仅作为笔记用)
本例适用于 UGUI 一般项目中会有一些装备图标等,当你拥有该装备时该图标显示为彩色图标,没有改装备时图标显示为灰色图标,一般项目中最占资源的就是图片,不允许添加一张彩色图片,一张灰色图片,必须通过一 ...
最新文章
- SMS系列之六:利用SMS实现操作系统的补丁分发
- 独家 | 神策 2019 数据驱动大会现场「视频+PPT」合集
- sklearn线性回归
- Maven 加载ojdbc14.jar报错,解决方法
- ThinkPHP3.2 实现阿里云OSS上传文件
- 字符串转换为整数的源码atoi()
- Github客户端使用教程
- Java的Socket编程
- linux 增加maven内存,Ubuntu Linux系统下Apache Maven的安装和配置
- Gstreamer1.16.2与Glib2 signals关键字冲突解决(十一)
- python矩阵运算与线形代数_Python 执行矩阵与线性代数运算
- DIAView 嵌入视频监控(海康威视)
- 完整制作个人博客系统
- 24-思科防火墙:ASA透明防火墙实验
- Python轮盘抽奖游戏
- 计算机硬件知识调查表,计算机硬件的调研报告(精).docx
- Linux时间设置和motd设置
- Vue之Hello World!
- Play框架最快上手!
- Android自定义ViewPager图片指示器,兼容实现底部横线指示器