unity shader 学习记录(基础光照篇)

在unity中,光照分为四个方向:自发光、环境光、漫反射、高光反射。

自发光:直接定义一个自发光颜色,等到最终计算颜色的时候,加上就行。

环境光:环境光通过light面板可以设置;在代码中,可以通过unity内置变量UNITY_LIGHTMODEL_AMBIENT得到环境光的颜色和强度信息。

漫反射:漫反射可以逐顶点、逐像素渲染,在逐顶点渲染时,可见明显锯齿,所以一般选用逐像素渲染。在其中可以使用半兰伯特光照模型,也就是对法线点乘光源方向 *0.5 +0.5。

高光反射:高光反射可以逐顶点、逐像素渲染(phong模型),逐像素渲染(blinn-phong模型);逐顶点反射反射点有锯齿,phong模型渲染和blinn-phong模型比,因为需要计算反射角度,所以效率更低,blinn-phong模型添加了H向量,也就是视角方向+光源方向的归一化。

其中主要的是计算漫反射和高光反射的公式,需要记牢:

漫反射公式:

最后实现代码并优化如下 :

高光反射公式:phong模型

 

最后实现代码如下:(phong模型)

 

最后实现代码优化如下:(blinn-phong模型)

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值