Unity3D Shader 学习笔记(二):ShaderLab的结构和基本属性
(一) 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; }