计算机图形学中消隐的相关概念及算法

文章目录

    • 基本概念
    • 提高消隐算法效率的常见方法
      • 利用连贯性
      • 包围盒技术
      • 背面剔除
      • 空间分割技术
      • 物体分层表示
    • 消隐的分类
      • 按消隐对象和输出结果分类
      • 根据消隐空间分类
    • 消除隐藏线
    • 消除隐藏面

基本概念

投影变换失去了深度信息,往往导致图形的二义性

  • 消隐:为了消除二义性,必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面;
  • 经过消隐得到的投影图称为物体的真实图形
  • 消隐结果与观察物体有关,也与视点有关

背面剔除

  • 外法向:规定每个多边形的外法向都是指向物体外部的。
  • 前向面:若多边形的外法向与投影方向(观察方向)的夹角为钝角(V· N
  • 后向面:若多边形的外法向与投影方向(观察方向)的夹角为锐角(V· N>0),称为后向面(背面)。

后向面总是看不见的,不会由于后向面的遮挡,而使别的棱成为不可见的。因此计算时,可以把这些后向面全部去掉,这并不影响消隐结果

消隐的分类

按消隐对象和输出结果分类

  • 线消隐:消除的是物体上不可见的边。
  • 面消隐:消除的是物体上不可见的面。

  • 图像空间的消隐算法:以窗口内的每个像素为处理单元;

    for(窗口内的每一个像素)

    {确定距视点最近的物体,以该物体表面的颜色来显示像素}

    image-20220213224831889
  • 消除隐藏线

    坐标变换:通过坐标变换,将视点变换到Z轴的正无穷大处,视线方向变为Z轴的负方向

    最基本的运算:线消隐中,判断面对线的遮挡关系:体分解成面,再判断面与线关系。判断过程中需反复地进行线线、线面之间的求交运算。

    平面对直线段的遮挡判断算法

    1. 若线段的两端点及视点在给定平面的同侧,线段不被给定平面遮挡,转(7);
    2. 若线段的投影与平面投影的包围盒无交,线段不被给定平面遮挡,转(7);
    3. 求直线与相应无穷平面的交:
      • 无交点转(4);
      • 若交点在线段内部,交点将线段分成两段,与视点同侧一段不被遮挡,另一段在视点异侧转(4);
      • 若交点在线段外部,转(4)。
    4. 求所剩线段的投影与平面边界投影的所有交点。若无交点,转(7)。
    5. 以上所求得的各交点将线段的投影分成若干段,求出第一段中点。
    6. 若第一段中点在平面的投影内,则相应的段被遮挡,否则不被遮挡;其他段的遮挡关系可依次交替取值进行判断。
    7. 结束。

    基本数据结构

    面表(存放参与消隐的面) +线表(存放待显示的线)

    消除隐藏面

    • 画家算法
    • Z缓冲算法
    • 扫面线Z缓冲算法
    • 区间扫面线算法
    • 区域子分割(Warnack)算法
    • 光线投射算法

    文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览35213 人正在系统学习中

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年1月9日
    下一篇 2022年1月9日

    相关推荐