首页 > 代码库 > 【ShaderLab】Cookbook阅读笔记01

【ShaderLab】Cookbook阅读笔记01

《Unity Shaders and Effects Cookbook》阅读笔记,找了很久ShaderLab的教程......结合官网教程学习ShaderLab。

 

用一个最简单的Shader展示一下shader代码的结构:

技术分享

 

第一行代码Shader后跟的是shader的名字,在给Material添加Shader时根据shader名找到对应shader:

技术分享

 

以上这个再简单不过的Shader由Properties部分和SubShader部分构成。

 

其中Properties定义了一系列Shader中用到的参数,这些参数可以在添加了相应Shader的Material的Inspector面板中看到,例如上述代码中

_Color("Main Color", Color) = (0,1,1,1)

为Material的Inspector添加了一个颜色的GUI元素: 

技术分享

 

常见Properties类型:

  1. Numbers and Sliders

    name ("display name", Range (min, max)) = number
    name ("display name", Float) = number
    name ("display name", Int) = number
  2. Colors and Vectors

    name ("display name", Color) = (number,number,number,number)
    name ("display name", Vector) = (number,number,number,number)
  3. Textures

    name ("display name", 2D) = "defaulttexture" {}
    name ("display name", Cube) = "defaulttexture" {}
    name ("display name", 3D) = "defaulttexture" {}

     

一个属性定义的结构:

技术分享

 

要在SubShader中调用之前Properties中定义的那些变量,需要在SubShader中创建与之具有相同名称的变量。

例如对于前述的_Color,就需要创建

CGPROGRAM
float4  _Color;

注意变量创建在CGPROGRAM之后。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Unity Shaders and Effects Cookbook PDF:http://pan.baidu.com/s/1o8gCtvk (我看的这本是Unity4的,就着文档也能看,就没纠结版本了)

【ShaderLab】Cookbook阅读笔记01