unity shader的一些基本知识

来源:互联网 发布:网络贸易 编辑:程序博客网 时间:2024/05/16 00:53

shader小白 防止遗忘的小细节

    一、基本数据类型

                浮点型:float
 整形:int(内部为去掉了float小数点之后的数字)
向量:float1,float2,float3.float4     (float4 a=float4(1,1,1,1))
矩阵:float 3x3  = {1,2,3,4,5,6,7,8,9};    or    float 3x3  = {{1,2,3},{4,5,6},{7,8,9}}
数组:float arr[4] = {1,2,3,4};
布尔:bool

类型预定义:    typedef floa4 fl4;
宏定义 : define pi 3.1415926;

二、支持的流程控制语句

for循环
do while语句
while语句
if else语句
不支持 switch case(只能识别case0)

三、swizzle操作

swizzle操作:将向量的各个分量用xyzw或rgba来读取,可重复读取,如float4 a = float4(1,2,3,4)    则a.xxzz = float4(1,1,4,4)。但xyzw和rgba不能重复操作

四、函数操作

  cg语言的执行顺序为自上而下执行,调用函数必须在之前一定定义
void Func(){}
若想在之后定义,则需在开头加上指引  如void func();   若有传参需写入
cg语言所有的函数内均为值拷贝,所以函数内out传参使用比较普遍
注意:数组也是值拷贝

        函数调用:将函数写在unity的shader库里面,后缀名改为.cginc,直接调用函数即可
0 0
原创粉丝点击