主要内容:
- 深度缓冲
- 光照
- 着色
- 渲染管线
Z-buffering——可见性/遮挡问题
如何将重叠的三角形的远近位置绘制——近处遮挡远处
画家(油画家)算法
先绘制远处物体,然后绘制近处物体遮挡远处—>图形学中过程就是先将远处进行光栅化绘制后,再绘制近处
- O(n log n) 时间对深度进行排序
存在问题
如下图右所示,两两之间存在互相遮挡关系,则绘制会存在问题——也就是无法定义互相的深度关系
Z-Buffer 引用
无法对对象或者三角形进行深度排序时,考虑使用针对像素点的深度,也就是对每个像素点记录最浅的深度
图形学中做法:
- 会渲染最后的结果图像(frame buffer stores color values)
- 同时也会生成另外一张图—只存它所看到的物体最浅的信息(也就是深度图/深度缓存)(就是depth buffer (z-buffer) stores depth )
概念定义:
针对深度测试有如下约定:
- 首先在深度中的话z是永远为正的,也就是像素点的深度距离人眼位置(打个比喻)
- z越小越近,反之则也成立
Z-Buffer例子
右图中z越近则颜色更趋近于黑色,越远则越白