3.2. МОДЕЛЬ ОБЪЕКТА3.2.1. ПРИМИТИВЫ – БАЗОВЫЕ СТРОИТЕЛЬНЫЕ ЭЛЕМЕНТЫ ОБЪЕКТАНаиболее удобно представлять трехмерные объекты для метода обратного трассирования лучей в виде отдельных строительных блоков, поверхности которых обычно описываются функциями первого и второго порядка. Выбор таких функций обусловлен необходимостью аналитического, а не численного решения уравнений пересечения светового луча с поверхностями. Описание бикубических поверхностей представлено в §3.4.4. Будем называть функциональным объемом некоторую часть пространства (необязательно конечную), которая охватывается поверхностью одной функции. Для того чтобы однозначно определить, какой участок полупространства относится к телу объекта, а какой вне его, установим следующее правило: принадлежащим телу объекта считается подпространство, выделяемое поверхностью , в любой точке которого значение скалярного поля . Назовем такое подпространство положительным, а смежное с ним и лежащее по другую сторону от поверхности функции – отрицательным. При соблюдении этой договоренности, автоматически выполняется условие направленности вектора нормали внутрь тела, т. е. в сторону положительного подпространства, так как градиент скалярного поля описываемых классов направлен нормально от поверхности в сторону возрастания значения . Объемными примитивами будем называть конечные участки пространства, ограниченные одной или несколькими функционально описанными поверхностями. Очень часто в качестве примитива используют функциональный объем, ограниченный плоскостями – многогранник. Примитивы, естественно, должны обеспечивать удобство конструирования из них производных тел и обладать относительной математической простотой. Плоским примитивом будем называть часть плоскости, ограниченную замкнутой линией, состоящей из конечного числа прямолинейных или криволинейных участков. Для одного и того же примитива характерны неизменное количество ограничивающих его тело поверхностей и стандартный вид функций, описывающих эти поверхности. Параметры функций являются варьируемыми, этим достигается изменение формы примитива (например из эллипсоида в шар), их пространственного положения и ориентации. Наиболее употребительные типы примитивов показаны на рис.3.2.1: а – тетраэдр, б – параллелепипед, в – цилиндр, г – эллипсоид, д – конус, е – часть плоскости. Рис. 3.2.1. Типичные примитивы Изображения некоторых примитивов, полученные методом машинной графики, показаны на рис.3.2.2 - 3.2.6. Рис. 3.2.2. Сцена, составленная из эллипсоидов Рис. 3.2.3. Цилиндр Рис. 3.2.4. Параллелепипед Рис. 3.2.5. Конус двухсторонний (а) и односторонний (б) Приведем пример математического описания цилиндрического примитива в виде кругового цилиндра с плоскими торцами, перпендикулярными оси. Математическая модель примитива состоит из уравнения цилиндра , (3.2.1) где – координаты любой точки на оси цилиндра; – компоненты направляющего вектора оси цилиндра, и уравнений торцевых поверхностей , , где , – координаты осевых точек первом и втором торце соответственно. Для всех поверхностей примитива сохраним правило размещения положительных подпространств внутри тела примитива. Так, если в состав примитива входят уравнений вида , где , то на этапе конструирования примитива устанавливают состояние: , (3.2.2) где – любая заведомо внутренняя точка тела примитива. Достижение указанного состояния осуществляется подбором знака в уравнении . Формальное правило преобразования исходно заданной функции в форму , обеспечивающую положительность подпространства внутри примитива, представляется в виде: . Напомним, что положительность значения всех функций внутри тела примитива необходима для локализации примитива в пространстве и однозначного определения положения нормали – внутрь примитива. На рис. 3.2.6 показан пример изображения истребителя, сконструированного из геометрических примитивов. Рис. 3.2.6. Истребитель
|