计算机图形学实验报告及代码 联系客服

发布时间 : 星期二 文章计算机图形学实验报告及代码更新完毕开始阅读6856d0c258f5f61fb73666c4

二、窗口区和视图区

用户域:在进行图形设计时,图形输出程序中的图形都 是在用户坐标系中定义的。此坐标系拥有的区 域在理论上是无限的,在使用时我们可以把它 当作是一个有限的矩形区,即用户域。

窗口区:用户可以在用户域中指定任意区域输出到屏幕 上,这个指定区域称为窗口区,简称窗口(Window)

如图所示的矩形 ABCD 就是我们定义的一个窗口。我们可用该矩形的左下角和右上角两点坐标来定义其大小和位置。因此,定义窗口的目的就是选取用户所定义的图形中需要观察的那一部分图形。

窗口区,用左下角和右上角来定义 视图区:简称视图(Viewport),是在屏幕上定义的一个小于或等于屏幕区域一个矩形块。同样也是用该矩形左下角和右上角两点坐标来定义大小和位置。视图区可用来显示某一窗口内图形。所以人们利用窗口来选择需要观察那一部分图形,而利用视图区来指定这一部分图形在屏幕上显示位置。下图表示窗口与视图关系。 4.7 反走样技术

一、反走样技术的定义和概述

前面介绍的各种光栅化算法,如非水平亦非垂直的直线或多边形边界进行扫描转换时,或多或少会产生锯齿或阶梯状,如图4.86所示。由于直线和多边形边界的数学描述是连续的,而在光栅显示器中,像素点是占有一定面积是离散的。我们把这种用离散量表示连续量引起的失真称为走样(Aliasing)。走样是数字化发展的必然产物。所谓的反走样(Antialiasing)技术,就是减缓或者消除走样效果的技术。

(a) 原有分辨率 (b) 分辨率放大1倍

光栅图形的走样除了会产生阶梯或者锯齿形状之外,还有可能会造成细节或纹理绘制失真,微小图形的丢失,体现在静态画面中将无法显示,在动态画面中则若隐若现,导致闪烁和跳跃。图4.87说明了这样一个例子,如果认为像素的属性由中心点来决定,那么中在图4.87第一行中,没有覆盖到像素中心点的细微形体就将丢失(用虚线表示);而在4.87第二行中,第一帧和第三帧的小月亮都无法显示,导致观察者看到了闪烁不稳定的动画。 图4.87 细微形体和动画的走样

目前有两类反走样的方法,第一类方法是通过提高采样频率(提高光栅分辨率)来显示图形的细节。例如图4.86中(a)和(b)两幅图形的对比,可以明显发现分辨率提高之后,较好的改善 了图形显示的走样现象,但是锯齿和阶梯状仍然存在。而且提高分辨率的方法将需要硬件和扫描运算时间的支持,实现起来是很困难的。基于此,可以将显示器看成比实际更加细腻的网格,在这种假想的高分辨率上对光栅进行计算,采用某种平均算法得到较低分辨率的像素的属性,并把结果转换到较低分辨率的显示器上进行显示。我们将这种方法称之为超采样(Supersampling)或者后置滤波(有些教材也称为过取样)。

第二类反走样技术是根据图形在每个像素点上的覆盖程度来确定像素点的最终亮度,此时将像素点当成了一个有面积的平面区域而并非一个点,这种方法称之为区域采样(Area Sampling)或者前置滤波。 二、超采样

可以将每个显示像素再细分成n×n个子像素,然后在子像素级进行光栅化,如果某一个像素区域内被激活的子像素有m个,那么该像素点的显示亮度可以近似认为是m/n2。这种方法直观简单,但是有时候需要更加精确的信息。对于一个像素所在的区域,更加精确的显示应该是要考虑到对应于该区域中心的“点”,也即是说,位于区域中心子像素的属性值(颜色、亮度等)应当比位于区域边侧的子像素在整个像素的显示属性中起着更重要的作用,这就涉及到加权平均的方法。图4.88展示了三种不同的加权方法,假设一个像素被划分为3×3的子像素区域,其中带圈的数字表示中心子像素所占的权重。 图4.88 用于加权平均的子像素划分 (1)简单区域采样

