- Конструктивная сплошная геометрия
-
Конструктивная блочная геометрия (Constructive Solid Geometry, CSG) технология, используемая в моделировании твёрдых тел. Конструктивная блочная геометрия зачастую, но не всегда, является способом моделирования в трёхмерной графике и САПР. Она позволяет создать сложную сцену или объект с помощью битовых операций для комбинирования нескольких иных объектов. Это позволяет более просто математически описать сложные объекты, хотя не всегда операции проходят с использованием только простых тел. Так, часто с помощью конструктивной блочной геометрии представляют модели или поверхности, которые выглядят визуально сложными; на самом деле, они являются немногим более чем умно скомбинированные или декомбинированные простые объекты. В некоторых случаях конструктивная блочная геометрия исполняется с помощью полигональных сеток (англ. polygonal mesh), и может быть процедурной и/или параметрической.
Простейшие тела, используемые в конструктивной блочной геометрии — примитивы (англ. primitives), тела с простой формой: куб, цилиндр, призма, пирамида, сфера, конус. Набор доступных примитивов зависит от программного пакета. Так, некоторые программы позволяют создание конструктивной блочной геометри на основе кривых объектов, а некоторые нет.
Построение более сложного объекта происходит путём применения к описаниям объектов булевых (двоичных) операций на множествах — объединение, пересечение и разность.
Примитив, как правило, может быть описан процедурой, которая принимает некоторые значения параметров, например, для построения сферы достаточно знать её радиус и положение центра.
Примитивы могут быть скомпонованы в составные объекты с помощью таких операций:
Содержание
Применение
Конструктивная блочная геометрия имеет ряд практических применений. Она используется там где необходима простота (игровой движок, например, Unreal Engine и Source Engine) или математическая точность (САПР, например, определение водонепроницаемости конструкции).
Программы
- Технология Geo Mod построена на использовании CSG
- BRL-CAD
- Feature Manipulation Engine
- GtkRadiant
- POV-Ray
- sgCore (C++/C# библиотека)
- SolidWorks (САПР)
- UnrealEd
- 3D World Studio
- Vectorworks
- OpenSCAD
Литература
- Martti Mantyla, "An Introduction to Solid modeling", 1988
- Christoph M. Hoffman, "Geometric and Solid modeling", 1989
- Philip M. Hubbard, "Constructive Solid Geometry for Triangulated Polyhedra", 1990
- Michael Muuss & Lee Butler, Глава "Combinatorial Solid Geometry, B-Reps, and n-Manifold Geometry" из книги "State of the Art in Computer Graphics", 1991
Ссылки
- Leadwerks Software 'What is Constructive Solid Geometry?' — объяснение терминов, уравнений и применений.
- GNU Triangulated Surface library - библиотека с открытым кодом (LGPL), которая содержит возможности CSG на сетках из треугольников.
- Computational Geometry Algorithms Library - библиотека с открытым кодом (LGPL, QPL), которая содержит, помимо прочего, возможности CSG.
- The CSG rendering library - библиотека с открытым кодом, которая производит ориентированный на изображения CSG-рендеринг с использованием OpenGL.
- HyperFun Project - простой функциональный язык для геометрического моделирования, способный исполнять CSG-операции на различных типах объектов.
- Overview of CSG in avoCADo - программа 3D CAD с открытым исходным кодом.
- SimpleGeo - интерактивное твердотельное моделирование для симуляции перемещения частиц по методу Монте-Карло.
- FMEpedia CSGBuilder example - wikipedia CSG binary tree as replicated using FME (Feature Manipulation Engine).
- SolidKit Library - программная библиотека для программ с 3D/2D-графикой, разработанная на C++ с использованием OpenGL, содержит способности CSG на сетках из треугольников.
Категории:- Трёхмерная графика
- Стереометрия
- Механизмы компьютерных игр
Wikimedia Foundation. 2010.