•Заметающие представления полезны при создании трехмерных объектов с трансляционной, вращательной или другой симметрией. Объекты представляют, задав двухмерный путь заметания, по которому данная форма проходит по области пространства. Набор двухмерных примитивов - окружности и прямоугольники, может предлагаться для заметающего представления как пункты меню.
•Другие методы, например, построение замкнутых сплайновых кривых и поперечных сечений объемных объектов. рис. 1 - трансляционное заметание. Периодическая сплайновая кривая определяет поперечное сечение объекта. Затем трансляционное заметание на заданное расстояние, для чего
контрольные точки от p0 до p3 перемещаются по прямолинейной траектории, перпендикулярной плоскости поперечного сечения. Через определенные интервалы воспроизводится форма поперечного сечения и изображается набор связанных линий в направлении заметания, получается каркасное представление (рис. 1, б).
•Вращательное заметание (рис. 2.) периодическое сплайновое поперечное сечение вращается вокруг заданной оси в плоскости поперечного сечения, в результате чего получается каркасное представление. Можно выбрать любую ось. Если ось - перпендикулярна плоскости поперечного сечения – 2D форма. Если поперечное сечение имеет глубину, тогда один трехмерный объект используется для генерации другого . Траектория любая.
•Рис.. Построение твердого тела с помощью трансляционного заметания. Трансляция контрольных точек периодической сплайновой кривой на панели а дает твердое тело, изображенное на панели б, поверхность которого можно описать точечной функцией
P(u, v)
•Рис. 2. Построение объемного тела с помощью вращательного заметания. Вращение контрольных точек периодической сплайновой кривой, изображенной на панели а, относительно данной оси вращения дает объемное тело, представленное на панели б, поверхность которого можно описать точечной функцией P(u, v)
МЕТОДЫ КОНСТРУКТИВНОЙ СТЕРЕОМЕТРИИ
•Построение нового объекта по двум трехмерным объектам с использованием операций над множествами.
•Данный метод моделирования, называемый конструктивной стереометрией (Constructive Solid
Geometry CSG), дает новый объект с помощью операции• объединения, пересечения или вычитания, примененной к двум заданным телам.
•На рис. 1 и 2 показаны примеры создания новых форм с использованием операций над множествами.
•На рис. 1, а блок и пирамида размещены рядом. Используя операцию логического сложения, можно получить комбинированный объект, рис.1, б.
•На рис. 2, а показаны частично совмещенные блок и цилиндр. Применив операцию пересечения, получаем тело, изображенное на рис. 2, б. Используя операцию вычитания, можно получить тело, изображенное на рис. 2, в.
Рис.1. Объединение двух объектов (а), дает новый составной объект, (б)
Рис. 8.58. Два накладывающихся объекта (а) можно объединить либо в клиновидный объект (б) с использованием операции пересечения, либо в модифицированную блочную форму (в) с помощью операции вычитания
МЕТОДЫ КОНСТРУКТИВНОЙ СТЕРЕОМЕТРИИ
•Рис.. Пример древовидного представления построения объекта с помощью конструктивной стереометрии
•Вначале формируется исходный набор трехмерных объектов, называемых CSG-примитивами (параллелепипед, пирамида, конус, сфера и, возможно, некоторые тела со сплайновыми поверхностями).
•Затем выбирают операцию (логического сложения, пересечения или вычитания) и приводят два примитива в положения в некоторой области пространства для формирования нового объекта.
•новый объект можно объединить с одной из существующих форм для получения другого объекта.
•процесс может продолжаться, пока не будет получена искомая конечная форма объекта. Объект, построенный с помощью этой процедуры, представляется бинарным деревом, подобным изображенному на рис.
МЕТОДЫ КОНСТРУКТИВНОЙ СТЕРЕОМЕТРИИ
•Рис. 1 Реализация операций с
использованием схемы расчета луча
•Рис. 2. Определение границ поверхности вдоль луча пикселя
•Методы расчета луча используются, когда объекты описываются контурными представлениями. Определяются объекты, которые пересекаются набором параллельных прямых, проходящих через плоскость xy по направлению оси z.
•Плоскость называется плоскостью зажигания, а каждый луч начинается в положении пикселя, как показано на рис..
•Затем точки пересечения каждого луча с поверхностями вычисляются и сортируются по расстоянию от плоскости зажигания.
•С помощью заданных операций над множествами определяются границы поверхности сложного объекта. (рис.2),
•После операции логического сложения новый объем - суммарная внутренняя часть двух объектов.
•После операции пересечения новый объем - внутренняя область, общая для обоих объектов.
•операция вычитания отнимает одну внутреннюю часть объекта от другой в области пересечения двух объектов.
МЕТОДЫ КОНСТРУКТИВНОЙ СТЕРЕОМЕТРИИ
•Каждый CSG-примитив определяется в локальных (модельных) координатах. Точки во внешней системе определяются с помощью матрицы модельного преобразования, (наложение 1 объекта на другой).
•Матрицы, обратные к модельным матрицам объектов, используют для преобразования лучей пикселей в модельные координаты, расчет точек пересечения с поверхностью выполняется для отдельных примитивов.
•Затем точки пересечения с поверхностями сортируются согласно расстоянию от начала луча пикселя и используются для определения границ составного объекта согласно операции над множествами.
•Данная процедура повторяется для каждой пары объектов, которые нужно объединить в CSG-дерево искомого объекта.
•Для определения физических свойств (объем, масса) используется схема расчета луча.
•Объем объекта - площадь каждого пикселя на плоскости зажигания аппроксимируется небольшим
квадратом (рис). Затем аппроксимируют объем Vij объекта для поперечного сечения с площадью Aij по траектории луча от пикселя в положении (i, j).
•Vij Aij zij ,
•где zij глубина объекта относительно луча, исходящего из положения (i, j). Если объект имеет внутренние отверстия, zij - сумма частей, лежащих между точками пересечения по лучу. Суммарный объем CSG-объекта аппроксимируется как сумма отдельных объемов на траектории луча.
•
•Для функции плотности объекта (x, y, z) массу по лучу от точки (i, j) аппроксимируем интегралом
•где одномерный интеграл в зависимости от формы функции плотности часто можно оценить приближенно, не вычисляя. Затем общая масса CSG-объекта аппроксимируется следующей суммой.
МЕТОДЫ КОНСТРУКТИВНОЙ СТЕРЕОМЕТРИИ
•Рис 1. Определение объема объекта вдоль луча пикселя для области пикселя Aij на плоскости зажигания
•Подобные выражения можно получить для других физических свойств (центр масс и момент инерции).
•Приближенный расчет физических свойств можно улучшить, введя дополнительные лучи для подпикселей плоскости зажигания.
•Если формы объектов представлены октодеревьями, операции над множествами в процедурах CSG можно реализовать, сканируя древовидную структуру, описывающую содержимое пространственных октантов.
•В данной процедуре, описанной в следующем разделе, в октантах и подоктантах единичного куба выполняется поиск областей, занятых двумя совмещаемыми объектами.
• Для представления объемных объектов
ОКТОДЕРЕВЬЯ
используются иерархические древовидные
структуры - октодеревья (octrees).
•Представление трехмерного объекта в форме октодерева – расширение двухмерной схемы представления, кодирование в форме квадродерева (quadtree).
•Квадродеревья генерируются последовательным делением двухмерной области (квадрата) на квадранты.
•Каждый узел имеет четыре элемента данных по одному на каждый квадрант (рис.1). Если все точки
•Рис. 1. Квадратная область на плоскости xy, разделенная на
квадранта имеют одинаковый цвет (однородный квадрант), цвет - в элементе данных узла.
•В элементе данных устанавливается метка, определяющая, что квадрант однородный.
•Если, например, все точки в квадранте 2 на рис. 1 красного цвета, код красного цвета помещается в элемент данных 2 этого узла. В противном случае квадрант неоднородный, и он делится на
подквадранты, как показано на рис. 2. Элемент данных в узле, соответствующем квадранту 2, теперь помечает квадрант как неоднородный и
хранит указатель на следующий узел
•
квадродерева.
нумерованные квадранты и соответствующий узел квадродерева с четырьмя элементами данных
Рис. 2. Квадратная область плоскости xy с двумя уровнями деления на квадранты и соответствующее представление в
форме квадродерева
• В алгоритме генерации квадродерева проверяются коды
ОКТОДЕРЕВЬЯ
цвета, присвоенные объектам двухмерной области, и
устанавливаются узлы квадродерева.
• Если все квадранты исходного пространства одного
цвета, в квадродереве только один узел.
• Для неоднородной области плоскости последовательное
деление квадрантов продолжается до тех пор, пока
однородными не станут все участки (рис 3).
Существенная экономия памяти, если есть большие
одноцветные области.
• данную схему можно использовать для хранения кодов
•
Рис. 3. Представление в форме октодерева квадратной
цвета пикселей. Для области, 2n на 2n пикселей,
области плоскости xy, содержащей одну цветную область
представление в форме квадродерева содержит не
на фоне другого цвета
более n уровней.
•Каждый узел квадродерева имеет не больше четырех непосредственных потомков.
•Схема кодирования в форме октодерева делит область 3D пространства (обычно куб) на октанты и записывает восемь элементов данных в каждом узле дерева, (рис. 4).
•Отдельные подобласти - воксели (voxels).
•Воксель в представлении в форме октодерева хранит значения свойств для однородной подобласти пространства - цвет, тип материала, плотность и другие физические характеристики. Пустые области пространства представлены типом вокселей void(пусто).
•Для октодерева каждый узел может иметь от нуля до
Рис. 4. Куб, разделенный на нумерованные октанты, и соответствующий узел октодерева с 8 элементами данных
Разработано еще несколько алгоритмов обработки октодеревьев.
восьми непосредственных потомков.
BSP-ДЕРЕВЬЯ
•Схема представления подобна кодированию в форме октодерева, только в этом случае пространство на каждом этапе делится не на восемь, а на два участка.
•С помощью дерева бинарного разделения пространства (binary space-partitioning BSP) на каждом этапе сцена делится на два участка плоскостью, которая может проходить через любую точку и иметь любую ориентацию.
•Для октодерева сцена на каждом этапе делится тремя взаимно перпендикулярными плоскостями, параллельными декартовым координатным плоскостям.
•Адаптивное деление пространства с помощью BSP-деревьев может быть более эффективным, поскольку разрезающие плоскости располагаются где угодно и ориентированы как угодно согласно пространственному расположению объектов.
•Это может уменьшить глубину дерева, предоставляющего сцену, по сравнению с октодеревом, и сократить время, необходимое для поиска на дереве.
•Кроме того, BSP-деревья полезны для определения видимых поверхностей при разделении пространства в алгоритмах построения хода лучей.
•МЕТОДЫ ФРАКТАЛЬНОЙ ГЕОМЕТРИИ (см. доклад)
•Существуют и другие методы, не рассмотренные в данной лекции. -