图形学实验七.docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图形学实验七

贵州大学实验报告 学院: 计信学院 专业:计科 班级:计科101 姓名 罗琳 学号 1008060016 实验组 无 实验时间 2013-4-29 指导教师 吴云 成绩 实验项目名称 消隐 实验目的 掌握常用的裁减及消隐算法:直线、多边形的裁减;消除隐藏面算法:Roberts消隐算法、Z缓冲器算法、扫描线Z缓冲器算法、光线跟踪算法。 实验要求 分别实现一个直线裁减算法、多边形的裁减算法、面消隐算法 实验原理 Roberts消隐算法 算法原理: Roberts消隐算法是在图像空间实现的消隐算法,数学处理严谨,计算量甚大。Roberts算法要求所有被显示的物体都是凸的,因此对凹体要先分割成许多个凸体的组合。此算法的基本步骤是: 逐个的独立的考虑每个物体自身,找出为其自身所遮挡的边和面; 将每一物体上留下的边再与其它物体逐个的进行比较,以确定其是完全可见还是部分或全部被遮挡; 确定由于物体之间的相互贯穿等原因,是否要形成新的显示边等。从而使被显示各物体更接近现实。 下面先介绍一些用到的一些基本概念以及有关的数学方法。 体矩阵: 假设在三维空间中,一平面的方程表示为:ax+by+cz+d=0,令P=[a,b,c,d],表示平面的系数向量;又令S=[x,y,z,1],表示三维空间重点的其次坐标。上式改写为:S·PT=0。所以凸体可由平面方程系数组成的体矩阵表示: 矩阵的每一列表示物体的对应平面方程的系数,其列数与物体的面数一致。 由于当PT是一平面系数时,-PT也是该平面的系数,因此为了计算的需要,Roberts算法规定:对平面多面体内部的任一点S0,要使得 [S0]·[V]=[Q]=[q1,q2,q3,…,qn]式中的每一个分量qi都不小于零(i=1,2,…,n)。 适当选取物体内部一点S0,用以测试单调态平面系数的符号,使其满足Roberts算法的规定,这是本算法最基本的一步。 平面系数的计算方法: 方法一:根据平面上的已知点,求解线性方程组。已知平面上不共线三点(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),得到规范方程组: 写成矩阵形式为: 记为:[X][C]=[D], 解得平面方程系数为:[C]=[X]-1[D] 方法二:根据平面的法矢量和平面上一已知点,求得平面系数。已知平面的法矢量为:n=ai+bj+ck,其中i,j,k分别为x,y,z方向的单位矢量,且又已知平面上一点(x1,y1,z1)。则平面方程是:? ax+by+cz+d=0,其中?? d=-(ax1+by1+cz1) 方法三:采用Martin Newell方法,即最佳逼近法,计算任何平面多边形所在平面的精确方程或接近于平面的多边形的最佳逼近平面方程。 假设给定n个点(xi,yi,zi)(i=1,2,…,n),则平面系数可用于下式计算: 其中:若i≠n,则j=i+1,否则j=1。d可由下式求得: d=-(ax1+by1+cz1) 体矩阵的变换 在消隐算法执行之前,为了得到从一指定的试点以给定的观察方向来看所需要显示的物体,常常先要对物体进行三维坐标变换。因此,在变换确定之后,或给定了变换矩阵[T]以后,需要对每一个物体的体矩阵[V]作一个相应的变换,得到变换后的体矩阵[VT]。 同时,还要对物体的顶点齐次坐标矩阵[B]作一个相应的变换,得到变换后的顶点齐次坐标矩阵[BT]。 有两种常用的计算[VT]的方法: 方法一:假设[B]与[BT]分别为在体矩阵变换前后的物体顶点齐次坐标构成的矩阵,则 [BT]=[B][T] 因为有[X][C]=[D],所以可得到该物体原各平面的方程为: [B][V]=[D] 其中:[D]为零矩阵。 同样,变换后的平面方程也可表示为:[BT][VT]=[D] 并且:[BT][VT]=[B][V] 代入到[BT]=[B][T],方程两边消去[B]并左乘[T]-1,得到:[VT]=[T]-1[V];所以,变换后的体矩阵是由原来的体矩阵左乘变换矩阵的逆矩阵而得到的。 方法二:假设原先并未计算形体矩阵[V],也不希望计算[T]的逆矩阵,则可光计算:[BT]=[B][T],然后用变换后的物体顶点坐标[BT],按照前面介绍的Martin Newell方法,直接计算变换后的体矩阵[VT],两种方法所得结果完全一致。 自消隐方法:自消隐是对物体自身所遮挡的面(自隐面)和边(自隐边)的消除。对于不同的视点及视方向,既是对同一个物体来说,也会产生不同的自隐面和自隐边。因此自隐面和自隐边不仅取决于物体的形状,而且与视点方向相关。 假设视点位于z的负无穷远处,视方向为z轴的正向,即视方向朝z轴正向无穷远处,在齐次坐标系中,该方向矢量为:[E]=[0,0,1,0]显然,若视方向[E]和体矩阵[VT]的乘积中有负的元

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档