3d graphic pipeline

Upload: thanh-nguyen

Post on 15-Jul-2015

47 views

Category:

Documents


0 download

TRANSCRIPT

3D graphic pipelineL im u:

Rock khng h c v ngnh g lin quan n vi tnh t tr c n g ,cho nc word/excel/acess cn ch a bao gi i h c ,tuy nhin v i am m v vi tnh ni chung v v ho ni ring nn t mnh tm ti trn cc website cc bi review, artice . .,trong qu trnh d ch lin t c s d ng t n l c vi t v cc t i n online . Do bi ny c th c nhi u sai st ,nhi u ch d ch ch a t i , nn khi xem xong vui lng cc bro no c hi u bi t v v n ny n u th y c sai st xin gp dm . Ngoi ra bi ny mang tnh ch t th o lu n ,khng ph i l bi h ng d n hay ch b o ai nn ai c ki n xin gp vo xy d ng thread ,cc ng gp c a bro s c dng ch nh s a thread ny . 3D graphic pipeline : B i v tnh ch t lm vi c l p i l p l i c a h a 3D v c ng v kh i l ng tnh tan ,kh i l ng thng tin nhi u , nn ton b qu trnh x l h a c chia nh thnh nh ng b c .Nh ng b c nay h at ng 1 cch trnh t v c g i l 3D graphic pipeline . M t v d v pipeline l vi c gi t ,cng vi c gi t g m 3 b c : gi t ,s y v ph i ,n u h at ng theo ki u pipeline th l t th 1 sau khi gi t s c chuy n sang giai an s y th l t th 2 s c chuy n qua giai an gi t . Khi l t th 1 c em ph i th l t th 2 c s y ,l t th 3 c b vo gi t . Trn th c t GPU s h at ng theo nh ng trnh t nh v y . y l ngh a c a 3 D graphic pipeline . y c n phn bi t v i s pipeline m cc nh s n xu t th ng a ra qu ng co , y l s l ng pixel pipeline ( s l ng pixel shader ) ho c ROPs ( ty website ) , y c s d ng t pipeline v cc units ny ho t ng 1 cch song song ,v d nh vid c 16 pixel pipeline th 16 ci ny trong cng lm vi c 1 lc ch khng ph i l ci ny lm xong m i n ci kia lm ,t ng t i v i ROPs ,tuy nhin theo quan i m c a Rock th s d ng s ROPs so snh t c m nh y u c a vid trong th i i m hi n nay ng h n ( s gi i thch cu i bi ) y l cc giai an c a 3D graphic pipeline :

3D Pipeline _T ng qut v

cc giai

o n c a n

1. Application/Scene Scene/Geometry database traversal Movement of objects, and aiming and movement of view camera Animated movement of object models Description of the contents of the 3D world Object Visibility Check including possible Occlusion Culling Select Level of Detail (LOD) 2. Geometry Transforms (rotation, translation, scaling) Transform from Model Space to World Space (Direct3D) Transform from World Space to View Space View Projection Trivial Accept/Reject Culling Back-Face Culling (can also be done later in Screen Space)

Lighting Perspective Divide - Transform to Clip Space Clipping Transform to Screen Space 3. Triangle Setup Back-face Culling (or can be done in view space before lighting) Slope/Delta Calculations Scan-Line Conversion 4. Rendering / Rasterization Shading Texturing Fog Alpha Translucency Tests Depth Buffering Antialiasing (optional) Display API : Tr c khi i vo cc b c ny ti xin gi i thch s v API .API vi t t t c a t Application Programming Interface hi n t i bao g m : SGI's OpenGL, Microsoft's Direct3D, v Pixar's Renderman. API gi ng nh 1 c ng giao ti p gi a ph n c ng v ph n mm ,cc nh vi t ph n mm s vt nh ng vi c m vid c n lm API d ch l i cho driver c a vid hi u nh ng vi c c n lm .Ng c l i cc nh s n xu t c ng vi t driver API hi u .

Khng gian 3D : Model space : Model y l cc hnh ng i ,nh c a , v t . .( ta s nh c l i ph n sau c a bi ) .M i model s c 1 h thng t a ring c a n . Trn m i model c ng c 1 i m i u khi n ( control point hay handle ) , di chuy n model ny th cc nh thi t k ch c n di chuy n i m ny v c ng nh i m ny c th gip vi c rotate model l i. World space : Khi cc model c em ra t cc engine ( h th ng cc model ) v a

vo world space , y h th ng t a c a model s do cc model c h th ng t a khc nhau )

c

