Kapitola 1: Lekce 2 - Obecný úvod do CGA gramatiky


Jazyka CGA

V jazyku CGA je použit princip Lindenmayerova systému (dále L-systému), což je jedna z variant formální gramatiky, definovaná maďarským biologem Aristidem Lindenmayerem roku 1968. L-systém je specifický v tom, že na jednotlivé části modelu se opakovaně aplikují pravidla, která jsou následně blíže upřesněna. Tento systém iterace v CGA jazyce pak vytváří detailnější strukturu modelované fasády.

L-systémy rozšiřují bezkontextové gramatiky. Mohou být nedeterministické (nejednoznačné, parametrické), což znamená, že neterminály obsahují číselné parametry. Tímto parametrem může být např. výška patra po dělení fasády. Další typ má geometrickou interpretaci řetězců terminálů (v případě CGA geometrické modely). L-systémy jsou též kontextové. Zde výsledek přepisovacího pravidla závisí na okolí. V případě CGA gramatiky je to např. umístění dveří směrem k ulici, dotýkající se zdi dvou domů nemají okna apod. Prvotní myšlenka L-systémů je, že pravidlo závisí na okolních (ne)terminálech přepisovaného neterminálu. Toto neplatí pro CGA a v tomto ohledu ji lze považovat i za bezkontextovou.

CGA gramatika je reprezentována skriptovacím jazykem určeným k vytváření architektonických 3D modelů v softwaru CityEngine. To spočívá ve vytvoření základních geometrických útvarů, jakožto budov, a následném specifikování bližších detailů těchto struktur za účelem vzniku požadovaného architektonického vzhledu. CGA pravidlo každé budovy je přiřazováno ohraničeným plochám zvaným pole působnosti (podrobněji v dalších kapitolách).


Použití gramatiky

Pro práci s CGA gramatikou je potřeba se seznámit s nejdůležitějšími pojmy a principy pro tvorby. Základem pro modelování budov v CityEngine je Rule File, což je soubor s popisem pravidel aplikovaných na generovaný objekt, kterému je Rule File přiřazen. V tomto souboru definujeme inicializační symbol modelu (Shape Symbol), který pomocí dalších atributů popř. funkcí můžeme blíže specifikovat. Objekty, v našem případě budovy, se generují v okně Viewport, na ohraničeném území (parcele). Tyto parcely vzniknou buď manuálně - vytvořením n-úhelníku pomocí nástroje „Create Shape Tool“, nebo automatickým vygenerováním scény města, kde můžeme použít libovolnou parcelu pro přiřazení Rule File.


V následující kapitole bude popsáno prostředí City Engine.