Unity 基础光照

Unity 基础光照

一、基础概念

  • 高光反射:表示物体表面是如何反射光线的;

  • 漫反射:表示光线会被折射、吸收和散射出表面;

  • 着色:根据材质属性,光源信息,使用一个等式去计算沿某个观察方向的出射度过程。这个等式也称为光照模型

  • BRDF(Bidirectional Reflectance Distribution Function):双向反射分布函数,是一类定义光线在不透明表面反射的四元函数。给定一个光线入射方向,得到出射光线分布。

  • 标准光照模型:只关心直接光照。将进入到摄像机内的光线分成4个部分,每个部分使用一种方法来计算贡献度。分别是:

    • 自发光(emissive):物体自己作为光源,发出的光线直接进入摄像机;它直接使用材质的自发光颜色;

    • 漫反射(diffuse):
      c d i f f u s e = ( c l i g h t ∗ m d i f u u s e ) m a x ( 0 , n ^ ⋅ l ^ ) c_{diffuse} = (c_{light} * m_{difuuse})max(0,\hat{n}\cdot \hat{l} ) cdiffuse=(clightmdifuuse)max(0,n^l^)

  • 高光反射(specular):符合兰伯特定律,反射光线的强度与表面法线和光源方向之间家教的余弦值成正比 。

r ^ = 2 ( n ^ ⋅ l ^ ) n ^ − l ^ \hat{r} = 2(\hat{n}\cdot\hat{l})\hat{n}-\hat{l} r^=2(n^l^)n^l^

c s p e c u l a r = ( c l i g h t ⋅ m s p e c u l a r ) m a x ( 0 , v ^ ⋅ r ^ ) m g l o s s c_{specular} = (c_{light}\cdot m_{specular})max(0,\hat{v}\cdot \hat{r} )^{m_{gloss}} cspecular=(clightmspecular)max(0,v^r^)mgloss

h ^ = v ^ + l ^ ∣ v ^ + l ^ ∣ , 将 h ^ 替 换 到 上 式 的 r ^ \hat{h} = \frac{\hat{v} +\hat{l}}{\left | \hat{v} +\hat{l} \right |} ,将\hat{h}替换到上式的 \hat{r} h^=v^+l^v^+l^h^r^

  • 环境光(ambient):近似模拟间接光照,通常是一个全局变量,场景中所有物体都是用同一个环境光。
  • 颜色的乘法,无论是标量与颜色的乘法还是两个颜色的乘法,都称为颜色调制。渲染三角形中一个像素的颜色通常由多种不同来源的颜色混合而成,三角形面中的像素的颜色通常为从纹理映射图查得的颜色与从三角形顶点插值而来的颜色相乘的乘积。

二、逐顶点漫反射

  • 计算都在顶点着色器中实现,对于细分程度较低的模型,逐顶点光照就会出现一些视觉问题。

在这里插入图片描述

三、逐像素漫反射

  • 模型的背光区域没有明暗变化,看起来想是平面一样。

在这里插入图片描述

在这里插入图片描述

四、半兰伯特模型

  • 广义的半兰伯特光照模型,绝大多数情况下alpha 和 beta取值为0.5。这样就将 n*l 的点积从[-1, 1]映射到 [0 , 1]范围。所以在背光处,原兰伯特模型中点击结果是0。在半兰伯特模型中,背光面有不同的值,所以也有明暗变化。

c d i f f u s e = ( c l i g h t ∗ m d i f u u s e ) ( α ( n ^ ⋅ l ^ ) + β ) c_{diffuse} = (c_{light} * m_{difuuse})(\alpha (\hat{n}\cdot \hat{l}) + \beta ) cdiffuse=(clightmdifuuse)(α(n^l^)+β)

在这里插入图片描述

在这里插入图片描述

五、逐顶点高光

在这里插入图片描述

六、逐像素高光

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值