**Generative Modelling Language (GML)** (Ģeneratīvā modelēšanas valoda) ir augsta līmeņa programmēšanas valoda, ar kuru var izveidot koncentrētu aprakstu sarežģītu 3D modeļu izveidošanai. Tā seko "Generative Modelling" piemēram, kur sarežģītu datu kopumu pasniedz kā darbību sarakstu, nevis kā objektu kopumu.

Ģeneratīvā 3D modelēšana
------------------------

Tradicionāli 3D objektus un virtuālās pasaules definē ar ģeometriskiem primitīviem: tie var būt kubi un lodes, NURBS ielāpi, trijstūri vai punkti.

Termins **ģeneratīvā modelēšana** izsaka to, ka formu veido apraksts ar secīgām apstrādes darbībām, nevis šo darbību pielietošanas rezultāts. Tādā veidā formu modelēšana kļūst par noteikumu izstrādāšanu. Šī metode ir ļoti vienkārša, to var pielietot jebkurai formu modelēšanai , kura nodrošina ģeneratīvo funkciju kopas jeb "elementary shape operators".

Ģeneratīvā modelēšana pierāda savu efektivitāti ar spēju radīt augsta līmeņa modeļu operatorus no zema līmeņa operatoriem. Jebkurus secīgus procesuālos soļus var likt kopā, lai radītu jaunu kompleksu operatoru. Noteiktas vērtības viegli var aizstāt ar parametriem, kas dod iespēju atdalīt datus no operācijām: Vienu un to pašu procesa secību var izmantot dažādiem ievaddatiem. Vienus un tos pašus datus var izmantot, lai izveidotu dažādus objektus, lietojot atšķirīgi savietotus operatorus no, piemēram, domēnu modelēšanas operatoru bibliotēkām. Tas dod iespēju radīt sarežģītus modeļus no tikai dažiem augsta līmeņa ievades parametriem, piemēram, no stila bibliotēkas.

Ģeneratīvā modelēšanas valoda
-----------------------------

GML ir ģeneratīvās metodes realizēšana. Tā ir uz stekiem balstīta programmēšanas valoda, ļoti līdzīga Adobe's PostScript, bet bez neviena 2D izkārtojuma operatora. Tā vietā GML nodrošina neskaitāmus operatorus 3D modeļu, piemēram, daudzstūru, virsmu, izveidošanai.

Kopā ar tā uz Open Graphics Library balstīto dzinēju, GML var izmantot arī kā skatītāju ar integrētu modelētāju, lai uzveiktu 3D modelēšanas un interaktīvās vizualizēšanas atdalīšanu. Tā vietā abas darbības tiek sasaistītas: GML pieļauj parametrizētu 3D objektu attēlojumu, kuru var novērtēt izpildes laikā, renderēt ar piemērotu detalizācijas pakāpi un atļauj visu parametru interaktīvu manipulāciju.

GML piemērs
-----------

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |
| --- | --- | --- |
| 1: |     | (0,0,-2) (1,1,0) 2 quad |
| 2: |  | /cyan setcurrentmaterial |
|  |  | 5 poly2doubleface |
| 3: |  | (0,1,1) extrude |
| 4: |  | (0,0,1) (1,0,1) normalize |
|  |  | 0 project\_ringplane |
| 5: |  | (2,0,0) (0,1,-1) 2 quad |
| 6: |  | /yellow setcurrentmaterial |
|  |  | 5 poly2doubleface |
| 7: |  | 0 bridgerings |

 |   |  |

Lietošana
---------

Ar procesuālajiem modeļiem to sarežģītības pakāpe nav saistīta ar faila izmēru. *Procesuālā katedrāle*, Ķelnes katedrāles pamata modelis, sastāv no 70 ornamentāliem logiem. Katrs logs ar augstāko izšķirtspēju sastāv no 7 miljoniem trijstūru. Tie aizņem tikai 126 KB vai arī 18 KB saspiestā veidā.

Gotiskā arhitektūra ir ļoti labs procesuālās arhitektūras piemērs: gotikā visas ģeometriskās konstrukcijas ir īpaši izveidotas izmantojot cirkuli un lineālu. Dažādību panāca kombinējot vienkāršas, iepriekš parametrizētas ģeometriskas operācijas. Prakstiski ir neiespējami atrast divus vienādus logus dažādās celtnēs ar vienādu ģeometrisko uzbūvi.

*Interactive CAVE designer* palīdz ievietot CAVE (Cave Automatic Virtual Environment) nelielā telpā. To ir grūti ievietot izmantojot tikai istabas 2D plānus, jo sem griestiem ir betona sijas. *Degrees of freedom* jeb brīvas izmanošanas grādi (zilās bultas) norāda pozīciju un orientāciju kabīnes ekrāna projekcijai, projektoru atveres leņķi, un augšējā spoguļa pozīciju un orientāciju. DOF ir iestādīts tā, ka tas izmanto tikai derīgas vērtības. Pārvietojot kabīni, kopā ar to pārvietojas arī projektoru centri vai arī tie atstarojas uz sienām.

Tika izsniegti aptuveni 30 CAD automašīnu riteņu disku modeļi, uzdevums bija atrast piemērotu parametrizāciju, kas piemērota, lai individuāli ģenerētu katru paraugu (ģeneratīvā virsmu rekonstrukcija). Rezultātā, jauni, vienādi riteņu diski tika apstrādes vidē sintezēti. Dažus no augsta līmeņa parametriem var uzreiz mainīt ar rīkiem (bumbām un bultām).

Ģeneratīvā modelēšana ierosina atšķirt 3D modeļu uzbūvi un izskatu. Pārsteidzoši ir tas, ka daudziem objektiem ir gandrīz tāda pati uzbūve kā krēslam, tas ir, tā ir līdzīga strukturālajā līmenī. Diferencēšana pieļauj izmantot viena objekta izskatu citam tajā pašā klasē.

Pamācošā lietotne parāda *Voronoi* diagrammas: Vai ir iespējams rekonstruēt *Voronoi* elementa centrus no objekta robežām? Interaktīvā lietotne izrāda labu idejas intuīciju aiz formālā standarta.

Ārējās saites
-------------

* GML mājaslapa generative-modeling.org
* Sven Havemann disertācija par to, kā un kāpēc GML tika radīta UB TU Braunschweig
* Michael Leyton grāmata **A Generative Theory of Shape**, pieejama viņa mājaslapā homepage
* Oriģinālā iedvesma radās no John Snyder grāmatas **Generative Modeling for Computer Graphics and CAD: Symbolic Shape Design Using Interval Analysis** Caltech pages on GENMOD