CG向量和矩阵元素的获取

swizzle

  1. swizzle可以获取向量分量值;
  2. 表现形式是点符号和rgba或xyzw
    rgba一般用作颜色表示
    xyzw一般用于坐标表示
  3. 分量值可以进行组合
    例如:fixed4 test=(1,2,3,4)
    获取分量值:test.r 获取第一个分量值、test.g、test.xy、test.yx

向量维度转换

  1. 高纬度到低纬度
    fixed4 t1=(1,2,3,4);
    fixed2 t2=t1;//舍弃第三和第四个分量
    t2=t1.xw;//使用第一个和第四个分量
  2. 低纬度到高纬度
    fixed3 t3=(1,1,1)
    t1=(t2,t2) //组合为四维
    t1=(t3,5)

向量用于矩阵的声明

fixed4 a=(1,2,3,4)
fixed4x4 b={a,a,a,a};

获取矩阵元素

b[0][0] 获取第一行第一列的元素

获取矩阵的一行

fixed4 c=b[0] //获取第一行的元素 使用向量存储

矩阵维度转换

  1. 高维到低纬 舍弃多余的维度
    fixed3x3 d=a;//a矩阵舍弃 第四行和第四列
  2. 低纬度到高纬度
    fixed3 a=(1,1,1);
    fixed3x3 b={a,a,a}
    fixed4x4 c={ fixed4(b[0],1),
    fixed4(b[1],1),
    fixed4(b[2],1),
    fixed4(a,1)}

你可能感兴趣的:(#,UnityShader,矩阵)