计算机图形学零碎知识点记录
多边形着色模式
1.平面着色模式
以多边形第一顶点颜色填充,内部颜色单一。
2.光滑着色模式
以多个顶点进行线性插值。
多边形裁剪算法
1. S u t h e r l a n d − H o d g m a n Sutherland-Hodgman Sutherland−Hodgman裁剪算法
该算法能够裁剪任意凸多边形,在处理凹多边形时可能会产生不正确结果如图所示:
为了解决该问题,在裁剪凹多边形时可以将凹多边形分解成多个凸多边形。
2. W e i l e r − A t h e r t o n Weiler-Atherton Weiler−Atherton裁剪算法
该方法适用于凸多边形和凹多边形,代价是计算量大。
插值与逼近的理解
插值(interpolation)
当用一组形值点来指定曲线或曲面的形状时,曲线或曲面能够精确通过给定的型值点且形成光滑曲线或曲面,称其为曲线或曲面插值。
##逼近(approximation)
当用一组控制点来指定曲线或曲面的形状时,曲线或曲面被每个控制点所吸引,但实际上并不经过这些控制点,称之为曲线或曲面的逼近,Bezier曲线和B样条曲线均属于逼近曲线,同理Bezier曲面和B样条曲面也均属于逼近曲面.
Z-Buffer
Z-Buffer算法需要建立两个缓冲器,一个是深度缓冲器,用以存储图像空间中每一点像素点相应的伪深度值,初始化为最大伪深度值(z坐标);另一个是帧缓冲器,用以存储图像空间中每个像素的颜色值,初始化为屏幕的背景色。Z-Buffer 算法计算准备写入帧缓冲器当前像素的伪深度值,并与已经存储在深度缓冲器中的原可见像素的伪深度值进行比较。如果当前像素的伪深度值小于原可见像素的伪深度值,表明当前像素更靠近观察者且遮住了原像素.则将当前像素的颜色写入帧缓冲器,同时用当前像素的伪深度值更新深度缓冲器。否则,不作更改。一般在使用深度缓冲器算法之前,先使用背面剔除算法对物体的不可见表面进行剔除,然后再对所有可见表面使用深度缓冲器算法消隐。
算法描述
(1)帧缓冲器初始值置为背景色。
(2)确定深度缓冲器的宽度、高度和初始伪深度。一般将初始伪深度置为最大伪深度值。
(3) 对于多边形表面中的每像素(x,y),计算其伪深度值z(x,y)。
(4)将z与存储在深度缓冲器中的伪深度值zBufer(x,y)进行比较。
(5)如果z(x,y)<=zBeffer(x,y)则此像素的颜色写人帧缓冲器,且用z(x,y)重置zBuffer(x,y.)。