Watkinsův algoritmus řádkového rozkladu

Podobné dokumenty
Malířův algoritmus Josef Pelikán CGG MFF UK Praha. 1 / 15

Výpočet vržených stínů

Výpočet průsečíků paprsku se scénou

Deformace rastrových obrázků

Monochromatické zobrazování

Hierarchický model Josef Pelikán CGG MFF UK Praha. 1 / 16

Výpočet průsečíků paprsku se scénou

Rekurzivní sledování paprsku

Reprezentace 3D scény

Lineární transformace

Barevné systémy Josef Pelikán CGG MFF UK Praha

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

Radiometrie, radiační metody

Barevné vidění Josef Pelikán CGG MFF UK Praha

9 Prostorová grafika a modelování těles

1. Vektorové algoritmy jejich výstupem je soubor geometrických prvků, např.

8. VIDITELNOST. Cíl Po prostudování této kapitoly budete umět. Výklad. P i O M. a A. b A. 8. Viditelnost

5 Algoritmy vyplňování 2D oblastí

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

Univerzita Palackého v Olomouci

Počítačová geometrie I

Jana Dannhoferová Ústav informatiky, PEF MZLU

Zobrazování a osvětlování

Reprezentace 3D modelu

Geometrické transformace pomocí matic

- obvyklejší, výpočetně dražší - každé písmeno je definováno jako zakřivený nebo polygonální obrys

Distribuované sledování paprsku


Metamorfóza obrázků Josef Pelikán CGG MFF UK Praha

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

Jana Dannhoferová Ústav informatiky, PEF MZLU

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Počítačová grafika 2 (POGR2)

Rekonstrukce izoploch

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

Konvexní obal a množina

Vyplňování souvislé oblasti

12 Metody snižování barevného prostoru

Počítačová grafika 1 (POGR 1)

Úvod Některé algoritmy pro řešení viditelnosti Literatura. Řešení viditelnosti. Pavel Strachota. FJFI ČVUT v Praze. 11. dubna 2012

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze

Textury a šumové funkce

Fyzikálně založené modely osvětlení

Detekce kolizí v 3D Josef Pelikán KSVI MFF UK Praha

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

13 Barvy a úpravy rastrového

Algoritmizace prostorových úloh

MRBT M8. VIDITELNOST OBJEKTŮ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Bc. MARTIN MAŠTERA

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Reprezentace bodu, zobrazení

Circular Harmonics. Tomáš Zámečník

Datové struktury pro prostorové vyhledávání

Algoritmy pro ořezávání 2D polygonů

Visualizace objemových dat

Úvod do teorie grafů

Ing. Jan Buriánek. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jan Buriánek, 2010

11 Zobrazování objektů 3D grafiky

Geometrické vyhledávání

ICT podporuje moderní způsoby výuky CZ.1.07/1.5.00/ Matematika analytická geometrie. Mgr. Pavel Liška

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_26 04

Datové typy a struktury

Modely prostorových těles

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

CVIČNÝ TEST 18. OBSAH I. Cvičný test 2. Mgr. Kateřina Nováková. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15

Visualizace objemových dat

PROGRAMY PRO GIS. Formovat/formulovat problém pro aplikaci v počítači. Fungování GIS programů na základní úrovni - "uvažovat" jako počítač

autorovu srdci... Petr Hliněný, FI MU Brno 1 FI: MA010: Průnikové grafy

Elementární plochy-základní pojmy

VZÁJEMNÁ POLOHA DVOU PŘÍMEK V ROVINĚ

Gymnázium Jiřího Ortena, Kutná Hora. Průřezová témata Poznámky. Téma Školní výstupy Učivo (pojmy) volné rovnoběžné promítání průmětna

CVIČNÝ TEST 40. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15

Fergusnova kubika, která je definována pomocí bodu P1, vektoru P1P2, bodu P3 a vektoru P3P4

07 Základní pojmy teorie grafů

Kreslení elipsy Andrej Podzimek 22. prosince 2005

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Text úlohy. Vyberte jednu z nabízených možností:

Výpočetní geometrie Computational Geometry

Pokročilé techniky Josef Pelikán, MFF UK Praha

Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Grafická data jsou u 2D vektorové grafiky uložena ve voxelech."

Binární soubory (datové, typované)

Hledáme efektivní řešení úloh na grafu

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

II. Úlohy na vložené cykly a podprogramy

INFORMATIKA WORD 2007

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

TGH07 - Chytré stromové datové struktury

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

Mgr. Markéta Trnečková, Ph.D. Palacký University, Olomouc

B_PPG PRINCIPY POČÍTAČOVÉ GRAFIKY

1. Implementace funkce počet vrcholů. Předmět: Algoritmizace praktické aplikace (3ALGA)

