Язык генеративного моделирования
Язык генеративного моделирования (GML) в компьютерной графике и генеративном компьютерном программировании — это очень простой язык программирования для краткого описания сложных трехмерных форм. Он следует парадигме «генеративного моделирования», где сложные наборы данных представлены «списками операций», а не списками объектов, как, например, в случае с реляционной базой данных .
Обзор [ править ]
Обычные форматы файлов 3D описывают виртуальный мир с точки зрения геометрических примитивов . Это могут быть кубы и сферы в CSG- дереве, NURBS -патчи, набор неявных функций , треугольная сетка или просто облако точек . Термин «генеративное 3D-моделирование» описывает другую парадигму описания формы. Основная идея заключается в замене 3D-объектов объектно-генерирующими операциями: форма описывается последовательностью этапов обработки, а не треугольниками, которые являются результатом применения этих операций. Дизайн формы становится дизайном правил. В целом этот подход можно применить к любому представлению формы, которое предоставляет базовый набор производящих функций, называемых в этом контексте «элементарными операторами формы». Его эффективность была продемонстрирована, например, в области процедурной генерации сеток , где операторы Эйлера представляют собой полный и замкнутый набор обратимых функций, производящих форму для сеток, работающих на уровне полуребер.
Генеративное моделирование повышает эффективность за счет возможности создания операторов формы высокого уровня из операторов формы низкого уровня. Любая последовательность этапов обработки может быть сгруппирована для создания нового комбинированного оператора . Он может использовать как элементарные операторы, так и другие комбинированные операторы. Конкретные значения легко заменяются параметрами, что позволяет отделить данные от операций: одну и ту же последовательность обработки можно применять к разным наборам входных данных. Одни и те же данные можно использовать для создания различных фигур путем применения разных комбинированных операторов, например, из библиотеки операторов моделирования, зависящих от предметной области. Это позволяет создавать очень сложные объекты всего лишь из нескольких входных параметров высокого уровня, таких как, например, библиотека стилей.
генеративного Язык моделирования
GML — это конкретная реализация генеративного подхода. Это интерпретируемый язык программирования на основе стека , очень похожий на Adobe PostScript , но без каких-либо операторов 2D-разметки. Вместо этого он предоставляет ряд операторов для создания 3D-моделей ( многоугольников , b-повторов , поверхностей подразделения ). Как «язык программирования форм» он является настоящим обобщением «плоских» форматов 3D-файлов, таких как OBJ , DXF или VRML , которые содержат только списки геометрических примитивов.
Вместе с OpenGL на основе механизмом выполнения GML также можно рассматривать как средство просмотра со встроенным средством моделирования, позволяющее преодолеть обычное разделение 3D-моделирования и интерактивной визуализации . Вместо этого оба переплетаются. GML обеспечивает краткое представление параметризованных 3D-объектов, которые можно оценивать «на лету» во время выполнения, визуализировать с адаптивным уровнем детализации и интерактивно манипулировать всеми параметрами.
Пример GML [ править ]
Приложения [ править ]
В процедурных моделях сложность модели больше не связана напрямую (т. е. линейно) с размером файла. Процедурный собор , [ который? ] базовая модель Кёльнского собора содержит 70 ажурных окон, а одно окно в самом высоком разрешении содержит около 7 миллионов треугольников. Они «развернуты» всего лишь из 126 КБ кода GML (18 КБ в архиве).
Готическая архитектура является ярким примером эффективности процедурного проектирования форм: в готическом стиле все геометрические конструкции выполняются исключительно с использованием циркуля и линейки . Вариации были получены путем процедурного объединения постоянно меняющимися способами набора простых базовых параметризованных геометрических операций. Поэтому практически невозможно найти в разных зданиях два ажурных окна, имеющих одинаковую геометрическую конструкцию.
Интерактивный конструктор CAVE помогает разместить CAVE в небольшой комнате. Из-за бетонных решеток под потолком его сложно разместить, используя только 2D-планы помещения. Степени свободы (синие стрелки) — это положение и ориентация отсека проекционного экрана, угол открытия проекторов и положение/ориентация верхнего зеркала. Степени свободы слегка ограничены и могут принимать только допустимые значения. Степени свободы остаются неизменными, т. е. при перемещении ячеек центры проекторов также перемещаются (или отражаются от стен).
Учитывая набор из около 30 CAD-моделей автомобильных колесных дисков, была поставлена задача найти общую параметризацию, способную генерировать каждый из отдельных экземпляров ( генеративная реконструкция поверхности ). В результате новые аналогичные колесные диски могут быть синтезированы в пределах проектного пространства, охватываемого заданными 30 дисками, которые были вручную классифицированы на 3 основные категории. Некоторыми параметрами высокого уровня можно управлять напрямую с помощью ползунков и кнопок (стрелок и шариков).
Генеративное моделирование предлагает различать «структуру» и «внешний вид» (например, стиль) 3D-моделей. Удивительно, но многие объекты имеют ту же структуру, что и стул , т. е. они «близки» к стулу на структурном уровне. Тогда дифференциация позволяет (в принципе) применить внешний вид одного объекта этого класса к другому.
Дидактический апплет, показывающий построение диаграмм Вороного : Можно ли восстановить центры ячеек Вороного по границам областей? Интерактивный апплет дает хорошее представление об идее формального доказательства.
См. также [ править ]
Ссылки [ править ]
Дальнейшее чтение [ править ]
- Майкл Лейтон. Генеративная теория формы (доступна на его домашней странице )
- Джон Снайдер. Генеративное моделирование для компьютерной графики и САПР: проектирование символических форм с использованием интервального анализа
Внешние ссылки [ править ]
- Домашняя страница GML Generative-modeling.org .
- Диссертация Свена Хавеманна в UB TU Braunschweig описывает, почему и как был создан GML.
- Страницы Калифорнийского технологического института на GENMOD