Presentation is loading. Please wait.

Presentation is loading. Please wait.

计算机科学与技术专业课程 计算机图形学 宋传鸣 chmsong@lnnu.edu.cn 辽宁师范大学计算机与信息技术学院.

Similar presentations


Presentation on theme: "计算机科学与技术专业课程 计算机图形学 宋传鸣 chmsong@lnnu.edu.cn 辽宁师范大学计算机与信息技术学院."— Presentation transcript:

1 计算机科学与技术专业课程 计算机图形学 宋传鸣 辽宁师范大学计算机与信息技术学院

2 走样现象 光栅算法的取样过程是将图元数字化为离散的整数像素位置,所生成的图元具有锯齿形或台阶状外观 图形细节失真 狭小图形丢失
图形中的那些比像素更窄的细节变宽 狭小图形丢失 实时动画忽隐忽现 用离散量表示连续量引起的失真称为走样(Aliasing) 用于减少或消除这种失真的技术称为反走样 走样现象 反走样技术 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率”

3 提高分辨率 根据采样定理,采用频率至少应是信号最高频率的2倍才能避免采样,这个频率称为Nyquist 取样频率
一种简单的反走样方法是提高分辨率 假设显示分辨率提高一倍,锯齿效果减少1/2 代价:4倍存储器和扫描转换时间,且两问题难以解决: 保持刷新频率在每秒30~60帧 用连续参数精确地表示对象需要任意小的取样间隔 即使用当前技术能达到的最高分辨率,锯齿形仍会在一定范围内出现 除非硬件技术能处理任意大的帧缓冲器,增加屏幕分辨率还不能完全解决走样问题 走样现象 反走样技术 提高分辨率 非加权采样 加权采样 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率”

4 非加权采样算法 前提假设:像素是具有一定面积的小区域,将直线段视为具有一定宽度的狭长矩形
基本思想:当直线段与像素相交时,求出两者相交区域的面积,再根据该面积确定像素的亮度等级 情况1的面积为 情况2的面积为 情况3的面积为 , 阴影面积介于0和1之间,用它乘以最大灰度值后取整 优势:相比于将像素完全填充或设置为0的方法,明显提高了图像的质量 不足:需要多次计算.对于非多边形的形状,计算代价可能非常大 走样现象 反走样技术 提高分辨率 非加权采样 加权采样 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率”

5 改进的非加权采样算法 基本思想:将像素均分成n个子像素,然后计算中心点落在直线段内的子像素的个数k,最后将该像素的亮度设置为最大亮度值乘以k/n 不足: 像素的亮度与相交区域的面积成正比,而与相交区域落在像素内的位置无关,仍会导致锯齿效应 直线条上沿着理想直线方向的相邻两个像素有时会有较大的灰度差 走样现象 反走样技术 提高分辨率 非加权采样 加权采样 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率”

6 加权采样算法 基本思想:相交区域对像素亮度的贡献依赖于该区域与像素中心的距离.靠近像素中心的小块区域的作用大于远离中心的同样大小区域的作用
具体方法 设置相交区域面积元与像素中心距离的权函数(如高斯函数等)反映相交面积元对整个像素亮度的贡献 利用权函数积分求相交区域面积,用它乘以像素可设置的最大亮度值,即可得到该像素实际显示的亮度值 加权的作用是降低相邻像素间的亮度对比,以使其能够平滑过渡 走样现象 反走样技术 提高分辨率 非加权采样 加权采样 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率”

7 其它权函数 走样现象 反走样技术 提高分辨率 非加权采样 加权采样
线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率”

8 改进的加权采样算法 上述方法的不足:计算积分的运算量很大 具体的改进方法 将像素均匀分割成n个子像素
计算每个子像素对原像素的贡献,并保存在一张二维的加权表中 求出所有中心落于直线段内的子像素集合 计算所有这些子像素对原像素的亮度贡献之和,并将其乘以最大亮度值 走样现象 反走样技术 提高分辨率 非加权采样 加权采样 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率”

9 两类算法的对比 共同点 不同点 与一条线相交的像素的亮度值随着它的中心与边的距离的增大而降低
前者:如果图元与像素不相交,则图元对其亮度没有影响;后者:图元中远离像素中心但仍与像素支集相交的区域,能从线获得一定的亮度贡献 前者:不管像素的中心到覆盖区域的距离如何,相同面积就有相同的亮度值;后者:像素的亮度值与覆盖区域到中心的距离成正比 走样现象 反走样技术 提高分辨率 非加权采样 加权采样 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率”

10 反走样区域边界 线反走样概念也可用于区域边界
通过分割整体区域,并决定区域边界内的子像素数目,以像素区域覆盖率为基础来调整每个边界位置处的像素亮度 沿着扫描线,确定子像素区域的三个区域在边界内, 可将像素亮度设置为最大值的百分之七十五 位置1处的像素有约一半的区域在多边形边界内,该位置的亮度将被调整到其设定值的一半;位置2处的亮度被调整到其设定值的约三分之一 走样现象 反走样技术 提高分辨率 非加权采样 加权采样 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率”

11 反走样区域边界 各种反走样方法可用于多边形区域或具有曲线边界的区域 用边界方程来估计像素区域与将要显示区域的区域覆盖
用连贯性原理可简化区域覆盖的计算 走样现象 反走样技术 提高分辨率 非加权采样 加权采样 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率”

12 基于OpenGL的例程 使用透明度进行反走样处理 使用glEnable(Glenum mode)开启反采样功能
参数为GL_POINT_SMOOTH或GL_LINE_ SMOOTH 使用glHint(GLenum target, GLenum hint)提供质量提示 target控制行为: GL_POINT_SMOOTH_HINT,GL_LINE_SMOOTH_HINT,GL_POLYGON_SMOOTH_HINT表示点、线和多边形的质量 hint的可选值为GL_FASTEST, GL_NICEST, GL_DONT_CARE 对于RGBA模式,还需用glBlendFunc()进行混合,包括2个参数,GL_SRC_ALPHA表示源对象,GL_ONE_MINUS_SRC_ALPHA表示目标对象 走样现象 反走样技术 提高分辨率 非加权采样 加权采样 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率” 例程

13 基于OpenGL的例程 使用多重采样进行反走样处理 获取一个支持多重采样的窗口
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_MULTISAMPLE) 验证多重采样功能是否可用 glGetIntegerv(GL_SAMPLE_BUFFERS, &buf); glGetIntegerv(GL_SAMPLES, &sbuf); 如果buf=1并且sbuf>1才可使用多重采样 调用glEnable(GL_MULTISAMPLE)启用多重采样功能 走样现象 反走样技术 提高分辨率 非加权采样 加权采样 线画图元:用矢量表示的二维图形。其核心是将表示图形的数学方程离散化为适于光栅扫描显示的点的表示,其过程就是扫描转换过程 填充图元:用点阵表示的二维图元。其核心是如何确定给定区域内构成图形的内部的点的表示 光点称为“像素”,其数量称为“分辨率” 例程


Download ppt "计算机科学与技术专业课程 计算机图形学 宋传鸣 chmsong@lnnu.edu.cn 辽宁师范大学计算机与信息技术学院."

Similar presentations


Ads by Google