Opengl研究4.0 走样与反走样

DionysosLai(906391500@qq.com) 2014-06-25

         走样与反走样,也叫混淆与反混淆。所谓走样,是因为使用离散量(像素)表示连续量(图形)而引起的失真。

         走样现象:

1.      阶梯状的图形边界

         如图所看到的:

                                                                                                                           

         因为像素点是一块一块的,存在锯齿状。

2.       图形细节失真

         因为显示图形的最小单位为像素,像素是由宽度的。有时候,我们可能显示的线段比像素要窄。要小。那么可能出现两种情况:a. 假设显示的线段宽度比像素宽度小一点,将被保留;b. 假设线段非常细,就不会显示。

---->图形的细节失真。

3.       狭小图形的遗失与动态图形的闪烁

         这个是因为图形细节失真造成的。

假设显示线段比較细,假设落在像素中心上,就显示。假设线段正好落在两个像素之间就不显示。---->图形闪烁

 

         反走样,即在图形显示过程中,用于降低或消除走样现象方法。

         反走样方法:

1.      提高分辨率:

         通过硬件。添加像素。--->代价非常大,并且会引起扫描转换时间、帧缓存容量。

2.      非加权区域採样方法

         走样原因:因为在实际中,像素是由实际面积大小不为0,同一时候直线段的宽度是至少为1个像素。

而我们假设是像素面积为0,亮度有覆盖该点的亮度决定,同一时候线段宽度为0。

二者的矛盾是导致走样原因。

         解决方法:

         改变直线度模型,线上像素灰度(颜色)不等。

         方法步骤:

         A.     将直线段看做具有一定宽度的狭长矩形。

         B.      当直线度与某像素相交时,求出两者相交区域的面积。

         C.      依据相交区域面积大小。设置该像素的亮度值。

         关键:

         是怎样计算相交区域面积大小。

因为像素是个正方形。相交面积计算还能够。有个简便方法,就是将正方形划分成n个区域,推断每一个区域(当成点)是否在线段内就可以。

如图所看到的:

                                                                                                                              

         则这个像素的相交面积为3/9;

3.      加权区域採用方法

         对于非加权区域採样方法中,面积的计算时,因为每一个区域的权重是一样的,而实际上对于中心的区域,其贡献值比較大。因此。将像素点的各个区域权重是不一样的。越中央,权重越大。反之。权重越小。权重,一般我们能够用一个矩阵表示:

                                                                                                                             

         那么对于上图的相交面积即为5/16。

最新文章

  1. mysql C API的使用
  2. 最近开始做Android了
  3. iOS计算缓存文件的大小
  4. public void onItemClick(AdapterView arg0, View view, int position,long arg3)详解【整理自网络】
  5. Android 仿PhotoShop调色板应用(四) 不同区域颜色选择的颜色生成响应
  6. Win10 的虛擬桌面
  7. 期待微软平台即服务技术Service Fabric 开源
  8. AAC编码学习
  9. 在vue 中使用 less
  10. 谢宝友:会说话的Linux内核
  11. pycharm中python模板代码自动生成
  12. JSON—基础
  13. ghost系统下,C#获取时间带星期几的解决办法
  14. mybatis的select、insert、update、delete语句
  15. BSD Socket 通信
  16. 第十课 C++异常简介
  17. LightOJ 1428 Melody Comparison (KMP + 后缀数组)
  18. ftp server安装与配置
  19. HDU 2896 病毒侵袭 【AC自动机】
  20. python基础-第五篇-5.4正则表达式

热门文章

  1. 『Scrapy』爬取腾讯招聘网站
  2. 使用Python生成双色球号码
  3. HDU-4856 Tunnels (BFS+状压DP)
  4. n阶汉诺塔 记住吧。。
  5. 4.1 delegate
  6. ORACLE workflow审批界面显示附件信息和附件的下载链接(转)
  7. arc路径例子-磊哥
  8. arc路径-磊哥
  9. BZOJ1342 [Baltic2007]Sound静音问题
  10. hdu 2874 Connections between cities(st&rmq LCA)