<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F%3AGenerative_Modelling_Language</id>
	<title>Русская Википедия:Generative Modelling Language - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F%3AGenerative_Modelling_Language"/>
	<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:Generative_Modelling_Language&amp;action=history"/>
	<updated>2026-04-05T17:25:32Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:Generative_Modelling_Language&amp;diff=8660829&amp;oldid=prev</id>
		<title>EducationBot: Новая страница: «{{Русская Википедия/Панель перехода}} {{Значимость|дата=2018-08-20}} {{нет ссылок|дата=20 августа 2018}} В компьютерной графике, '''Generative Modeling Language (GML)''' — простой язык программирования для краткого описания сложных трёхмерных объектов. Он о...»</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:Generative_Modelling_Language&amp;diff=8660829&amp;oldid=prev"/>
		<updated>2023-07-14T16:38:25Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{Русская Википедия/Панель перехода}} {{Значимость|дата=2018-08-20}} {{нет ссылок|дата=20 августа 2018}} В &lt;a href=&quot;/ruwiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Компьютерная графика (страница не существует)&quot;&gt;компьютерной графике&lt;/a&gt;, &amp;#039;&amp;#039;&amp;#039;Generative Modeling Language (GML)&amp;#039;&amp;#039;&amp;#039; — простой язык программирования для краткого описания сложных трёхмерных объектов. Он о...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Русская Википедия/Панель перехода}}&lt;br /&gt;
{{Значимость|дата=2018-08-20}}&lt;br /&gt;
{{нет ссылок|дата=20 августа 2018}}&lt;br /&gt;
В [[Компьютерная графика|компьютерной графике]], '''Generative Modeling Language (GML)''' — простой язык программирования для краткого описания сложных трёхмерных объектов. Он относится к [[Автоматизация процесса программирования|парадигме генеративного моделирования]], где сложные наборы данных представлены списками операций, а не списками объектов, как например, в [[Реляционная база данных|реляционной базе данных]].&lt;br /&gt;
&lt;br /&gt;
== Обзор ==&lt;br /&gt;
За счёт использования генеративного трёхмерного моделирования, GML имеет преимущества перед другими языками программирования для 3D-моделирования.&lt;br /&gt;
&lt;br /&gt;
=== Генеративное программирование ===&lt;br /&gt;
Обычные форматы 3D-файлов описывают [[виртуальный мир]] с точки зрения геометрических примитивов.&amp;lt;ref&amp;gt;{{Cite web|url=http://www.generative-modeling.org|title=Generative Modeling Language|author=|website=|date=|publisher=|accessdate=2019-02-16|archiveurl=https://web.archive.org/web/20060721140550/http://www.generative-modeling.org/|archivedate=2006-07-21|deadlink=yes}}&amp;lt;/ref&amp;gt; Это могут быть кубы и сферы в [[Конструктивная сплошная геометрия|дереве CSG]], [[NURBS|патчи NURBS]], набор неявных функций, треугольная сетка или просто [[облако точек]]. Термин «генерирующее трехмерное моделирование» означает другую парадигму описания формы. Основная идея заключается в замене трёхмерных объектов генерирующими объекты операциями: форма описывается последовательностью шагов обработки, а не треугольниками, которые являются конечным результатом применения этих операций. Конструирование форм сводится к конструированию правил. Этот подход может быть в общем случае применён к любому представлению формы, которое предоставляет базовый набор генерирующих функций, называемых в данном контексте «элементарными операциями фигуры». Его эффективность была продемонстрирована, например, в области генерации процедурной сетки, причём эти операции представляют собой полный и замкнутый набор функций для создания обратимых форм для сеток.&lt;br /&gt;
&lt;br /&gt;
Генеративное моделирование повышает эффективность за счёт возможности создания операторов формы высокого уровня из низкоуровневых операторов. Любая последовательность этапов обработки может быть сгруппирована для создания нового комбинированного оператора. Он может использовать элементарные операторы, а также другие комбинированные операторы. Конкретные значения могут быть легко заменены параметрами, что позволяет отделить данные от операций: одна и та же последовательность обработки может применяться к различным наборам входных данных. Это позволяет создавать очень сложные объекты только из нескольких входных параметров высокого уровня, таких как, например, библиотека стилей.&lt;br /&gt;
&lt;br /&gt;
=== Язык ===&lt;br /&gt;
GML представляет собой реализацию генеративного подхода к 3D-моделированию. Основанный на стеках интерпретируемый язык программирования, очень похожий на [[PostScript]] от [[Adobe Systems|Adobe]], но без двумерных операторов макета. Вместо этого он предоставляет ряд операторов для создания 3D-моделей (полигонов, b-reps, поверхностей разбиения). Как язык программирования 3D-форм, это обобщение «плоских» форматов 3D-файлов, таких как OBJ, DXF или VRML, которые содержат только списки геометрических примитивов.&amp;lt;ref&amp;gt;{{Cite web|url=https://www.scribd.com/document/279866/Generative-Modeling-Language|title=Generative Modeling Language|author=|website=|date=|publisher=}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как и [[OpenGL]], GML можно также рассматривать как средство просмотра со встроенным модулем для преодоления обычного разделения 3D-моделирования от интерактивной визуализации. GML позволяет получить сжатое представление параметризованных трёхмерных объектов, которые могут быть оценены «на лету» во время выполнения, визуализированы с адаптивным уровнем детализации, и позволяют интерактивно манипулировать всеми параметрами.&lt;br /&gt;
&lt;br /&gt;
== Пример программы на GML ==&lt;br /&gt;
[[Файл:GML-example-gehrung.png|мини|600x600пкс|Ход поэтапного выполнения программы]]&lt;br /&gt;
 1:  (0,0,-2) (1,1,0) 2 quad&lt;br /&gt;
 2:  /cyan setcurrentmaterial&lt;br /&gt;
     5 poly2doubleface&lt;br /&gt;
 3:  (0,1,1) extrude&lt;br /&gt;
 4:  (0,0,1) (1,0,1) normalize&lt;br /&gt;
     0 project_ringplane&lt;br /&gt;
 5:  (2,0,0) (0,1,-1) 2 quad&lt;br /&gt;
 6:  /yellow setcurrentmaterial&lt;br /&gt;
     5 poly2doubleface&lt;br /&gt;
 7:  0 bridgerings&lt;br /&gt;
&lt;br /&gt;
== Приложения ==&lt;br /&gt;
[[Файл:GML-Gothic-Cathedral.jpg|Procedural Model of Cologne Cathedral]]&lt;br /&gt;
&lt;br /&gt;
В процедурных моделях сложность модели линейно связана с размером файла. Собор на изображениях выше — модель [[Кёльнский собор|Кёльнского собора]] — содержит 70 ажурных окон, а одно окно с самым высоким разрешением содержит около 7 миллионов треугольников. Они «разворачиваются» всего из 126 КБ кода GML (18 КБ в архиве [[ZIP]]).&lt;br /&gt;
&lt;br /&gt;
[[Файл:GML-Gothic-Window-Thickness_(1).jpg|Gothic Window Tracery]]&lt;br /&gt;
&lt;br /&gt;
[[Готическая архитектура]] является ярким примером эффективности процедурного оформления фигур: в готическом стиле все геометрические конструкции выполняются исключительно с помощью циркуля и линейки. Вариации были получены путем последовательного комбинирования в постоянно меняющихся способах набора простых основных параметризованных геометрических операций. Поэтому практически невозможно найти два окна в разных зданиях, которые следуют идентичной геометрической конструкции.&lt;br /&gt;
&lt;br /&gt;
[[Файл:GML-Cave-Designer_(1).jpg|Interactive CAVE Designer]]&lt;br /&gt;
&lt;br /&gt;
Интерактивный CAVE-дизайнер помогает подогнать объект в маленькую комнату. Из-за конкретных баров под потолком трудно разместить его, используя только 2D-планы комнаты. Степень свободы (синие стрелки) — это положение и ориентация проекционного экрана, угол открытия проекторов и положение/ориентация верхнего зеркала. DOF слегка ограничены, чтобы принимать только допустимые значения. DOF сохраняются согласованно, т. е. при перемещении ячеек, центры проектора также перемещаются (или отражаются на стенах).&lt;br /&gt;
&lt;br /&gt;
[[Файл:GML-Stuhl-Template_(1).jpg|Chair Structure]]&lt;br /&gt;
&lt;br /&gt;
Генеративное моделирование предполагает различать «структуру» и «внешний вид» (например, стиль) трёхмерных моделей. Примечательно, что многие объекты имеют ту же структуру, что и стул, т.е. они «близки» к стулу на структурном уровне. Так, дифференцирование позволяет (в принципе) применять внешний вид одного объекта в этом классе к другому.&lt;br /&gt;
&lt;br /&gt;
[[Файл:GML-Voronoi-Diagram_(1).jpg|Didactic Voronoi Diagram Applet]]Дидактический апплет, показывающий построение диаграмм Вороного: возможно ли восстановить центры ячеек Вороного от границ области? Интерактивный апплет обеспечивает хорошую интуицию идеи формального доказательства.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Языки программирования по алфавиту]]&lt;br /&gt;
[[Категория:Компьютерная графика]]&lt;br /&gt;
[[Категория:Форматы файлов 3D графики]]&lt;br /&gt;
{{Навигационная таблица/Портал/Русская Википедия}}&lt;br /&gt;
[[Категория:Русская Википедия]]&lt;br /&gt;
[[Категория:Википедия]]&lt;br /&gt;
[[Категория:Статья из Википедии]]&lt;br /&gt;
[[Категория:Статья из Русской Википедии]]&lt;/div&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
</feed>