Unity - Manual: ShaderLab: Legacy Lighting
1.Shader 语言:
OpenGL:SGL 跨平台性能非常好 GLSL语言 OpenGL Shader LanguageDX:微软 非跨平台 性能非常好 HLSL语言 High Level Shader LanguageCG:微软和英伟达 联合开发CG 跨平台 基于C语言 性能非常好
2.Unity Shader语言
CG和HLSL 包括在 CGPROGRAM .... ENDCG 语法块内GLSL 包含在 GLSLPROGRAM .... ENDGLSL 语法块内自己的语言 Shader Lab
3.Unity Shader 分类:
Fixed Shader:Shader 1.0 主要是 开关式的Shader顶点片段 着色器:Shader 2.0 不光能打开,而且功能里面的公式可以自己定义Surface Shader:前两个的封装
4.Shader 结构:
//Shader 的名字会显示在 Unity 的 Inspector 中 选择 Shader的菜单里面Shader "Shader名字"{//属性[Properties]//SubShader就是对应的一个显卡 可能存在多个SubShader Unity会在所有 SubShader列表中选择当前环境中的第一个 SubShaderSubShader{//SubShader 的标签[Tags]//给多个Pass 公用的设置[Common State]//可能存在多个Pass ,每个Pass都会引发一次渲染Pass {//Pass的标签[Pass Tags]//渲染设置,如颜色混合[Render SetUp]//纹理设置,只有在 Fixed Function Shader 中才可用[Texture SetUp]CGPROGRAM....................ENDCG}//可以有多个Pass[其他的 Pass]}//可以多个SubShader[其他的SubShader]//当所有SubShader 失败的时候,使用Fallback指定的ShaderFallBack "Diffuse"//当有自定义 Shader 的设置 UI 时候使用[CustomEditor]}