Download presentation
Presentation is loading. Please wait.
1
第四章 输出图元的属性
2
颜色属性 RGB 颜色编码 RGB 0~1 颜色表 灰度 颜色的运算 颜色调和 OpenGL 颜色显示模型 RGB 定义RGB的值
颜色的运算 颜色调和 OpenGL 颜色显示模型 RGB 定义RGB的值 RGBA 增加一个透明参数 0-1,背景色和前景色的绘制 Index 使用颜色查找表中的颜色
3
颜色查找表(color lookup table)
5
C M Y 1- R =1- G 1- B
6
扫描线多边形填充算法 基本思想 求扫描线与多边形的交点的x坐标; 对x坐标排序,成对的提取交点,在二交点之间填充 奇点处理
局部最高点、局部最低点
7
奇点处理 较低或较高一条边缩短一条扫描线 Y+1 y Y-1
8
扫描线多边形填充算法 扫描线与多边形的交点的三种情况 相邻扫描线与同一边交点的坐标相关性 Y+1 y x X+1/m
9
活化边表的实现方法 边表 Edge Table 水平边不存储; 按最小y值排序; 解决奇点问题; 同一y按x坐标 由小到大排序; 存储筒
ymin ymax xc 1/m pointer 最低点x的坐标 活化边表 Active Edge Table
10
活化边表填充算法步骤 建立边表 处理 从最低扫描线开始,建立活化边表; 将当前处理的边加入该表;
求扫描线与边的交点,成对的提取交点,对两交点之间的部分填充; 修改活化边表Xk+1=xk+1/m 删除活化边表中到达尾部的边;重复②~⑤直到活化边表为空。
11
(1,10) (7,7) (3,3) 11 10 (5,1) 9 (1,1) 8 7 6 5 4 3 /7 ∧ 2 1 /3 ∧
12
算法步骤 活化边表 y=1 Y=2 Y=3 Y=7 Y=8 Y=10 10 1 0 7 5 1/3 ∧ 10 1 0 10 3 -2/7
/3 ∧ /7 /3 ∧ /7 7 7 1/3 ∧ /7 ∧ /7 ∧
13
边界填充算法(种子填充算法)Boundary-fillSeed-fill
区域和内点(种子) 边界为某一颜色 前景色(填充色) 背景色 4-连通/8-连通 填充方法 种子填充算法 扫描线种子填充算法
14
种子填充算法 已知:种子像素( x,y ),填充色,背景色,边界色 种子像素进栈 退栈,(x,y)着色;
重复2~3直到栈空
15
泛滥填充算法flood-fill (扫描线种子填充算法)
种子像素进棧 填充棧中像素所在扫描线上的内部像素 上下扫描线上的左边界进棧; 退棧,直到棧中无像素,重复①~③
16
扫描线种子填充算法
18
图案填充 设置一个Pattern(m,n) 0~m-1;0~n-1 [ ] [ ] 设置一个初始位置参考点(xp, yp) 4 0
[ ] [ ] 设置一个初始位置参考点(xp, yp) 任意点(x,y) Pattern _color(i,j) i=x-xp mod m j=y-yp mod n 4 0 0 4
19
软填充soft-fill 填充色与背景颜色相结合的一种填充方法soft-fill或 tint-fill 线性软填充 F为前景色 B为背景色
线性组合 P=tF+(1-t)B t 为透明系数 0~1 前景色与背景色的操作 与 或 异或
20
反走样Untialiasing 走样aliasing 由于不充分取样而造成的信息失真 反走样:校正不充分取样的过程 取样频率低造成走样
Nyquist采样定理 采样频率应为出现在对象中的最高频率的两倍。 fs=2fmax 简单的方法:增加采样频率 提高分辨率 具有多级灰度的显示器 :改变边缘像素的亮度光顺边界 过取样: 像素划分为子像素 计算区域覆盖
21
直线段的过取样 单线法 将像素分割为子像素, 统计沿线的子像素个数, (左下角在多边形内) 像素的亮度正比于子像素的个数。
单线法 将像素分割为子像素, 统计沿线的子像素个数, (左下角在多边形内) 像素的亮度正比于子像素的个数。 例:如图像素分为3×3,亮度等级3 (10,20)亮度 3 区域法 将单线设置为线宽与 像素等宽,求覆盖子像素数 (左下角有效) 灰度等级9,(11,20)亮度等级5 与背景色的平均 Pixelcolor=(5*red+4*blue)/9
22
像素的加权掩模 希望直线的中心位置在确定整体亮度中有较大的贡献,即中心像素有较大的权。 方法: 建立子像素的加权掩模 如图:总权为16
适用区域法
23
过滤技术 构造过滤函数用一个连续的加权曲面 覆盖像素 例:
24
像素移相 可以对子像素编址的系统 将电子束移至更接近于几何指定的位置 可光顺沿线路径及边界的阶梯。
25
线亮度差的校正 斜线像素之间的距离大 水平与竖直线的亮度较小 45º斜线的亮度最大
26
反走样区域边界 使区域边界像素颜色较暗,从而消除台阶 边界像素按其在多边形区域内的 面积大小决定像素的亮度等级 图:三个子像素在多边形边界内
面积覆盖计算 计算梯形面积 中线=mxk+b-yk+0.5 高度为1 Yk+0.5 yk Yk-0.5 xk+0.5 xk-0.5 xk
Similar presentations