(一) ShaderLab:
什么是ShaderLab:
Unity3D支持的Shader种类包括:
1.Surface Shader:表面着色器
2.Vertex & Fragment Shader :顶点片元着色器
3.Fixed Function Shader: 固定功能着色器
ShaderLab的基本结构:
Shader "Custom/test"
{
Properties
{
}
SubShader
{
pass{
}
}
fallback
}
UnityShader的一些基本属性(properties)格式:
_Color("颜色",color)=(1,1,1,1)
SubShader的作用:
fallback的作用:
Unity内置的一些常见shader(用于fallback)以及说明:
Unlit:不发光,只是一个纹理。
VertexLit:顶点光照。
Diffuse:漫反射。
NormalMapped:法线贴图,比漫反射更昂贵(expensive):增加了一个或者多个纹理(法线贴图)和几个着色器结构。
Specular:高光,增加了特殊的高光计算。
Normal Mapped Specular:高光法线贴图,比高光更昂贵一点。
Parallax Normal Mapped:视差法线贴图计算
parallax Normal Mapped Specular:视察高光法线贴图
属性的定义和引用:
Shader "Custom/test"
{
Properties
{
_Color("颜色",color)=(1,1,1,1)
_Ambient("环境光",color)=(0.3,0.3,0.3,0.3)
_Specular("高光",color)=(1,1,1,1)
}
SubShader
{
pass{
//color(1,1,1,1)
//color[_Color]
material{
diffuse[_Color]//关键字漫反射
ambient[_Ambient]//关键字环境光
specular[_Specular]//关键字高光
}
lighting on//关键字光照开关
SeparateSpecular on//高光分离
}
}
// fallback unlit;
}