计算机图形学课程分享,希望对大家有些小帮助。

文章目录

  • 前言
  • 一、问题说明
  • 二、处理方法
    • 1.非加权区域采样方法
    • 2.加权区域采样方法
  • 总结

前言

作者查阅资料进行总结,试图将反走样技术与相关算法进行基本的描述,帮助大家系统性地认识该技术。


一、问题说明

1.什么是走样?

用离散量(像素)表示连续的量(图形)而引起的失真。

2.为什么会产生走样?

根本原因是像素本质上的离散性,直接原因是硬件限制与采样频率不足。

如果对一个快速变化的信号采样频率过低,所得样本的会是低频变化的信号:原始信号的频率看起来被较低的“走样”频率代替。

3.走样现象的表现形式是怎样的?

光栅图形产生的阶梯形;图形中包含相对微小的物体时,这些物体在静态图形中容易被忽略或丢  弃;在动画序列中时隐时现,产生闪烁。

二、处理方法——针对采样不足

反走样:用于减少或消除走样效果的技术,通常与抗锯齿紧密联系,因此也常被称为抗锯齿。

反走样技术涉及到某种形式的“模糊”来产生更光滑的图像。

例:对于白色背景下的黑色矩形,通过在矩形的边界附近掺入一些灰色像素,柔化从黑到白的尖锐变化。从远处观察时,人眼将缓和变化的暗影融合在一起,从而产生了更加平滑的边界。

1.非加权区域采样方法

根据物体的覆盖率计算像素的颜色。(覆盖率指某个像素区域被物体覆盖的比例。)

原理说明:

将多边形放在方格线中,其中每个正方形的中心对应显示器上一个像素中心。被多边形覆盖了一半的像素被赋值为1/2,覆盖三分之一的像素被赋值为1/3,以此类推。如果帧缓冲区的每个像素有4个比特位,那么0表示黑色,15表示白色。

举例:

两个缺点:

(1)像素的亮度与相交区域的面积成正比,而与相交区域落在像素内的位置无关,这仍然会导致锯齿效应。

(2)直线条上理想直线方向的相邻两个像素有时会有较大的灰度差。

每个像素的权值是一样的,这是它的主要缺点。因此,它被称为非加权区域采样方法。

2.加权区域采样方法(效果更好)

原理说明:将直线段看作是具有一定宽度的狭长矩形;当直线段与像素有交时,根据相交区域与像素中心的距离来决定其对像素亮度的贡献。

直线段对一个像素亮度的贡献正比于相交区域与像素中心的距离。

方法:设置相交区域面积与像素中心距离的权函数(高斯函数),以此反映相交面积对整个像素亮度的贡献大小。利用权函数积分求相交区域面积,用它乘以像素可设置的亮度最大值,即可得到该像素实际显示的亮度值。

离散计算法:

将一个像素划分成3*3个子像素,加权表取作:

加权方案:

(1)中心子像素的加权是角子像素的4倍,是其他像素的2倍,对九个子像素的每个网格所计算出的亮度进行平均。

(2)然后求出所有中心落于直线段内的子像素。

设理想直线段的两个端点为(x0,y0) (x1,y1),则其方程为y-(x-x0)*(y1-y0)/(x1-x0)-y0=0

两条平行线的直线方程为:

上边界 y-(x-x0)*(y1-y0)/(x1-x0)-y0-0.5*sqrt(k*k+1)=0

