shader 边缘泛光

来源:互联网 发布:淘宝店怎么提前收款 编辑:程序博客网 时间:2024/04/20 22:16
原理:边缘的法线与摄像头和顶点形成的向量夹角越小,那么它就是边缘透明:blend SrcAlpha OneMinusSrcAlpha

zwrite off

Shader "Func/func1"{//边缘发光 透明properties{_Scale("_Scale",range(1,8)) = 2}SubShader{tags {"queue" = "transparent"}Pass{blend SrcAlpha OneMinusSrcAlphazwrite offCGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"float _Scale;struct v2f{float4 pos:POSITION;float3 normal:TEXCOORD0;float4 vertex:TEXCOORD1;};v2f vert (appdata_base v){v2f o;o.pos = mul(UNITY_MATRIX_MVP,v.vertex);o.normal = v.normal;o.vertex = v.vertex;return o;}fixed4 frag (v2f IN) : COLOR{//float3 N = mul(float4(IN.normal,0),_World2Object).xyz;float3 N = normalize(mul(IN.normal,(float3x3)_World2Object));float3 V = normalize(WorldSpaceViewDir(IN.vertex));float bright = 1- saturate(dot(N,V));return fixed4(1,1,1,1)*pow(bright,_Scale);}ENDCG}}}




                                             
0 0
原创粉丝点击