可见性问题:
场景中有很多的物体 那么就有先后顺序的问题
从远到近把图绘制出来 让近的覆盖远的
这种做法就叫做画家算法(油画家算法)
对于一个立方体来说呢
除了前后 剩下的四个面是很难定义深度的 有可能还是会遮挡
更特殊的情况:两两之间都存在互相遮挡的关系
根本无法定义深度关系
为了解决这样的问题 引入了深度缓存的概念
也就是Z-Buffer
既然对于上面这种情况我不好排
那我就对每个像素来说
在像素内永远记录几何内最浅的深度
注:定义Z永远都是正的
越小表示越近 越大表示越远
首先 认为像素一开始记录的深度都是无限远的
把一个个三角形进行光栅化 对于任意一个三角形都能光栅化成像素
找到对应的像素后 如果这个深度小于深度缓存记录好的深度
就更新深度缓存的深度
深度缓存的时间复杂度O(N)
这里实际上并没有排序
最大的优点就是几乎不受顺序影响(但是万一有高度相同的情况呢)
目前为止我们所学的
下一张明显比上一张更真实
着色
词典里说 引入明暗 引入色彩
在图形学上 对不同物体应用不同材质 叫做着色
最基础的着色模型 Blinn-Phong反射模型
高光 漫反射 间接光照/环境光照
漫反射定义
着色点 法线 观测方向 光照方向
目前来说 我们所说的着色不考虑阴影
着色是局部的 不考虑其他物体的存在
漫反射:光线会被均匀反射到不同方向去
单位面积接收到了多少能量?余弦定律
点光源能量一定集中在一个球壳上
传播过程中随着球壳变大 越外层能分到的能量越少
定义一个系数Kd 表示吸收能量 和发送的光加上接收的光组成一个向量
最后把这个向量表示成RGB 就可以定义一个颜色了