文档介绍:习题:
自学 Open-GL,VRML的补充材料,并尝试编程!
第六章图形的消隐方法
三维图形的显示方法
一、形状特征的显示方法
将三维物体投影在二维显示平面上,以线框(轮廓)形式显示物体的形状
平行投影:精确表示物体,但缺乏真实感,需要专门知识和想象力
透视投影;类似眼球和照相机镜头的成像方式,比较真实
为改善效果,常加以辅助手段,如:
深度提示:利用颜色和光照的差别,模拟空气的透视效果。
可见面、线的标识:用虚线显示不可见线,移去不可见线条等。
二、表面特征的显示
轮廓特征:可见面、线的标识
质感特征:颜色、纹理、材质等
面绘制(Surface Rendering):
通过几何单元拼接拟和物体的三维表面结构特征,并根据光线条件和物体表面特性,建立物体表面的显示特征的过程
光照描述:包括光源的强度、位置、颜色,以及环境背景照明条件等
表面特征描述:物体的透明程度、粗糙平滑程度、纹理、材质等
三、内部特征的显示
分解图和剖面图
Vector Graphics, -Surface Graphics, -Volume Graphics
面绘制
体视图(体绘制,Volume Rendering):
对体数据重新采样(体素化),并应用视觉原理,直接将体素投影到显示平面的方法,又称直接绘制方法
四、医学体数据三维可视化方法分类与典型算法
连接轮廓线法
移动立方体法
分解立方体法
………
依处理顺序分类
依数据域属性分类
物体空间序
象空间序
混合空间序
空间域
变换域
傅立叶断层投影法
基于小波变换的体绘制法
………
表面的透明体素绘制法
体数据几何单元投影法
表面绘制
体绘制
混合绘制
脚印法
光线跟踪法
剪切型变法
五、三维物体显示的其它问题
1. 分形几何方法:
自然景物的描述,如叶子、树、羽毛、毛皮、云、水、岩石, ……
弹簧网格方法:
FEA方法:
3. 基于物理的建模:
非刚性物体在力的作用下的行为,如布、绳、软橡胶、肌肉等。
2. 微粒系统:
模拟非规则形状物体,展示流体性质,如流动、翻腾、滴下、膨胀 等,用于对烟、云、火焰、水幕以及草丛等的建模。
4. 数据集合的可视化: 如电生理信号的可视化,计算模型的可视化等
消除隐藏线和隐藏面的方法
消隐的必要性和复杂性
对象空间(物空间)算法和图形空间(像空间)算法
基本方法:利用排序和连惯性提高检测效率
一、浮动水平线法
在科学计算可视化中常用三维曲面的剖分线的组合来表示,对此类曲面,常用浮动水平线法进行消隐
方法:
定义一组平行平面,对曲面进行切割,用其交线描述曲面形状,并考虑隐藏问题
例如:对函数 F(x, y, z) = 0 , 取与 Z 轴垂直的一组平面,则 F(x, y, z) = 0 与平面组中某平面的交线可表为:y = f(x, z), 或 x = g(y, z),其中 z 为常数。将上述交线族投影到 z=0 的投影面上,则消隐算法可表为如下步骤:
(1) 将各 z =常数的平行平面按离观察点的距离按递增排序
(2) 求出平面族与曲面相交的剖面曲线,即对给定 z 值,求 x, y 的对应关系
(3) 判断:对当前平面曲线上任一给定 x 值,若其对应 y 值大于前一平面曲线上同一 x 对应的 y 值, 为可见,否则不可见
一、浮动水平线法(续)
具体算法:
设置长度等于图形在 x 方向坐标定义域的两个一维数组,存储在每一 x 值处取到的最大 y 值和最小 y 值,每检测一条曲线,该数组分别向上和向下浮动一次,逐线消隐。
二、线框算法
当以线框方式显示物体时,推广对线与面片关系的判别,对线段的可见性进行处理。
判别方法:
依次将边与各个面片进行比较。
可采用与任意形状窗口的线段采集相似的算法
可采用可见性测试加速
三、Roberts 算法(后向面判别算法) -- 用于对凸多面体的隐藏线、面消除
是对象空间中实现的算法,数学处理严谨,精确,适用性强
凸多面体可看作一组平面相交形成的交集,其中平面的方程可表示为:
因此,凸多面体可由平面方程组构成的体矩阵表示:
矩阵的每一列表示体中一个平面方程的系数,只要乘上齐次坐标[x y z 1] 即构成平面方程
其矩阵表示为: