zoukankan      html  css  js  c++  java
  • Unity3D 边缘高光Shader

    Shader "Custom/NewShader" {
        Properties {
            _MainTex ("Base (RGB)", 2D) = "white" {}
            _RimColor("Rim Color", Color) = (1,1,1,1)
            _RimPower ("Rim power",range(0,5)) = 2//边缘强度
        }
        SubShader {
            Pass
            {
            
            CGPROGRAM
    
            #include "UnityCG.cginc"
    
            struct v2f
            {
                float4 vertex:POSITION;
                float2 uv:TEXCOORD0;
                float4 rim:COLOR;
            };
    
            sampler2D _MainTex;
            float4 _RimColor;
            float _RimPower;
    
            v2f vert(appdata_base  v)
            {
                v2f o;
                o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                o.uv = v.texcoord;
                float3 worldPos = mul(_Object2World, v.vertex).xyz;
                float3 viewdir = normalize((_WorldSpaceCameraPos - worldPos));
                float3 normal = normalize(mul((float3x3)_Object2World,v.normal));
                
                o.rim.x = 1-saturate(dot(viewdir,normal));
    
                return o;
            }
    
            fixed4 frag (v2f IN):COLOR
            {
                fixed4  c = tex2D(_MainTex, IN.uv);
                c.rgb+= pow(IN.rim.x,2)*_RimColor*_RimPower;
                return c;
            }
    
            #pragma vertex vert
            #pragma fragment frag
    
            ENDCG
            }
        } 
        FallBack "Diffuse"
    }
  • 相关阅读:
    设计模式 之 单例模式
    leetcode 69 x 的平方根 牛顿迭代法
    leetcode 98 验证二叉搜索树
    leetcode 54 螺旋数组
    第一篇-python入门
    python-入门
    python
    线性判别分析LDA总结
    LDA
    线性判别分析(LDA)原理
  • 原文地址:https://www.cnblogs.com/mrblue/p/7454529.html
Copyright © 2011-2022 走看看