unity黑白滤镜_Unity NGUI图片去色黑白效果
在做项目的时候。我们经常要用到禁用为灰色的效果。比如 我们要做 图鉴 我们已有的装备物品为彩色。没有的为灰色。
在我们设置UISprite或者UITesture的颜色时。会发现,效果不好还会被图片本身的颜色影响。如下
而我们需要的是这样的效果
这时。就需要我们写Shader来弄了。
Unity中搜索 :Transparent Colored
打开该shader 搜索 函数fixed4 frag (v2f i) : COLOR
{
fixed4 col = tex2D(_MainTex, i.texcoord) * i.color;
return col;
}
将之替换为如下代码fixed4 frag (v2f i) : COLOR
{
fixed4 col;
if (i.color.r < 0.001)
{
col = tex2D(_MainTex, i.texcoord);
float grey = dot(col.rgb, float3(0.299, 0.587, 0.114));
col.rgb = float3(grey, grey, grey);
}
else
{
col = tex2D(_MainTex, i.texcoord) * i.color;
}
return col;
}
另存为。换个名字。然后给UITexture引用就可以了。如下;
当然也可以用脚本动态更改。(传入false则去色)public void SetUITextureColorEnable(UITexture tex, bool enbale)
{
if (tex != null)
{
Debug.LogError("111");
Shader shader = null;
if (enbale == true)
{
shader = Shader.Find("Unlit/Transparent Colored");
}
else
{
shader = Shader.Find("Unlit/Transparent Colored Gray");
}
Debug.LogError(shader.name);
if (tex.shader != shader)
{
tex.shader = shader;
}
}
else
{
Debug.LogError(string.Format("SetUITextureColorEnable tex null/enbale={0}", enbale));
}
}
UISprite的话。需要给图集的材质球更好Shader;
动态的话。如下Material mat = new Material(Shader.Find("Unlit/Transparent Colored Gray"));
atlas.spriteMaterial = mat;
我们可以就一个图集。写一个方法。运行后。将已有的图集动态克隆一份。然后引用新的shader。然后根据条件去取相应的图集。就可了。
修改添加代码。如下:#region 获取图片去色相关
private UIAtlas mHeadIconUIAtlas;
private Material mGrayMaterial;
public void GetGrayIconSprite(UISprite sprite,string spriteName)
{
if (mHeadIconUIAtlas == null)
{
UIAtlas atlas = AssetMgr.GetInstance().GetUIAtlas(AssetType.IconGHead, true);//这里是获取图集。这个根据个人的接口写。用Res.Load 去获取。
mHeadIconUIAtlas = Instantiate(atlas) as UIAtlas;//克隆图集
mGrayMaterial = new Material(Shader.Find("Unlit/Transparent Colored Gray"));//新建材质,并指定Shader
mGrayMaterial.mainTexture = atlas.spriteMaterial.mainTexture;//给材质赋贴图
mHeadIconUIAtlas.spriteMaterial = mGrayMaterial;
}
sprite.atlas = mHeadIconUIAtlas;
sprite.spriteName = spriteName;
}
#endregion
最后。去色Shader下载地址:http://yunpan.cn/csS8MqZbI2kPt 提取码 b8cd
本文链接:
https://bobsong.cn/373.html
unity黑白滤镜_Unity NGUI图片去色黑白效果相关推荐
- unity黑白滤镜_unity3D 把图片变黑白的Shader
//下面是shader Shader "UI/Default Grey" { Properties { [PerRendererData] _MainTex ("Spri ...
- unity黑白滤镜_Unity图片处理类,包括压缩、截屏和滤镜
http://www.cnblogs.com/EndOfYear/p/4334952.html 先上代码: using System.Threading; using UnityEngine; usi ...
- unity黑白滤镜_unity颜色分级图像滤镜着色器Fast Mobile Color Grading 1.0
unity颜色分级图像滤镜着色器Fast Mobile Color Grading 1.0,包含7个着色器,可用于手机游戏或桌面游戏.大多数着色器都经过优化,可在移动设备上平滑运行,同时保持图像良好的 ...
- unity黑白滤镜_unity游戏相机滤镜渲染后期色彩处理特效着色器Colorful FX v4.4
unity游戏相机滤镜渲染后期色彩处理特效着色器Colorful FX v4.4,是一个可快速和自定义的后处理效果,颜色可调整. Colorful FX is a collection of high ...
- unity 当前移动方向_Unity小工具:溶解效果(Dissolve)
溶解效果是一个很基础的效果,本文是对溶解效果的一个简单的总结,作为一个记录以达到技术积累的目的.同时会在GitHub实现一个小例子,来验证理论. 溶解效果 要实现溶解效果,最重要的就是让某些像素显示, ...
- unity Shader Graph实现2D图片扭曲波纹效果
先看效果,制作版本:unity2019.4.2 制作2D图片效果,不需要用到光照信息,所以创建ShaderGraph时选用Unlit Graph. 图片一般都会有透明通道,记得修改Unlit Mast ...
- HTML网页黑白滤镜
HTML网页黑白滤镜 给html标签添加黑白滤镜 实现全站黑白效果 html {-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%) ...
- 【图像处理】中的“滤镜算法”:灰度、黑白、反向、去色、单色、高斯模糊、怀旧、连环画
目录 灰度滤镜 黑白滤镜 反向滤镜 去色滤镜 单色滤镜 高斯模糊滤镜 怀旧滤镜 熔铸滤镜 冰冻滤镜 连环画滤镜 褐色滤镜 灰度滤镜 将颜色的RGB设置为相同的值即可使得图片为灰色,一般处理方法有: 1 ...
- Swift - 给图片添加滤镜效果(棕褐色老照片滤镜,黑白滤镜)
Core Image是一个强大的滤镜处理框架.它除了可以直接给图片添加各种内置滤镜,还能精确地修改鲜艳程度, 色泽, 曝光等,下面通过两个样例演示如何给UIImage添加滤镜. 1,棕褐色滤镜 - ...
- android平台下OpenGL ES 3.0给图片添加黑白滤镜
OpenGL ES 3.0学习实践 android平台下OpenGL ES 3.0从零开始 android平台下OpenGL ES 3.0绘制纯色背景 android平台下OpenGL ES 3.0绘 ...
最新文章
- js 404页面跳转
- Core Animation放大缩小;CAKeyframeAnimation
- 计算机专业到投行的工作需要的金融财务知识
- matlab能输入铁心参数,基于MATLAB的电力机车110伏直流稳压电源仿真研究
- 合肥中学计算机老师招聘,2019年合肥北城中学教师招聘公告
- 我们是python_我们生活在“Python时代”
- Zing加快了JVM应用程序的预热
- unity3d 简单动画
- Python程序设计语言基础03:基本数据类型
- JavaScript嵌套函数this的指向问题
- 链表:从尾到头打印链表
- oracle winxsx 目录,Mac迅雷瘦身精简教程
- 数学建模入门例题python_用Python分析支付宝轻定投收益--Python数学建模实例
- 论BOM管理的若干重要问题
- 微博营销的价值与注意点
- 网络工程师——交换技术(线路交换、分组交换技术、帧中继交换、信元交换技术)
- 爬取msdn.itellyou.cn网站
- 掌上湘雅服务器无响应是什么情况,掌上湘雅APP查询体检报告
- 怎么给手机照片添加文字?没想到方法这么容易,1分钟就能学会
- 狗狗的年龄的python编程_狗狗与人年龄换算表,终于知道狗狗多大了!
热门文章
- linux里没有vi编辑器怎么办,如果是linux没有vi、vim等编辑器如何操作
- Delphi XE 10.2.3使用FastReport 6.0.7
- VC知识库BLOG-技术,非技术......
- 试图加载 Crystal Reports 运行时出现错误
- jmeter404_jmeter压力测试报告
- java 反编译 报错_java反编译后再编译成class时提示缺少包
- C语言实现简单小游戏
- matlab官方中文网站
- Windows中使用Netsh Winsock Reset命令解决网络连接问题
- c语言各章知识重点(谭浩强版本)