我是靠谱客的博主 贤惠中心,最近开发中收集的这篇文章主要介绍opengl碗状_Opengl研究4.0 走样与反走样,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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。

最后

以上就是贤惠中心为你收集整理的opengl碗状_Opengl研究4.0 走样与反走样的全部内容,希望文章能够帮你解决opengl碗状_Opengl研究4.0 走样与反走样所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部