《Unity Shader 入门精要》学习笔记06---Unity中的基础光照(一)(漫反射光照模型的实现)

1.标准光照模型
标准光照模型的基本概念:只关心直接光照(direct light),也就是那些直接从光源发射出来照射到物体表面后,经过物体表面的一次反射直接进入摄像机的光线。
它的基本方法使把光线分成4个部分,每个部分使用一种方法计算贡献度。以下是四个部分:
自发光 c emissive 丨高光反射 c specular 丨漫反射 c diffuse 丨环境光 c ambient丨
下面列出4个部分的计算公式:
环境光:在标准光照模型中,环境光是一个全局变量,计算式如下:
c ambient = g ambient
自发光:标准光照模型中,使用自发光来计算,就是直接使用了该材质的自发光颜色:
c emissive = m emissive
漫反射:漫反射符合兰伯特定律:反射光线的强度与表面法线和光源方向之间夹角的余弦值成正比,计算公式如下:
c diffuse = (c light · m diffuse)max(0,n·l)
n是表面法线,l是指向光源的矢量单位,m diffuse是材质的漫反射颜色,c light是光源颜色。
使用max函数是为了防止法线和光源方向点乘的结果为负值。
高光反射:比较复杂,额,我是有些晕的
使用Phong模型,公式为:c specular = (c light · m specular )max(0,v·r)m gloss 因为上下标的原因,现在这样看是错的。
m gloss 控制高光区域的“亮点”有多宽,m gloss越大,亮点就越小。m specular是材质的高光反射颜色,用于控制高光反射的强度和颜色。
c light则是光源的颜色和强度,这里也需要防止v·r的结果为负数。
使用Blinn模型,公式为:c specular = (c light · m specular )max(0,n·h)m gloss
如果摄像机和光源距离模型足够远的话,Blinn模型会快于Phong模型,反之亦然。
(这里没有很明白,等看看实操写代码有什么理解,再回来看看,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值