• kresba, grafika, malba, 3D model, foto
  • údaje (data) – vyjádření skutečnosti, jež má určitý význam a lze je sdělovat, přenášet, uchovávat v paměti a dále zpracovávat
  • data – údaje, jež jsou počítačem zpracovávány podle instrukcí příslušného programu
  • grafická data – popis objektů grafického charakteru, která mohou být podle způsobu kódování obrazu do čísel obvykle bitmapová nebo vektorová
  • základní grafické prvky – primitiva (body, přímky, vektory, úsečky, lomené čáry, kružnice, křivky, mnohoúhelníky-polygony, text), obrysy, výplně, objekty
  • soubory – skupina informací, které spolu nějakým způsobem souvisejí, vystupují při zpracování na počítači jako celek a jsou uloženy na paměťovém médiu pod svým označením
  • grafické soubory – soubory obsahující zakódovaná grafická data, která jsou určena k uchování, konverzi, zpracování a zobrazení na počítači, resp. převedení do materializované podoby
  • formát souboruzpůsob jakým jsou data, která tvoří soubor, uložena do vnějších paměťových struktur počítače, jak se přenášejí v datovém toku a jak se obnovují
  • grafický formátstandard definující efektivní a logický způsob popisu a zpracování grafických dat a jejich ukládání do vnějších paměťových struktur počítače, jejich přenášení v datovém toku, organizování a opětné obnovování

Struktura grafického formátu

  • hlavička – informace nutné k interpretaci grafických dat definující verzi grafického formátu
    • způsob uložení grafických dat (bitmapový, vektorový)
    • počet bitů pro uložení barevné informace o pixelu grafický mód nebo paletu barev
    • velikost obrazu = rozměry, poměr stran, počet řádků v předloze, počet pixelů na řádku apod.
    • informace o případné kompresní metodě
  • zakódovaná grafická data – bitmapová nebo vektorová
  • pata – např. s paletou barev určenou barevnou hloubkou

Metody popisu grafických dat

  • metoda rastrového popisu – reprezentace rastrového obrazu
    • popis obrazu prostřednictvím základních obrazových bodů, pixelů (px, picture element) – sestavené v řadách a sloupcích dávají obraz
  • metoda matice – maticová reprezentace
    • obraz je reprezentován jako dvourozměrné pole bodů – pixelů, každý pixel je vyjádřen 1 nebo více bity = bitová mapa, bitmapa
    • bitmapová data popisující čísly body v euklidovském prostoru
    • metoda maticové reprezentace je nejjednodušší, ale také nejméně úspornou metodou popisu digitálního obrazu
  • metoda kvadrátového stromu
    • algoritmus rozděluje obraz na čtverce
    • testuje jejich pokrytí a pokračuje v dělení
    • vhodná při větších stejně barevných plochách (č.b.)

 

009Metoda kvaddrátového stromu

  • metoda vektorového popisu
    • popis prostřednictvím objektů, které se v obraze nacházejí
    • matematické vyjádření těchto objektů = vektorová data

Bitmapová data

  • číselné hodnoty (binární čísla) popisující jednotlivé základní prvky obrazu v euklidovském prostoru = obrazové body – pixely
  • vyjadřují zakódovanou barvu každého pixelu, popř. i další jeho vlastnosti, např. průhlednost, nejčastěji do 8, 24 nebo 32 bitů
  • pixely jsou body, které mají svůj atribut (obvykle barvový atribut) vyjádřený binárním číslem = logické pixely
  • pro zobrazení nebo výtisk jsou logické pixely přepočteny do modelu fyzických pixelů s informací o tom, jakou barvou má být nakonec daný pixel zobrazen nebo vytištěn jako fyzický pixel
  • logické pixely x model fyzických pixelů x fyzické pixely
    • matematické body popsané binárními čísly
    • rastr čtverců představujících fyzické pixely
    • body, které používá k zobrazování výstupní zařízení = zobrazené nebo vytištěné pixely pomocí subpixelů, shluků pigmentů, tiskových bodů v polotónovém tiskovém rastru aj.

Greyscale

hex

 Bitmapová data, byty v hexadecimálním tvaru

010

Fyzické pixely zobrazené monitorem

log

Logické pixely

RGB

logic

Logické pixely v modelu RGB a fyzické pixely zobrazené monitorem

Fyzické pixely

lcd

Monitor LCD

crt

Monitor CRT

rgby

Monitor RGBY

laser

Laserový černobílí tisk

ofset

Polotónový ofsetový tisk

