diff --git a/src/content/docs/szmgr/PGV03_zaklady_pocitatcove_grafiky.md b/src/content/docs/szmgr/PGV03_zaklady_pocitatcove_grafiky.md index fe5505f..7f8338d 100644 --- a/src/content/docs/szmgr/PGV03_zaklady_pocitatcove_grafiky.md +++ b/src/content/docs/szmgr/PGV03_zaklady_pocitatcove_grafiky.md @@ -16,7 +16,7 @@ description: "TODO" Blokový diagram je abstraktní, high-level popis fungování OpenGL [pv112](#pv112). - **_Evaluators_** - aproximace křivek a povrchů -- **_Per-vertex operations_** - operace prováděné nad každým vrcholem - transformace, projekce z [model space do camera space](../modelovani-a-projekce), osvětlení jednotlivých vrcholů +- **_Per-vertex operations_** - operace prováděné nad každým vrcholem - transformace, projekce z [model space do camera space](../szp08_modelovani_a_projekce), osvětlení jednotlivých vrcholů - **_Primitive assembly_** - sestavení primitiv (body, čáry, trojúhelníky) z vrcholů, projekce do screen space a ořezání - **_Rasterization_** - převod primitiv na fragmenty (2D obdélníky s informací o barvě, hloubce, ...) a interpolace hodnot mezi vrcholy - **_Per-fragment operations_** - operace prováděné nad každým fragmentem a jejich uložení do frame bufferu - osvětlení, texturování, blending, testy (scissor, alpha, stencil, depth) diff --git a/src/content/docs/szmgr/PGV08_real_time_rendering.md b/src/content/docs/szmgr/PGV08_real_time_rendering.md index 8f7560a..a2d6383 100644 --- a/src/content/docs/szmgr/PGV08_real_time_rendering.md +++ b/src/content/docs/szmgr/PGV08_real_time_rendering.md @@ -227,7 +227,7 @@ Stíny jsou důležité, jelikož: ![width=500rem](./img/vph01_shadow_maps.png) > [!IMPORTANT] - > Shadow mapám se důkladně věnuje otázka [Renderování s využitím GPU](../renderovani-s-vyuzitim-gpu/) + > Shadow mapám se důkladně věnuje otázka [Renderování s využitím GPU](../vph07_gpu_rendering/) - **Shadow volumes**\ Počítá stíny ve 3D. Shadow volume explicitně popisuje objem prostoru ve stínu nějakého polygonu. diff --git a/src/content/docs/szmgr/PGV09_minimalizace_energie.md b/src/content/docs/szmgr/PGV09_minimalizace_energie.md index c2b437e..341b22e 100644 --- a/src/content/docs/szmgr/PGV09_minimalizace_energie.md +++ b/src/content/docs/szmgr/PGV09_minimalizace_energie.md @@ -50,7 +50,7 @@ Pro řešení můžeme nyní využít Euler-Lagrangeovy rovnice. Pro funkcionál 0 = u - f - \alpha \text{div}(\Psi'(\lvert \nabla u \rvert^2) \nabla u) ``` -Nyní můžeme hezky vidět vztah k difuznímu filtrování (otázka [PGV10](../zpracovani_obrazu_pomoci_PDE)): +Nyní můžeme hezky vidět vztah k difuznímu filtrování (otázka [PGV10](../pgv10_zpracovani_obrazu_pomoci_pde)): | | | | ------------------------ | ------------------------------------------------------------------------------ | diff --git a/src/content/docs/szmgr/SZP02_numericke_metody.md b/src/content/docs/szmgr/SZP02_numericke_metody.md index b551f2a..39d4cd5 100644 --- a/src/content/docs/szmgr/SZP02_numericke_metody.md +++ b/src/content/docs/szmgr/SZP02_numericke_metody.md @@ -282,7 +282,7 @@ Numerická diferenciace se využívá pro aproximaci differenciálních rovnic ( Pokud známe hodnoty $f$ můžeme mezi nimi interpolovat pomocí Lagrangeova polynomu a derivovat ten, protože derivovat polynomy je jednoduché. > [!IMPORTANT] - > Lagrangeovu interpolaci řeší část otázky [Křivky a povrchy](../krivky-a-povrchy/). + > Lagrangeovu interpolaci řeší část otázky [Křivky a povrchy](../szp05_krivky_a_povrchy/). - **Finite difference method**\ Rodina metod numerické diferenciace, které využívají _konečné diference_. Tedy approximují limitu v definici derivace malými posuny ve vstupních hodnotách diferenciovaných funkcí. [finite-difference-method](#finite-difference-method) diff --git a/src/content/docs/szmgr/SZP04_3d_modelovani.md b/src/content/docs/szmgr/SZP04_3d_modelovani.md index d84e5fd..515d607 100644 --- a/src/content/docs/szmgr/SZP04_3d_modelovani.md +++ b/src/content/docs/szmgr/SZP04_3d_modelovani.md @@ -194,7 +194,7 @@ description: "TODO" ### Modelování > [!IMPORTANT] -> Tahle sekce má docela průnik s otázkou [Modelování 3D postav](../modelovani-3d-postav/). +> Tahle sekce má docela průnik s otázkou [Modelování 3D postav](../vph08_modelovani_3d_postav/). - **Boundary representation model (B-rep)**\ Modelování objektů pomocí jejich hranic -- boundaries (hrany, stěny, atd.). @@ -322,7 +322,7 @@ description: "TODO" ### Změna struktury sítě > [!IMPORTANT] -> Modifikace meshů mají značný přesah do otázky [Křivky a povrchy](../krivky-a-povrchy/) a taky [Pokročilá počítačová grafika](../pokrocila-pocitacova-grafika/) +> Modifikace meshů mají značný přesah do otázky [Křivky a povrchy](../krivky-a-povrchy/) a taky [Pokročilá počítačová grafika](../vph01_pokrocila_grafika/) - **Překlápění hrany / edge flip**\ Lokální změna, která nahradí hranu $(b,c)$ hranou $(a,d)$. Trojúhelníky $(a,b,c)$ a $(b,d,c)$ se stanou $(a,d,c)$ a $(a,b,d)$. [pa010-2021](#pa010-2021) diff --git a/src/content/docs/szmgr/SZP05_krivky_a_povrchy.md b/src/content/docs/szmgr/SZP05_krivky_a_povrchy.md index 4aa9d11..a87e48b 100644 --- a/src/content/docs/szmgr/SZP05_krivky_a_povrchy.md +++ b/src/content/docs/szmgr/SZP05_krivky_a_povrchy.md @@ -49,7 +49,7 @@ Tato rovnice udává množinu bodů, ze které se křivka nebo povrch sestává. > Výhodou implicitně zadaných ploch je kompaktnější reprezentace a jednodušší ray casting. Nicméně výpočty s nimi jsou časově náročné, takže se stejně nejdřív převádí na polygonové meshe -- _polygonizace_. > [!IMPORTANT] -> Tahle sekce přesahuje do [3D modelování a datové struktury](../3d-modelovani-a-datove-struktury/) -> _Implicitní reprezentace a modelování_. +> Tahle sekce přesahuje do [3D modelování a datové struktury](../szp04_3d_modelovani/) -> _Implicitní reprezentace a modelování_. ### Parametrická reprezentace diff --git a/src/content/docs/szmgr/SZP06_strojove_uceni.md b/src/content/docs/szmgr/SZP06_strojove_uceni.md index c72a837..b64ccc6 100644 --- a/src/content/docs/szmgr/SZP06_strojove_uceni.md +++ b/src/content/docs/szmgr/SZP06_strojove_uceni.md @@ -155,7 +155,7 @@ description: "TODO" ### Trénink > [!IMPORTANT] -> Pro likelihood viz otázka [Statistika](../statistika/). +> Pro likelihood viz otázka [Statistika](../szp03_statistika/). Neuronka je model, kde váhy neuronů jsou parametry. Při učení neuronek je naším cílem maximalizovat likelihood, jakožto míru toho, že naše síť sedí na "naměřená data", training set $\cal T$. Tomuhle přístupu se říká _maximum likelihood principle_. @@ -277,7 +277,7 @@ Za předpokladu, že $E$ je squared error, pak: Neuronové sítě uzpůsobené ke zpracování obrazu. Místo násobení matic používají alespoň v jedné vrstvě konvoluci. Konvoluční sítě mají dva nové typy vrstev: _konvoluční_ a _pooling_, ale jinak se od klasických MLP moc neliší. Aktivace a trénink zůstavají v podstatě stejné. [cnn](#cnn) > [!IMPORTANT] -> Pro konvoluci viz otázka [Zpracování rastrového obrazu](../zpracovani-rastroveho-obrazu/). +> Pro konvoluci viz otázka [Zpracování rastrového obrazu](../szp09_zpracovani_obrazu/). **Typical CNN by [Aphex34](https://commons.wikimedia.org/w/index.php?curid=45679374)** diff --git a/src/content/docs/szmgr/SZP07_grafy.md b/src/content/docs/szmgr/SZP07_grafy.md index dad1b8e..1e59f90 100644 --- a/src/content/docs/szmgr/SZP07_grafy.md +++ b/src/content/docs/szmgr/SZP07_grafy.md @@ -207,7 +207,7 @@ Dijkstrův algoritmus lze optimalizovat, pokud nás zajímá jen nejkratší ces - Můžeme přidat _potenciál_ -- dodatečnou heuristickou váhu. > [!IMPORTANT] - > Téhle variantě se říká A\* (A star). Věnuje se mu část otázky [Umělá inteligence v počítačových hrách](../umela-inteligence-v-pocitacovych-hrach/). + > Téhle variantě se říká A\* (A star). Věnuje se mu část otázky [Umělá inteligence v počítačových hrách](../vph06_ai_ve_hrach/). ## Kostry diff --git a/src/content/docs/szmgr/SZP08_modelovani_a_projekce.md b/src/content/docs/szmgr/SZP08_modelovani_a_projekce.md index 4811b1c..fa1ccda 100644 --- a/src/content/docs/szmgr/SZP08_modelovani_a_projekce.md +++ b/src/content/docs/szmgr/SZP08_modelovani_a_projekce.md @@ -32,7 +32,7 @@ description: A guide in my new Starlight docs site. ## MVP matice > [!IMPORTANT] -> Pro implementaci v OpenGL viz [Renderování s využitím GPU](../renderovani-s-vyuzitim-gpu/). +> Pro implementaci v OpenGL viz [Renderování s využitím GPU](../vph07_gpu_rendering/). > [!WARNING] > Při zápisu matic bacha na to, jestli jsou row-major nebo column-major. Třeba v OpenGL to znamená, že se všechny matice píší v transponované podobě, jelikož OpenGL je column-major a v takovém pořádí jsou i parametery `mat2`, `mat3` a `mat4` V GLSL. diff --git a/src/content/docs/szmgr/SZP09_zpracovani_obrazu.md b/src/content/docs/szmgr/SZP09_zpracovani_obrazu.md index 509d44e..da68a2a 100644 --- a/src/content/docs/szmgr/SZP09_zpracovani_obrazu.md +++ b/src/content/docs/szmgr/SZP09_zpracovani_obrazu.md @@ -105,7 +105,7 @@ Převod nelze vyjádřit v lineárním tvaru kde $T$ je práh. Pokud je $T$ konstanta, pak se jedná o _globální prahování_. - Prahování se pořádně věnuje otázka [Analýza rastrového obrazu](../analyza-rastroveho-obrazu/). + Prahování se pořádně věnuje otázka [Analýza rastrového obrazu](../szp10_analyza_obrazu/). - **Paleta**\ Můžeme použít funkci či vyhledávácí tabulku pro přemapování existujících hodnot v obrazu na jiné (viz barevné škály u vizualizací). @@ -267,7 +267,7 @@ Proces, kdy hledání _hran_ v obraze. Hrana je křivka, podél níž pixely vý - Hrany lze detekovat pomocí konvoluce. > [!IMPORTANT] -> Numerické diferenciaci se věnuje otázka [Numerické metody](../numericke-metody/). +> Numerické diferenciaci se věnuje otázka [Numerické metody](../szp02_numericke_metody/). ### Podle první derivace (gradientu) @@ -536,7 +536,7 @@ Samplování je převod spojitého signálu na diskrétní. [sampling](#sampling - Při nesplnění těchto podmínek vzniká aliasing. > [!TIP] - > Aliasingu se věnuje část otázky [Renderování s využitím GPU](../renderovani-s-vyuzitim-gpu/). + > Aliasingu se věnuje část otázky [Renderování s využitím GPU](../vph07_gpu_rendering/). > [!TIP] > Intuitivně je signál hromádka kopečků. Abychom poznali i ty nejužší kopečky -- s nejvyšší frekvencí -- musíme mít dostatečně jemné síto -- koukat na kopečky s dvakrát takovou frekvencí, abychom si všimli, že někde začíná a končí. diff --git a/src/content/docs/szmgr/SZP10_analyza_obrazu.md b/src/content/docs/szmgr/SZP10_analyza_obrazu.md index c5e4121..1324771 100644 --- a/src/content/docs/szmgr/SZP10_analyza_obrazu.md +++ b/src/content/docs/szmgr/SZP10_analyza_obrazu.md @@ -163,7 +163,7 @@ Popis objektů je proces, při kterém se počítají vlastnosti segmentovaných Vlastnosti objektu nezávislé na jeho deformaci. Např. počet děr. > [!IMPORTANT] - > Pro topologické vlastnosti viz otázka [3D modelování a datové struktury](../3d-modelovani-a-datove-struktury/). + > Pro topologické vlastnosti viz otázka [3D modelování a datové struktury](../szp04_3d_modelovani/). - **Ohraničující obdélník / bounding box**\ Nejmenší obdélník ohraničující objekt. @@ -230,7 +230,7 @@ Popis objektů je proces, při kterém se počítají vlastnosti segmentovaných Problém zařazení objektů do jedné z předem daných tříd. > [!IMPORTANT] -> Detaily přístupů řešení klasifikace lze nalézt v otázce [Strojové učení](../strojove-uceni/). +> Detaily přístupů řešení klasifikace lze nalézt v otázce [Strojové učení](../szp06_strojove_uceni/). - **Konstrukce formálního popisu / známý algoritmus**\ Pokud lze napsat formální popis tříd, lze klasifikátor realizovat přímo pomocí programu. diff --git a/src/content/docs/szmgr/VPH01_pokrocila_grafika.md b/src/content/docs/szmgr/VPH01_pokrocila_grafika.md index 35ffd9d..da48b41 100644 --- a/src/content/docs/szmgr/VPH01_pokrocila_grafika.md +++ b/src/content/docs/szmgr/VPH01_pokrocila_grafika.md @@ -17,7 +17,7 @@ description: "TODO" 3D objekty mohou být definované mnoha miliony polygony či výpočetně náročnými matematickými funkcemi. Pro renderování v reálném čase je tedy žádoucí je zjednodušit a přitom zachovat jejich vzhled -- aproximovat je. > [!IMPORTANT] -> Aproximace objektů souvisí s collidery, kterým se částečně věnuje otázka [Grafické a fyzikální principy](../graficke-a-fyzikalni-principy/). +> Aproximace objektů souvisí s collidery, kterým se částečně věnuje otázka [Grafické a fyzikální principy](../vph02_graficke_a_fyzikalni_principy/). ### Redukce počtu polygonů @@ -347,7 +347,7 @@ Stíny jsou důležité, jelikož: ![width=500rem](./img/vph01_shadow_maps.png) > [!IMPORTANT] - > Shadow mapám se důkladně věnuje otázka [Renderování s využitím GPU](../renderovani-s-vyuzitim-gpu/) + > Shadow mapám se důkladně věnuje otázka [Renderování s využitím GPU](../vph07_gpu_rendering/) - **Shadow volumes**\ Počítá stíny ve 3D. Shadow volume explicitně popisuje objem prostoru ve stínu nějakého polygonu. diff --git a/src/content/docs/szmgr/VPH02_graficke_a_fyzikalni_principy.md b/src/content/docs/szmgr/VPH02_graficke_a_fyzikalni_principy.md index 262cbf2..12b5869 100644 --- a/src/content/docs/szmgr/VPH02_graficke_a_fyzikalni_principy.md +++ b/src/content/docs/szmgr/VPH02_graficke_a_fyzikalni_principy.md @@ -222,7 +222,7 @@ Ray tracing jsou techniky, které trasují paprsky světla napříč scénou. ## Fyzikální simulace > [!IMPORTANT] -> Renderování založenému na fyzikálních principech se věnuje část otázky [Pokročilá počítačová grafika](../pokrocila-pocitacova-grafika/). +> Renderování založenému na fyzikálních principech se věnuje část otázky [Pokročilá počítačová grafika](../vph01_pokrocila_grafika/). - **Rigid body**\ Aproximace reálného fyzikálního tělesa. Předpokládá uniformní hostotu a **neřeší:** diff --git a/src/content/docs/szmgr/VPH03_herni_design_i.md b/src/content/docs/szmgr/VPH03_herni_design_i.md index 97b540e..8046f38 100644 --- a/src/content/docs/szmgr/VPH03_herni_design_i.md +++ b/src/content/docs/szmgr/VPH03_herni_design_i.md @@ -139,7 +139,7 @@ Games are not experiences, they are artifacts people play with while / to create Hry dovedou navodit řadu různých herních zážitků, které můžeme různými způsoby kategorizovat. > [!IMPORTANT] -> Herní zážitky souvisí s pojmem obtížnost, kterému se věnuje část otázky [Herní design II](../herni-design-ii/). +> Herní zážitky souvisí s pojmem obtížnost, kterému se věnuje část otázky [Herní design II](../vph04_herni_design_ii/). ==== LeBlanc’s Eight Kinds of Fun @@ -198,7 +198,7 @@ Něco známeho, povědomého pro hráče. Designér iterativně vytváří hrubé verze hry, které testuje a upravuje. Prototyp je osekaná verze hry, která obsahuje mechaniky, ale ne nutně grafiku. Prototyp lze využít k ověření herního designu - je hra zábavná? > [!IMPORTANT] -> Testováním se více zabývá otázka [Herní design II](../herni-design-ii/). +> Testováním se více zabývá otázka [Herní design II](../vph04_herni_design_ii/). == Game Designer diff --git a/src/content/docs/szmgr/VPH07_gpu_rendering.md b/src/content/docs/szmgr/VPH07_gpu_rendering.md index 8a3e7ef..5aa9917 100644 --- a/src/content/docs/szmgr/VPH07_gpu_rendering.md +++ b/src/content/docs/szmgr/VPH07_gpu_rendering.md @@ -38,7 +38,7 @@ description: "TODO" ## Souřadnicové systémy > [!IMPORTANT] -> Tahle část otázky má značný překryv s otázkou [Modelování a projekce](../modelovani-a-projekce/). +> Tahle část otázky má značný překryv s otázkou [Modelování a projekce](../szp08_modelovani_a_projekce/). **Coordinate Systems [coordinate-systems](#coordinate-systems)** @@ -178,7 +178,7 @@ Při zvolání `glDraw*` se používá OpenGL pipeline, která se skládá z ně ## Shadow mapy > [!IMPORTANT] -> Renderování stínů se věnuje také otázka [Pokročilá počítačová grafika](../pokrocila-pocitacova-grafika/). +> Renderování stínů se věnuje také otázka [Pokročilá počítačová grafika](../vph01_pokrocila_grafika/). 1. Vytvoř shadow mapu -- vyrenderuj scénu z pohledu světla a ulož hloubku do Z-bufferu. 2. Stínování -- vyrenderuj scénu jako obvykle, ale aplikuj shadow mapu diff --git a/src/content/docs/szmgr/VPH08_modelovani_3d_postav.md b/src/content/docs/szmgr/VPH08_modelovani_3d_postav.md index b567eac..cd71b67 100644 --- a/src/content/docs/szmgr/VPH08_modelovani_3d_postav.md +++ b/src/content/docs/szmgr/VPH08_modelovani_3d_postav.md @@ -80,7 +80,7 @@ description: "TODO" ## Topologie a modifikace > [!TIP] -> Pro základní topologické pojmy viz [3D modelování a datové struktury](../3d-modelovani-a-datove-struktury/). +> Pro základní topologické pojmy viz [3D modelování a datové struktury](../szp04_3d_modelovani/). - **Meshflow**\ Logické uspořádání hran a polygonů v mnohoúhelníkové síti. @@ -111,7 +111,7 @@ description: "TODO" Typický 3D model se skládá nejen z meshe, ale i z materiálů, které jsou v herních enginech typicky reprezentovány texturami (mapami). > [!NOTE] -> Typy map souvisí s _physically based rendering_ (PBR), kterému se částečně věnuje otázka [Pokročilá počítačová grafika](../pokrocila-pocitacova-grafika/). +> Typy map souvisí s _physically based rendering_ (PBR), kterému se částečně věnuje otázka [Pokročilá počítačová grafika](../vph01_pokrocila_grafika/). - **UV unwrapping**\ Tvorba 2D reprezentace 3D modelu -- projekce jeho polygonů na 2D plochu. Toto mapování se posléze využívá při texturování. Proces zahrnuje označování _seams_ -- hran, podél kterých se bude model "rozřezávat". Nevhodná volba seams vede k deformaci textur. diff --git a/transform-links.py b/transform-links.py new file mode 100644 index 0000000..7b05716 --- /dev/null +++ b/transform-links.py @@ -0,0 +1,55 @@ +import os + +TARGET_DIR = "src/content/docs/szmgr" + +links = { + "zaklady_vizualizace": "PGV01_zaklady_vizualizace", + "metody_vizualizace": "PGV02_metody_vizualizace", + "zaklady_pocitatcove_grafiky": "PGV03_zaklady_pocitatcove_grafiky", + "geometricke_algoritmy": "PGV04_geometricke_algoritmy", + "deleni_prostoru_a_sceny": "PGV05_deleni_prostoru_a_sceny", + "vykreslovani_objemovych_dat": "PGV06_vykreslovani_objemovych_dat", + "modely_osvetleni": "PGV07_modely_osvetleni", + "real_time_rendering": "PGV08_real_time_rendering", + "minimalizace_energie": "PGV09_minimalizace_energie", + "zpracovani_obrazu_pomoci_PDE": "PGV10_zpracovani_obrazu_pomoci_PDE", + "algoritmy-a-datove-struktury": "SZP01_algoritmy", + "numericke-metody": "SZP02_numericke_metody", + "statistika": "SZP03_statistika", + "3d-modelovani-a-datove-struktury": "SZP04_3d_modelovani", + "krivky-a-povrchy": "SZP05_krivky_a_povrchy", + "strojove-uceni": "SZP06_strojove_uceni", + "grafy-a-grafove-algoritmy": "SZP07_grafy", + "modelovani-a-projekce": "SZP08_modelovani_a_projekce", + "zpracovani-rastroveho-obrazu": "SZP09_zpracovani_obrazu", + "analyza-rastroveho-obrazu": "SZP10_analyza_obrazu", + "graficke-principy-ve-vyvoji-her": "VPH01_graficke_principy_ve_vyvoji_her", + "pokrocila-pocitacova-grafika": "VPH01_pokrocila_grafika", + "fyzikalni-principy-ve-vyvoji her": "VPH02_fyzikalni_principy_ve_vyvoji_her", + "graficke-a-fyzikalni-principy": "VPH02_graficke_a_fyzikalni_principy", + "herni-design-i": "VPH03_herni_design_i", + "herni-design-ii": "VPH04_herni_design_ii", + "vyvoj-her": "VPH05_vyvoj_her", + "umela-inteligence-v-pocitacovych-hrach": "VPH06_ai_ve_hrach", + "renderovani-s-vyuzitim-gpu": "VPH07_gpu_rendering", + "modelovani-3d-postav": "VPH08_modelovani_3d_postav", +} + + +files = [f for f in os.listdir(TARGET_DIR) if f.endswith(".md")] + +for f in files: + print(f"\t- {f}") + lines = [] + with open(os.path.join(TARGET_DIR, f), "r") as file: + lines = file.readlines() + + for i in range(len(lines) - 1): + l = lines[i] + for url in links.keys(): + search = f"../{url}" + if search in l: + lines[i] = l.replace(search, f"../{links[url].lower()}") + + with open(os.path.join(TARGET_DIR, f), "w") as file: + file.writelines(lines) \ No newline at end of file