Главная > Математика > Геометрическое моделирование
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

9.10. Формирование реалистических изображений

Реалистическое растровое изображение геометрического объекта формируется путем определения цвета и яркости его точек при некоторой модели света. Для ускорения этого процесса используется триангуляция поверхностей объекта. В результате задача сводится к закраске триангуляционной сетки объекта (аппроксимирующих треугольников).

В большинстве случаев выполняется построчное сканирование изображения. Для определения отражающей свет точки объекта выполняется пересечение его триангуляционной сетки со сканирующей линией визирования. Эта линия строится из точки изображения перпендикулярно проекционной плоскости (как для параллельной проекции, так и для центральной проекции). Поиск точек пересечения линии и треугольников упрощается, если его выполнять в местной системе координат, связанной с проекционной плоскостью. Для этого перед сканированием аппроксимирующие геометрический объект треугольники переводятся в местную систему координат. Координаты вершин треугольников преобразуются по формуле (9.2.3). Компоненты векторов нормалей преобразуются по формуле

где — компоненты нормали в глобальной системе координат, — компоненты нормали в местной системе координат проекционной плоскости. Первые три строки матрицы образованы компонентами ортов местной системы координат. При построении перспективного изображения триангуляционная сетка подвергается дополнительному преобразованию: координаты х и у точек треугольников заменяются, соответственно, координатами , вычисленными по формулам (9.3.5), а координата z остается без изменений. Аналогичным образом уточним и нормали m в вершинах треугольников: они должны быть повернуты на угол

(9.10.2)

вокруг вектора

(9.10.3)

где w — радиус-вектор точки наблюдения, радиус-вектор точки поверхности, в которой вычислена нормаль, — нормаль к проекционной плоскости.

Поворот вектора m описывается формулой

(9.10.4)

Сканирующая линия визирования ортогональна проекционной плоскости и в местной системе координат поиск ее пересечения с триангуляционной сеткой сводится к определению треугольника, в проекции которого лежит проекция точки. Последняя задача является двухмерной, что уменьшает объем вычислений. Для уменьшения количества просмотров проекции треугольников можно сгруппировать по отдельным областям.

На практике используются три основных способа закраски: однотонная, основанная на интерполяции значений интенсивности (метод Гуро) и основанная на интерполяции нормалей (метод Фонга). Для каждой из них может применяться любая модель света. Тоновое изображение при любом способе закраски формируется одинаковым образом: для каждой точки изображения определяется точка объекта (или несколько точек, если объект прозрачен), от которой приходит отраженный свет, и по интенсивности света и по оптическим свойствам отражающей поверхности определяются цвет точки изображения. Цвет вычисляется по интенсивностям цветовых компонент модели света.

Однотонная закраска.

При однотонной закраске для каждого треугольника вычисляется уровень интенсивности отраженного света, который используется для закраски всего треугольника. При этом для простоты полагается, что в и а являются постоянными в пределах своего треугольника. Фактически получается, что триангуляционная сетка является реальной моделируемой поверхностью, а не аппроксимацией последней. Однотонная закраска дает граненое изображение кривых поверхностей (рис. 9.10.1).

Рис. 9.10.1. Однотонная закраска

Интенсивность отраженного света при переходе от одного треугольника к другому меняется скачком. Различие в цвете соседних треугольников хорошо заметно вследствие полос Маха.

Метод Гуро.

Способ закраски, основанный на интерполяции в пределах каждого треугольника значений интенсивности, был предложен Гуро. В методе Гуро по значениям нормалей в вершинах каждого треугольника определяются интенсивности отраженного света в его углах. По интенсивности света в вершинах а, b и с некоторого треугольника интенсивность отраженного света от любой его внутренней точки определяется формулой

(9.10.5)

где а, b, с — барицентрические координаты произвольной точки треугольника на параметрической плоскости, которые вычисляются по формулам (3.11.4). Метод Гуро хотя и сглаживает перепады интенсивности на границах треугольников, но не позволяет их полностью устранить. Методом Гуро трудно получить четкие блики, особенно, если они небольших размеров.

Метод Фонга.

Метод закраски, предложенный Фонгом, основан на интерполяции в пределах каждого треугольника значений нормалей к поверхности. В каждой вершине треугольника должна быть вычислена нормаль к поверхности отображаемого объекта. Нормали в вершинах имеют свое истинное направление, а в пределах каждого треугольника принимается линейный закон их изменения от вершины к вершине. Пусть в вершинах некоторого треугольника нормали равны тогда нормали на поверхности треугольника припишем направление вектора

(9.10.6)

где а, b, с — барицентрические координаты произвольной точки треугольника на параметрической плоскости, которые вычисляются по формулам (3.11.4). Несмотря на то, что векторы вектор m(a, b, с), в общем случае, не имеет единичной длины и его следует нормировать. На рис. 9.10.2 приведен треугольник и нормали в его вершинах.

Значение радиус-вектора точки треугольника определяется формулой

(9.10.7)

Барицентрические координаты а, b и с связаны равенством (3.11.2) и в пределах треугольника принимают неотрицательные значения. Если хотя бы одна из барицентрических координат отрицательна, то это означает, что точка лежит за пределами треугольника. При аппроксимации (9.10.6) нормали плавно меняют свое направление при переходе от одного треугольника к другому, поэтому на тоновых изображениях поверхность выглядит гладкой.