Barvový atribut pixelu

  • pixely mají svůj atribut udávající jeho barvu, resp. další vlastnosti, např. průhlednost
  • barvový atribut je často jediným atributem pixelu
  • v přímém vyjádření (true color mode) je hodnotou barvového atributu absolutní vyjádření barevného odstínu číselnými hodnotami dle barevného modelu – hodnota pixelu reprezentuje přímo barvu
    • obvykle 24 b (RGB 3×8 – 16,7 mil.) či 32 b (CMYK 4×8 – 4,3 mld.)
  • v nepřímém vyjádření (index mode) je hodnotou atributu index, odkaz do barevné palety, resp. mapy barev (colormap), tabulky barev umístěné obvykle v patě grafického souboru
    • 1 b monochrom mode (2), 2 b (4), 3 b (8) , 4 b (16), 5 b (32), 6 b (64)
    • 4b, 8 b – gray scale mode – 16, 256 odstínů šedé – odkaz do tabulky
    • 4b, 8 b – pseudo color mode – 16, 256 barev – odkaz do tabulky
    • 8, 15, 16 b – direct color mode – 256 až 65536 barev – 3 odkazy (3-3-2, 5-5-5 Low Color, 5-6-5 High Color do 3 tabulek RGB)

neprime

 

Příklad nepřímého vyjádření

Barevná hloubka

  • vyjadřována barvovým atributem
  • dává, kolik bitů je vyhrazeno pro přenos barevné informace o jednom bodu
    • počet bitů potřebných k vyjádření barevné informace o jednom pixelu (běžně 8, 24, 32 bitů)
    • počet bitů popisujících bod z hlediska počtu barev, které může každý bod nabýt (8=256, 24=16,7 mil., 32=4,3 mld. …)
      • barevná hloubka je udávána jako maximální počet bitů určených pro záznam barvy (např. 1, 4, 8, 16, 24, 32 … bitů)
      • barevná hloubka je udána jako počet bitů na daný kanál (např. 8, 10, 12, 14 bitů na RGB kanál = 24, 30, 36, 42 bitů)
    • u některých zařízení se uvádí
      • interní barevná hloubka – hodnota dána možnostmi zařízení
      • externí barevná hloubka – hodnota dána datovým formátem, který výrobce zvolil
        • např. 96 – 24 JPG při výpočtech se využije vyšší barevná hloubka a zmenší se tak zkreslení
        • např. 30 – 48 TIFF pro zachování maximální kvality, které je hardware schopen dosáhnout

Barevná hloubka-Bitová hloubka

  • barvový atribut nemusí být jedinou kvalitou pixelu
  • bitová hloubka = počet bitů potřebných k vyjádření všech atributů jednoho pixelu (např. 1, 4, 8, 16, 24, 30, 32, 36, 42, 48, 96 bitů)
    • vedle barvového atributu se může jednat nejčastěji o atribut pro vrstvení bitmap – průhlednost
    • alfa kanál = doplňující popis vlastnosti bodu, který udává jeho průhlednost (např. 1 bit GIF, 8 bit PNG)
      • např. RGBA 32 (8-8-8-8) = RGB s alfa-kanálem určujícím 0% – 100% průhlednosti bodu Red-Green-Blue-Alpha – alfa kanál se zde definuje pomocí 256 úrovní průhlednosti od 0 (pixel je plně transparentní) do 255 (pixel je neprůhledný); jedná se vlastně o míchání RGB signálu s 8b šedé škály

alfaAlfa kanál

Vektorová data

  • čárové a křivkové segmenty definované počátečním bodem, směrem a délkou (a z nich vytvořené složitější) vyjádřené matematickým popisem a dále data o tloušťce jejich čar a výplních
  • číselné hodnoty, které popisují elementární prvky obrazu – primitiva (body, přímky, úsečky, lomené čáry, kružnice, křivky, n-úhelníky/polygony, text) a objekty z nich vytvořené
  • atributy objektu – umístění, délka, směr, barva, tloušťka čáry, barva výplně, doplňková informace
  • výhodou vektorových dat oproti bitmapě je především mnohem větší množství transformací, jimž je lze podrobit
  • vektorová data jsou blíže logickému významu toho, co popisují
  • při zobrazení či tisku se vektorová data převádějí do bodů

Definice bodu

  • v karteziánském souřadnicovém systému
    • 2D prostor – [Bx By]
    • 3D prostor – [Bx By Bz]
  • v polárním souřadnicovém systému
    • délka v jednotkách užitého měřítka a úhel v radiánech
    • 1 rad = 180 / π = 57,29°
    • 1° = π / 180 = 0,0174 rad
    • úhel α° = úhel αrad * 180 / π

Definice úsečky

  • karteziánsky počátečním a konečným bodem [Bx1 By1] [Bx2 By2] nebo počátečním bodem a vektorem rozdílů souřadnic (∆x, ∆y) = (x2 – x1 , y2 – y1)
  • popis je doplněn atributy vzhledu – síla, barva
  • úsečka: počátek = (xp,yp), konec = (xk,yk), barva = (R,G,B)
  • kružnice: střed = (xs,ys), poloměr r = 3, barva = (R,G,B)
  • znak: „A“, poloha = (xp,yp), barva = (R,G,B)

Křivky

  • interpolační Fergusonovy kubiky (interpolační křivky procházející všemi vrcholy řídicího polygonu) – jsou určeny dvěma řídicími body P0 a P1 , které určují směr, a dvěma tečnými vektory P0 a P1 , které určují míru vyklenutí

kubiky

 

