Unity Shader笔记之标准光照模型(Phong光照模型)高光代码理解

 反射方向 

fixed3 reflectDir = normalize(reflect(-worldLightDir,worldNormal));

reflect 

reflect是cg的函数,reflect(i,n) i为入射方向,n为法线方向,返回反射方向

  worldLightDir

   worldLightDir = normalize(UnityWorldSpaceLightDir(i.worldpos));

    UnityWorldSpaceLightDir()

     UnityCG中的内置函数,仅用于前向渲染,输入一个世界坐标中的顶点位置,返回从该点到光源的光照方向,没有被归一化

   所以worldLightDir表示一个归一化的从顶点指向光源的矢量,所以在作为入射方向时需要加负号

 视角方向


   fixed3 viewDir = normalize(_WorldSpaceCameraPos.xyz - i.worldpos);

  _WorldSpaceCameraPos

   Unity内置的摄像机变量,float3类型,表示该摄像机在世界坐标下的位置
   

 高光反射

 公式


   fixed3 specular = _LightColor0.rgb * _Specular.rgb * pow(max(0,dot(reflectDir,viewDir)),_Gloss);

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值