Tietokonegrafiikan perusteet T-111.4300 3 op Luento : Tulostusprimitiivit Lauri Savioja 11/06 D primitiivit / 1 Sisältö Mallintamisen alkeita Perusprimitiivit (GKS) attribuutteineen Näyttömuisti D primitiivit / 1
Mistä graafinen kuva koostuu? Kuva koostuu pisteistä (pixel, picture element) Näköaisti, verkkokalvosolut Jokaisella pisteellä väri ja sijainti D primitiivit / 3 Geometrinen esitystapa Pisteet kuvataan matemaattisesti Pisteet äärettömän pieniä ja tiheässä - kuinka kuvataan äärettömiä pistejoukkoja? koordinaatteja rajaava epäyhtälö, esim. F(x,y)<0 pisteet sisäänsä sulkeva reuna, esim. monikulmio äärellisen kokoisia soluja, rasteri kuvaus rajatulta parametrialueelta geometriseen avaruuteen: f(u,v) -> (x,y,z) D primitiivit / 4
Geometrinen esitys (esimerkkejä) Alueen ulottuvuus voi olla vaihteleva (pienempi tai sama kuin mallinnusavaruuden ulottuvuus) 0-ulotteinen alue = yksi piste ilmaistavissa koordinaateilla p = ( x, y) tai p = ( x, y, z) 1-ulotteinen alue = jana, viiva, käyrä määrittelyksi riittävät päätepisteet sekä kuvaus niitä yhdistävästä käyrästä (1-ulotteinen aliavaruus) Esim. suora s = p + ( p " ); t![0,1] 1 t p1 p p 1 D primitiivit / 5 Geometrinen esitys (esimerkkejä) ympyräviiva s = c + r cos!, r sin! );! "[! 1,! ] (! 1-ulotteinen alue on kuvattavissa yhden parametrin avulla suoran janan määrittelyyn riittävät pelkät päätepisteet minkä tahansa ulotteisessa avaruudessa D primitiivit / 6 3
Geometrinen esitys (esimerkkejä) -ulotteinen alue = alue, pinta määrittelyksi riittävät reunaviiva (1-ulotteinen) sekä kuvaus pinnasta, jolla reuna on (-ulotteinen aliavaruus) Esim. ympyrä monikulmio y p x p 1 p 3 x + y < R joukko janoja ( p i, p i+ 1) ympyrä parametrimuodossa: ( x, y) = c + ( r cos!, r sin! ); r "[0, R]! "[! 1,! ] D primitiivit / 7 Geometrinen esitys (esimerkkejä) -ulotteinen alue on kuvattavissa kahden parametrin avulla 3-ulotteisessa avaruudessa olisi lisäksi määriteltävä pinta, jolta - ulotteinen ympyrä tai monikulmio rajataan 3-ulotteinen alue = tilavuudellinen kappale, volyymi määrittelyksi 3-ulotteisessa avaruudessa riittää kappaleen - ulotteinen reunapinta Esim. monitahokas on joukko tasomaisia monikulmioita pallo voidaan ilmaista epäyhtälöllä x + y + z < R D primitiivit / 8 4
Graafiset primitiivit Geometrinen malli, so. tietorakenne, joka sisältää riittävän informaation kuvion pisteiden määrittämiseksi Graafinen tulostusfunktio, so. aliohjelma, joka piirtää kuvioon kuuluvat pisteet (parametrina on vastaava tietorakenne) Graafinen primitiivi on yksinkertaisin käsiteltävissä oleva perusolio. Monimutkaisemmat kuvat/mallit muodostuvat niitä yhdistelemällä esim. hierarkkisina rakenteina. Alkeiskuvioiden määrittelyä - piirtäminen vaatii erilaisia algoritmeja laitteesta riippuen - laiteohjaimet Laitetekniikka pyritään eristämään sovellusohjelmasta laiteohjainten avulla D primitiivit / 9 Graafiset primitiivit Miettimistuokio D primitiivit / 10 5
Graafiset primitiivit GKS Viivaketju: POLYLINE (n, x, y) Pistejoukko: POLYMARKER (n, x, y) x x x x Merkkijono: TEXT (x, y, string) kirjaimia Monikulmioalue: FILL-AREA (n, x, y) Rasterikuva: CELL-ARRAY( paikka, koko, värit) D primitiivit / 11 TULOSTUSPRIMITIIVIEN ATTRIBUUTIT Parametrit määrittävät primitiivin paikan ja muodon. Attribuutit määrittävät muita ominaisuuksia, kuten värin, viivatyypin, jne. kullekin primitiivityypille omansa. Yleensä attribuutit ovat modaalisia, ts. kerran määritelty arvo on voimassa kaikille primitiiveille, kunnes se muutetaan. D primitiivit / 1 6
Murtoviivan (Polyline) attribuutit viivan tyyppi set_linetype (lt) yhtenäinen (solid) katkoviiva (dashed) pisteviiva (dotted) viivan leveys set_linewidth_scale_factor (lw) 0.5 1.0.0 suhdeluku järjestelmän "normaaliin" viivaan verrattuna (lw = 1.0) D primitiivit / 13 Polyline-attribuutit jatkuu viivan väri set_line_color_index (lc) indeksi taulukkoon, jossa käytettävissä olevat värit on tarkemmin määritelty värivalikoima voi olla hyvin vaihteleva mustavalkea (vain vaihtoehtoa), harmaasävyasteikko 8..56 vaihtoehtoa sisältävä väripaletti noin 17 miljoonaa sävyä sisältävä "täysvärikuva D primitiivit / 14 7
Color look-up table y raster (6 bit planes) x 40 0 1 3 40 color look-up table (LUT).... Red Green Blue 0x356 0 0 1 1 0 1 0 1 0 1 1 63 6-bit index > 1-bit color Väritaulukon (color LUT) periaate. Paletissa 64 vaihtoehtoa 4096 mahdollisesta väristä. RGB 4-bittiä (8 x 3) täysvärikuva, 104 x 104 vie 3 MB muistia 8-bittinen frame-buffer vie 1 MB + LUT D primitiivit / 15 Merkkijoukon (Polymarker) attribuutit merkin tyyppi set_marker_index (mi) esim. tähti, risti, neliö, jne... + merkin koko set_marker_size_scale_factor (mw) merkin väri set_marker_color_index (mc) vastaavat kuin viivoille D primitiivit / 16 8
Väritettävän alueen (Fill-area) attribuutit alueen täyttötapa set_fill_area_interior_style (fs) vaihtoehdot: avoin (hollow) yhtenäinen (solid) kuvioitu (patterned) alueen väri set_fill_area_color_index (fc) vastaava kuin viivoille kuviointi set_fill_area_pattern_index (pi) D primitiivit / 17 Tekstiprimitiivin (Text) attribuutit kirjasin set_text_font (tf) vaihtoehtoja: Times, Arial, Σψµβολ (Symbol) kirjainten väri set_text_color_index (tc) vastaava kuin muillekin primitiiveille kirjainten koko set_character_height (ch) 0.4 0.6 0.8 1.0 1. 1.6.0.4 3.0 suhdeluku "peruskokoon" (1.0) verrattuna painotekniikassa perusyksikkö on "piste" (n. 1 / 7 ") joissakin järjestelmissä säädettävissä erikseen kirjainten leveys, korkeus ja välistys D primitiivit / 18 9
Text-attribuutit (jatkuu) kirjainten asento set_character_up_vector (dx, dy) suhde dy / dx määrää kirjainten kaltevuuden ch_up kirjoitussuunta set_text_path (tp) suuntavaihtoehdot: D primitiivit / 19 Text jatkuu rivien tasaus set_text_alignment (h,v) kertoo, missä kohden tekstiriviä on primitiiville määritelty piirtämisen aloituspiste (x,y) vaihtoehdot: h (vaakatekstille) = left / center / right v (pystytekstille) = top / bottom Esim. kaikilla sama aloituspiste! r i g h t b o t t o m l e f t t o p [ Huom! Primitiiviä Cell_Array ei käsitellä tässä ] D primitiivit / 0 10