学习Unity3D就得学Shader,然而新手学习Shader往往不知道从何处下手,没有找对门,谈何入门。
本系列主要介绍Shader的一些基础知识,希望可以带你找对门,然后入得了门。
(本文作者也尚在山脚下,如果走错了路,欢迎指正。)
本系列专栏地址:Shader山下
附赠Unity内建Shader下载地址
那么我们就从编写第一个Shader开始。
首先,我们在Unity里创建一个Shader。
双击打开这个shader,shader里的内容我们先不管,直接清空,贴入下面这段代码:
Shader "Custom/BasicDiffuse" {
Properties {
_MainTex ("Albedo (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) {
fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
这是一个最简单的shader。
Properties里面包含的是shader的属性。以_MainTex为例, _MainTex表示变量名,Albedo(RGB)是在