Конструктивная геометрия твердых тел: создание сложных 3D-моделей из примитивов.
Constructive solid geometry
Конструктивная геометрия твердых тел (CSG) в 3D моделировании: создание сложных объектов из примитивов с помощью булевых операций. CAD, процедурное моделирование.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Создание сложной 3D поверхности или объекта путем объединения примитивных объектов.
Creating a complex 3D surface or object by combining primitive objects
Конструктивная твердотельная геометрия (CSG; ранее называлась вычислительной бинарной твердотельной геометрией) — это техника, используемая в твердотельном моделировании. Конструктивная твердотельная геометрия позволяет моделировщику создавать сложную поверхность или объект, используя булевы операции для объединения более простых объектов, что потенциально позволяет генерировать визуально сложные объекты, комбинируя лишь несколько примитивов. В 3D компьютерной графике и CAD CSG часто применяется в процедурном моделировании. CSG также может выполняться над полигональными сетями и может быть как процедурной, так и параметрической, или не быть ими. В отличие от CSG, существуют моделирование полигональных сеток и моделирование примитивами (box modeling).
Constructive solid geometry (CSG; formerly called computational binary solid geometry) is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combine simpler objects, potentially generating visually complex objects by combining a few primitive ones. In 3D computer graphics and CAD, CSG is often used in procedural modeling. CSG can also be performed on polygonal meshes, and may or may not be procedural and/or parametric. Contrast CSG with polygon mesh modeling and box modeling.
Работа
Простейшие твердые объекты, используемые для представления, называются геометрическими примитивами. Обычно это объекты простой формы: кубоиды, цилиндры, призмы, пирамиды, сферы, конусы. Почти все инженерные CAD-системы используют CSG (конструктивную твердотельную геометрию), что может быть полезно для представления резов инструмента и элементов, где детали должны точно соединяться. Движки Quake и Unreal Engine используют эту систему, как и Hammer (нативный редактор уровней движка Source) и Torque Game Engine / Torque Game Engine Advanced. CSG популярен, поскольку моделист может использовать набор относительно простых объектов для создания очень сложной геометрии. Это может быть важно для некоторых производственных или инженерных вычислительных задач. В отличие от этого, при создании геометрии на основе граничных представлений требуются дополнительные топологические данные или необходимо проводить проверки согласованности, чтобы убедиться, что заданное описание границы определяет корректный твердый объект. Это важное свойство для некоторых приложений, таких как трассировка лучей. Другой подход разделяет обнаружение примитивных форм и вычисление CSG-дерева, определяющего конечную модель. Этот подход использует возможности современных инструментов программного синтеза для поиска CSG-дерева с минимальной сложностью. Существуют также методы, использующие генетические алгоритмы для итеративной оптимизации начальной формы в направлении формы целевой сетки.
The simplest solid objects used for the representation are called geometric primitives. Typically they are the objects of simple shape: cuboids, cylinders, prisms, pyramids, spheres, cones. Nearly all engineering CAD packages use CSG (where it may be useful for representing tool cuts, and features where parts must fit together). The Quake engine and Unreal Engine both use this system, as does Hammer (the native Source engine level editor), and Torque Game Engine/Torque Game Engine Advanced. CSG is popular because a modeler can use a set of relatively simple objects to create very complicated geometry. This can be important for some manufacturing or engineering computation applications. By comparison, when creating geometry based upon boundary representations, additional topological data is required, or consistency checks must be performed to assure that the given boundary description specifies a valid solid object. This is a desirable quality for some applications such as ray tracing. Another approach decouples the detection of primitive shapes and the computation of the CSG tree that defines the final model. This approach exploits the ability of modern program synthesis tools to find a CSG tree with minimal complexity. There are also approaches that use genetic algorithms to iteratively optimize an initial shape towards the shape of the desired mesh.