[小明学Shader]1.Diffuse

  • 写在前面

本系列随笔是看化石大大的Unity Shader编程做的图书笔记,原课程地址:Unity Shader编程

  • Shader简介

Shader直译的话意思是"着色器",是在可编程的渲染管线中对渲染过程进行控制的,具体怎样作用我们以后再说,现在我们先关注在Unity中用ShaderLab怎样实现一些常用的Shader功能.

  • Diffuse

Diffuse的意思是漫反射,是Unity默认为每个物体使用的Shader,采用光照的模型是Lambert.

在Unity中新建一个Shader的话,其默认代码就是Diffuse,如下:

Shader"Custom/11.25"{
    Properties{
        _MainTex ("Base (RGB)", 2D) = "white" {}
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        LOD 200
        
        CGPROGRAM
        #pragma surface surf Lambert
                
        sampler2D _MainTex;    
        
        struct Input{
            float2 uv_MainTex;
        };
        
        
        void surf(Input IN,inout SurfaceOutput o){
            half4 c=tex2D(_MainTex,IN.uv_MainTex);
            o.Alpha=c.a;
            o.Albedo=c.rgb;
        }
        ENDCG
    }
    FallBack "Diffuse"
}
原文地址:https://www.cnblogs.com/WongSiuming/p/4997249.html