图形学-作业答案-裁剪

  • 格式:doc
  • 大小:44.00 KB
  • 文档页数:6

裁剪:共10题,每题10分,共100分
1.如果将裁剪操作放置在光照模型相关运算之前,会避免很大一部分运算量,
为什么图形系统仍将其放置在光照模型相关运算之后?
答:
(1)若在裁剪后再做光照模型相关运算,则会导致计算反射光强时场景不全,部分光能量传递路径丢失,使视觉质量下降;
(2)图形系统将裁剪置于光照模型相关运算之后,是为了保证裁剪操作仅用于提高投影、像素化的效率,而不至于影响渲染质量;
2.若使用三维裁剪,则应在何时进行?若使用二维裁剪,又应在何时进行?答:
(1)三维裁剪在局部-世界坐标变换、世界-视景坐标变换、光照模型演算之后,在透视投影变换之前进行;
(2)二维裁剪则在透视投影变换之后,几何图形像素化之前进行。

3.对于三维裁剪和二维裁剪,其分别的依据是什么?
答:
(1)三维裁剪的依据是视景体的边界,由六个平面构成,凡超过视景体边界的三维图形,均应裁剪;
(2)二维裁剪的依据是成像平面的矩形边界,凡超过成像平面边界的二维图形,均应裁剪。

4.对于三维裁剪,为什么图形系统在裁剪前将透视投影的视景体转换为正交投
影的视景体?转换时必须保持什么属性不变?
答:
(1)将透视投影的视景体转换为正交投影的视景体,是因为透视投影的视景体具有法线方向任意的边界平面,使裁剪操作复杂化,而正交投影的视景体则具有法线方向固定的边界平面,能简化裁剪操作,并且,由于正交投影比透视投影的运算过程更简单,因此它同时能简化投影操作;
(2)在对视景体作转换时,应在转换前后保持三维空间中的各原像点投影到成像平面后的坐标,即保持像点坐标不变。

只有保证了像点坐标不变,才能保证视景体转换后,所得的图像与视景体转换前是一致的,如果不能保证此属性,视景体转换操作则失去了意义。

5. 简述透视投影的视景体转换为正交投影视景体的原理。

答:
(1)使用如下矩阵实现视景体转换:
⎥⎥⎥⎥⎦⎤⎢⎢⎢
⎢⎣⎡-01
0000
00100001
βα (2)转换原理如下:将视景体内的原像点集合看作过光心(视景坐标系原点)的射线集合;在保持各射线与成像平面交点不变的前提下(像点坐标不变),将这些射线的交点从视景原点变换到视景坐标系-Z 轴方向无穷远处,过原点的射线集合则变换为与成像平面正交的直线集合,投影方式也从透视投影变换为正交投影。

6. 简述Cohen-Sutherland 算法与Cyrus-Beck 算法各自的优缺点。

答:
(1)Cohen-Sutherland 算法对可以简单接受或简单排斥的直线段(即全部位于成像平面边界内或全部位于成像平面边界外的直线段,对应整体保留或整体删除)具有较高的处理效率,因为仅需要判断区域编码,不需要求解具体交点。

但此算法对于局部位于边界外的直线段(即需要裁剪的直线段)处理效率很低,往往一条直线段需要多次裁剪操作,因为每次裁剪只求解一个交点,所求交点不一定对应最终的裁剪操作;
(2)Cyrus-Beck 算法对于局部位于边界外的直线段(即需要裁剪的直线段)具有较高的处理效率,因为直线段与边界的交点是一次性求解的,并直接定位到对最终裁剪有效的交点。

但此算法对于不需要裁剪的直线段(全部位于边界内或边界外)具有较低的处理效率,因为这种情况算法仍然坚持求解直线段与边
界的全部交点。

7. 对于如下图所示的直线段,简述Cohen-Sutherland 算法与Cyrus-Beck 算法分别对它的裁剪过程。

答:
(1)Cohen-Sutherland 算法的裁剪过程如下:
1)假设直线段的端点为A (左下端点)、B (右上端点);
2)判断两个A 、B 的区域编码,发现不在任何边界的同一侧,需要裁剪;
3)直线段AB 与上边界求交点,设交点为C ;
4)判断AC 的区域编码,发现A 、C 同在左边界左侧,AC 被简单排斥;
5)判断BC 的区域编码,发现B 、C 同在上边界上侧,BC 被简单排斥,裁剪过程结束;
(2)Cyrus-Beck 算法的裁剪过程如下:
1)求解直线段AB 与4个边界分别的交点,共4个交点;
2)检测发现,4个交点均不在边界有效范围内,全部删除;
3)交点集为空集,裁剪结束;
8. 如何将二维的Cohen-Sutherland 算法拓展到三维空间?
答:
(1)在二维成像平面上,裁剪的依据是成像平面的矩形边界,4
个边界将成像
平面分割为9个区域,类似的,在三维原像空间中,裁剪的依据是视景体的边界,由6个平面构成,由于视景体已转换为正交投影的视景体,6个平面构成立方体形状,并且,6个边界平面将三维空间分割为27个子空间,将区域编码的编码规则应用于子空间编码即可解决区域编码的拓展问题;
(2)在二维成像平面上,待裁剪直线段与边界直线求交点的原理如下:边界直线上任意一点与待裁剪直线段上的点构成一个向量,若该向量与边界直线的法线方向正交,则待裁剪直线段上的点同时也位于边界直线上,以此约束建立方程组,可求解交点;此方法可以方便地拓展到三维空间,在三维空间中裁剪时需要求解待裁剪直线段与边界平面的交点,由边界平面上任意一点与待裁剪直线段上的点构成一个向量,若该向量与边界平面的法线方向正交,则待裁剪直线段上的点同时也位于边界平面上,以此约束建立方程组,可求解交点。

