接上节的深度缓存:
如果有多个三角形叠在一起,怎么办?
直观的想法是,从远到近画,有近的,就让近的覆盖远处的【画家算法】
但是这样处理不了复杂情况——引入:Z-Buffer
对于一幅画面,要渲染出左边的图,同时还要维护一张深度图,记录每一个像素当前能看到的最浅深度
时间复杂度是O(n),和遍历顺序无关
*****************************************************************************************************
【着色】
着色是一个很重要的环节,它负责计算出颜色(光栅化只是填充像素格,换句话说是负责转移颜色到屏幕),着色计算要考虑的因素通常有:光照、纹理、着色频率(着色单位)等。
镜面高光,漫反射,环境光
定义几个:
view direction Surface normal(法线) light direction Surface parameters
(其中每一个向量都是单位向量)
Shading is Local !
有局部性,只考虑当前这个点,所以不能生成阴影