计算机图形学的反走样

计算机图形学的反走样_第1张图片
1.二维光栅图形走样表现有三种:
(1)呈现阶梯状失真
计算机图形学的反走样_第2张图片
(2)图形的细节失真
一些狭长多边形由于没有覆盖像素中心所以不被绘制,很多细节无法显示
计算机图形学的反走样_第3张图片
(3)狭小图形遗失以及造成的运动图形的闪烁
一个狭长图形向右运动,当图形覆盖像素中心时,它可以被完整绘制,否则就无法显示,造成图形在运动过程中时隐时现,无法正常显示。
计算机图形学的反走样_第4张图片
2.反走样技术(分为硬件和软件)
(1)硬件数据:提高分辨率,像素尺寸减小,对硬件要求高,代价较大
在这里插入图片描述
(2)软件技术:改进软件算法
加权区域采样:利用人眼视觉特性,通过加权平均的方法,调节像素的亮度等级以产生模糊的边界,包括距离加权反走样、面积加权反走样和体积加权反走样。
在这里插入图片描述
wu反走样的算法(距离加权算法):
计算机图形学的反走样_第5张图片
计算机图形学的反走样_第6张图片
削弱锯齿现象的方法:可以为直线周围的像素设置不同的亮度等级,使图形和背景之间存在颜色过度从而削弱锯齿现象。
计算机图形学的反走样_第7张图片
具体处理方法:
一般的光栅化处理只选择Pu和Pd中的一个像素进行绘制,而wu反走样算法两个像素都要绘制,只是亮度不同。
计算机图形学的反走样_第8张图片
计算机图形学的反走样_第9张图片
实现代码:
计算机图形学的反走样_第10张图片
运行结果:
计算机图形学的反走样_第11张图片
解释:以上实例并没有达到绘制直线反走样的效果,这是学习资料的参考代码,笔者刚学,暂不知如何完善,可能后期修改。

你可能感兴趣的:(c++)