计算机图形学入门V
Shading 1(Illumination,Shading and Graphics Pipeline)
一、图像深度关系与Z-buffer
- 画家算法(Painter’s Algorithm):后画的部分会遮挡先画的部分,但有的情况下无法正确定义深度关系(例如三个三角形互相遮挡),且时间复杂度为O(logn)
- 深度缓存(Z-Buffer):在生成图像的同时生成记录深度信息的深度图(规定摄像机位于原点并朝向z轴负方向,因此z越小代表距离视点越近,z越大代表距离越远)
- frame buffer stores color values
- z-buffer stores depth
- 深度缓存算法(Z-Buffer Algorithm),时间复杂度为O(n)
for(each triangle T)
for(each sample(x,y,z) in T)
if(z < zbuffer[x,y]) //closest samp;e so far
framebuffer[x,y] = rgb; //update color
zbuffer[x,y] = z; //update depth
else … //do nothing,this sample is occluded
二、着色(Shading)
- 漫反射(Diffuse Reflection):光线入射后向各个方向均匀反射
- 光衰减(Light Falloff):以点光源为例,以光源为球心的球壳所带有的能量都是相等的,但随着半径增大,球壳表面积增大导致球壳上一点处的能量减小,导致了能量衰减
- Lambertian Shading
- diffusely reflected light 漫反射光
- diffuse coefficient 扩散系数/吸收系数(0~1,0代表全部吸收观测到为黑色,1代表全部反射观测到为原来的颜色)
- energy arrived at the shading point 光衰减
- n·l 法线向量与入射向量内积 代表其夹角cosθ
(下接 计算机图形学入门VI)
计算机图形学入门V
https://baifabaiquan.cn/2021/02/20/计算机图形学入门V/