Rozvoj prostorové představivosti

Vzdálenost uzlů v neorientovaném grafu

ˇ razen ı rychlejˇ s ı neˇ z kvadratick e Karel Hor ak, Petr Ryˇsav y 20. dubna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

CVIČNÝ TEST 9 OBSAH. Mgr. Václav Zemek. I. Cvičný test 2 II. Autorské řešení 5 III. Klíč 17 IV. Záznamový list 19

Algoritmy na ohodnoceném grafu

Urci parametricke vyjadreni primky zadane body A[2;1] B[3;3] Urci, zda bod P [-3;5] lezi na primce AB, kde A[1;1] B[5;-3]

Dynamické datové struktury I.

Transkript:

Watkinsův algoritmus řádkového rozkladu 1995-2015 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 15

Watkinsův algoritmus nepotřebuje výstupní buffer rastrový výstup generuje po jednotlivých řádkách vyplňuje plochy lze i stínovat žádné pixely se nekreslí zbytečně nepřekresluje se výhodné zejména pro stínování vychází z 2D algoritmu - vyplňování n-úhelníka v rovině 2 / 15

Předpoklady scéna je složena z rovinných plošek každá ploška je zadána posloupností svých vrcholů (3D souřadnice, z je hloubka) zjednodušení: plošky smějí mít společné body pouze na obvodu (nesmějí se prosekávat) 3 / 15

1. předzpracování ze scény odstraníme odvrácené plošky podle normálového vektoru přivrácené plošky rozložíme na jednotlivé hrany odstraníme vodorovné hrany pro ostatní hrany vytvoříme pracovní záznamy 4 / 15

Pracovní záznam pro hranu [ x, y, z ] dxy stěna dy Y Y+1 dzy 5 / 15

Pracovní záznam pro hranu x : real; { x horního koncového bodu, později souřadnice průsečíku s aktuální řádkou } y : integer; { y horního koncového bodu } z : real; { z horního koncového bodu } dy : integer; { výška hrany v pixelech: y2-y } dxy : real; dzy : real; { změna x při posunutí na následující řádku (směrnice pro x): (x2-x)/dy } { změna z při posunutí na následující řádku (směrnice pro z): (z2-z)/dy } st : ^stena; { odkaz na stěnu, do které patří } 6 / 15

Záznam pro stěnu dzx : real; barva : barvy; { barva stěny } { změna z při posunutí na následující pixel (směrnice pro z): dz/dx }...; { další pomocné údaje pro výpočet viditelnosti } 7 / 15

2. inicializace seznamu S Všechny předzpracované hrany setřídíme do vstupního seznamu S podle kritérií: vzestupně podle y vzestupně podle x 1 2 5 6 3 4 vzestupně podle dxy 8 / 15

3. inicializace seznamu A Aktuální seznam A bude obsahovat všechny hrany, které protínají aktuální řádku. Seznam budeme udržovat setříděný: vzestupně podle x 1 2 3 4 5 6 vzestupně podle dxy Na začátku zařadíme do A počáteční úsek seznamu S - hrany se shodným (minimálním) y 9 / 15

4. výpočet viditelnosti na řádce aktuální řádka = seznam A A B C D seznam H nil A B A B CA C A C C D D nil výsledek pozadí A B C D pozadí 10 / 15

4. výpočet viditelnosti na řádce Je třeba projít aktuální seznam A a určit viditelnost. K tomu se dá použít pomocný seznam stěn H seřazených podle hloubky: procházíme A a na stěnu každé hrany se podíváme do H je-li stěna v seznamu H, odstraníme ji a naopak Při zatřiďování stěn do H používáme z, dzy první prvek H určuje viditelnou stěnu, pokud je H prázdný, kreslí se barva pozadí 11 / 15

5. přechod na další řádku Aktualizace seznamu A: dy := dy - 1; if dy=0 then odstraň hranu ze seznamu A" x := x + dxy; z := z + dzy; kontrola setřídění A zatřídění nových hran z S do A (počáteční úsek S) 12 / 15

6. podmínka ukončení cyklu jestliže je alespoň jeden ze seznamů A, S neprázdný a ještě jsme nedokreslili celou obrazovku, výpočet pokračuje krokem 4 jinak algoritmus končí případný nedokreslený zbytek obrazovky vybarvíme barvou pozadí 13 / 15

Průnik dvou ploch v seznamu H si vymění dvě plochy své pořadí během procházení aktuální řádky do A přidáme umělou pomocnou hranu v určování viditelnosti se vrátíme na jejího předchůdce 14 / 15

Konec Další informace: J. Foley, A. van Dam, S. Feiner, J. Hughes: Computer Graphics, Principles and Practice, 680-686 15 / 15