前面介绍的各种方法从本质上来说都是把像素的属性值归结于中心的某一点的属 三、区域采样

性,但实际上像素并不是简单的一个点,而是一个有限的区域,屏幕上的直线段也不是数学意义上无宽度的理想直线,而是占有一个或者多个像素单位宽度的线条。如图4.89所示,直线段就好比是狭长的矩形,它和像素点之间有交集,求出相交区域的面积后,根据面积的大小来确定该像素的亮度值,这要求显示器各像素可以用多级灰度显示。

如果求得的相交面积大,那么像素就更深一些,反之像素就应该更浅一些,这种做法将产生模糊的边界,因此可以减缓锯齿效果。图4.89中A像素点区域与直线相交面积较小(假定直线的斜率与直线的精确起点位置是已知的,可以利用求三角形面积的方法求得阴影面积),像素的灰度不如B像素点区域来得深。

对于B像素点区域面积的求法可以利用前面介绍的方法,将B区域继续细分成n×n的网格,算出阴影面积所占有的网格数目m,那么m/n就是其近似的覆盖度。 简单区域采样存在两个缺陷:一是无论上述像素点区域和理想直线的距离如何,各区域相同的面积覆盖率将产生相同的灰度值,这仍然有可能产生锯齿效应;二是沿理想直线方向的相邻两个像素,有时候由于相交面积的差异会产生较大的灰度差,这实际上是不合理的。克服上述两个缺陷的方法是采用加权区域采样。 图4.89 简单区域采样的相交面积 (2)加权区域采样

图4.89所示的简单区域采样是一种使用盒式滤波器进行前置滤波后再采样的方法。盒式滤波器的工作原理如图4.90-(a)所示。图中的正方体代表盒式滤波器,底面为一个像素区域,它是一个二维加权函数w,函数w的定义域为整个平面,在与直线段有交集的每一像素区域上取值为1,其它像素区域则取值为0。直线段经过的某个像素区域,该像素最终显示的灰度值可以通过该区域与直线段相交部分对函数w求积分得到。实质上就是求该相交区域各边垂直向上切割盒式立方体所得子体的体积,由于w取值为1,故积分值就等于相交区域的面积。 九、作业

课后习题 十、本章小结

在本章中,介绍了直线和曲线的生成算法并对其进行了详细的讲解。

第5章 三维图形生成和变换

一、教学目标 通过对本章的学习,要求熟悉自由曲面的生成和三维图形变换。 二、教学要求

1、掌握自由曲面的生成;

2、掌握三维图形的变换和裁剪。 三、教学内容提要

5.1 三维图形的概念 5.2 自由曲面的生成 5.3 三维图形变换

5.4 三维图形剪裁和消隐技术 四、教学重点、难点及解决方法

重点是掌握自由曲面的生成。 五、课时安排 4学时 六、教学设备 课堂教学

七、检测教学目标实现程度的具体措施和要求

通过课堂提问的方式来检测学生对基本概念的掌握程度。 八、教学内容

5.1 三维图形的概念

在计算机图形学中最重要的部分还是三维图形生成与变换,不仅人们对它感兴趣,而且在实际应用中更加广泛。三维图形生成比起二维图形生成要复杂得多,其根本原因在于我们的图形输入设备和输出设备基本上都是二维的,用这些二维的图形设备去表现空间三维实体自然会增加许多复杂性优需要运用许多新的方法去处理三维图形。

正是利用这些曲线网格来近似地表示自由曲面,因此,在产生一张曲面时,我们可以利用一系列的纵横交错且相互平行的样条曲线来构造曲面,如下图所示。 我们如何确定这张曲面上任意一点位置呢?很明显,如果这点恰好落在某一条网格线上,如图A点,那么就可以根据这条网格线函数表示来计算这一点位置(坐标);若这一点不在任何网格线上,如图中的B点,那么就无法计算出该点精确位置,只能用离该点最近一条网格线上的点近似地表示。

