of 29 /29
Računarska grafika Principi prikazivača

23 Principi prikazivaca - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ri5rg/materijali/predavanja/23 Principi... · Ideja – dva puta osvetliti ekran ... – obi čno deli istu memoriju

Embed Size (px)

Text of 23 Principi prikazivaca - rti.etf.bg.ac.rsrti.etf.bg.ac.rs/rti/ri5rg/materijali/predavanja/23...

  • 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