下边界 y-(x-x0)*(y1-y0)/(x1-x0-y0+0.5*sqrt(k*k+1)=0

有三种情况:

直线穿过该像素点(x,y)和该像素点上一个像素点(x,y+1);直线只穿过该像素点;直线穿过该像素点(x,y)和该像素点下一个像素点(x,y-1)

(3)最后计算所有这些子像素对原像素的亮度贡献之和。

判断像素点(x,y+1)时,这时计算(x,y+1)像素的权值需要计算该点的9个像素分点在上边界下方的权值累加;判断像素点(x,y)时,这时计算(x,y)像素的权值需要计算该点的9个像素分点在上边界下方同时在下边界的上方的权值累加;判断像素点(x,y-1)时,这时计算(x,y-1)像素的权值只需要计算该点的9个像素分点在下边界的上方的权值累加。


总结

反走样是图形学一个根本、永恒的问题,不可避免。

关于反走样技术的基本介绍与分享相关推荐

  1. 图形学(7)反走样技术

    本模块内容绝大部分是在慕课上看中国农业大学网客时的笔记,因此算作转载,在此鸣谢赵明.李振波两位老师,感谢他们录制该门课程供大家学习! 其实,在之前绘制直线算法中,画出来的直线经放大会有明显的" ...

  2. 计算机图形学在卫星的应用,计算机图形学课程设计教程-反走样卫星

    计算机图形学课程设计教程-反走样卫星 实 验 报 告 2016 年 4 月 28 日 第 3 节 综合 楼 426 号室 课程名称 计算机图形学课程设计 学生姓名 学号 专业与年级 2013级数字媒体 ...

  3. 图形学-反走样/抗锯齿

    1.反走样 1.1 什么是走样 在上一篇文章中,我们通过采样的方式把一个三角形变成离散的点显示在屏幕上.在采样过程中,我们会产生很多锯齿,这些锯齿的学名就叫做走样 1.2 反走样 如何消除锯齿(走样) ...

  4. 恶意软件反检测技术简介:反调试技术解析

    本文中,我们将向读者介绍恶意软件用以阻碍对其进行逆向工程的各种反调试技术,以帮助读者很好的理解这些技术,从而能够更有效地对恶意软件进行动态检测和分析. 一.反调试技术 反调试技术是一种常见的反检测技术 ...

  5. USB软件狗的设计及反破解技术

    1 软件狗技术 近年来,软件狗技术在保护软件开发者利益.防止软件盗版方面起了很大作用.软件狗技术属于硬加密技术,它具有加密强度大.可靠性高等特点,已广泛应用于计算机软件保护.软件狗技术的发展经历了多次 ...

  6. Wu反走样算法介绍(简单易懂) -Xiaolin Wu’s Algorithm

    目录 一.算法介绍 二.算法描述 三.算法总结 一.算法介绍 Wu反走样算法,可以将线条变得更平滑,即产生抗锯齿效果.示意图如下: 原图 经过Wu反走样算法改善后 原图 经过Wu反走样算法改善后 二. ...

  7. 反走样和OpenGL多重采样

    1. 反走样 在计算机图形学中,在屏幕上显示对象时,可能会出现许多的"锯齿",这些锯齿是由顶点数据像素化之后成为片段的方式所引起的,由于将数学意义上的坐标转换到物理的显示器硬件上进 ...

  8. GPU Gems1 - 11 阴影贴图反走样

    这章介绍了如何通过邻近百分比过滤方法(Percentage-Closer Filtering , PCF)有效减少阴影贴图的反走样,并描述了如何实现一个简化版本,并对PCF方法进行了一定改进.关于阴影 ...

  9. 计算机图形学【GAMES-101】2、光栅化(反走样、傅里叶变换、卷积)

    快速跳转: 1.矩阵变换原理Transform(旋转.位移.缩放.正交投影.透视投影) 2.光栅化(反走样.傅里叶变换.卷积) 3.着色计算(深度缓存.着色模型.着色频率) 4.纹理映射(重心坐标插值 ...

  10. 《编译与反编译技术实战 》一2.3 编译器的设计与实现概述

    本节书摘来自华章出版社<编译与反编译技术实战 >一书中的第2章,第2.3节,庞建民 主编 ,刘晓楠 陶红伟 岳 峰 戴超 编著,更多章节内容可以访问云栖社区"华章计算机" ...

最新文章

  1. Matplotlib常见图形绘制(折线图、散点图、柱状图、直方图、饼图)
  2. bootstrap ui
  3. [置顶] Android输入输出机制之来龙去脉之前生后世
  4. 《一起》个人进展——Day06
  5. spark应用程序_Sparklens:Spark应用程序优化工具
  6. 【POJ - 1328】Radar Installation(贪心+计算几何)安装雷达辐射岛屿
  7. Shell else if mysql_linux shell中 if else以及大于、小于、等于逻辑表达式介绍
  8. Spring Cloud Eureka 2 (Eureka Server搭建服务注册中心)
  9. linux之终端的灵活使用。SCREEN
  10. 博弈论——威佐夫博弈 Wythoff Game
  11. java storedmap_SCJP模拟题
  12. 8 个顶级网络攻击地图以及如何使用它们
  13. mac安装win7之后鼠标失灵_mac安装win7鼠标失灵怎么办
  14. 微信公众号文章的爬取(搜狗微信搜索)
  15. 【无标题】炒外汇是什么,为什么有人说炒外汇能发财
  16. foxmail邮件服务器端口,Foxmail IMAP设置
  17. BDB 入门篇 第6章 A DPL Example一个DPL 例子
  18. win xp出现“安装程序包的语言不受支持”的解决
  19. ceph radosgw-admin的操作
  20. 二叉树学习笔记(未完待续)

热门文章

  1. 华夏出入口车牌识别摄像机
  2. 应该将composer.lock致力于版本控制吗?
  3. hello heaven
  4. python调用函数库_python调用操作系统的库函数
  5. 颜色格式转换: FFmpeg源代码简单分析:libswscale的sws_getContext()
  6. 红帽子linux编译命令,Linux REDHAT下安装内核源代码详细步骤教程
  7. 《人生哲理》一.我们必须活在当下!
  8. c语言微信昵称大全女生,微信名字大全女生可爱
  9. 一文了解KingSwap
  10. Xcode6 中URL Scheme的具体使用