1.Alpha值边缘检测 根据图片的Alpha值边缘判定,向内扩一段距离做边缘,颜色设置未描边颜色; 片元着色阶段,向上下左右四个方向做检测,有一个点的透明度为0,判定为边缘; Shader"2DOutline"{ Properties { _MainTex("Texture",2D) ="white"{} _LineWidth("Width",Range(0,0.4)) =1.0_LineColor("LineColor",c...
Shader"Zero/UGUI/TextOutline"{Properties{_MainTex("Texture",2D)="white"{}//外边框颜色_OutlineColor("Outline Color",Color)=(0,0,0,1)}SubShader{Tags{"Queue"="Transparent""RenderType"="Transparent"}CullOffLightingOffZWriteOffZTestAlwaysBlendSrcAlphaOneMinusSrcAlphaPass{CGPROGRAM#pragmavertex vert#...
我们可以做下优化,利用插值来平滑过渡, 最终完整Shader代码如下: // ---【2D 描边效果】---// create by 长生但酒狂Shader"lcl/shader2D/outline"{Properties{_MainTex("Texture",2D)="white"{}_lineWidth("lineWidth",Range(0,10))=1_lineColor("lineColor",Color)=(1,1,1,1)}// ---【子着色器】...
自制- Unity shader 轮廓线,边框 01:19 自制- Unity shader 水面效果 - 01:32 自制- Unity Shader 风吹动树木花 01:14 自制-Unity Shader 闪光效果,被攻击 01:14 自制-Unity Shader 黑白效果 - 附 01:04 自制- Unity3D Shader低多边效果 01:04 自制Unity 2D Shader 资源包,你 01:25 自制...
【UnityShader】描边Outline(2) 前言: 本章介绍一些笔者总结的描边算法。 以下所有测试基于Unity的BuildIn管线。 一、基于物体的描边 至今,大家听到最多的描边方式,基本上是“法线外扩+2Pass渲染”,虽然也似乎也确实是现今的通用做法,但在详细讲解这种方法之前,我还是想把其他方法过一遍,权当增长一下见识。
Shader "Unlit/outLine" { //外描边 Properties { _MainTex ("Texture", 2D) = "white" {} _OutLineCol("外描边颜色", Color) = (0.0, 0.0, 0.0, 0.0) _OutLine("外描边宽度", float) = 0.5 } SubShader { Tags { "RenderType"="Opaque" } ...
Unity3D教程:Outline Shader 实现外轮廓效果 这次写了一个简单利用Outline Shader 实现外轮廓效果,这个效果在游戏中常常应用在:选取物件、卡通风格中,如果对Outline Shader 实现外轮廓效果感兴趣的话,可以继续往下看。 ? 1 2 3 4 5 6 7 8 9 10 11
Shader实现描边流程大致为:对模型进行2遍(2个pass)绘制,第一遍(描边pass)在vertex shader中对模型沿顶点法线方向放大,fragment shader设置输出颜色为描边颜色;第二遍正常绘制模型,除被放大的部分外,其余被覆盖,这样就有了描边的效果。 实现代码如下: Shader"Custom/OutlineShader"{ ...
3D描边已经完成了法线膨胀的方法,接下来我会重点学习屏幕特效的方法然后写博客。以后还会有各种效果的Shader博客。 Shader"Sprites/SpriteOutline"{ Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) ="white"{} _Color ("Tint", Color) = (1,1,1,1) ...
Shader "Custom_Shader/ImageOuterOutline" { Properties { _MainTex ("Sprite Texture", 2D) = "white" {} _OutlineWidth ("Outline Width", float) = 1 _OutlineColor ("Outline Color", Color) = (1.0, 1.0, 1.0, 1.0) _AlphaValue ("Alpha Value", Range(0, 1)) = 0.1 } SubShader { Blend ...