GAMES101现代计算机图形学入门-闫令琪-随堂笔记-Lecture 07 Shading 1 (Diffuse Reflection)

写在前面:原始文案来源于凌风同学博客,本文在其基础上增加图片并对文案稍作修改。此系列文章已经私信咨询能否授权发布,但一直尚未得到本人回复。出于工作要求,本人需要记录该系列课程体系,以供后期交流学习使用,不得已在此公开。特在此严谨声明,该系列文章不以盈利为目的,侵权麻烦私信即可删除。

Lecture 07 Shading 1 (Diffuse Reflection)

一.What we’ve done

What We’ve Covered So Far(截止到此做了什么)
在这里插入图片描述

  • 把模型通过某种变换,变换成相应姿势(左上)(视图变换)
  • 把摄像机始终放在(0,0,0)往-z看(右上)(模型变换)
  • 模型集成到正方体(左下)(投影变换)
  • 映射到屏幕上(右下)(光栅化)

Rotating Cubes (Now You Can Do)
在这里插入图片描述
Rotating Cubes (Expected)
在这里插入图片描述
我们虽然把模型画出来了,但是却缺少了光照关系,也可能会造成视觉误差。因此,下一步要做的工作就是要在光照上做文章。也就是本章重点话题,shading(着色)

二.Shading

The process of applying a material to an object.(对于一个物体应用不同材质的过程)

(一)A Simple Shading Model (Blinn-Phong Reflectance Model)(一个简单的着色模型(Blinn-Phong 反射模型))

在这里插入图片描述
我们看这个茶杯的光照,大体分为三部分。

  • 第一部分是高光(Specular highlights),最亮的部分,变化相对剧烈;
  • 第二部分是漫反射(Diffuse reflection),变化相对不是那么明显;
  • 第三部分是环境光(Ambient lighting),如图光从右侧打过来,按理说左侧应该是黑色的阴影,但是由于光在环境中反射,被反射到了这个杯子的背面而被照亮。

(二)Shading is Local(着色是局部的)

Compute light reflected toward camera at a specific shading point

在这里插入图片描述

  • Inputs:
    Viewer direction(观测方向), v
    Surface normal(着色点所在平面的法线), n
    Light direction(光源方向),l
    Surface parameters (物体表面参数)(color, shininess, …)

一个着色点在物体表面,这个表面可以是曲面,但是我们认为在一个局部非常小的范围内,永远是一个平面,那么我们就可以定义平面法线,即为垂直于这个平面的方向(n),定义着色点到摄像机的方向为观察方向(v),着色点到光源的方向为光照方向(l)。这些向量因为只是表示方向,所以都是单位向量

No shadows will be generated! (shading ≠ shadow)
在这里插入图片描述
着色和阴影是两个概念。着色时只考虑每个物体接收光源而被照亮了多少,不考虑模间的遮挡,也不考虑物体间因为遮挡而投射的阴影(阴影单独生成)。上图光源应该在左上角,然而右下角的地面上并没有光源因为被物体挡住所产生的阴影。

(三)Diffuse Reflection(漫反射)

Light is scattered uniformly in all directions
一束光线照射到某个点,光会被均匀地反射到各个方向。
在这里插入图片描述
But how much light (energy) is received?

1.Lambert’s cosine law(余弦定律)

在这里插入图片描述
从上面这个图可以看到,左侧图有六根光线垂直照射到物体表面,而当物体倾斜以后,只有三根光线照射到物体表面。由此推广出来一个结论:l方向和n方向的夹角决定了这个物体表面有多么亮。
Lambert’s cosine law:物体接收到的能量和光照方向与物体表面法线方向夹角的余弦成正比

2.Light Falloff(光能衰减)

在这里插入图片描述
一个点光源在某一时刻,向四面八方辐射的能量集中在这样一个球壳上,某一时刻距离为1的球壳上,某一点的光的强度为I,随着时间的推移,这个球壳会向外扩展,表面积会越来越大,那么分布到每一个点上的光的强度就会减小。

  • 距离为1时,球壳上某点的光的强度为I
  • 距离为r时,球壳上某点的光照强度:4πI=4πr²×I’ 解得I’=I/r²
3.Lambertian (Diffuse) Shading(Lambertian(漫反射)着色)

Shading independent of view direction
在这里插入图片描述在这里插入图片描述
这里注意max(0,n·l)。为什么要做这样一步操作?0又是什么意思?

当两个向量n与l点乘结果(计算所得为夹角余弦)为负,也就是光从模型下面打上来,对于模型光照显然没有什么意义,上表面依然接收不到任何光照,因此这时就取0,表示没有接收到光照。

对于一个点来说会吸收一部分能量(颜色),剩下不吸收的能量被反射出来,我们就看到了这个点的颜色。不同的点有不同的吸收率,那么不同的点就产生了不同颜色。那么我们定义一个系数kd。如果kd=1,说明完全不吸收,所有光都被反射了,这个点是白色,如果kd=0说明所有能量都被吸收了,没有能量反射出来,就是黑色。如果把这个数值表示成向量,表示一个有三通道的RGB颜色的值,每个通道都是从0到1,那么在一个点上就可以定义这个点上的颜色。

对于漫反射来讲,既然光线打到某点是均匀反射到各个方向,所以无论在哪个方向去看某个点,看到的颜色都是一样的,与观察方向(v)没有任何关系,从上面公式上看也是如此。

4.Produces diffuse appearance(产生漫反射外观)

在这里插入图片描述
用一个石膏球的模型可以很清楚地观察到漫反射现象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值