Author
vuongnhan
View
215
Download
0
Embed Size (px)
Raunarska grafika
Principi prikazivaa
22.05.2017.Principi prikazivaa2
Vektorski prikazivai (1)
Vektorski prikazivai (vector, stroke, line drawing, caligraphic displays): prikazivaki ureaji razvijeni sredinom 60-ih i u irokoj upotrebi do kraja 80-ih termin vektor je korien kao sinonim za liniju; stroke je kratka linija karakteri su konstruisani kao sekvence takvih linija
Tipian vektorski sistem se sastoji od: displej-kontrolera (DC) povezanog kao U/I jedinica
na centralnu procesnu jedinicu (CPU) displej-bafer memorije katodne cevi (CRT)
Preuzeto sa: http://www.cca.org/vector/Preuzeto sa: http://excelsior.biosci.ohio-state.edu/~carlson/history/tree/images/sage.jpg
22.05.2017.Principi prikazivaa3
Vektorski prikazivai (2)
MOVE
10
15
LINE
400
300
CHAR
Zdravo
LINE
...
JMP
Displej bafer
Procesor (CPU)
Displej-kontroler
(DC)
Zdravo
Bafer sadri displej-program koji je generisao raunar Displej-program sadri komande za:
pomeranje pera u taaku (MOVE x,y) crtanje linija od tekue take do zadate take (LINE x,y) crtanje karaktera (CHAR string)
Komande za crtanje interpretira displej-kontroler Kontroler alje digitalne koordinate taaka generatoru vektora
22.05.2017.Principi prikazivaa4
Vektorski prikazivai (3)
Generator vektora konvertuje koordinate taaka u analogne napone kola za otklon mlaza
Kolo za otklon pomera elektronski mlaz koji pie po fosfornoj oblozi CRT Sutina je da zrak prati taku po taku
specificiranim redosledom displej-programa Tehnika prikaza na vektorskim ureajima se naziva
sluajnim skeniranjem (random-scan) Poto svetlosni izlaz fosfora opada u desetinama ili najvie stotinama s,
DC mora ciklino da izvrava program da osvei fosfor barem sa 30Hz Bafer koji sadri program - bafer za osveavanje (refresh buffer) Instrukcija JMP na kraju programa formira petlju za ciklino osveavanje ezdesetih, bafer memorija i dovoljno brzi kontroleri
da osveavaju na (barem) 30Hz bili su skupi samo nekoliko hiljada linija se moglo prikazati bez vidnog treperenja
22.05.2017.Principi prikazivaa5
Rasterski prikazivai (1)
U ranim sedamdesetim godinama poinje razvoj rasterske grafike Smatra se da je rasterska grafika doprinela razvoju oblasti
vie nego bilo koja druga tehnologija Rasterska grafika je zasnovana na tehnologiji televizije (raster-scan) Pre televizije film Perzistencija ljudskog vida:
najvie 24 razliite slike u sekundi Princip filma (pokretne slike):
osvetljena slika, zamraenje,... Iz tehnikih razloga u TV:
25-30 slika/s Za vreme 1/30s oseaj osvetljaja
jenjava treperenje Ideja dva puta osvetliti ekran
jedna slika iz 2 poluslike (interlacing)
22.05.2017.Principi prikazivaa6
Rasterski prikazivai (2)
Katodna cev (CRT) 1. elektronski topovi 2. elektronski mlazevi 3. kalemovi za fokusiranje 4. kalemovi za otklon 5. spoj anode 6. maska 7. fosfor na staklu cevi 8. trijade RGB fosfora
Preuzeto sa: http://en.wikipedia.org/wiki/Image:CRT_color_enhanced.png (Created by Sren Peo Pedersen)
22.05.2017.Principi prikazivaa7
Rasterski prikazivai (3)
Napon elektronskog topa:u(t)
t
nivo belog
nivo crnog
nivo zamraenjatHFP
tHB
tHA tHS tHBP
tH
Horizontalna perioda mlaza: tH= tHA + tHB = tHA + (tHFP + tHS + tHBP ) Horizontalna frekvencija (uestanost linije): fH = 1/tH Po analogiji, perioda slike: tV= tVA + tVB = tVA + (tVFP + tVS + tVBP ) Vertikalna frekvencija (uestanost slike): fV = 1/tV
22.05.2017.Principi prikazivaa8
Rasterski prikazivai (4)
Rasterski prikazivai (raster display) smetaju primitive za prikaz u bafer za osveavanje (video-memoriju) primitive su linije (prave i lukovi), karakteri i popunjene povrine primitive su razloene na piksele, kao komponente od kojih su obrazovane
Displej-kontroler prima i interpretira sekvence komandi komande su sline onima kod vektorskih displeja
definiu primitive u vektorskom obliku kontroler vri rasterizaciju konverziju iz vektorskog u rasterski oblik
U jednostavnijim sistemima, kao to su bili kod ranih personalnih raunara: kontroler displeja postoji samo kao softverska komponenta grafikog paketa bafer za osveavanje je samo deo CPU memorije iz bafera moe da ita podsistem za prikaz slike
esto se naziva video-kontrolerom video-kontroler proizvodi stvarnu sliku na ekranu
22.05.2017.Principi prikazivaa9
Rasterski prikazivai (5)
Binarno-monohromatska slika 8 u displej-baferu
Displej-kontroler
(DC)
00000000000000000000000000000011111000000001000100000000111110000000010001000000001111100000000000000000000000000000000000000000000000000000000
Displej bafer
Procesor (CPU)
Video-kontroler(VC)
22.05.2017.Principi prikazivaa10
Rasterski prikazivai (6)
Kompletna slika na rasterskom prikazivau se formira iz rastera Raster predstavlja matricu:
niz horizontalnih rasterskih linija svaka linija je red individualnih piksela
Raster se uva kao matrica piksela koja reprezentuje celu povrinu ekrana Cela slika se skenira sekvencijalno od strane video-kontrolera:
linija po linija od vrha prema dnu i zatim ponovo od vrha za svaki piksel, intenzitet mlaza se postavlja tako da reflektuje intenzitet piksela u sistemima sa bojom kontroliu se tri mlaza
po jedan za crvenu, zelenu i plavu boju prema odgovarajuim komponentama vrednosti svakog piksela
22.05.2017.Principi prikazivaa11
Rasterski prikazivai (7)
Frekvencija osveavanja slike: u ranim danima rasterske grafike TV uestanost od 25-30Hz, sa protkivanjem danas - od 60Hz navie (120Hz za stereoviziju), da se izbegne treperenje slike
Sadraj bafera za osveavanje slike: u vektorskim sistemima: program (kodovi operacija, koordinate krajnjih taaka) u rasterskim sistemima: pikseli slike
Termini: bafer slike (bafer za osveavanje) memorija u kojoj se uva slika bitmapa i piksmapa koriste se za oznaavanje oba pojma:
bafer slike (memorija) i niz vrednosti piksela koje se mapiraju 1:1 u piksele na ekranu (sadraj memorije) termin bitmapa uglavnom se koristi za binarno-monohromatsku sliku termin piksmapa (pixmap, skraenica za pixel map) - za sisteme sa vie bita po pikselu
22.05.2017.Principi prikazivaa12
Rasterski prikazivai (8)
Memorija bafera slike: jeftina poluprovodnika RAM za bitmape se pojavila u ranim 70-im
proboj koji je uinio da rasterska grafika postane dominantna tehnologija najpre jedan bit po pikselu, dvonivoska (binarno-monohromatska) slika
bitmapa za ekran sa rezolucijom 1024 x 1024 piksela je samo 128KByte kasnije vie bita po pikselu, slike u skali sivog
8 bita po pikselu, 256 nijansi sive, za 1024 x 1024 piksela 1MByte danas barem 8 bita po osnovnoj (R,G,B) boji piksela, slika u boji
Dvonivoske (monohromatske) katodne cevi crno-bele (ili crno-zelene) slike neki plazma paneli su imali crno-narandaste slike
22.05.2017.Principi prikazivaa13
Rasterski prikazivai (9)
Rani sistemi u boji: 8 bita po pikselu, doputaju 256 boja (u isto vreme na ekranu)
Kasniji sistemi: 24 bita po pikselu, doputaju16 miliona boja 24 bita i rezolucija1280 x 1024 zahteva samo 3.75MB RAM-a 32 bita po pikselu
24 bita su namenjena za reprezentaciju boje 8 u kontrolne svrhe (alfa kanal)
Savremeni sistemi: 96 i vie bita po pikselu na rezoluciji 1280 x 1024 (ili veoj):
2x32 bita se koristi za dvostruko baferisanje jedna slika se prikazuje, druga crta 4x32 bita se koristi za etvorostruko baferisanje kod stereoskopije 32 bita se koristi za Z-bafer postoje i drugi baferi (stencil-bafer)
22.05.2017.Principi prikazivaa14
Prednosti rasterske grafike
Glavne prednosti rasterske grafike nad vektorskom: nia cena, skenirajua logika jednostavnija
regularno, repetitivno rastersko skeniranje je daleko bre i manje skupo za implementaciju od sluajnog skeniranja vektorskih sistema
generatori vektora moraju biti veoma prezicni da obezbede linearnost i ponovljivost otklona mlaza
sposobnost prikazivanja popunjene povrine bojom ili teksturom bogat nain prenosa informacije, vaan za realistine slike 3D objekata
proces osveavanja je nezavisan od kompleksnosti slike (broja primitiva, npr. poligona):
veina ne zapaa treperenje na rasterskim ekranima sa f > 70Hz vektorski prikazivai trepere kada broj primitiva u baferu postane preveliki
22.05.2017.Principi prikazivaa15
Nedostaci rasterske grafike (1)
Obaveza rasterizacije (sken-konverzije): primitive kao to su linije i poligoni se zadaju pomou njihovih temena
i moraju se konvertovati u piksele koji predstavljaju primitive u baferu slike rasterizacija se moe obavljati:
softverski (gde je CPU odgovoran za svu grafiku) specijalno-namenskim hardverom - ipom procesora rasterske slike
(raster image processor, RIP) korienim kao koprocesor ili akcelerator
Dinamika za realno-vreme je raunski daleko zahtevnija na rasterskim sistemima:
transformisanje 1000 linija na vektorskom sistemu transformisanje 2000 krajnjih taaka
u rasterskom sistemu se transformiu krajnje take + svaka primitiva mora tada biti rasterizovana koristei njene nove krajnje take
kada je CPU odgovoran i za transformaciju krajnjih taaka i za rasterizaciju,samo mali broj primitiva moe biti transformisan u realnom vremenu
HW za transformacije i rasterizaciju je potreban zbog dinamike u rasterskim sist. kao rezultat napretka u VLSI, ovo je postalo ostvarivo ak u skromnijim sistemima
22.05.2017.Principi prikazivaa16
Nedostaci rasterske grafike (2)
Aproksimativna priroda prikaza glatkih linija: potie od same prirode rastera vektorski sistem moe da crta kontinualnu, glatku liniju
(i ak neke glatke krive) rasterski sistem moe samo da aproksimira glatke linije
pikselima na rasterskoj mrei ovo moe prouzrokovati poznati problem "nazupenosti" u obradi signala ovakva manifestacija (greke uzorkovanja) se naziva aliasing pojavljuje se kada se funkcija kontinualne promenljive sa naglim promenama intenziteta
aproksimira diskretnim uzorcima
tehnike za antialiasing na sistemima sa skalom sivog ili u boji gradacija u intenzitetu susednih piksela na ivicama primitiva
umesto iskljuivog postavljanja piksela na maksimalni ili nulti intenzitet
22.05.2017.Principi prikazivaa17
Princip grafikog kontrolera
Primer grafiki displej-kontroler i82720
Projektovanje grafikog kontrolera rezolucija: 512x512 broj boja: 8 pixmapa: log28=3bit/pix
3 memorijske ravni sa 1bit/pix, svaka za jednu osnovu boju RGB
22.05.2017.Principi prikazivaa18
Organizacija video-memorije
22.05.2017.Principi prikazivaa19
Proraun video memorije
Za rezoluciju 512x512 = 256Kpixel x 1 bit/pixel = 256Kbit organizacija memorijske banke: 16Kword x 16bit/word = 256Kbit ip dinamikog RAM-a 2118: 16K x 1bit
potrebno 16 ipova, svaki za 1 bit rei od 16bita za adresiranje 16Kbita potrebno: 214 = 27row x 27col
po 7 adresnih linija za adresu reda, odnosno kolone
Signali RAS i CAS (row/column address strobe) sa odgovarajuom adresom aktiviraju vrstu/kolonu memorijskog ipa
BSEL selektuje banku memorije DBIN se aktivira za itanje iz video memorije
22.05.2017.Principi prikazivaa20
Organizacija jedne banke VM
Grafika protona obrada (1)
OpenGL 4.4 ematski prikaz: Pojednostavljeno (OpenGL 2):
22.05.2017.Principi prikazivaa21Preuzeto sa: http://romain.vergne.free.fr/teaching/IS/SI03-pipeline.html Preuzeto sa: http://openglinsights.com/pipeline.html
Grafika protona obrada (2)
OpenGL 4 novi tipovi programa za senenje (shaders)
22.05.2017.Principi prikazivaa22Preuzeto sa: http://romain.vergne.free.fr/teaching/IS/SI03-pipeline.html
Memorija grafikog kontrolera
Baferi bafer boje (color buffer) bafer dubine (depth/Z buffer) bafer ablona (stencil buffer)
Memorija za geometriju (temena, stranice, normale) Memorija za teksturu
22.05.2017.Principi prikazivaa23
Bafer ablona
Bafer ablona (stencil buffer) obino sadri 8 bita po pikselu (256 razliitih vrednosti) obino deli istu memoriju sa z-baferom, npr. 24:8 bita, depth:stencil
Test ablona (stencil test) prihvata/odbacuje crtanje piksela poredi se sadraj bafera ablona sa zadatom referentnom vrednou sledi obradu fragmenta, prethodi testu dubine
Sadraj bafera ablona moe da se aurira za vreme iscrtavanja da se postignu neki efekti
bafer boje bafer ablona rezultantna slika
22.05.2017.Principi prikazivaa24
Preuzeto sa:https://learnopengl.com/#!Advanced-OpenGL/Stencil-testing
Bafer ablona korienje
Jednostavan nain korienja bafera ablona omogui se upis u bafer ablona crtaju se objekti, aurirajui sadraj bafera ablona onemogui se upis u bafer ablona crtaju se objekti uz omoguen test ablona
OpenGL / Direct3D imaju podrku za rad sa baferom ablona Funkcija testa ablona:
primenjuje se na vrednost u baferu i zadatu referentnu vrednost
NEVER, ALWAYS, EQUAL, NOTEQUAL,
LESS, LEQUAL, GREATER, GEQUAL
22.05.2017.Principi prikazivaa25
Bafer ablona operacija za upis
Operacija za upis u bafer ablona kada se primenjuje:
test ablona nije proao test ablona proao, nije proao test dubine oba testa prola
ta se radi u odgovarajuem sluaju:
22.05.2017.Principi prikazivaa26
Akcija Opis
GL_KEEP Zadrava se tekua vrednost smetena u bafer
GL_ZERO Vrednost se postavlja na 0
GL_REPLACE Vrednost se zamenjuje referentnom vrednou
GL_INCR Vrednost se inkrementira za 1 ako je manja od maksimalne
GL_INCR_WRAP Isto kao GL_INCR, samo postaje 0 ako se prevazie maksimum
GL_DECR Vrednost se dekrementira za jedan ako je vea od minimalne
GL_DECR_WRAP Isto kao GL_DECR, samo postaje maksimalna vrednost ako podbaci 0
GL_INVERT Invertuje bite tekue vrednosti u baferu ablona
Bafer ablona primena
Rastersko oivienje postavi se ALWAYS funkcija i ref. vr. 1
iscrtaju se objekti u baferu ablona je 1 na mestu gde su objekti vidljivi
postavi se NOTEQUAL funkcija i ref. vr. 1 jedinice u baferu ablona tite nacrtane objekte
onemogui se test dubine i upis u bafer ablona skalira se svaki od objekata malim skala faktorom nacrtaju se objekti bojom oivienja omogui se upis u bafer ablona i test dubine
22.05.2017.Principi prikazivaa27
Preuzeto sa:https://learnopengl.com/#!Advanced-OpenGL/Stencil-testing
Karakterisitike kontrolera primer
nVidia Geforce GTX 1080 Ti CUDA cores: 3,584 Texture units: 224 ROP units: 88 Base clock: 1.48GHz Boost clock: 1.582GHz Video memory: 11GB GDDR5X Memory clock: 5.505GHz Memory data rate: 11Gbps
22.05.2017.Principi prikazivaa28
22.05.2017.Principi prikazivaa29
Savremeni grafiki kontroleri
nVidia GeForce GTX 1080 Ti
nVidia Quadro P6000
AMD RadeonRX 580