Рис. 9.10.2. Направление нормалей треугольника

Рис. 9.10.3. Закраска методом Фонга

Метод Фонга полностью устраняет полосы Маха, однако, значительно увеличивает объем вычислений. На рис. 9.10.3 приведено изображение детали, полученное методом Фонга.

Детализация поверхностей.

Не все поверхности обладают достаточной гладкостью, например, поверхность апельсина. Некоторые поверхности имеют рисунок, например, поверхность деревянных досок.

Для создания регулярных неровностей на поверхностях в методе закраски Фонга могут использоваться регулярные отклонения нормали.

Для создания нерегулярных неровностей могут использоваться случайные отклонения нормали. На рис. 9.10.4 и 9.10.5 приведены тела, нормалям поверхностей которых сообщены случайные отклонения. На рис. 9.10.4 случайные отклонения нормали от исходного положения достигают 10°, а на рис. 9.10.5 эти отклонения достигают 60°.

Рис. 9.10.4. Неровности на поверхности тора

Рис. 9.10.5. Неровности на поверхности сферы

На поверхность моделируемого объекта может быть нанесен рисунок, подобный рисунку на стенных обоях. Рисунок выполняется цветом, описываемым на параметрической плоскости поверхности. Описание может быть аналитическим или может быть выполнено путем наложения некоторого рисунка на плоскость параметров поверхности. Рисунок в свою очередь может быть растровым изображением. Растровый рисунок будем рассматривать как набор цветных точек на целочисленной плоскости. Для нанесения рисунка на поверхность остается установить функциональную зависимость между целочисленной плоскостью и плоскостью параметров поверхности. Детализация поверхности выполняется методом Фонга.

Тени.

В рассмотренных способах закраски мы считали, что на точки поверхности падает рассеянный свет интенсивности и направленный свет интенсивности источника .

Рис. 9.10.6. Объекты и их тени

Это всегда справедливо, когда точка наблюдения совпадает с положением источника света.

В общем случае некоторая часть поверхности объекта будет закрыта от источника, т. е. будет находиться в тени. Алгоритм определения затенения точек аналогичен алгоритму определения видимости точек. Если точка поверхности «видна» из точки источника света, то она освещена. Те точки поверхности объекта, которые видны из точки наблюдения и из источника, освещены рассеянным и направленным светом. Точки поверхности объекта, которые видны из точки наблюдения, но не видны из источника света, находятся в тени и освещены только рассеянным светом. Это же справедливо и для нескольких источников света. Естественно, что при построении теней объем вычислений увеличивается. На рис. 9.10.6 приведено изображение объектов с тенями.

Четкие тени дают точечные источники света. При освещении объекта распределенными источниками света возникают области полутеней. Полутени возникают в тех точках объекта, из которых видна только часть распределенного источника.

Прозрачность.

Для прозрачных моделей в точку наблюдения приходит свет, отраженный не только от ближайшей поверхности, но и от других поверхностей, которые видны сквозь нее. Если не учитывать преломление света, то в точку наблюдения придет свет от всех треугольников, с которыми пересекается линия визирования. На рис. 9.10.7 и 9.10.8 приведены изображения одного и того же объекта с различной прозрачностью материала.

Рис. 9.10.7. Непрозрачный объект

Рис. 9.10.8. Прозрачный объект

Материал объекта, приведенного на рис. 9.10.7, непрозрачный. Материал объекта, приведенного на рис. 9.10.8, отражает 40% падающего света, а пропускает 60% (преломление света не учитывалось).

При моделировании преломления света линия визирования для заслоненных треугольников должна быть смещена. Интенсивность света, пришедшего от каждой поверхности, будет ослаблена из-за поглощения света веществом. Чтобы определить, какие из световых лучей попадают в точку зрения, используют метод трассировки лучей.

Трассирование начинается из точки наблюдения, и лучи света отслеживаются в обратном направлении к каждому источнику света. Луч света, падающий на поверхность, разделяется на несколько основных частей: диффузно пропущенный свет, пропущенный преломленный свет, диффузно отраженный свет и зеркально отраженный свет.

Аналогично луч света, исходящий от поверхности объекта, является суммой двух отраженных составляющих света и двух составляющих света, пришедших из-за поверхности. Таким образом, каждый раз, когда трассируемый из точки наблюдения луч подходит к поверхности отображаемого объекта, возможно появление нескольких новых лучей, т. е. трассируемый луч расщепляется на несколько составляющих. Диффузно отраженный свет и диффузно пропущенный свет могут прийти в общем случае из бесконечного числа направлений, поэтому обычно трассируют только лучи света, появляющиеся в результате зеркального отражения и преломления. В результате, при подходе трассируемого луча к поверхности прозрачного объекта он расщепляется на две части. Рассеянный свет и диффузно отраженный свет можно получить от ближайшей к точке наблюдения поверхности. Для каждого трассируемого луча нужно получить его пересечение со всеми поверхностями объекта. В точках пересечения по свойствам поверхности определяется, нужно ли расщеплять световой луч.

Как можно видеть, построение реалистических изображений геометрических моделей требует больших вычислительных затрат. Геометрическое моделирование имеет огромные возможности. Через компьютерную графику оно позволяет увидеть и исследовать то, что раньше могло существовать только в воображении.

<< Предыдущий параграф Следующий параграф >>
Оглавление