1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu thư viện đồ họa nguồn mở agg và viết ứng dụng biên tập thư viện quản lý mẫu đường, mẫu tô và các biểu tượng trong bản đồ

61 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu thư viện đồ họa nguồn mở AGG và viết ứng dụng biên tập thư viện quản lý mẫu đường, mẫu tô và các biểu tượng trong bản đồ
Tác giả Sinh Viên Thực Hành: Th.S Nguyễn Minh Nam, Phan Thanh Tùng - 0311267, Dương Hòa Phong - 0311204
Người hướng dẫn Giảng Viên Hướng Dẫn
Trường học Trường Đại học Hoa Sen
Chuyên ngành Khoa Công Nghệ Thông Tin
Thể loại Chuyên đề tốt nghiệp
Năm xuất bản 2023
Thành phố TP.HCM
Định dạng
Số trang 61
Dung lượng 25,86 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DS tai "Nghien CU'U thU' vi~n dB hQa nguBn mo' AGG va vi~t u'ngdl}ng bien t~p thU' vi~n quan ly cac m~u duo'ng, m~u to va cac bi~u tU'Q'ngtrong ban dB" rna nh6rn th\IC hi~n chQn nghien C

Trang 1

I

BO GIAO DUC vA DAo TAO

KHOAC6NGNGHtTH6NGTm

I

r

NGHIEN CUU THU VIEN DO HOA NGUON

.

p

SINH VIEN THVC HltN: PHAN THANH TUNG - 0311267

DUONG HOA PHONG - 0311204

Trang 2

Ml)C Ll)C

G I01THI~U 5

1.1 Tang quan v~ cac thO' vi~n d6 hQa (Graphic Library) 7

1.3 MQt s8 u'ng dl}.ng Clla AGG trong thl}.'ct~ 12

Ung dl}.ng ch~y tren PDA cua cong ty Dolsoft Inc 17

1.6.2 Mau (Color), khong gian mau (Color Space) va dinh d~ng

Trang 3

1.6.3 Boon vi h~ tQa dQ (Coordinate Units) 28

2.1 NQi suy mau doon gian (Simple Color Interpolation) 37

2.2 Phep bi~n d&i phBi canh vo'i anh (Image Parallelogram

Transformations Using Perspective Transformations) 37

Trang 4

NQi suy vo'i dU'O'ngcong Bezier (Bezier curve) 41

5.1 BCGControlBar Library (v 9.51) Professional Edition 58

Trang 5

Hi~n nay co r~t nhiSu thu vi~n d6 h9a ma chung ta co th~ suodVng £)~utien phai k~ dSn la Macromedia Flash, Adobe SVG , chung r~t t6t nhung chi

la u'ng dVng nguo'i dung cu6i (end-user) va khong th~ suod\mg lam thu vi~ntrong C++ M9t s6 thu vi~n ph6 biSn khac nhu OpenGL, Apple Quartz, GDI+thi ch~t luqng d6 h9a 2D l<;tikem, ch?m va d?c bi~t chi dung tren m9t s6 n~n(platform) nh~t dinh (GDI+ chi dung tren nSn Windows va Quartz chi dungtren may Apple) Cac thu vi~n ngu6n ma (open source library) khac nhuLibAli, Cairo Graphics cung can qua nhiSu gi6i h<;tnva khong th~ su dVngtrong th\fc tS

V~n d~ chung cua cac thu vi~n la qua h<;tnch~ Chung 1am9t "h9P den"(ngay ca thu vi~n ma ngu6n ma), nghla la chung ta khong th~ thay d6i nhungthu vi~n nay theo y chung ta duqc V~n dS nu'a la chi phi ban quy~n qua cao

Trang 6

Gi6i thi~u Trang 6

Vi~c Vi~t Narn gia nh?p WTO la da: ch~p nh?n hQi nh?p sau rQng toan di~nvao qua trinh phat trien toan c~u va duang nhien phai ch~p nh?n cac quy dinhnghiern ng~t cua san chai rnai nay, trong d6 c6 quy dinh vS ban quySn Vi V?y

