• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Error

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

            傳說這就是AGG:

            agg

            要理解這張圖上的幾個概念:

            *vertex source: 頂點源。一切的圖像的世界是由點構(gòu)成的。

            *cordinate conversion pipeline: 坐標(biāo)轉(zhuǎn)換管道。不用自己去擔(dān)心各種坐標(biāo)系?

            *scanline rasterizer: 光柵化,把頂點數(shù)據(jù)處理合成一組組線段,這里可能會有一些fix或者effect。

            *renderers: 渲染器

            *rendering buffer: 用于存放像素點的內(nèi)存

            我的理解是這樣:圖像是以點集的方式存在的,要畫圖先是沖一組點集開始,先把這一組點的坐標(biāo)轉(zhuǎn)換成目標(biāo)坐標(biāo),然后通過光柵化形成一組線段,然后通過渲染器把這一組線段渲染到buffer上面形成面。點->線段->面

            *****************************************************************************************************

            一、vertex source

             

            我理解它是一個concept,官方解釋是這個:

                所有實現(xiàn)了void rewind(unsigned path_id);和unsigned vertex(double* x, double* y);的類。

            agg提供的vertex source concept如下(可以自己擴(kuò)展):

            ellipse 圓

            arc 弧線

            curve3 curve4 貝塞爾曲線

            gsv_text AGG自帶字模的文字輸出(只支持ASCII碼)

            gsv_text_outline<>  可變換文字,輸入為gsv_text和變換矩陣

            rounded_rect  圓角方形

            path_storage 路徑存儲器,可以用join_path方法加入多個頂點源。

            arrowhead  箭頭

             

            二、coordinate conversion pipeline

                坐標(biāo)轉(zhuǎn)換管道用于改變頂點源產(chǎn)生的頂點,包括坐標(biāo)、命令、產(chǎn)生新頂點等。如對頂點進(jìn)行矩陣變換、插入頂點形成虛線之類的功能。

            1.變化矩陣 trans_affine

            頭文件:#include <agg_trans_affine.h>

            接口:scale 縮放、rotate旋轉(zhuǎn)、translate平移、矩陣*乘法、invert取反矩陣

            2.坐標(biāo)轉(zhuǎn)換管道

            template<class VertexSource, class Markers = null_markers> struct conv_stroke;

            變成連續(xù)線 構(gòu)造參數(shù)為VertexSource width屬性決定線寬。

            template<class VertexSource, class Markers = null_markers> struct conv_dash;

            虛線

            template<class MarkerLocator, class MarkerShapes> class conv_marker;

            建立標(biāo)記

            template<class VertexSource> struct conv_contour;

            輪廓變換

            template<class VertexSource> struct conv_smooth_poly1_curve;

            圓滑過渡多邊形各頂點

            template<class VertexSource> struct conv_bspline;

            圓滑過渡多義線各頂點

            template<class VertexSource, class Curve3 = curve3, class Curve4 = curve4> class conv_curve;

            可識別VertexSource中的曲線信息

            template<class VertexSource, class Transformer = trans_affine> class conv_transform;

            矩陣變換 用變換矩陣重新計算頂點位置

             

            三、scanline rasterizer

            1.scanline

            掃描線是一種保存span的容器,span用于表示一小條(水平方向)細(xì)線。圖像中同一行的span組成一個Scanline

            2.rasterizer

            Rasterizer就是把相當(dāng)于矢量數(shù)據(jù)的一堆頂點和命令轉(zhuǎn)換成一行行的掃描線的設(shè)備,它就象粉刷工人對照著圖紙把彩漆刷到墻上一樣

             

            四、renderers

                渲染器負(fù)責(zé)表現(xiàn)掃描線Scanline中的每個線段(span)。在渲染器之前,AGG圖形中的線段是沒有顏色值的,只是位置、長度和覆蓋率(透明度)。渲染器賦于線段色彩,最終成為一幅完整的圖像。

                渲染器被分成底中高三層。其中底層負(fù)責(zé)像素包裝,由PixelFormat Renderer實現(xiàn);中層是基礎(chǔ)層,在PixelFormat Renderer的基礎(chǔ)上提供更多方法,是所有高層渲染器依賴的基礎(chǔ),由Base Renderer實現(xiàn);高層負(fù)責(zé)渲染Scanline中的線段,由Scanline Renderer等實現(xiàn)。

             

            五、rendering buffer

            Rendering Buffer是一個內(nèi)存塊,用于保存圖像數(shù)據(jù)。這是AGG與顯示器之間的橋梁,我們要顯示AGG圖形實際上就是識別這個內(nèi)存塊并使用系統(tǒng)的API顯示出來 而已(實際上幾乎不需要做轉(zhuǎn)換工作,因為無論是Windows還是Linux,API所用的圖像存儲格式與Rendering Buffer都是兼容的)。

             

            差不多了,其他的東東現(xiàn)在看多了白搭,俺們要在戰(zhàn)斗中學(xué)會戰(zhàn)斗,,,

            posted on 2012-09-10 16:36 Enic 閱讀(263) 評論(0)  編輯 收藏 引用 所屬分類: agg
            久久精品视屏| 久久夜色精品国产亚洲| 99久久综合国产精品免费| 国内精品伊人久久久久妇| 无码国产69精品久久久久网站| 少妇久久久久久被弄高潮| 国产婷婷成人久久Av免费高清 | 亚洲国产精品一区二区久久| 色综合合久久天天综合绕视看| 久久强奷乱码老熟女| 无码伊人66久久大杳蕉网站谷歌| 日本久久久久久中文字幕| 亚洲国产婷婷香蕉久久久久久| 亚洲午夜无码久久久久| 伊人色综合久久| 久久国语露脸国产精品电影 | 久久久久无码国产精品不卡| 久久午夜免费视频| 99久久精品九九亚洲精品| 久久综合狠狠综合久久综合88| 久久国产福利免费| 国产V亚洲V天堂无码久久久| 日本WV一本一道久久香蕉| 精品国产乱码久久久久久浪潮| 国产午夜久久影院| 久久综合亚洲欧美成人| 久久久久亚洲AV无码观看| 国产精品99久久不卡| 天天综合久久久网| 国产精品久久久久久久久鸭| 久久九九精品99国产精品| 久久天天躁狠狠躁夜夜躁2O2O| 思思久久精品在热线热| 亚洲伊人久久成综合人影院| 久久性精品| 人人妻久久人人澡人人爽人人精品| 亚洲午夜福利精品久久| 亚洲国产精品无码久久青草 | 久久精品国产亚洲av麻豆色欲| 久久天天婷婷五月俺也去| 久久笫一福利免费导航|