目录
Lecture 05
1) 漫反射(Diffuse Reflection)和镜面反射(Specular Reflection)
2) 实际操作
a) Phong模型
b) Blinn-Phong模型
c) 代码实现
3) 作业
Lecture 06
1) 作业点评
2) 作业批改
a) Lambert+Phong
b) 创意作业
3) 答疑
4) BRDF(双向反射分布函数)
漫反射常被用在电影荧幕上,因为要保证电影院内不同位置的观众都能看到相同的画面;镜面反射则是不均匀的反射
下面是一些英文缩写
因为漫反射是均匀散射,所以反射亮度与我们的观察角度无关(即与vDir无关),当光照方向和法线方向重合时,反射的亮度最大
镜面反射的范围是一个圆锥体,光照方向越靠近法线方向,反射亮度越低
我们首先将光照方向反向,获得实际的光照方向,再将其与法线方向做一个反射,获得光照的反射方向,将反射方向与观察方向点积,并对负值进行处理就得到了镜面反射的高光,后面再使用Power节点进行处理相当于对高光进行了Photoshop中的正片叠底,Power取的次方值(Exponent)就是正片叠底的次数
上面的光照模型还有简单的实现方式,我们直接获取观察方向的反射方向与光照方向点积,根据光反射的性质,得到的效果与上面相同
两种镜面反射的模型在性能开销和效果上都是有一定的区别的
一组创意题中的葡萄后面会讲解
二组左下角给高光加了颜色,右下角有例子会讲
三组左下角做了一个类似透明的,但实际上是将主体颜色调成和背景色一样,同样有例子会讲
连连看部分
代码部分
首先是FakeEnvReflect
在Phong高光的基础上加了Remap节点,改变了高光的范围
然后对一个RampTexture进行采样,调整强度等参数,再加上一个普通的Phong高光就完成了
下面是葡萄
首先是Lambert模型,重映射到0->1(这里老师做了修改,后面贴图的颜色也要随着修改)后,和强度作为UV坐标去采样,并与基础的颜色进行插值减淡
下面是Phong高光模型
这里老师对贴图的绿通道进行了一个处理,再将贴图的G通道与两个明暗范围不同的高光进行插值
将插值结果作为高光Power的幂,得到高光的结果,最后高光结果与上面Lambert部分的结果相加即可
~这次截图比较糊,只能凑合看了orz
最后是这只遍布斑纹的猴子
首先是Phong高光(这里用到的指数项会在下面获得)与一个菲涅尔相加
下面使用了屏幕UV采样一个纹理并使用step节点对其进行一个二元遮罩,遮罩的结果用于插值两个Specular Power,然后将插值获得的指数用于Phong高光中
最后是Lambert漫反射部分,利用上面的插值结果分别对Lambert结果添加两个颜色
为Lambert的底色添加高光后,再与表面锈迹颜色根据二元遮罩进行插值就得到了最终效果
BRDF在104的笔记中有提到过
课程传送门05:庄懂的技术美术入门课(美术向)-直播录屏-第5课_哔哩哔哩_bilibili
课程传送门06:庄懂的技术美术入门课(美术向)-直播录屏-第6课_哔哩哔哩_bilibili