Počítačová grafika letem světem © 2002 Jiří Sochor FI MU Brno sochor@fi.muni.cz http://www.fi.muni.cz/usr/sochor/ Analýza a syntéza obrazu Vizualizace Problémové okruhy Něco o tvrdém vybavení Displeje u první displeje byly vektorové displeje – Electronový paprsek sledoval čáry – obraz definován sekvencí koncových bodů – drátové zobrazení, bez vypňování Displeje u Rastrové displeje – elektronový paprsek prochází po pravidelné dráze – obraz je 2D pole pixelů – rychlé, chyby vzorkování u Každý pixel má b bitů pro barvu – B&W: 1 bit – Základní barvy: 8, 15, 16, 24 bits – špičkové: 96 bits Displeje Displeje a obrazové paměti u rastrový obraz je uložen v paměti jako 2D pole pixelů – obrazová paměť u barva každého pixelu určuje intenzitu paprsku u Video hardware čte obrazovou paměť 60+ Hz – změny v obrazové paměti se ukazují na obrazovce => dvojitá paměť – přepnutí pamětí po dokončení kresby snímku Displeje a obrazové paměti Běžná pracovní stanice Nové architektury Nové architektury Rastrové algoritmy Rastrová konverze úseček u nalezni pixely nejblíže k ideální přímce u předpoklad ½m½ £ 1: vybarvi 1 pixel ve sloupci, zpracuj inkrementálně u if m1 : x  y. Rastrová konverze úseček Rastrová konverze úseček u neefektivní metoda: výpočet round(y) pro každé celé x u inkrementální výpočet: u pouze celočíselná aritmetika: Bresenhamův algoritmus Rastrová konverze úseček Výplň ploch u obarvení všech pixelů v dané oblasti u oblast = – všechny pixely určité barvy (pixelově definovaná oblast) – všechny pixely v určité vzdálenosti od pixelu – všechny pixely uvnitř daného polygonu (oblast definovaná polygonem) Pixelově definované oblasti Výplň polygonální oblasti Výplň polygonální oblasti Souřadné systémy a transformace Jak něco nakreslit ? u plotPixel(289,190) u plotPixel(320,128) u plotPixel(239,67) u plotPixel(194,101) u plotPixel(129,83) u plotPixel(75,73) u plotPixel(74,74) u plotPixel(20,10) Proč je to nepraktické ? u Souřadnice jsou vyjádřeny v prostoru obrazovky, ale objekty žijí v (3D) ve světovém prostoru u Při změně velikosti okna musíme změnit souřadnice kreslených objektů u Chceme rozlišit mezi: – hodnotami, které popisují geometrické objekty – hodnotami potřebnými pro nakreslení těchto objektů na obrazovku Okno světa & okno pohledu Souřadné systémy: 2D & 3D OpenGL 3D proudová architektura SW+HW OpenGL Rysy Co dělá GL? Co GL nedělá? Další pohled na OpenGL Jednoduchý program Knihovny související s OpenGL Knihovny související s OpenGL OpenGL a související API Paměti Kresba trojúhelníků Barva Co je barva? u Světlo = elektromagnetické vlny u viditelné spektrum – 400 nm (fialová) à 700 nm (červená) Lidské oko Lidské oko: sítnice CIE diagram barev Gamut (rozsah) barevného monitoru u Ne všechny barvy lze zobrazit na CRT monitoru u barevné souřadnice každého luminoforu se u jednotlivých monitorů liší RGB u nejběžnější v grafice: přímé mapování na CRT u aditivní barevný systém CMY (cyan-magenta-yellow) u subtraktivní barevný systém – pro získání výsledné barvy odečítá barvy od bílé – (r g b) = (1 1 1) – (c m y) Barevné iluze Barevné iluze Modely a modelování Parametrické křivky a plochy u Bezierova křivka Polygony u Objekty ve 3D jsou zhotoveny z polygonů u Polygony jsou základním stavebním blokem v grafice ! Tažené (extrudované) povrchy u Hranol u Povrchová síť trojúhelníků sestrojena automaticky Tažené (extrudované) povrchy u obecnější: pohyb profilu podél křivky Tažené (extrudované) povrchy Rotační povrchy u definice profilu u rotace profilu okolo osy Rotační povrchy u obdoba tažených povrchů Konstruktivní geometrie těles - CSG u Máme objekty popsané pomocí polygonů u Jak zkombinujeme objekty ? u Boolské operace: – součet, sjednocení – průnik – rozdíl CSG CSG u řeší se pomocí ořezávání polygonů u netriviální řešení okrajových případů CSG Objemové modelování u prostor rozdělen na “voxely” u označení každého voxelu: – Patří k objektu ? – Barva ? Objemové modelování u Aplikace: projekt „viditelný člověk“ u nasnímané řezy mrtvého těla – každý řez je polem voxelů – celé tělo je popsáno souborem objemových dat Projekt „Viditelný člověk“ Volné tvarování Volné deformace-Sederberg&Parry FFD - Cracken&Joy Deformace deCasteljau Světla a stíny Klasická zobrazovací metoda Zpětné sledování paprsku (eye ray-tracing) Zpětné sledování paprsku Distribuované sledování paprsku Jednoduchá dvoukroková metoda Tříkrokova metoda (zahrnutí LS^*D cest) Vizualizace „průmyslové aplikace“ Vizualizace v lékařství Vědecké aplikace Vizualizace v chemii Model rozptylu světla Antialiasing Antialiasing u Alias vzniká díky diskrétní povaze obrazovky (rastrových zařízení): u aliasové jevy mohou být redukovány pomocí – zvýšeného rozlišení – předfiltrováním – postfiltrováním Antialiasing Vzorkování Alias - zobrazení Alias – zubaté profily Alias – ztráta detailu Alias – rozpad tvaru Filtrování Ukázka – bez antialiasing Ukázka – předfiltrování Ukázka – bez antialiasing Ukázka – předfiltrování