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"
    }
  • 相关阅读:
    Shell printf 命令
    Shell echo命令
    Shell 基本运算符
    Shell 数组
    Shell 传递参数
    Shell 变量
    Spark基础知识汇总
    DataScientist————汇总篇
    Java的Unsafe类
    java 中文字符和unicode编码值相互转化
  • 原文地址:https://www.cnblogs.com/mrblue/p/7454529.html
Copyright © 2011-2022 走看看