Kapitola 3: Lekce 3 - Stupeň detailu (LOD)


Atribut LOD

Pokud modelujeme větší celky budov (např. města), obvykle se nemodeluje každá budova zvlášť (každá s vlastními pravidly), ale využívá se zde jednoho z důležitých nástrojů jazyka CGA – náhodného generování atributů. Tím získáme různé variace jednoho typu budovy. Náhodný výběr hodnot atributu se mohou v Rule File zapisovat několika způsoby. Pokud například chceme, aby atribut „height_0“ navýbal hodnot mezi 25 až 35, lze to v Rule File zapsat jako v následujícím zdrojovém kódu:


attr height_0 = rand(25, 35)


Pokud bychom chtěli, aby nabýval hodnoty maximálně 35, pak by stačilo napsat pouze rand(35). Pakliže chceme, aby atribut nabýval právě 3 hodnot, můžeme napsat:


attr height_0 = 33%: 25
33%: 30
else: 35


Pro optimalizaci grafické náročnosti modelovaných budov se často využívá LOD (Level of Detail). Tento efekt způsobí, že modely, na které je nahlíženo z větší vzdálenosti nebudou zobrazeny se všemi detaily (budou mít méně polygonů), jako zblízka. Stačí si vytvořit několik verzí modelu s rozdílnými vlastnostmi.

Minimální počet verzí bude 2 – pro nízkou a vysokou úroveň detailu. Začneme přidánním atributu LOD - attr LOD = 1. Výchozí bude tedy vysoká komplexnost modelu, takže zbývá vymodelovat verzi s nízkým rozlišením. Pro ukázku změníme pravidlo „Okno“. Stačí vepsat podmínku určující stupeň detailu a následně připsat zjednodušenou verzi pravidla pro LOD = 0. U nižší kvality modelu jsem vložil příkaz pro import prvku bez parametru. Místo prázdných závorek mohu vložit například jednoduchý externě zpracovaný asset a pro vysokou kvalitu složitější okno s více detaily.


Okno -->
case LOD > 0 :
s('1,'1,0.4) t(0,0,-0.25) i("builtin:cube")
else : i()


Pokud budovu kliknutím vybereme, můžeme v okně Inspector vidět nový atribut LOD. Když nastavíme jeho hodnotu na 0, budově se po vygenerování místo oken objeví pouze prázdné plochy.


Vygenerovaný model s vysokou (vlevo) a nízkou úrovní detailů

V další kapitole je popsáno modelování budovy podle reálné předlohy.