Unity Sprite2D Outline Shader 图片描边+纯色填充
2D图片描边,2D图片纯色填充,二合一Shader。支持UGUI UI Mask。
Shader "Sprites/SpriteOutline"
{Properties{[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}_Color ("Tint Color", Color) = (1,1,1,1)_TintColorFactor ("Tint Color Factor", Range(0, 1)) = 1_FillColor ("Fill Color", Color) = (1,1,1,1)_FillColorFactor ("Fill Color Factor", Range(0, 1)) = 0_OutlineColor("Outline Color", Color) = (1,1,1,1)_LineWidth("Outline Width", Float) = 0.39_CheckRange("Check Range", Range(0, 1)) = 0_CheckAccuracy("Check Accuracy", Range(0.1, 0.99)) = 0.9[MaterialToggle] PixelSnap ("Pixel Snap", Float) = 0_StencilComp ("Stencil Comparison", Float) = 8_Stencil ("Stencil ID", Float) = 0_StencilOp ("Stencil Operation", Float) = 0_StencilWriteMask ("Stencil Write Mask", Float) = 255_StencilReadMask ("Stencil Read Mask", Float) = 255_ColorMask ("Color Mask", Float) = 15}SubShader{Tags{"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane""CanUseSpriteAtlas"="True"}Cull OffLighting OffZWrite OffBlend One OneMinusSrcAlphaStencil{Ref[_Stencil]Comp[_StencilComp]Pass[_StencilOp]ReadMask[_StencilReadMask]WriteMask[_StencilWriteMask]}ColorMask[_ColorMask]Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma target 2.0#pragma multi_compile _ PIXELSNAP_ON#pragma multi_compile _ ETC1_EXTERNAL_ALPHA#include "UnityCG.cginc"sampler2D _MainTex;float4 _MainTex_TexelSize;sampler2D _AlphaTex;fixed4 _Color;float _TintColorFactor;fixed4 _FillColor;float _FillColorFactor;fixed4 _OutlineColor;float _CheckRange;float _LineWidth;float _CheckAccuracy;struct appdata_t{float4 vertex : POSITION;float4 color : COLOR;float2 texcoord : TEXCOORD0;};struct v2f{float4 vertex : SV_POSITION;fixed4 color : COLOR;float2 texcoord : TEXCOORD0;};v2f vert(appdata_t IN){v2f OUT;OUT.vertex = UnityObjectToClipPos(IN.vertex);OUT.texcoord = IN.texcoord;OUT.color = IN.color * _Color;#ifdef PIXELSNAP_ONOUT.vertex = UnityPixelSnap(OUT.vertex);#endifreturn OUT;}fixed4 SampleSpriteTexture(float2 uv){fixed4 color = tex2D(_MainTex, uv);#if ETC1_EXTERNAL_ALPHA// get the color from an external texture (usecase: Alpha support for ETC1 on android)color.a = tex2D(_AlphaTex, uv).r;
#endifreturn color;}fixed4 frag(v2f IN) : SV_Target{fixed4 c = SampleSpriteTexture(IN.texcoord) * IN.color;c.rgb *= c.a;float isOut = step(abs(1 / _LineWidth), c.a);if (isOut != 0){fixed4 pixelUp = tex2D(_MainTex, IN.texcoord + fixed2(0, _MainTex_TexelSize.y * _CheckRange));fixed4 pixelDown = tex2D(_MainTex, IN.texcoord - fixed2(0, _MainTex_TexelSize.y * _CheckRange));fixed4 pixelRight = tex2D(_MainTex, IN.texcoord + fixed2(_MainTex_TexelSize.x * _CheckRange, 0));fixed4 pixelLeft = tex2D(_MainTex, IN.texcoord - fixed2(_MainTex_TexelSize.x * _CheckRange, 0));float bOut = step((1 - _CheckAccuracy), pixelUp.a * pixelDown.a * pixelRight.a * pixelLeft.a);c = lerp(_OutlineColor, c * _TintColorFactor * (1 - _FillColorFactor) + _FillColor * _FillColorFactor, bOut);return c;}else{return c;}}ENDCG}}
}
Unity Sprite2D Outline Shader 图片描边+纯色填充相关推荐
- 2020.9.25--PS--图片合成、图片描边和填充、变形
图片合成 把一张图片中的物体抠出来放到另一张的合适位置进行调整 图片描边和填充 打开一张图片,用矩形选框工具或椭圆选框工具画出矩形选区或圆形选区,点"编辑"中"描边&qu ...
- unity 图片变纯色填充 变色
unity自带shader 即可 转载于:https://www.cnblogs.com/sanyejun/p/10671325.html
- Unity学习之Shader
Shader 是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序.其中Vertex Shader(顶点着色器)主要负责顶点的几何关系等的运算,Pixel Shader(像素着色器)主要负责片元颜色 ...
- Unity3D Shader编程】之二 雪山飞狐篇:Unity的基本Shader框架写法颜色、光照与材质
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/40955607 作者:毛星云(浅墨) ...
- 怎么批量给图片加纯色边框?
如何给图片加纯色边框?相信很多小伙伴都觉得很简单,用ps软件给图片描边即可完成.给图片添加边框后图片会变得更美观,所以工作中经常遇见,边框有很多种,如图片边框和纯色边框.那么如何批量给图片加纯色边框呢 ...
- Unity UGUI 数字使用图片显示-BMFont
Unity UGUI 数字使用图片显示-BMFont BMFont 之前使用Cocos引擎的时候需要用到艺术字也就是将数字使用美术给的图片来代替显示,也就是要做一个新字体专门用来显示艺术字,当时用的是 ...
- UI shader图片效果处理
图片处理 unity 可以直接写shader对图片处理,调节图片的 亮度,饱和度,对比度 目录 图片处理 前言 一.图片调节 二.Unity 中的shader 实现 1. 亮度,饱和度,对比度 2.效 ...
- Unity中实时更新图片的方法探究
背景 最近继续在做VR会议,在共享桌面这一块遇到了一个棘手的问题.在会议中,共享的桌面是通过发送一帧一帧的图片来实现的.在Unity中需要把图片渲染出来. 3个难点 在Unity实时的渲染图片有3个难 ...
- html语言填充没有只有描边,HTML5 Canvas笔记——交互绘制文本(描边、填充、阴影、渐变填充、图案填充、文本的属性设置)...
(1)文本的描边.填充.阴影 (2)文本的渐变填充 (3)文本的图案填充 (4)文本的属性设置及效果呈现 交互绘制文本.html 交互绘制文本 body { background: #eeeeee; ...
最新文章
- 新手java五子棋完整代码判断落子落在线上_Java初学者,编写小游戏五子棋的问题?...
- 我读过的最好的epoll讲解--转自”知乎“ 【转】
- Java Review - 使用Timer时需要注意的事情
- FAT32格式和NTFS有什么区别
- 程序员怎样成为一名架构师?
- 论文浅尝 - COLING2020 | 一种用于跨语言实体对齐的上下文对齐强化跨图谱注意力网络...
- html彩色背景指令,HTML_第四章 颜色背景的CSS,本 章 C S S 的 主 - phpStudy...
- kali创建文件_kali 创建快捷方式的方法
- spring中配置数据源
- 自动化测试C语言程序,自动化测试程序之一自定义键盘的模拟测试程序(C语言)...
- TensorFlow by Google CNN分类真实图片 Machine Learning Foundations: Ep #5 - Classifying real-world images
- Servlet/JSP学习笔记(3)-Lomboz介绍+安装方法
- word论文封面下划线对齐
- 司空见惯 - 洪荒之力
- quarz定时任务 spring整合quartz
- 物联网设备模糊:DIANE:识别应用程序中的模糊触发器,为物联网设备生成受限制的输入
- 免息贷款但有手续费的年化利率计算方法及Java实现;
- 上传文件- rz -be -y
- 如何不限制IP投票?实用电脑、手机换IP方法汇总
- Parcel Bundle漏洞学习
热门文章
- 裸辞后在厦门一个月内面试了24家互联网公司—3年Java开发工程师
- 厦门智业HIS软件安装Linux,智业医院运营管理系统(HRP)
- vxWorks/BootROM Imageq启动顺序详解
- php主板主要是支持,GTX1050Ti配什么CPU和主板好?适合GTX1050Ti搭配的CPU与主板解答...
- 初中计算机科普书籍,初中生16篇科学阅读书目推荐清单
- 核桃编程python年课_2019年核桃编程春季班开抢啦!
- AMD S7150显卡在kvm下实现GPU虚拟化
- 2020年金属非金属矿山(地下矿山)主要负责人考试题库及金属非金属矿山(地下矿山)主要负责人考试申请表
- 多线程(三)——了解线程
- 为什么要和聪明人一起工作