9.对于如下图所示的多边形,简述Sutherland-Hodgman算法对它的裁剪过程。

答:(自己总结4条裁剪规则,答案中直接使用这4条规则)
(1)有关操作顺序的假定:4个边界的裁剪顺序假定为右、上、左、下;(2)右边界裁剪:多边形顶点遍历顺序为逆时针方向,从A点出发;
1)判断A点与右边界间的关系,发现A点在右边界右侧(外部),不作输出;2)判断B点与右边界间的关系,发现B点在右边界左侧(内部),于是求AB与右边界的交点,设交点为A1,按顺序输出A1、B两个顶点;
3)判断C点与右边界间的关系,发现C点在右边界左侧(内部),直接输出C 点;
4)A点与右边界间关系已判断,A在边界之外,于是求CA与右边界的交点,设交点为C1,输出C1点;至此,通过右边界裁剪得到新的多边形,顶点顺序为:A1、B、C、C1;(自己作图并体验)
(3)上边界裁剪:多边形顶点遍历顺序为逆时针方向,从A1点出发;
1)判断A1与上边界间的关系,发现A1在上边界之上(外部),不作输出;2)判断B与上边界间关系,发现B在上边界之下(内部),于是求直线段A1-B 与上边界的交点,设交点为A2,按顺序输出A2、B两个顶点;
3)判断C与上边界间关系,发现C在上边界之下(内部),输出C;
4)判断C1与上边界间关系,发现C1在上边界之上(外部),于是求直线段C-C1与上边界的交点,设交点为C2,输出C2;至此,通过上边界裁剪得到新的多边形,顶点顺序为:A2、B、C、C2;(自己作图并体验)
(4)左边界裁剪:多边形顶点遍历顺序为逆时针方向,从A2点出发;
1)判断A2与左边界的关系,发现A2在左边界右侧(内部),输出A2;
2)判断B与左边界的关系,发现B在左边界左侧(外部),于是求直线段A2-B 与左边界的交点,设交点为A3,输出A3;
3)判断C与左边界的关系,发现C在左边界右侧(内部),于是求直线段BC与左边界的交点,设交点为B1,按顺序输出B1、C;
4)判断C2与左边界的关系,发现C2在左边界右侧(内部),输出C2;至此,通过走边界裁剪得到新的多边形,顶点顺序为:A2、A3、B1、C、C2;(自己作图体验)
(5)下边界裁剪:多边形顶点遍历顺序为逆时针方向,从A2点出发;
1)判断A2与下边界的关系,发现A2在下边界上侧(内部),输出A2;
2)判断后续各顶点与下边界关系时,均发现在下边界上侧(内部),因而不需要裁剪,按原顺序输出顶点序列,包括:A3、B1、C、C2;
3)经过4个边界的裁剪,最终得到的多边形顶点序列为A2、A3、B1、C、C2;(自己作图体验)
10.Sutherland-Hodgman算法如何推广到三维空间?对于三维的
Sutherland-Hodgman算法,如何判断某个点是在某平面内、外或上?
答:
(1)三维空间中的Sutherland-Hodgman裁剪规则与二维平面中的规则一致,只需将“边界直线”改为“边界平面”即可,包含如下4条:
1)若前趋顶点(已作处理)在边界平面内部,后继顶点也在边界平面内部,则输出后继顶点至新多边形的顶点序列;
2)若前趋顶点(已作处理)在边界平面内部,后继顶点在边界平面外部,则求两个顶点确定的直线段与边界平面的交点,输出该交点至新多边形的顶点序列;3)若前趋顶点(已作处理)在边界平面外部,后继顶点也在边界平面外部,则不作任何输出;
4)若前趋顶点(已作处理)在边界平面外部,后继顶点也在边界平面内部,则求两个顶点确定的直线段与边界平面的交点,按顺序输出交点、后继顶点;(2)二维平面中待裁剪直线段与边界直线段求交点的方法可以直接推广为三维空间中带裁剪直线段与边界平面求交点的方法。