Shader语法易错知识点总结

1.结构体定义,后面要加分号;

2.函数定义,后面不加分号;

3.结构体和函数体内的表达式要加分号;

4.CG代码段内的变量声明语句要加分号;

5.属性Properties内的变量声明语句不加分号。

6.属性Properties内的变量名字写错的话,代码不会报错,但①无法通过UI界面控制效果②CG代码段的变量值为默认值,比如颜色值默认为黑色。

 

①转换法线到视空间:

float3 normal = normalize(mul((float3x3)UNITY_MATRIX_IT_MV,v.normal));

② 转换法线从视空间到剪裁空间

float2 viewNoraml = TransformViewToProjection(normal.xy);//等同于mul((float2x2)UNITY_MATRIX_P, noraml.xy);

 

内置转换矩阵

1.unity_ObjectToWorld(替换_Object2World,函数UnityObjectToWorldDir返回三阶向量)

2.UNITY_MATRIX_V,(作用同函数UnityWorldToViewPos)

3.UNITY_MATRIX_P,(作用同函数UnityViewToClipPos)

4.UNITY_MATRIX_MV,

5.UNITY_MATRIX_VP,(作用同函数UnityWorldToClipPos)

6.UNITY_MATRIX_MVP,(被函数UnityObejctToClipPos替换)

7.UNITY_MATRIX_T_MV,

8.UNITY_MATRIX_IT_MV,

9.unity_WorldToObject(替换_World2Object,函数UnityWorldToObjectDir返回三阶向量)

内置转换函数

1.UnityObjectToWorldDir,(unity_ObjectToWorld)输入三阶向量返回三阶向量

2.UnityWorldToViewPos,(UNITY_MATRIX_V)世界空间坐标转为视空间坐标

3.UnityViewToClipPos,(UNITY_MATRIX_P)视空间坐标转为裁切空间坐标

4.UnityWorldToClipPos,(UNITY_MATRIX_VP)世界空间坐标转为裁切空间坐标

5.UnityObejctToClipPos

6.UnityObjectToViewPos,(UNITY_MATRIX_V)返回三阶向量

7.UnityWorldToObjectDir,(unity_WorldToObject)输入三阶向量返回三阶向量

8.UnityObjectToWorldNormal,已归一化

9.UnityWorldSpaceLightDir,世界空间坐标计算世界空间光向量

10.WorldSpaceLightDir,模型空间坐标计算世界空间光向量

11.ObjSpaceLightDir,模型空间坐标计算模型空间光向量

12.UnityWorldSpaceViewDir,世界空间坐标计算视向量

13.WorldSpaceViewDir,模型空间坐标计算视向量

14.ObjSpaceViewDir,模型空间坐标计算视向量

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值