这使得本来精度不很高近似曲面在这一点精度更加降低,所以用这种方法来产生曲面只适合于一部分精度要求不太高场合,我们可以把平面里自由曲线生成方法加以推广,借助于曲面的解析表达式来处理有关曲面问题。

曲面的种类繁多,为便于讨论,将曲面分为两类,(1)规则曲面:如柱、锥、椭球、环、双曲面、抛物面等,它可以用参数方程解析地描述。 5.1 三维图形的概念 二、空间曲面的参数表示

在计算机图形学研究中,三维图形概念有几种:

1、是采用线框图构成的三维图形,这是最基本、最简单的,它实际上是在二维屏幕上展示的具有三维视觉效果的图形;

2、三维实体图形,它是采用各种颜色图案、纹理等填充过的图形,在视觉上也具有三维效果;

3、三维立体图形,它借助于光照、浓淡和明暗技术,产生了真正的三维立体效果。 这些三维图形都是我们在计算机图形学中要研究和予以实现的内容。 5.2 自由曲面的生成 孔斯曲面

Coons曲面的拼合:设有两块相邻的曲面片P 与Q, 两块Coons 曲面片的拼接分为沿u 方向的拼接和沿v 方向的拼接。以沿u 方向的拼接为例 : 1 .若要满足G 0 连续,则要求P 与Q 有共同的边界。

2 .若要满足G 1 连续,则要求P 与Q 在共同的边界上有相同的切平面,即 k 为常数。

孔斯曲面分为第一类和第二类两种。 贝塞尔曲面

1.Bezier 曲面的定义 在空间给定(n+1)×(m+1)个点Pij(i=0,1?n; j=0,1?m),则可逼近生成一个n×m次的Bezier曲面片,其定义为: 称Pij为P(u,v)的控制顶点;把由两组多边形Pi0Pi1?Pim (i=0,1,?n)和P0jP1j?Pnj (j=0,1,?m)组成的网格称为P(u,v)的控制多面体(控制网格),记为{Pij}。同样,P(u,v)是对{Pij}的逼近, {Pij}是P(u,v)的大致形状的勾画。 由16个控制顶点所构成的控制网格可绘制一个双三次(3×3次)Bezier曲面片,其矩阵表示为:

2.Bezier曲面的性质

Bezier曲面的许多性质与Bezier曲线的许多性质完全一致。 1)端点性质 2)边界线的位置 3)凸包性

3. 双三次Bezier曲面(m=n=3) P2,3P2,3 P3,1P1,3P3,3 P2,2 P2,1P1,2P2,0 P0,2P1,1P1,0P3,0 P0,3P0,1 P0,0

图8-9 双三次Bezier曲面及其控制网格

B样条曲面

B样条曲面的定义:在空间给定(n+1)×(m+1) 个点Pij(i=0,1?n; j=0,1?m) ,则可逼近生成一个n×m 次的B 样条曲面片,其定义为: 相比于Bezier 曲面,B 样条曲面要更加逼近于控制网格。由16个控制顶点所构成的控制网格可绘制一个双三次(3×3次)B样条曲面片。

n1n2

p(u,v)?Pk1,k2Bk1,m1(u)Bk2,m2(v)

k1?0k2?0

控制顶点、控制网格(特征网格)、B样条基函数。B样条曲面具有与B样条曲线相同的局部支柱性、凸包性、连续性、几何变换不变性等性质。 5.3 三维图形变换 三维图形的几何变换

?abcp?

?defq?

?T3D?? ?ghir?

??

lmns??

1.三维图形平移变换

三维基本几何变换都是相对于坐标原点和坐标轴进行的几何变换 假设三维形体变换前一点为p(x,y,z),变换后为p'(x',y',z')。

??