Конструктивная сплошная геометрия: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
первая часть по синхронизации
2-я часть: АИ
Строка 41: Строка 41:
== Ссылки ==
== Ссылки ==
* [http://www.leadwerks.com/files/csg.pdf Leadwerks Software 'What is Constructive Solid Geometry?'] — объяснение терминов, уравнений и применений.
* [http://www.leadwerks.com/files/csg.pdf Leadwerks Software 'What is Constructive Solid Geometry?'] — объяснение терминов, уравнений и применений.
* [http://gts.sourceforge.net/ GNU Triangulated Surface library] - библиотека с открытым кодом ([[LGPL]]), которая содержит возможности CSG на сетках из треугольников.
* [http://www.cgal.org Computational Geometry Algorithms Library] - библиотека с открытым кодом ([[LGPL]], [[QPL]]), которая содержит, помимо прочего, [http://www.cgal.org/Part/PolygonAndPolyhedronOperations возможности CSG].
* [http://openCSG.org/ The CSG rendering library] - библиотека с открытым кодом, которая производит ориентированный на изображения CSG-[[рендеринг]] с использованием [[OpenGL]].
* [http://hyperfun.org/ HyperFun Project] - простой функциональный язык для геометрического моделирования, способный исполнять CSG-операции на различных типах объектов.
* [http://avocado-cad.sourceforge.net/wiki/index.php/Dev_Implementation#CSG_Boolean_Operations Overview of CSG in avoCADo] - програма 3D CAD с открытым исходным кодом.
* [http://www.cern.ch/theis/simplegeo SimpleGeo] - интерактивное твердотельное моделирование для симуляции перемещения частиц по методу Монте-Карло.
* [http://www.fmepedia.com/index.php/CSGBuilder FMEpedia CSGBuilder example] - wikipedia CSG binary tree as replicated using FME (Feature Manipulation Engine).
* [http://www.solidgraphics.com/ SolidKit Library] - программная библиотека для программ с 3D/2D-графикой, разработанная на C++ с использованием OpenGL, содержит способности CSG на сетках из треугольников.


{{cg-stub}}
{{cg-stub}}

Версия от 16:31, 30 июля 2009

Конструктивная блочная геометрия (Constructive Solid Geometry, CSG) технология, используемая в моделировании твёрдых тел. Конструктивная блочная геометрия зачастую, но не всегда, является способом моделирования в трёхмерной графики и САПР. Она позволяет создать сложную сцену или объект с помощью битовых операций для комбинирования нескольких иных объектов. Это позволяет более просто математически описать сложные объекты, хотя не всегда операции проходят с использованием только простых тел. Так, часто с помощью конструктивной блочной геометрии представляют модели или поверхности, которые выглядят визуально сложными; на самом деле, они являются немногим более чем умно скобинированные или декомбинированные простые объекты. В некоторых случаях конструктивная блочная геометрия исполняется с помощью полигональных сеток (англ. polygonal mesh) и может быть или может не быть процедурной и/или параметрической.

Простейшие тела, используемые в конструктивной блочной геометрии — примитивы (англ. primitives), тела с простой формой: куб, цилиндр, призма, пирамида, сфера, конус. Набор доступных примитивов зависит от программного пакета. Так, некоторые программы позволяют создание конструктивной блочной геометри на основе кривых объектов, а некоторые нет.

Построение более сложного объекта происходит путём применения к описаниям объектов булевых (двоичных) операций на множествах  — объединение, пересечение и разность.

Примитив, как правило, может быть описан процедурой, которая принимает некоторые значения параметров, например, для построения сферы достаточно знать её радиус и положение центра.

Примитивы могут быть скомпонованы в составные объекты с помощью таких операций:

Операции на конструктивной блочной геометрии
булевое объединение булевая разность булевое пересечение
объединение двух объектов разность двух объектов пересечение двух объектов
Объединение: слияние двух объектов в один Разность: вычитание одного объекта от другого Пересечение: общая часть обоих объектов

Применение

Сложный объект может быть представлен двоичным деревом, где «листья» — это объекты, а узлы — операции. ( пересечение, объединение, разность)

Конструктивная блочная геометрия имеет ряд практических применений. Она используется там где необходима простота (игровой движок, например, Unreal Engine и Source Engine) или математическая точность (САПР, например, определение водонепроницаемости конструкции).

Программы

Ссылки

  • 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 на сетках из треугольников.