zoukankan      html  css  js  c++  java
  • [小明学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常用命令
    Jstack、Jmap命令简单使用
    MySQL慢查询日志ES索引模板
    MySQL二进制安装部署
    varnish启动报错
    基础训练 Sine之舞
    基础训练 FJ的字符串
    基础训练 芯片测试
    基础训练 龟兔赛跑预测
    基础训练 回形取数
  • 原文地址:https://www.cnblogs.com/WongSiuming/p/4997421.html
Copyright © 2011-2022 走看看