这里只做记录用,不进行详细的讲解。
Shader "Custom/SurfaceShader" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
//SurfaceOutputStandard 结构体定义在这个cginc文件内
#include "UnityPBSLighting.cginc"
//-----------------------------重要内容
#pragma surface surf PBSLighting vertex:vert finalcolor:final fullforwardshadows
#pragma target 3.0
sampler2D _MainTex;
//自定义
struct Input {
float4 vertColor;
float2 uv_MainTex;
};
half _Glossiness;
half _Metallic;
fixed4 _Color;
//自定义的定点处理方法
void vert(inout appdata_full v,out Input o)
{
//这句话必须要有,用来对o进行初始化
UNITY_INITIALIZE_OUTPUT(Input,o);
o.vertC