Interpolační Fergusonovy kubiky

  • aproximační Beziérovy křivky (řídící body určují tvar aproximační křivky, ale nemusí na ní ležet) – jsou určeny n+1 body P0,P1,…,Pn řídicího polygonu – vychází z P0 a končí v Pn (posun jednoho vrcholu způsobí změnu celé křivky); nejčastější jsou Beziérovy kubiky, které jsou zadány čtyřmi body

krivky

 

Aproximační Beziérovy křivky

  • existují i další možnosti vyjádření

Oblasti a znaky

  • geometricky určené hranice polygonů (mnohoúhelníků) nebo s křivkami kombinovaných oblastí

mnohouhelnik

Mnohoúhelník

znak

Znaky klasickým rastrem

znak-k

Standardně nyní pomocí křivek

Popis objektů

  • pro popis těles se používají různé způsoby reprezentace, např.:
    • hraniční reprezentace – popisuje množinu hraničních bodů tělesa pomocí vrcholových bodů, hran nebo ploch (trojúhelníků – trianglů); při hranové reprezentaci = drátový model (nejednoznačný)

auto

    • konstruktivní geometrie – postupy při modelovaní složitějších těles z jednoduchých geometrických tvarů metodou CSG stromů (Constructive Solid Geometry), např. sjednocení, průnik, otočení aj.

konstrukce

Konstruktivní geometrie

 

Výpočet bitmapových dat 3D

  • textura – tapeta – struktura = obrázek definující povrch objektu
    • rastrové textury – předem připravený rastrový obrázek
    • procedurální textury – vyjádřeny pomocí matematické funkce
  • texel (texture element) = základní jednotkou textury
    • při renderování (výpočtu scény) mapovány do odpovídajících pixelů výsledného obrazu, a tak je textura nanášena na povrch objektu obvykle algoritmem pixel shader

shaderPixel shader

    • voxel (volumetric element – prvek objemu) obdoba pixelu pro speciální prostorové zobrazování v 3D mřížce, x × y × z voxelů

voxel

Voxel

  • rendering – přepočet – ztvárnění – vyobrazení = výsledný výpočet scény podle nastavení scény, 3D modelů, světel a kamer, tj. včetně nerovnosti, odlesků či průhlednosti objektů a hloubky scény
  • Z-buffer – paměť hloubky – uchovává hloubkovou hodnotu scény ve vrstvách prostřednictvím Z-bufferové hodnoty pixelů = 8, 16, 32 b
    • určuje, které objekty budou ve výsledné scéně viditelné
    • při výpočtu je Z-bufferová hodnota každého pixelu porovnána s každým pixelem, který je na stejné koordinátě (souřadnice) a nakonec je vykreslen pixel s nejnižší
      Z-bufferovou hodnotou
  • Z-culling – při vykreslování 3D scény je spočtena barva pro pixel, poté je proveden Z-Test, zda již nebyl vykreslen pixel, který by měl být více v popředí; podle dané Z-bufferové hodnoty je smazán a nahrazen nově spočteným pixelem, nebo ponechán – takto je postupně tvořen obraz a po pixelech ukládán do Frame bufferu

render

3D obraz a jeho Z-buffer – čím tmavší, tím dále daný pixel leží

Rasterizace

  • rasterizace geometrického zobrazení se provádí např. aplikací Bresenhamova algoritmu nalezením bližšího z možných bodů rastru

algo

 

Brensenhamův algoritmus

  • pro minimalizaci aliasu se vykresluje více pixelů, jejichž intenzita je dána vzdáleností úsečky a středu pixelu

minim

 

Minimalizace aliasu

Bitmapová a vektorová data

  • oba druhy dat mají své určení, výhody i nevýhody
  • bitmapová data
    • lze ovládat každý bod na obrazu
    • hodí se především pro ukládání předloh a práci s obrázky z reálného světa založenými na plynulých barevných přechodech, jako jsou fotografie, skenované obrázky nebo jemné kresby či malby
    • nevýhoda – především velký nárůst objemu dat a ztráta grafické informace při transformacích
    • výhoda – přirozené pořízení a zobrazení na rastrových zařízeních (skener, digitální fotoaparát, monitor, tiskárna), lepší možnosti práce s barvou a možnosti práce až na úrovni pixelu
  • vektorová data
    • dovolují přesné vytváření, libovolné úpravy a rozmísťování všech jednotlivých objektů tvořících obraz včetně písmen a jejich plynulé zvětšování a zmenšování bez ztráty kvality
    • hodí se především pro přesné kresby a grafiku s různými nápisy
    • nevýhoda – především horší možnosti práce s barvou, resp. barevnými přechody
    • výhoda – menší objem dat (paměťové nároky v zásadě odpovídají složitosti obrázku), nezávislost na výstupním zařízení, a především bezproblémové transformace
  • převod vektorových dat do bitmapových (rasterizace) je s pomocí algoritmů bezproblémová a rychlá
  • převod bitmapových dat do vektorových dat (vektorizace) je obtížnější a vyžaduje analýzu obrazu