chi phi ban quySn qua cao se la tra ng~i Ian trong vi~c ap dl,mg cac thu vi~n

tren

DS tai "Nghien CU'U thU' vi~n dB hQa nguBn mo' AGG va vi~t u'ngdl}ng bien t~p thU' vi~n quan ly cac m~u duo'ng, m~u to va cac bi~u tU'Q'ngtrong ban dB" rna nh6rn th\IC hi~n chQn nghien Cll'llhy vQng se rna ra mQthuang phat trien cho nhung chuang trinh ung dl,mg c~n db hQa ch~t luqngcao, t6c dQ nhanh va chi phi th~p,

Chung em xin gu'i 1ai cam an d~n Truang DHDL Ngo~i ngfi' - Tin hQcTP.HCM, Khoa CNTT, Th~y Co d~c bi~t 1a Th~y Nguy~n Minh Nam da: t?ntinh giup dO', dQng vien chung em trong su6t thai gian hQCt?P, nghien Cll'llvathl,fc hi~n dS tai nay

Nh6rn thl,fc hi~n

Trang 7

Chuang 1 - T6ng quan v~ AGG

CHUaNG 1

1.1 TAng quan v~ cac thu vi~n dB hQa (Graphic Library)

Trang 7

Cac cong C\l render 2D s~n co nhu Macrornedia Flash, Adobe SVG chi 1£\ ung d\lllg nguai dung cu6i (end-user application) va khong th~ su dVnglam thu vi~n trong C++

Cac thu vi~n duqc dung ph6 bi~n nh~t hi~n nay la OpenGL, AppleQuartz va GDI+ OpenGL la mQt thu vi~n chu~n va t6t nhung ch~t luqng d6h9a 2D thi kem Alex Eddy da thl,Ic hi~n rnQt cUQc nghien cu.u chi r5 vi~c

