跳至正文

Shading1(lllumination,Shading and Graphics Pipeline)

可见性问题:

场景中有很多的物体 那么就有先后顺序的问题

从远到近把图绘制出来 让近的覆盖远的

这种做法就叫做画家算法(油画家算法)

 
 

对于一个立方体来说呢

除了前后 剩下的四个面是很难定义深度的 有可能还是会遮挡

 
 

更特殊的情况:两两之间都存在互相遮挡的关系

根本无法定义深度关系

 
 

为了解决这样的问题 引入了深度缓存的概念

也就是Z-Buffer

既然对于上面这种情况我不好排

那我就对每个像素来说

在像素内永远记录几何内最浅的深度

注:定义Z永远都是正的

越小表示越近 越大表示越远

首先 认为像素一开始记录的深度都是无限远的

把一个个三角形进行光栅化 对于任意一个三角形都能光栅化成像素

找到对应的像素后 如果这个深度小于深度缓存记录好的深度

就更新深度缓存的深度

 
 

深度缓存的时间复杂度O(N)

这里实际上并没有排序

最大的优点就是几乎不受顺序影响(但是万一有高度相同的情况呢)

 
 

目前为止我们所学的

下一张明显比上一张更真实

 
 

 
 

 
 

着色

词典里说 引入明暗 引入色彩

在图形学上 对不同物体应用不同材质 叫做着色

 
 

最基础的着色模型 Blinn-Phong反射模型

高光 漫反射 间接光照/环境光照

漫反射定义

着色点 法线 观测方向 光照方向

目前来说 我们所说的着色不考虑阴影

着色是局部的 不考虑其他物体的存在

 
 

漫反射:光线会被均匀反射到不同方向去

单位面积接收到了多少能量?余弦定律

 
 

点光源能量一定集中在一个球壳上

传播过程中随着球壳变大 越外层能分到的能量越少

 
 

定义一个系数Kd 表示吸收能量 和发送的光加上接收的光组成一个向量

最后把这个向量表示成RGB 就可以定义一个颜色了

 
 

发表评论

您的电子邮箱地址不会被公开。