ShaderLabCookbook阅读笔记01

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ShaderLabCookbook阅读笔记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的,就着文档也能看,就没纠结版本了)

以上是关于ShaderLabCookbook阅读笔记01的主要内容,如果未能解决你的问题,请参考以下文章

《梦断代码》阅读笔记01

梦断代码阅读笔记01

梦断代码阅读笔记01

梦断代码阅读笔记01

梦断代码阅读笔记01

01梦断代码阅读笔记之一