(http://homepage.mac.com/arekkusu/bugs/invariancel).GDI+ thi render ch~tluqng kern, ch?m va con nhiSu 16i d~ co th~ su dVng trong thl,l'ct~, chua k~d~n vi~c chi dung duqc tren nSn Microsoft Windows Apple Quartz co ch~tluqng t6t nh~t nhung chi dung duqc tren may Apple Hai thu vi~n d6 h9angu6n ma khac la LibAli cila Raph Levien (http://www.levien.com/libartl) va

Cairo Graphics (http://cairographics.orgl).Vi~c phcit tri~n LibArt g~n day da

bi ngung, con Cairo Graphics vfrn con nhiSu h:;lnch~ nen khong th~ ap dVngtrong thv'c t~ Cairo Graphics vfrn dang trong qua trinh phat tri~n tich Cl,l'Cvathl,l'CSl,l'dang gia nhung gi6'i h:;lnchinh Clla no la rna hinh render "hardcoded".MQt thu vi~n rfrt t6t khac la IrnageMagick (http://www.imagemagick.orgl)

nhung chu'c nang chil y~u la xu I:>" imh

Trang 8

Chuang 1 - T6ng quan v~ AGG Trang 8

V~n dS chung cua cac thu vi~n va cong C\l d6 h9a s~n co la chung quah:;mch~ Chung chi la nhfrng "hQp den" (ngay ca v6i thu vi~n ma ngu6n mer)

VS mi;itly thuy~t, chung ta co thS chinh sua thu vi~n ngu6n mo- theo cach machung ta mu6n (n~u khong xet d~n v~n dS ban quySn) Nhung khi chung tasua thu vi~n la chung ta da t?O ra mQt phien ban khac cua no va duang nhienphai c~n th~n dua nhfrng thay d6i do vao cac phien ban m6i han sau nay cuatac gia Va diSu nay la mQt can ac mQng MQt thu vi~n co tinh "mer" th~t svkhi chung ta co thS mo- rQng cac tinh nang cua no ma khong c~n phai chinhsua trong ma ngu6n (code) C++ cho phep chung ta lam diSu nay v6itemplate Day chinh la Co' ch~ dugc su d\mg xuyen su6t trong AGG giup t?Onen tinh linh dQng ciia thu vi~n nay

1.2 Cae d~e di~m ehinh ella AGG

Anti-Grain Geometry (AGG) la thu vi~n d6 h9a 2D ma ngu6n mer miSnphi (free of charge graphic library) dugc vi~t theo chu~n C++ D6 h9a vector2D gio day dugc su d\lng rQng rai trong m9i lo?i ung d\lng va sU'Cm?nh cuacac bQ xu' ly hi~n t?i lam cho vi~c su dVng d6 h9a vector ch~t lugng cao (highquality vector graphic) r~t d~ dang Ch~t lugng cao co nghTa la nhiSu mucanti-aliasing (ch6ng rang cua) va subpixel accuracy Subpixel accuracythuong bi danh gia th~p nhung no r~t quan tr9ng trong vi~c dinh vi subpixel(subpixel positioning) No cling quan tr9ng trong vi~c thi~t l~p dQ rQng duo'ngth~ng theo phan s6 nghTa la co thS nho han 1 pixel Render anti-aliasing trongthvc t~ se trer nen vo dVng n~u khong co subpixel accuracy

Co thS chung ta nghT AGG la thu vi~n render t?O anh raster trong bQnh6 tu cac ph~n vector (vectorial representation) Nhung dinh nghTa nay chig~n dung MQt cach t6ng quat, chung ta co thS su dVng b~t ky thanh ph~n naocua AGG, khong b~t bUQcla rasterizer hay renderer

Trang 9

Chuang 1 - TAngquan v~AGG Trang 9

AGG cO th8 sit d\ll1g trong nhi~u img d\ll1g cfut d6 hoa 2D chAt lU(IDgcao va nhanh No co th~ duQ'Csit d\ll1g trong cac img d\ll1g GIS/cartography(h~ th6ng thong tin dia ly/bcin d6) ma cfut giao di~n d6 hoa ngum dimg hApdfut, cac lo~ d6 thi va bi~u d6 khac nhau, CAD/CAM AGG doc l~p n~n(platform independent), gon nhe va m~ me AGG ciing cO th~ dimg motcach hoan hao trong cac h~ th6ng nhOOg (embedded system) va thi~t bi didong (mobile device)

Hinh 1.1 - Ve dep d6 hoa cua AGG

Dum day la cac y tuemg va tri~t ly CllaAGG :

• Khit fang cua (Anti-Aliasing)

Trang 10

Chuang 1 - T6ng quan v~ AGG

• DQ chinh xac subpixel (Subpixel Accuracy)

Trang 10

• Ch~t lugng, hi~u su~t cao nh~t co thS d?t dugc, dQc l~.pn~n (platformindependence) va co kha nang tuang thich

• Linh dQng va co thSma rQng

• Thiet ke g9n nhy (lightweight design), 6n dinh va dang tin c~y

Cac d?c diSm chinh cua AGG :

• T?o da giac (polygon rasterizer) nhanh va ch~t lugng cao vai 256 mircAnti-Aliasing (ch6ng rang cua) Co thS slr d\mg 2 quy t~c to non-zero

va even-odd

• Vector tuy bien va raster pipeline

• Cac gradient b~t k5' va d6 bong Gouraud (Gouraud shading)

• Cac phep bien d6i affine anh vai cac lo?i nQi suy khac nhau tu' muc dangian bilinear den muc cao han nhu bicubic, spline 16, spline36, sinc,Lancosz va Blackman

• M~u t6 (pattern fill) vai cac phep bien d6i affine b~t k5' va phep biend6i ph6i canh (perspective transformation)

• Phep bien d6i ph6i canh va bilinear cua vector va dfr li~u anh

• Stroke generator vai cac line join (ph~n ket n6i do?n th~ng) va line cap(d~u do?n th~ng) khac nhau

• T?o duang th~ng d?ng dash (Dash line generator)

• Marker nhu d~u va du6i mUi ten (arrowhead/ arrow tail)

Trang 11

Chuang 1 - T6ng quan v~ AGG

• Xen da giac d?ng vector thanh hinh chi1'nh~t nhanh

Trang 11

• Xen mll'c th~p (low-level) thanh nhi~u vung hinh chli' nh~t (multiplerectangular regions)

• Alpha-masking

• Thu~t toan ve QUang th~ng ch6ng rang cua nhanh

• T?o m~u QUang th~ng (line pattern) v6'i hinh anh b~t kyo

• Render tren nhli'ng kenh mau rieng bi~t

• Th\l'c hi~n cac phep toan boolean Qa giac (Boolean polygon operations and, or, xor, sub) dl,ra tren thu~t toan xen Qa giac cua Alan Murta(General Polygon Clipper)

-• Th\l'c hi~n cac phep toan boolean d\l'a tren dong quet v6'i t6c QQnhanhhan 5-1 0 l~n so v6'i thu~t toan tren

• H6 tr9' text suodVng thu vi~n FreeType (http://www.jreetype.orgl) vaWindows API (GetGlyphOutlineO)

• Cac phep biSn Q6i phi tuySn tinh b~t ky (Arbitrary non-lineartransformations )

Thu vi~n nay QU9'Cbien dich va ki€m tra thanh cong tren cac n~n :

• Microsoft Windows (95, 98, NT4, 2000, XP, 2003) Trinh bien dichMicrosoft Visual C++ v5, v6, v7, Intel C++ v6, GNU C++ tu' v2.96 dSnv3.4.0

• Linux, GNU C++

• SunOS

Trang 12

Chuang 1 - T6ng quan v~ AGG

SVG (Scalable Vector Graphics - 86 h9a XML dimh cho Web) la ngan

(coverage) cua outline tren m6i a pixel (pixel cell) Ngoai ra trinh xem c6 mQtd?c di~m r~t t6t rna khang c6 0 b~t cli trinh xem khac 86 la lo~i b6 "v~n dScac c~nh kS nhau" ("problem of adjacent edges") N6 xu~t hi~n khi render

m6ng tren anh N6i dung ra, c6 th~ lo~i b6 hoan toan v~n dS nay khi cac dagiac hoan toan khang trong su6t Tuy nhien, c6 th~ giiun hi~u ling d6 d~ h~uh~t chung khang xu~t hi~n

Trong trinh xem SVG AGG cho chung ta diSu khi~n v~n dS nay b~ngcach thay d6i anti-aliasing gamma va dQ gian no Clla cac da giac Anti-GrainGeometry cung c~p mQt cang C\l dp-n gian d~ gian no hay co cac da giac l~i

Trang 14

Chuang 1 - T6ng quan v~ AGG Trang 14

Hinh 1.4 - Hinh T6ng th6ng Bill Clinton theo djOOd<mgSVG dU(fcrender

bfutgAGG

1.3.2 Creative Docs.Net

Day hi oong Cl,1 thi~t k~ dd hoa d\la tren vector (dimg tha vien AGG d~ve) dimg d~ OOanh chong t~o ra tai lieu (document), sach (manual), poster,hiOO minh hoa (illustration), set dd (schema), sa dd k~ ho~ch (plan), dd thj(flow chart)

Trang 15

h ~ .1.

*'C,callVC Doc> NO ~@}~

Hinh 1.5 - Giao dien chinh cua Creative Docs.NET (sir d\lllg AGG lam thu

vien d6 hQa)

1.3.3 KSVG

KSVG 1(\ hi~n th\lc cho ~c fa SVG cua W3C (World

Wide Web Consortium), du(]c thi~t k~1(\ plugin cho trinh duy~t

web Konqueror d~ hi~ tbi cac 3nh SVG KSVG sir d\lllg AGG la co ch~render chinh Va khi KSVG la mot phfut cua KDE thi nghia 1(\AGG da du(]cdua VaGtAt ca cac ban Linux k~til KDE mm

1.3.4 Trang web ban d3cua cong ty Dolsoft

Trang 16

Chuang 1 - TAngquan v~AGG Trang 16

Fo Eell "- f_ loch ~

Hinh 1.6 - Trang ban d6 Clla cang ty Dolsoft sir dWlg thu vi~n d6 hQa AGG

RealWorld Graphics hi trinh bien tw d6 hQa hi~n h6 trQ' cac rna hinh3D (3D model), anh raster (raster image), va Windows icon AGG duQ'c dimgd~ ve cac hinh tron muO'! (smooth) va thuc hi~n cac phep bi~n d6i anh ho~ccac hi~u ll'ng ~c bi~t

Trang 17

Chucmg 1 - TAng quan v~ AGG

Hinh 1.7 - Giao di~n ehinh eua RealWorld Icon Editor

1.3.6. irng dt}ng chtly tren PDA cua cong ty Dolsoft Inc

Hinh 1.8 - Ung d\Ulg sir d\lIlg AGG tren PDA eua Dolsoft

Trang 17

Trang 18

ChuO'ng 1 - T6ng quan v~ AGG

1.4 Su'cm~nh cua template trong C++

Trang 18

cho phep t6i uu code d~ co thi~t k~ linh dQng va thu?n 19i Cac lap da hinh chi

lam vi~c t6t a mtrc chi ti~t MQt tac V\1co ban trong db h9a vector la chuy~n

phep bi~n d6i affine Trong h~u h~t cac thu vi~n pipeline dugc "hardcoded"

m6i ph~n tll' pipeline

MQt phuong phap ti~p c?n khac la da hinh "tinh" ("static"

chung ta tr\1'c ti~p xay d\1'ng pipeline dQng luc ch~y (runtime) nhung trong h~uh~t truang hgp, chung ta khong th\1'c S\1'c~n no Con n~u th\1'c S\1'c~n da hinh

khi~n toan bQ chuc nang va hi~u su~t Chung ta co th~ chi slr d\1ng mQt ph~n

gian mau khac nhau, cac ham gradient, span generator S\1' cai d?t d\1'a trenlap da hinh truy~n th6ng se lam chung ta t6n cac lo'i g9i ham ao m6i pixel,

Trang 19

Chuang 1- T6ng quan v8 AGG

Trang 19

Chimg ta thie th\lC hi~n mQt cUQcthie nghi~m d~ so sanh hi~u nang giitaAGG va GDI+ Chi ti~t cUQcthie nghi~m nhu bang sau :

Pen(255,q,q,q, Pen(255,q,0,0 Pen(255,0,q,0 Pen(255,0,0,q

Brush(64,q,q, Brush( 64,q,0, Brush(64,0,q, Brush( 64,0,0,

255,q,q,q 255,q,0,0 255,0,q,0 255,0,0,q

128,255,255,255/1

128,255,255,255/1

LinearGradientBrush «255,255,0,0) & (255,0,255,0))

TextureBrush (Th\lc hi~n phep bi~n dAi tYl~ (0.9,0.7), phep

xoay, to hinh chit nh~t (1000, 450))

SolidBrush (255,255,255,255)

Trang 20

Chuang 1- T6ng quanV~ AGG Trang 20

Chimg ta th\l'c hi~n ve 255 IAn, mBi IAn 4 lo~ pen/brush khac nhau.Nhu v~ym6i ki~u thit co 1020 hinh (trir pattern & string) Chimg ta th\l'c hi~ndU(Jck~t qua nhu sau :

155564

AGG(ms)GDI+(ms)

Rectangle Rectangle

DrawBezier

Path Add

Rectangle

Trang 21

Chuang 1- T6ng quan v~ AGG Trang 21

AGG(ms)GDI+(ms)

Bi~u da tren (fa th~ hi~n tuong d6i t6c dO ella AGG Do phfuI text AGGsir d\lDg ham I~y duimg vian GetGlyphOutlineQ nen eh~ hon hin so vmGDI+

1.6.1 Anti-Aliasing va Subpixel Accuracy

Khir rang eua (anti-aliasing) la mot kY thuat tit nBi tiang dUQ'edimg d~phat tri~n eh~t Im;mg tnre quan eua aM khi hi~n thi ehimg tren cae thiat bi cO

do phan giai th~ No ph\l thuQc vao khil nang nhin eua con ngum (the humanvision) Hay nhin bire aM sau day va doan xem co y nghia gi

Hinh 1.9 - Anh phong 100 chit "stereo"

Trang 22

Chuang 1 - T6ng quan V~ AGG Trang 22

Trang 23

Chuang 1 - T6ng quan v~ AGG Trang 23

Hay quan sat trlrOng h<.JP(2) va (3) DuOng thfutg mau den m6ng lanhfrng gi chung ta cful noi suy N8u sir d\lng Subpixel Accuracy, chung ta sethat S\l co 2 tap pixel hi~n thj khac nhau cho diI th\lc t8 di~m dAuva di~m cuAicua dUOng thfutg rro vao ciIng mot pixel Va nhfrng dUOng thfutg nay th\lc S\l

co nhfrng dUOng ti8p tuy8n khac rna r~t quan trong N8u chUng ta sir d\mgBresenham kinh di~n rna khong quan tam d8n Subpixel Accuracy, chUng ta seth~y k8t qua (1) trong t~t ca trlrOng h<.JP.Di~u nay d~c bi~ quan trong d~ x~p

xi dUOng cong thanh nhfrng doan thfutg ng~ Nhung n8u sir d\ll1g aliasing (chAng rang cua) cong vm subpixel accuracy, chung ta du(Yck8t quatAt hon nhi~u

anti-Hinh 1.11 - DuOng xo~ Ac

dday co 3 duemg xo~ Ac du(,1cxftp xi tit nhfrng doan thfutg ng~ lien

ti8p nhau DuOng ben trai sir d\ll1gBresenham sAnguyen thong thuOng khi h~toa do du(Yclam trem d8n pixels (chUng ta se co k8t qua luong W n8u sir d\lngWindows GDI vi d\l nhu MoveTo/LineTo) DuOng iJ gifra sir d\lOg

Bresenham sA nguyen co chinh sira vm do chinh xac 1/256 pixel Con dUOngben phai sir d\ll1g ciIng do chinh xac 1/256 nhung cO them khir rang cua Ghinh& rfutg r~t quan trong d~ co kha nang xac dinh vi tri subpixel th\lc S\l cuacac phful doan thfutg N8u chUng ta sir d\ll1g h~ toa do pixel thong thuOng vmkhir rang cua, duemg xo~ Ac mu(,1fhon nhung vfut con x~u xi giAng nhudUOngxo~ &ben trai

Trang 24

Chuang 1 - T6ng quan v~ AGG Trang 24

Subpixel Accuracy th?m chi con quan tr9ng han dS di~u khiSn dQ daytr\fc quan cua duang thing Di~u nay chi co thS n~u chung ta co thu?t toclnkhl'l"rang cua t6t Anti-Aliasing va Subpixel Accuracy luon lam vi~c chungv6'i nhau HiSn thi hi~n nay (modem display) co dQ phan giai it nh~t 120 dpi,trong khi Subpixel Accuracy th\fc S\f len d~n 300 dpi Anh sau thS hi~n duangthing v6'i dQrQng b~t d~u tir 0,3 pixels va tang d~n 0,3 pixel

Trang 25

Chuang 1 - TAngquan v~AGG Trang 25

Hinh 1.14 - Cae chit su tilxinh x~

Hinh 1.15 -ChAt lUQ1lgrender gifraGDI+ va AGG

Trang 26

Chuang 1 - TAngquan v~AGG Trang 26

Hinh 1.16 - ChAt lUQ'Ilgrender gifra AGG va Xara X

1.6.2 Mau (Color), khong gian mau (Color Space) va dinb d~ng di~m

anb (Pixel Formats)

Mau trong AGG chi xuftt hi~n (y renderer, do la khi chimg ta dua dfrli~u vao vimg d~m khung (rendering buffer) Khong co cftu trUc hay lOp t6ngquat nao gi6ng nhu "color", thay vao do AGG luon lam vi~c vm khong gianmau (color space) Cl,lthS Co nhiSu khong gian mau tren th~ gim nhu RGB,HSV, CMYK va tftt ca chUng dSu co gim ht;m Vi dl,lnhu khong gian mauRGB chi la t~p mau nh6 cua t~ mau rna mAt ngu01 co thS nhin thfty duQ'c

(http://www.efg2.com/Lab/Graphics/Colors/Chromaticify.htm).thichUng tanh~ thfty RGB chi la mot phfuI nh6 cua no

Trang 27

Chuang 1- T6ng quan v~ AGG Trang 27

Hinh 1.17 - cm Chromaticity DiagramNoi cach khac co rAtnhiSu mim trong thS giro th\fc khong duQ'c thS hi~nduQ'c vro RGB, CMYK, HSV BAt kY khong gian mim mio ngo~ trir khonggian mau t\f nluen dSu co giro h?ll Vi v~y, viec khong co d6i tm;mg gi6ngnhu "color" la dS khong giro h?ll kha nang phat triSn Thay vao do la cac d6ituQ'llg lam vi~c vro khong gian mau Cl,l thS Hi~n t~ co agg: :rgba vaagg: :rgba8 lam viec vro khong gian mau ph6 biSn RGB (chinh xac la RGBcong them kenh trong su6t alpha) Khong gian mau RGB lam viec vro cacdjnh c4mg diSm anh (pixel format) khac nhau nhu RGB 24 bit ho~c RGBA 32bit vro thir t\f khac ~u (ban chAt chung cua chung vfuI la

~

Trang 28

<-Chuang 1 - T6ng guan v~ AGG Trang 28

RGB) Tuy nhien AGG khong h6 trg them khong gian mau nao khac nhungchung ta co th~ them cac khong gian mau khac thong qua 06i s6 template

"ColorT"

1.6.3 Do"nvi h~ t<,>ad{) (Coordinate Units)

V~ cO' b~mAGG ho~t 09ng vai h~ t9a 09 cua thi~t bi k~t xu~t, tren manhinh cua chung ta chinh la cac pixel Nhung khong gi6ng nhu cac thu vi~nkhac, AGG h6 trg Subpixel Accuracy ngay ttr luc o~u Nghia la h~ t9a d9 codan vi la double, gia tri phan s6 se co tac dVng AGG khong co cO'ch~ chuy~n06i nhung chuy~n t1r h~ t9a d9 th~ giai th\l'c sang h~ t9a d9 man hinh o~khong giai h~n S\l'mer r9ng Di~u quan tr9ng la eroau va khi nao chung ta th\l'chi~n chuy~n 06i Cac ung dVng khac nhau co th~ ooi hoi cac phuang phap ti~pc?n khac nhau AGG chi cung c~p b9 chuy~n d6i chuy~n tir viewport sangthi~t bi (device) Va trach nhi~m cua chung ta la include chung vao pipelinem9t cach thich hgp Chung ta co th~ vi~t lop oan gian cho phep chung ta ho~td9ng vai millimeters, inches ho?c cac dan vi V?t ly khac

Ben trong, rasterizer su dVng h~ t9a 09 s6 nguyen (integer) theo oinhd~ng 24.8 bit, 24 bit cho ph~n s6 nguyen va 8 bit cho ph~n th?p phan N~uchung ta mu6n slr dVng AGG trong cac h~ th6ng nhung ma xu ly s6 d~u ch~md9ng khong hi~u qua, chung ta v~n co th~ slr d\mg rasterizer vai giao di~n(interface) s6 nguyen Tuy nhien trong truang hgp nay chung ta khong th~ slrdVng pipeline h~ t9a 09 s6 thv'c

1.6.4 Scanline Container

Renderer mtrc th~p ho~t 09ng vai du' li~u oan gian nh~t va chung clingrfrt dan gian Trong th\l'Ct~, pixel format renderer khong phai la ph~n b~t bU9CCllathu vi~n va co th~ thay th~ ho?c vi~t I~i

Trang 29

Chuang 1 - T6ng quan v~ AGG Trang 29

D~ ve cac d6i tm;mg co So' ch6ng rang cua (anti-aliased) nen rasterizechung truac Ky thu?t rasterize chinh trang AGG dVa tren dong quet(scanline) Do hi da giac duQ'c chuy~n thanh mQt s6 dong quet ngang va sau

do cac dong quet nay duQ'c render l~n luqt Tuy nhien scanline rasterizerkhong phai la lap duy nh~t co th~ t?O ra scanline

D~ chuy~n thong t'in til rasterizer d~n scanline renderer c~n phai dungscanline container MQt scanline bao g6m cac span ngang khong giao nhau.T~t ca cac span phai duQ'c s~p x~p theo chi~u X NghTa la thao thac s~p x~pkhong duQ'c cung c~p, thu' tv phai duQ'c duy tri khi them (add) span vaoscanline N~u thli tv khong duQ'c dam bao thi co th~ t?O ra k~t qua khongluang truac duQ'c

Trang AGG co 3 lo?i scanline container:

• scanline _u - scanline container unpacked

• scanline-p -scanline container packed

• scanline _bin - scanlines binary, "aliased"

Hai scanline d~u co mang thong tin ch6ng rang cua (Anti-Aliasing),scanline cu6i thi khong co

T~t ca cac scanline container duQ'ct6i uu v~ t6c dQ, nhung khong t6i uuv~ vi~c slr dVng bQnha. Thvc t~ trong truang hqp x~u nh~t vi~c c~p phat bQnha se gay l6i Se khong sao n~u chung ta chi Slr dVng it scanline container,nhung khong phai la y ki~n hay d~ Slr dVng mQt mang cac scanline d~ luu trli'r9n v~n ml)t hinh bai vi no se t6n nhi~u bl) nha han hinh anh k~t qua

Sv khac nhau gifi'a packed va unpacked scanline container la unpackedscanline luon luu gili' gia tri bao phu (coverage value) cua t~t ca cac pixel

Trang 30

Chuang 1 - T6ng quan v~ AGG Trang 30

Con trong packed scanline t~t ca cac pixel c6 cung gia tri bao phu (duqc k~thqp vai solid span)

scanlinc_u (unpacked)

-1:

Hinh 1.18 - Scanline va span

C6 ve nhu suod\lllg packed scanline t6t hO'n nhung trong th\l'c t~ thikh6ng h~n vcfty,scanline-p lam vi~c nhanh hO'nkhi render cac da giac lan, d6

la khi vung da giac Ian hO'nchu vi nghla la s6 pixel Nhung khi render text t6tnh~t la SlI dVng scanline _ u boi vi c6 it span duqc XlI ly Sv khac bi~t d~n bal~n va s6 span cung quan tr9ng d6i vai hi~u su~t Ngoai ra trong h~u h~t spangenerator nhu gradient, d6 b6ng Gouraud, cac phep bi~n d6i anh, scanline-pkh6ng duqc dung

Ngày đăng: 01/09/2023, 22:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w