• [小明学Shader]4.自定义光照----RampTexture


    上一篇讲了自定义光照的HalfLambert,这一次和它有些类似,但是计算的时候,不再用方向和atten相乘了.

    将光入射方向与法相的点乘积HalfLam作为坐标,找到RampTexture中(HalfLam,HalfLam)点的rgb值作为混合值与s.的Albedo和入射光颜色相乘.

    代码如下:

    Shader"Custom/11.26/2"{
    Properties{
        _RampTex("Ramp Texture",2D)="white"{}
        _MainTex("Ramp Texture",2D)="white"{}
    }
    SubShader{
        Tags{"RenderType"="Opaque"}
        LOD 200
        
        CGPROGRAM
        #pragma surface surf Ramp
        
        sampler2D _RampTex;
        sampler2D _MainTex;
        
        struct Input{
            float2 uv_MainTex;
        };
        
        void surf(Input In,inout SurfaceOutput o){
            half4 c=tex2D(_MainTex,In.uv_MainTex);
            
            o.Albedo=c.rgb;
            o.Alpha=c.a;
        }
        
        inline float4 LightingRamp(SurfaceOutput s,fixed3 LightDir,fixed atten){
            float lightDif=dot(s.Normal,LightDir);
            float halfLam=0.5*lightDif+0.5;
            
            float3 ramp=tex2D(_RampTex,float2(halfLam,halfLam)).rgb;
            
            float4 col;
            col.rgb=s.Albedo*_LightColor0.rgb*ramp;
            col.a=s.Alpha;
            
            return col;
        }
        
        ENDCG
    }
    FallBack "Diffuse"
    }

    效果图:

  • 相关阅读:
    第二章初识MySQL
    第一章 数据库
    Java&SQL7
    Java&SQL
    Java&SQL6
    Java&SQL5
    Java&SQL4
    Java&SQL3
    Java&SQL2
    博客地址已搬迁
  • 原文地址:https://www.cnblogs.com/WongSiuming/p/4997421.html
Copyright © 2020-2023  润新知