i thnh 1 h th ng chung (

View space : Trong khng gian ny gc nhn s c em vo, gc nhn ny s c ph n m m quy nh .Nhn trong hnh, gc nhn s c di n t d i hnh thp b c t c t ,nh ng model g ns c s p x p v pha near clipping plane, nh ng model n m xa s cs p x p g n v i far clipping plane trong 1 frame .Nh ng v t n m ngoai hnh ny s khng c v ln trn frame .

Scene space : y c ng chnh l khng gian trong monitor c a ta ,nh ng model sau khi cs p x p trong view space s c chuy n sang scene space , ng ngh a v i vi c chuy n cc t a 3D c a hnh model sang t a 2D ( x,y ) .Cc gi tr z khng ph i cb i m s c nh ng d ng vo vi c c t i nh ng hnh b ch ng ln nhau ,c t i nh ng texture m t sau c a hnh . By gi ta i su vo phn tch 3D t ng b c c a 3d Graphic pipeline :

B

c 1 : application/scene :

Trong qu trnh ny bao g m cc nhi m v : Scene/Geometry database traversal Movement of objects, and aiming and movement of view camera Animated movement of object models Description of the contents of the 3D world Object Visibility Check including possible Occlusion Culling Select Level of Detail (LOD) H u h t cc game hi n t i khi t o ra khng th v l i t t c cc hnh ng i ,nh c a ,sng .. ni chung t t c nh ng v t th trong game ( nh ng ci ny g i l model nh ni trn ) m th ng l y nh ng model c s n c a 1 s hng chuyn t o model ( engine ), v d hi n t i c cc engine nh Doom ,unreal ,Valve, Crytek .Ni thm r ng nh ng model ny c t o b i cc hnh c b n ( geometric primitive ) th ng l nh ng hnh tam gic ,cc hnh tam gic ny h p l i v i nhau t o nn hnh ng i ,cy c i ,c n nh ., ngoi vi c cung c p nh ng model ,engine cn cung c p c AI ,physic ( qu n o c a nhn v t ,n c ,khi ,v n ), audio ,network Nh ng model ny khi c s d ng trong cc game th s c s a l i cht t ty theo nhu c u c a game .

Trong qu trnh (Geometry database traversal , Movement of objects, and aiming and movement of view camera, Description of the contents of the 3D world) th ph n m m s search trong engine nh ng model no c n dng trong frame c a mnh , sau em vo cho gpu x l ( render ) ,vi c em cc hnh t frame ny sang frame khc s t o nn s chuy n ng c a hnh nh, ngai ra chnh ph n m m c ng em vo game gc nhn c a 1 c nh c a game . Ngoi ra b c u ny ,ph n m m c ng c qu trnh l ai b nh ng v t khng th th y (Object Visibility Check including possible Occlusion Culling ) ,trong qu trnh ny ph n mm s check xem nh ng v t no b che ph b i nh ng v t khc ,n u b che han ton th lo i hon ton n ra ,n u che 1 ph n th b 1 ph n . Ngai vi c check v t tr c v t sau ,ph n m m cn check trn t ng model xem model c l t vo trong ci hnh thp b c t c t ( view space ) hay khng ? N u v t khng l t vo n s b lo i ra ,n u l t vo 1 ph n ,nh ng ph n n m ngoi s b l ai b .Vi c tnh tan s h n th ny s gip gi m 1 cng v c v 1 ci v ch c a GPU. Khng ch d ng cc nh l p trnh cn s d ng cc th thu t gi m t i cho GPU ,khi check xem model c n m c trong view space hay khng ,thay v dng model check th ng i ta s d ng 1 hnh h p xem s hi n th c a model . Vi d : 1 model g m 10 000 tam gic ,th ng i ta dng 1 hnh h p g m 12 tam gic thay th ( m i m t g m 2 tam gic ) i di n ,n u hnh h p c th hi n th c th model s c v ngay trong hnh h p .Nh n u hnh h p khng hi n th c trn frame th n gi m c vi c ph i render cho 10 000 tam gic . Cc model th ng c build nh ng m c detail kh nhau ( ph h p v i setting c a game nh low ,medium ,high detail ) v d 1 model ci my bay c th c build 10.000 tam gic ,5.000 tam gic ,3000 tam gic .ty ng i ch i ch n setting m a model vo .Nh vo tnh ch t ny m khi a vo GPU cc model ,cc nh l p trnh l i th c hi n 1 th thu t tinh gi m kh i l ng cng vi c c a GPU ,khi nh ng model v tr xa ( g n far clipping plane ) th h s lm gi m s l ng tam gic c a model l i ,s gi m ny khng nh h ng t i ng i ch i v nh ng v t qu xa r t kh cho ng i ch i nh n ra c.

M i model cng nhi u tam gic th cng trng gi ng th t ,m i nh c a tam gic ( vertice ) bao g m nhi u thng in v n ( t a ,mu s c .. ) M t s model trng gi ng th t i h i ph i t n r t nhi u tam gic nh t l nh ng v t c hnh cong ,s gi m detail c a cc v t cong ny c th t o nn hi u ng ( bumpy ).Do tinh gi m s l ng vi c ph i lm c a GPU cc nh l p trnh ph i th c hi n cng vi c gi m cc vertice nh ng khng lm gi m ch t l ng c a model ,b ng cch ghp cc tam gic t o nn nh ng d i ( strip ) hay hnh qu t ( fan ) . D i y l v d :

Nhn trn hnh b n s th y n u ghp 2 hnh tam gic l i th s l ng nh c a model s gi m i 2 nh ,ngh a l s gi m thng tin v 2 inh ( t a ,mu s c ) ,t ng t v i hnh qu t kia . Sau vi c tinh gi m ,model c a vo cho GPU x l . Tm l i nh ng g b n nn nh b c 1 c a 3D graphic pipeline ny l : + Nh ng model c a game u trong cc engine + Qu trnh ny c CPU x l , a thng tin vo GPU ,tnh ton AI ,physic ,audio ,network .. + Tr c khi cc hnh nh c a vo cho GPU x l th c qu 1 qu trnh optimize do cc nh l p trnh th c hi n ,do game m i c b n pre beta ,beta .. ( m t trong nh ng v d v vi c tranh ci G80 y u t trn n n game dx 10 trong forum amtech ch ng minh vi c ny )

B

c 2 : Geometry

Trong qu trnh ny bao g m cc nhi m v : Transforms (rotation, translation, scaling) Transform from Model Space to World Space (Direct3D) Transform from World Space to View Space View Projection Trivial Accept/Reject Culling (or can be done later in Screen Space) Back-Face Culling (can also be done later in Screen Space) Lighting Perspective Divide - Transform to Clip Space Clipping Transform to Screen Space 3D world v t th or model c th c d ch chuy n ho c bi n i nh vo 4 php bi n i chnh ( transform ) .Php bi n i th c hi n trn v t th nh ng th c ch t n bi n i cc vertices c a cc v t th b ng cc php ton ph c t p. Chnh cc php bi n i ny s lm cho cc model trong cc game khc nhau i cht . Translation : php bi n i ny cho php di chuy n v t theo 3 tr c c a to

Rotation : php bi n i gip v t xoay theo 1 tr c tu Scaling : php bi n i gip v t thay i kch th c c a v t ( lm cho v t to h n ho c nh i) Skewing : thay i hnh d ng c a v t th Trong giai o n geometry ny c ng c s di chuy n model t Model space vo World space r i t World space vo View space ( t t nhin nh ng khng gian ny l khng gian o ,ch l khng gian m card ho d ng nn tnh ton ) .Khi di chuy n vo cc khng gian ny th to c a v t s theo khng gian v c ng tu thu c vo php bi n i pha trn s d ng . Trivial Accept/Reject Culling (or can be done later in Screen Space) Back-Face Culling (can also be done later in Screen Space) Lighting Perspective Divide - Transform to Clip Space Clipping Transform to Screen Space giai o n Geometry ny c ng c 1 s k thu t lm gi m vi c tnh ton cho cc giai o n sau l Trivial Accept hay Reject Culling v Back Face Culling Reject Culling/Trivial Accept :k thu t ny c ng gi ng nh k thu t nh c t i giai o n trn ,n xem xt v t c n m trong view space hay khng ,sau tm nh ng ph n th a ra ngoi view space c t i . K thu t ny th c hi n kh n gi n ,n xc nh nh ng v t c n ph i c t b ng cch nh xem to ( x,y,z ) c a vertices c n m trong view space hay ko ? n u khng n m trong th s b i ton b tam gic ny . Vi c c t nh ki u ny s th a l i nh ng tam gic c 1 ho c 2 nh n m trong view space nh ng 1,2 nh cn l i n m ngoi . Back Face Culling : K thu t ny cho php b i nh ng tam gic n m m t sau c a model ,tnh trung bnh ra th c s tam gic b lo i b do n m m t sau c a model t i 1 th i i m nh t nh .Tuy nhin ch 1 vi tr ng h p nh ng tam gic m t sau model khng b b i l tr ng h p model c tnh ch t trong su t . Lighting : Khng t ng i t ng nghe t Transform and lighting 2 t ny t khi i ring r 1 mnh nh ng khng c ngh a l sau qa trnh transform nh ni trn th s n giai o n tnh ton nh sng ,m giai o n ny th ng x y ra ngay sau khi v t c chuy n vo view space .Hi u ng nh sng trn v t th c th c hi n b ng cc t cc model v nh sng v s ph n chi u vo cc v t th . Clipping : giai o n clipping ny v t c ng s c c t nh giai o n Culling trn nh ng qu trnh th c hi n ph c t p h n , giai o n trn khi nh ra 3 to (x,y,z ) c a vertices n m ngoi view space th n s b hon ton cn v i Clipping th n khng b hon ton tam gic m c t nh ng ph n th a c a tam gic n m ngoi view space m thi. Tm t t l i : + Trong giai o n Geometry ny b x l vertex shader ( vertex shader processor ) s th c hi n nhi m v bi n i ( transform ) v tnh ton nh sng cho hnh nh ( lighting )

B

c 3 : Triangle setup

Trong qu trnh ny g m cc nhi m v : Back-face Culling (or can be done in view space before lighting) Slope/Delta Calculations Scan-Line Conversion N u Back face culling th c hi n n a . c th c hi n giai o n trn th gian o n ny khng cn

Slope/Delta calculations : C 2 i m c a 1 tam gic ( tam gic thnh ph n model ) ta s c 1 c nh hay 1 ng th ng , ng th ng s c d ng y= mx + b ,chnh m l gi tr delta hay slope . Sau nh vo gi tr slope, thu t ton digital differential analyzer (DDA) s chuy n cc c nh c a tam gic ( tam gic thnh ph n c a model ) sang gi tr x,y c a pixel. K t qu c a qu trnh ny l thng tin v v tr c a model s c chuy n thnh cc thng tin v tr c a pixel ( trn monitor ) ,thng tin v mu s c c a pixel v n ch a c v s c th c hi n nh vo giai o n rendering pha sau s trnh by . Trong qu trnh chuy n i thng tin ny , ch c thng tin c a 2 vertices ( nh ) l c chuy n tr c ti p thnh thng tin c a pixels, cn nh ng i m cn l i trn c nh ( t o b i 2 vertices ) th c DDA suy ra , t vi c ny s d n n hnh nh b hi n t ng r ng c a . Tm lai : + Qu trnh ny tm cc chuy n cc v tr c a model t view space sang scene space ( khng gian monitor ) + Do cch tnh ton c a qu trnh ny m hnh nh c th b hi n t ng r ng c a

B

c 4: Rendering / Rasterization

Trong qu trnh ny g m cc nhi m v : Shading Fog Alpha Translucency Tests Shadowing Antialiasing Depth buffering Display Shading :Qu trnh ny c th c hi n b i nhi u thu t ton : Flat shading ,Gouraund shading ,Phong shading .Nh ng thu t ton ny c s d ng cc gi tr v nh sng trn cc vertices c a tam gic sau n i suy ra bng trn b m t c a tam gic ,t d n n cc model s c bng . Ngoi ra giai o n ny cc texture ( ng l ph i g i l texture map : b n texture ) c dn vo nh ng v t th /model ,texture l nh ng hnh 2D c th l b c t ng ,m t t ( Xem hnh ).Trong nh ng game/ ng d ng hi n

t i m i m t v t khng ch l 1 l p texture c dn vo m l nhi u l p ( multitexture ),cc l p c th l g m base texture , bump map ,light vector .... k t h p l i .

Fog : K thu t ny tnh ton cho n n c a c nh v t nh b che ph b i 1 mn s ng v che y i nh ng ch ko c texture hay ni cch khc n che ln nh ng ch texture ch a xu t hi n.Tuy nhin cc b n ng l m l n y fog khng che ln nh ng texture ho c object xu t hi n ,v d nh c n nh xu t hi n trn frame th ko bao gi cn c fog trn c n nh ,s m nh t c a nh ng texture trn c n nh nguyn nhn l do b l c v t li u ( texture filtering ) ( v Rock th y nhi u post cc b n hay ghi , i lo i nh l hnh nh b fog . ) ,nh n m nh l i 1 l n n a fog ch xu t hi n nh ng vng khng c texture ,khng c model hay v t th . Alpha transluscency tests : y l m t k thu t nh m t o nn nh ng v t c tnh ch t trong su t v c ng d ng render v n ,khi ,n c ,nh ng t m knh .. Tm t t l i : + Giai o n ny (Shading ,Fog v Alpha blending)l giai o n cho model nh ng hi u ng bng ,dn nh ng texture ln model ,cho model c c hi u ng trong su t .. + Giai o n ny c th c hi n b i b x l pixel shader Sau nh ng giai o n Shading ,Fog v Alpha blending nh ng model hay v t th g n nh hon ch nh trn view space ,tuy nhin cho hnh c xu t hi n trn monitor nh ng texture trn model by gi c n ph i c bi n thnh nh ng i m trn monitor ( pixel ) .Nh l i trong qu trnh scan_line convertion th trn monitor ch c b khung c a model/v t th ch v n ch a c mu s c ,mu s c trn b khung ny s c nh ra b ng cch dn cc texture trn model/v t th vo ,b khung ( th c ch t l dn cc ph n t nh nh t/texels c a texture vo ) Vi c dn ny c th c hi n nh b l c texture filtering ( b l c v t li u )

B m t v b l c v t li uCC PH NG PHP L C n texture - ngu n c a php

Tr c h t, chng ta lm quen v i m t s khi ni m lin quan l c:

Texture (v t li u/vn b m t): l hnh nh dng "lt" hay "dn" ln m t b m t. V d : n n nh b ng g hay u l cc m t ph ng nh nhau, nh ng khc nhau b i ch t li u "dt" ln. Texel: m t i m nh (pixel) trn texture. Ta bi t r ng texture ch l hnh nh g c. Cn hnh nh k t qu trn mn hnh c t o ra t vi c l y m u (sampling) trn texture. i m nh trn mn hnh (hay frame buffer) c g i l pixel, cn i m nh c l y m u trn texture g i l texel (g i t t c a texture pixel). Texture filtering (l c v t li u): m ch vi c l y m u (sample) cc texel v th c hi n cc php ton trn cc m u c l y (th ng l cc php tnh trung bnh c tr ng s ) cho ra i m nh k t qu . Texture filtering ch dng " t" hay "dn" (map) texture m t cch hi u qu nh t (v hi u n ng, v ch t l ng...) ln b m t trong khng gian ba chi u. N khng bao g m cc thao tc lm thay i n i dung i m nh nh chi u sng, t o bng t i... 1. L y m u th Ph ng php l y m u n gi n nh t l ng v i m i i m c n v , ta tm m t i m ph h p nh t trn texture. y l ph ng php khng dng b l c, c bi t n v i ci tn nearest neighbour (lng gi ng g n nh t) hay nearest-point sampling (l y m u i m g n nh t). Ph ng php ny th hi n r t nhi u nh c i m nh ng cho t c r t cao. i n hnh c th k ra y hai nh c i m: Khi hnh nh ch l n h n hnh nh ngu n (ch ng h n khi ta ng st m t b t ng): ta c c m t ng nh cc texel c phng to ra v hnh nh nh l c ghp b i cc kh i vung th thi n. L do l m t texel c l y m u cho nhi u pixel. Khi hnh nh ch nh h n hnh nh ngu n (ch ng h n khi ta ti n ra r t xa kh i b t ng): ch c ch n thng tin s b m t mt do s pixel ch t h n s texel, d n n c texel khng c l y m u. 2. Mipmap Mipmap l cc bi n th theo cc kch th c khc nhau c a cng 1 texture.

T i sao ph i dng n cc mipmap? Gi s b n ang ng trn n n nh b ng g ch, ch c ch n nh ng vin g ch g n b n trng s "to" h n theo ph i c nh, v do chi ti t h n. xa, s c t i m h n hi n th texture. Do m texture b co l i. Php co s lm m t nh ng chi ti t quan tr ng nh ng vi n xi m ng c a cc vin g ch. L do l ch m t s t i m trn texture c l y m u (ty vo lo i b l c b n s d ng m m t mt khc nhau,

ty vo s texel c l y m u cho m t pixel). T h n n a, khi b n di chuy n trn n n g ch, cc i m l y m u trn texture thay i theo. i u ny gy ra c m gic nhi u trn mn hnh v cc i m nh thay i lin t c t texel ny sang texel khc. c bi t khi n n g ch c nhi u hoa v n v i t ng ph n cao. Nhi u cn th hi n i m cc hoa v n trng nh r i r c, khng lin t c do cc texel c l y m u m t cch r i r c. Cc mipmap lin ti p nhau c kch th c m i chi u chnh nhau 2 l n (nh v y texture nh h n, 1 i m c t o ra t 4 i m texture l n h n). Cc card ho ngy nay u cho php sinh mipmap t ng. T c l ch c n cung c p texture m c chi ti t nh t. ki m tra vi c s d ng cc mipmap, ng i ta dng cc Color Mipmap. Ng i ta t cc texture cc m c khc nhau v i cc mu khc nhau. Do , khi hi n th ln mn hnh, ta c th d dng nh n th y cc texture khc nhau c l y m u nh th no. 3. Linear Filtering (l c tuy n tnh) L c tuy n tnh hi u m t cch nm na l thay v ta chuy n tr c ti p t texel ny sang texel khc khi l y m u, cc texel l i c chuy n qua d n d n m t cch tuy n tnh. Trong php l c tuy n tnh, v i m i chi u l c, m i i m nh c t o ra t trung bnh c tr ng s c a hai texel. Php l c tuy n tnh n gi n nh t l Bilinear Filtering. Php l c ny t o ra pixel k t qu t 4 texel g n nhau. G i l Bilinear (song tuy n tnh) v n tuy n tnh theo hai tr c c a texture. Hnh sau y cho th y tc d ng c a l c tuy n tnh khi thu nh m t trang web so v i vi c dng ph ng php nearest-point sampling. Do c nhi u texel c l y m u h n nn n i dung m t mt gi m i. i v i vi c phng to m t hnh, l c tuy n tnh lm cho vi c chuy n ti p gi a cc texel tr nn m t m, khng b c m gic v cc kh i vung. Trong ho 3D v game hi n nay, g n nh ta khng cn g p nearest neighbour n a m thay vo l cc ph ng php l c tin ti n, ph bi n nh t l l c tuy n tnh. 4. Trilinear Filtering (l c tam tuy n tnh) Nh ta th y, Bilinear filtering khng dnh dng t i cc mipmap. Ni cch khc, bilinear l c t ng texture trong mipmap m t cch ring r . Do , ch chuy n ti p gi a cc m c mipmap l ra mp n i. K t qu l trng hnh nh ch nh c t o b i cc "b ng" hay "d i" mipmap song song. i u ny c bi t kh ch u khi b n di chuy n trong game. C c m gic nh c nh ng l p hnh nh lun lun ch y pha tr c m t b n. Nh ng ng n m ngang c nh mu n ch n vo m t b n. Cc b ng texture b bi n m t v i trilinear, hnh tr nn "m t" h n

Trilinear filtering gi i quy t v n ny b ng cch th c hi n l c tuy n tnh trn c cc mipmap, lm cho cc texture c ho tr n vo nhau trn hnh ch. Trong cc card ho hi n nay, "chi ph cho bilinear filtering r t th p, g n nh "mi n ph (theo ngh a khng nh

h ng n hi u n ng). Nh ng trilinear th khng nh v y, n l m t b l c t n km. V n khng ch t ng g p i s i m l y m u (t 4 ln 8) m cn yu c u ph i x l nhi u texture cng lc. Do , hi n nay xu t hi n nhi u php t i u th c hi n trilinear hi u qu h n. 5. Anisotropic filtering (l c b t ng h ng)

Trong th c t ho 3D, texture khng n thu n c v v i hnh dng nh ban u c a n. Do ph i c nh ba chi u, hnh vung hay hnh ch nh t (l d ng g c c a texture) tr thnh hnh bnh hnh, hnh thang... Trong b l c b t ng h ng, khc v i Linear Filtering, cc texel khng c l y m u theo m t hnh d ng i x ng ( ng h ng) m theo m t hnh b t quy t c c i u ch nh ty theo ph i c nh. Ta c th hnh dung m i pixel ch trn hnh nh k t qu l m t hnh vung. T ng ng v i hnh vung ny c th l hnh ch nh t, hnh bnh hnh hay hnh thang... trn texture. D i y l m t hnh minh ho khi nh x cng m t hnh trn nh trn hnh nh ch sang texture. Ty v tr c a hnh trn m cc vng t ng ng trn texture khc nhau. Anisotropic filtering ti n b h n h n so v i linear filtering v n bm st hnh d ng th c c a i m nh, cung c p kh n ng th hi n th c v y h n n i dung c a i m nh, lm gi m thi u m t mt n i dung trn hnh k t qu . Anisotropic filtering c nhi u m c khc nhau (nh ta th y trong cc thi t l p c a driver v game), ty thu c vo s texel cl ym u cho m i i m nh ch. 1x l y m u 4 texel (ta ch a xem xt n mipmap), nn k t qu t ng t bilinear; 2x l y m u 8 texel; 4x l y 16; 8x l y 32 v 16x (m c cao nh t hi n nay) l y 64. Ta d dng nh n th y r ng cng l y nhi u texel cng i h i texture chi ti t. Do , v i cc m c cao, mipmap cng b y su vo trong. L c b t ng h ng c th k t h p v i bilinear ho c trilinear thnh bilinear anisotropic ho c trilinear anisotropic. V i bilinear anisotropic, l c di n ra c l p trn t ng m c mipmap; v i trilinear anisotropic, l c c ho tr n trn hai m c mipmap g n nh t. Tuy nhin, cho n hi n nay, l c b t ng h ng v n l m t "mn" xa x . N v a yu c u l y m u m t s l ng l n cc i m, l i v a s d ng php tnh c tr ng s ph c t p. Do , nhi u php t i u c th c hi n. B M T C A T I U

1. Brilinear Optimized Trilinear Hi u m t cch n gi n th "t i u" ngh a l "lm t h n ch khng ph i t t h n". Nh thi t k c g ng gi m cc thao tc c yu c u cho k t qu chnh xc nh m lm cho ph n c ng ch y nhanh h n m t nh h ng n c m nh n c a ng i s d ng (n c th em l i k t qu m h u h t cc i m nh u b sai khc, nh ng tc d ng v m t th gic gi a hai hnh nh l i chnh l ch khng ng k ). Php t i u i n hnh nh t v c ng c dng ph bi n nh t l brilinear, m t "php lai" gi a trilinear v i bilinear, thay th cho trilinear. M c ch chnh c a trilinear l lm m t i cc "d i" mipmap trn hnh k t qu . Brilinear thu gi m vng ha tr n cc m c mipmap vo st cc ng ranh gi i v th c hi n bilinear hon ton (t c ch dng m t m c mipmap) vng chnh gi a cc "d i" ny. Nh v y t c l gi m ng k vi c s d ng trilinear v thay th

b ng vi c dng bilinear. Ta c th th y r i u ny qua hnh minh ho dng color mipmap d i y. V i Brilinear, kho ng chuy n ti p mipmap b thu h p v c m t kho ng ch c l c Bilinear

Ni chung r t kh pht hi n ra brilinear b ng m t th ng khi s d ng cc mipmap th c (ch ng h n khi ch i game). Trong cc game thng th ng, brilinear c th thu c n h n 30% hi u n ng so v i full trilinear. H u h t cc chip ho m i hi n nay u dng ph ng php ny. Ta c th th y ty ch n s d ng "trilinear optimizations" trong driver c a cc card h a m i dng GeForce. 2. T i u gc trong Anisotropic Filtering

Th t ng t ng b n ang ng i di n v i m t b c t ng. V b c t ng song song v i mn hnh nn n l m t hnh " ng h ng" (cc h ng c b o ton t l ). Do , vi c l c b t ng h ng trn b c t ng khng khc bi t so v i l c tuy n tnh. C ng gi ng nh v y v i cc m t ph ng khc. M i m t ph ng c m t b t ng h ng (t l chnh l ch gi a cc h ng) c c i nh t nh ty thu c vo gc nhn m t ph ng . Do v y ch c n m t m c l c b t ng h ng nh t nh m khng c n thi t ph i dng m c l c cao h n. V d n u texture b bi n d ng t l 1:2, 2xAF l ( ng nhin ngay c trn m t m t ph ng, t l bi n d ng c a texture c ng lin t c thay i, nh c ch ra trong hnh v tr c). T i u gc trong Anisotropic Filtering t n d ng i u ny nng cao hi u n ng x l. N p d ng cc m c l c khc nhau cho cc gc khc nhau. Ngh a l ngay c khi b n yu c u m c l c 16x, s c nh ng gc no m php l c ch di n ra m c 2x. Th c t r t t gc c th c hi n m c 16x hon ton. T i u gc c p d ng trong t t c cc card ho c a ATI dng 9xxx v cc dng X, trong cc card NVIDIA GeForce FX 5xxx, 6xxx, 7xxx. 3. T i u theo m c mipmap

T i u theo m c mipmap ni m t cch ng n g n l ty thu c vo m c mipmap khc nhau m p d ng cc m c l c khc nhau (ch ng h n cc m c l c b t ng h ng). Do cc m c mipmap th p, texture gi m chi ti t i r t nhi u. Nn ng i xem th ng khng nh n th y vi c thay i ph c t p trong php l c. 4. chnh xc c a cc php tnh

S bit c s d ng l u tr cc gi tr , cc tham s , tr ng s trong cc php tnh nh h ng r t l n n chnh xc c a k t qu . V d d th y nh t l s bit xc nh tr ng s trong php l c tuy n tnh. S bit ny quy t nh c bao nhiu m c chuy n ti p v mu s c gi a hai m c (hai mu c a hai texel k nhau). V hi n nay ng i ta ch dng 8 bit cho m i thnh ph n mu, nn c ng ch c n t i a 8 bit tr ng s l c th miu t y cc m c mu chuy n ti p (256 m c). y l s bit c dng trong cc card GeForce. ATI s d ng t bit h n. V i 6 bit, cc card ho c a ATI ch c th th hi n c 64 m c chuy n ti p, ngh a l khng y hon ton.V i t m c chuy n ti p, o n chuy n ti p s tr nn km m t m.

Tuy nhin, th c t r t kh th y s khc bi t ny. V thng th ng cc texture ch c phng to kho ng nh t nh. Ngh a l ch c m t s t i m nh chuy n ti p gi a hai texel, nn c ng ch c n m t s t m c chuy n ti p. D v y, php l c tuy n tnh cn c dng trong cc thao tc tm mu khc (ch ng h n trong b bng i m pixel shading) nn v i t bit h n, chnh xc trong k t qu cu i cng s gi m. ng nhin, t bit c ng c ngh a l t x l h n v nhanh h n. KI M NGHI M TH C T C r t nhi u cng c v ph ng php ki m nghi m nh ng v n lin quan n cc php l c. Nh ng c l d dng v quen thu c nh t v i nh ng ng i ch i game ho c am hi u v card h a l ph n m m 3DMark c a FutureMark. Cng c ny c ch c n ng "Filtering & AA" r t tr c quan. y ti xin gi i thi u vi h ng ki m nghi m l th th y vai tr v nh h ng qua l i c a cc cng ngh k trn b ng FutureMark 3DMark05. Ch n ch c n ng Filtering & AA c a 3Dmark05 Tr c khi ch y ch c n ng ny, b n ph i m b o driver h a khng "p" b t c thao tc no nh AntiAliasing hay Anisotropic Filtering. N u khng, cc thay i trong ch ng trnh s khng "nghi m". Ban u, b n t Mag Filter, Min Filter v Point v MipMapping v None xem Nearestpoint sampling. Th di chuy n, b n s th y nhi u. Sau , a c ba thnh Point, b n s th y r t r cc l p Mipmap (nh t l khi di chuy n, ng phn nh cc l p mipmap di chuy n "theo st" b n) v th y lun c "tc h i" c a vi c khng dng l c tuy n tnh. Cc kh i vung xu t hi n, c bi t khi b n t ng m c chi ti t LOD bias ln (ko x ch cc mipmap l i g n b n). Dng ch c n ng Mipmap Coloring b n th y cng r. By gi b n chuy n Mag/Min Filter ln Linear, b n c Bilinear. Cc l p mipmap v n cn r, nh ng nhi u v kh i vung th bi n m t. By gi b n t c ba tham s l Linear, b n c Trilinear. Khng cn cc l p mipmap n a. B n c th th v i Mipmap Coloring. Cc l p mu gi chuy n ti p ha tr n vo nhau. Ti p theo, b n chuy n Mag/Min Filter ln Anisotropic (n u Anisotropy level khc 1, t n v 1 tr c). Ch ng c khc bi t g ng k c . Nh ti trnh by, Anisotropic 1x g n gi ng v i Linear Filtering do u ch dng 4 m u (khng tnh t i cc l p mipmap). T ng d n Anisotropy Level, b n d dng pht hi n th t s ch t n t i cc m c 1x, 2x, 4x, 8x, 16x. Cc m c khc u c lm trn ln ho c xu ng cc m c ny. S d ng Mipmap Coloring th y r ng v i m c l c cng cao, mipmap cng b y vo su. N u card c a b n l " i m i", s d ng t i u gc trong Anisotropic Filtering, th th t ng c nhin! H u h t cc gc trong 16x v 4x c l c gi ng h t nhau! H u h t cc gc AF 4x v 16x c l c gi ng nhau

By gi th nghi m v sao Anisotropic Filtering l i "hay" h n Linear Filtering. B n y Anisotropy Level ln 16x, v xem Bilinear/Trilinear Anisotropic Filtering (thay i Mipmap gi a Point v Linear). Sau chuy n v Trilinear (c ba tham s u l Linear). B n s th y hnh r t m . Gi m LOD bias xu ng hnh r h n, b n s th y hnh "c v r h n nh ng

th c ra l i l nhi u, nh t l khi b n di chuy n. N u c card GeForce 6xxx, b n c th th ch c n ng Trilinear Optimizations b ng thi t l p trong card ho . Tuy nhin thay i khng tr c ti p trong lc ch y ch ng trnh nn khng c r. Trn y, ti gi i thi u cc ph ng php l c v t li u v c cc "b kp" m cc nh s n xu t card h a dng t ng hi u n ng h a. Hi v ng bi vi t c th ph n no gip cc b n c c ci nhn r h n v h a 3D.Ph n texture filtering ny r t quan tr ng trong vi c so snh v ch t l ng hnh nh c a 2 dng GPU ,t cc bro c th hi u c t i sao ng i ta ni vid c a ATi cho hnh nh p h n vid c a nVidia ( tuy nhin ch trn l thuy t ) . Sau bi ny Rock s c g ng d ch 1 bi n a so snh v b l c c a 2 hng ny ,tuy nhin n u cc bro khng c v khng hi u s v v n ny th s t o nn 1 thread tranh lu n di vi tr m trang v v n ny . Antialiasing : Antialiasing l 1 m ng kh l n v c ng kh c tuy nhin hi n t i Rock ch bi t c 2 lo i Ordered Grid Super Sampling (OGSS) v Jittered Grid Super Sampling (JGSS) ,2 l ai ny t cn s d ng trong cc game hay software v n lm t n Fillrate v Bandwidth r t nhi u ,cn nh ng k thu t AA khc th Rock ang nghin c u hy v ng s m c th d ch c v b sung vo ph n ny . n gi n cc k thu t ny lm gi m nh ng R ng c a nh ng c nh hnh nh ( nh chng ta bi t trong qu trnh scan_line convertion t o ra nh ng artifacts d ng nh ng r ng c a ny ). Nh ng ph ng php kh r ng c a m i gip cho gi m nh ng r ng c a ny nhi u h n m t n t Fillrate v Bandwidth h n. Z_buffer and Z_stencil : 2 b nh m ny lm vi c c lin quan n nhau do ti xin m t chung v i nhau . Nh ni trn khi qu trnh scan_line convertion th chuy n cc to c a i m trn model thnh to c a pixel ( trn monitor ) th cc gi tr Z c a to trong model s c ghi nh vo Z_buffer ,khi xu t hnh ra monitor GPU s bi t xu t pixel no ra ,pixel no khng nn xu t ra.

Nhn trn hnh b n s th y 2 hnh tam gic xm v en ,hnh tam gic en b hnh tam gic xm ch ng ln ,khi xu t ra monitor th ph n b che ph b i tam gic xm s khng c xu t ra . Tr c tin t t c cc gi tr c a i m Z trn tam gic mu en s c ghi vo Z_buffer ,khi render n tam gic xm n u nh ng i m c a tam gic xm n m ln nh ng pixel m tam gic en chi m ,th l p t c vi c so snh gi a 2 gi tr Z c a 2 i m t ng ng ,gi tr Z no cho th y tam gic n m xa h n th s khng c ghi vo Z_buffer ho c s b xo trn Z_buffer. By gi chuy n sang Z_Stencil buffer , y c ng l b nh m nh ng n ch a nh ng thng tin c a cc model c bi t ,th no l model c bi t ? v d nh trong nh ng game flight simulator th n s ch a thng tin c a model t m ch n gi c a bu ng li ( HUD ), khi my bay bay th nh ng model khc s hi n ra pha tr c HUD ,do HUD bao gi c ng n m tr c t t c nh ng model m i xu t hi n . Tuy nhin m i frame n u c v t g xu t hi n t i nh ng pixel m HUD chi m th n v n a cc gi tr Z c a v t v HUD vo Z_buffer so snh. Nh vo b nh m ny m nh ng model th ng xuyn n m tr c cc model khc khng ph i render l i nhi u l n ,m ch thm nh ng texture ,ho c effect m i m thi ( v d nh n b n vo HUD ,ho c nh n ng chi u vo HUD ) Tm l i : + Cc giai o n th c hi n ( texture filtering ) do TMU ( texture mapping units ) th c hi n ,trong khi (antiliasing ,shadow ,Z_buffer, Z_stencil ) th do ROPs th c hi n ( Raster operation units ) +T c c a ROPs v TMU th hi n pixel fillrate v texture fillrate ( c th g i l t c ph cc pixel v t c ph cc texture ) 2 ci ny c g khc nhau ? .Khi 1 model c xu t ra monitor th trn model s c ph nhi u texture . V d : 1 vid c 16 ROPs ,32 TMU v c core clock l 100Mhz ,khi xu t ra 1 v t/model th n ch xu t ra c t i a l 16 pixels v m i pixel ny ch c 1 texture duy nh t ,vid c core clock l 100 Mhz th n c s pixel fillrate l 100Mhz x 16 = 1600 pixels/s Vid c kh n ng g n c 32 texture ln 1 pixel trong 1 clock c ngh a l s texture fillrate = 100MHz x32 texture /s , ho c xu t c 2 pixels m i pixel c 16 textures ,tuy nhin s l ng pixel gi i h n v n l 16 pixels ( m i pixel c 2 textures ) .