Unity Shader Fresnel透明边缘发光

透明边缘发光,就像玻璃水晶一样

 

以下是源码

// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'
 
Shader "A/LightShader"
{
    Properties
    {
        _MainTex("MainTex", 2D) = "white"{}
        _MainColor("MainColor", Color) = (1, 1, 1, 1)
        _Emiss("Emiss", Float) = 1.0
        _RimPower("RimPower", Float) = 1.0
    }
    SubShader
    {
        Tags{"Queue" = "Transparent"}
        Pass
        {
            ZWrite off
            Blend SrcAlpha One
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"
 
            struct appdata
            {
                float4 vertex: POSITION;
                float2 uv: TEXCOORD0;
                float3 normal: NORMAL;
            };
 
            struct v2f
            {
                float4 pos: SV_POSITION;
                float2 uv: TEXCOORD0;
                float3 normal_world: TEXCOORD1;
                float3 view_dir: TEXCOORD2;
            };
 
            sampler2D _MainTex;
            float4 _MainColor;
            float _Emiss;
            float _RimPower;
 
            v2f vert(appdata v)
            {
                v2f o;
                o.pos = UnityObjectToClipPos(v.vertex);
                o.normal_world = normalize(mul(float4(v.normal, 0.0), unity_WorldToObject).xyz);
                float3 pos_world = mul(unity_ObjectToWorld, v.vertex).xyz;
                o.view_dir = normalize(_WorldSpaceCameraPos.xyz - pos_world);
                o.uv = v.uv;
                return o;
            }
 
            float4 frag(v2f i) : SV_Target
            {
                float3 normal = normalize(i.normal_world);
                float3 view_dir = normalize(i.view_dir);
                float NdotV = saturate(dot(normal, view_dir));
                float3 col = _MainColor.xyz * _Emiss;
                float fresnel = pow(1.0 - NdotV, _RimPower);
                float alpha = saturate(fresnel * _Emiss);
                return float4(col, alpha);
            }
 
            ENDCG
        }
    }
}


————————————————
原文链接:https://blog.csdn.net/LHXvs2015/article/details/123416273

猜你喜欢

转载自blog.csdn.net/weixin_42565127/article/details/130709546