资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

AGG第四课局限性

1前言

AGG渲染抗锯齿图像的边界,似乎永远是模糊边界,经研究,是由于使用亚像素精度反走样,边界会有半个像素的模糊。导致多个图像重叠的边界出现颜色一样的问题。正如,作者所言,不要以为采用AGG,就能够解决一切的问题,正所谓道高一丈,魔高一尺。任何的设计都是折中的方案,对于问题,只能够采取规避的方式解决。后续将会持续关注AGG的局限性。

专注于为中小企业提供成都网站设计、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业庆云免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

2 重叠区域的边界着色问题

1 代码展示   

 void TestBlackBorden()

  {

   agg::rendering_buffer &rbuf = rbuf_window();

   agg::pixfmt_bgr24 pixf(rbuf);

 

   typedef agg::renderer_base renderer_base_type;

   renderer_base_type renb(pixf);

 

   typedef agg::renderer_scanline_aa_solidrenderder_scanline_type;

   renderder_scanline_type rensl(renb);

 

   agg::rasterizer_scanline_aa<> ras;

   agg::scanline_u8 sl;

   ras.reset();

 

   ras.add_path(agg::ellipse(100,150,100,100));

   agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));

   ras.add_path(agg::ellipse(200,100,100,100));

   agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,255,0));  

   ras.add_path(agg::ellipse(200,200,100,100));

   agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(0,0,255));  

  }

2 问题描述

三个实心圆形成三个环,并且每个圆有重叠的部分,可以看到重叠的边界出现了黑色的弧线。

按照正常的逻辑,边界不是红色,就是蓝色,或者绿色。实际上出现了混合的颜色,抗锯齿的效果采用混合颜色的方式,将底层的颜色和覆盖的颜色进行了混合(alpha-blending),实际上就会显示混合后的颜色。

 

如下是作者的描述:

I only flipped your p_w_picpath horizontally. Itshows how the colortriplets are

placed and explains this effect. But youare right, these"black borders"

will be seen on any device. To get rid ofthem you need to use gamma

correction. Seeexamples/gamma_correction.cpp.

 

按照作者的思路进行了gamma的设置,当然不排除设置的错误,没有理解gamma_correction这个例子。

开发者回应:

For my display a gamma of 2.5 looks good. Ithink I will add someuser

defined gamma option to my application. Bytime i will have to delve

into this topic more deeply.


网站栏目:AGG第四课局限性
文章起源:http://cdkjz.cn/article/pgsgis.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220