Fix links to other SZMGR subjects

The other ones are probably still broken
This commit is contained in:
Vojtěch Struhár 2025-06-07 00:50:36 +02:00
parent f3a6fd9c7d
commit dd3679b0a1
17 changed files with 80 additions and 25 deletions

View File

@ -16,7 +16,7 @@ description: "TODO"
Blokový diagram je abstraktní, high-level popis fungování OpenGL [pv112](#pv112). Blokový diagram je abstraktní, high-level popis fungování OpenGL [pv112](#pv112).
- **_Evaluators_** - aproximace křivek a povrchů - **_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í - **_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 - **_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) - **_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)

View File

@ -227,7 +227,7 @@ Stíny jsou důležité, jelikož:
![width=500rem](./img/vph01_shadow_maps.png) ![width=500rem](./img/vph01_shadow_maps.png)
> [!IMPORTANT] > [!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**\ - **Shadow volumes**\
Počítá stíny ve 3D. Shadow volume explicitně popisuje objem prostoru ve stínu nějakého polygonu. Počítá stíny ve 3D. Shadow volume explicitně popisuje objem prostoru ve stínu nějakého polygonu.

View File

@ -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) 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)):
| | | | | |
| ------------------------ | ------------------------------------------------------------------------------ | | ------------------------ | ------------------------------------------------------------------------------ |

View File

@ -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é. Pokud známe hodnoty $f$ můžeme mezi nimi interpolovat pomocí Lagrangeova polynomu a derivovat ten, protože derivovat polynomy je jednoduché.
> [!IMPORTANT] > [!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**\ - **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) 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)

View File

@ -194,7 +194,7 @@ description: "TODO"
### Modelování ### Modelování
> [!IMPORTANT] > [!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)**\ - **Boundary representation model (B-rep)**\
Modelování objektů pomocí jejich hranic -- boundaries (hrany, stěny, atd.). Modelování objektů pomocí jejich hranic -- boundaries (hrany, stěny, atd.).
@ -322,7 +322,7 @@ description: "TODO"
### Změna struktury sítě ### Změna struktury sítě
> [!IMPORTANT] > [!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**\ - **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) 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)

View File

@ -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_. > 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] > [!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 ### Parametrická reprezentace

View File

@ -155,7 +155,7 @@ description: "TODO"
### Trénink ### Trénink
> [!IMPORTANT] > [!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_. 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) 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] > [!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)** **Typical CNN by [Aphex34](https://commons.wikimedia.org/w/index.php?curid=45679374)**

View File

@ -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. - Můžeme přidat _potenciál_ -- dodatečnou heuristickou váhu.
> [!IMPORTANT] > [!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 ## Kostry

View File

@ -32,7 +32,7 @@ description: A guide in my new Starlight docs site.
## MVP matice ## MVP matice
> [!IMPORTANT] > [!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] > [!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. > 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.

View File

@ -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í_. 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**\ - **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í). 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. - Hrany lze detekovat pomocí konvoluce.
> [!IMPORTANT] > [!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) ### 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. - Při nesplnění těchto podmínek vzniká aliasing.
> [!TIP] > [!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] > [!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čí. > 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čí.

View File

@ -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. Vlastnosti objektu nezávislé na jeho deformaci. Např. počet děr.
> [!IMPORTANT] > [!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**\ - **Ohraničující obdélník / bounding box**\
Nejmenší obdélník ohraničující objekt. 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. Problém zařazení objektů do jedné z předem daných tříd.
> [!IMPORTANT] > [!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**\ - **Konstrukce formálního popisu / známý algoritmus**\
Pokud lze napsat formální popis tříd, lze klasifikátor realizovat přímo pomocí programu. Pokud lze napsat formální popis tříd, lze klasifikátor realizovat přímo pomocí programu.

View File

@ -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. 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] > [!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ů ### Redukce počtu polygonů
@ -347,7 +347,7 @@ Stíny jsou důležité, jelikož:
![width=500rem](./img/vph01_shadow_maps.png) ![width=500rem](./img/vph01_shadow_maps.png)
> [!IMPORTANT] > [!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**\ - **Shadow volumes**\
Počítá stíny ve 3D. Shadow volume explicitně popisuje objem prostoru ve stínu nějakého polygonu. Počítá stíny ve 3D. Shadow volume explicitně popisuje objem prostoru ve stínu nějakého polygonu.

View File

@ -222,7 +222,7 @@ Ray tracing jsou techniky, které trasují paprsky světla napříč scénou.
## Fyzikální simulace ## Fyzikální simulace
> [!IMPORTANT] > [!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**\ - **Rigid body**\
Aproximace reálného fyzikálního tělesa. Předpokládá uniformní hostotu a **neřeší:** Aproximace reálného fyzikálního tělesa. Předpokládá uniformní hostotu a **neřeší:**

View File

@ -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. Hry dovedou navodit řadu různých herních zážitků, které můžeme různými způsoby kategorizovat.
> [!IMPORTANT] > [!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/).
==== LeBlancs Eight Kinds of Fun ==== LeBlancs 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á? 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] > [!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 == Game Designer

View File

@ -38,7 +38,7 @@ description: "TODO"
## Souřadnicové systémy ## Souřadnicové systémy
> [!IMPORTANT] > [!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)** **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 ## Shadow mapy
> [!IMPORTANT] > [!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. 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 2. Stínování -- vyrenderuj scénu jako obvykle, ale aplikuj shadow mapu

View File

@ -80,7 +80,7 @@ description: "TODO"
## Topologie a modifikace ## Topologie a modifikace
> [!TIP] > [!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**\ - **Meshflow**\
Logické uspořádání hran a polygonů v mnohoúhelníkové síti. 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). 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] > [!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**\ - **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. 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.

55
transform-links.py Normal file
View File

@ -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)