Модели расчета освещенности граней трехмерных объектов
Основной характеристикой света в компьютерной графике является яркость. Поскольку яркость является субъективным понятием, основанным на человеческом восприятии света, то для численных расчетов применяется термин интенсивность, что соответствует яркости и является энергетической характеристикой световой волны. В расчетах интенсивность обычно принимает значения от 0 до 1. При этом интенсивность… Читать ещё >
Модели расчета освещенности граней трехмерных объектов (реферат, курсовая, диплом, контрольная)
Основной характеристикой света в компьютерной графике является яркость. Поскольку яркость является субъективным понятием, основанным на человеческом восприятии света, то для численных расчетов применяется термин интенсивность, что соответствует яркости и является энергетической характеристикой световой волны. В расчетах интенсивность обычно принимает значения от 0 до 1. При этом интенсивность равна нулю при полном отсутствии света, а значение 1 соответствует максимальной яркости.
В компьютерной графике для расчета освещенности граней объектов зачастую применяется трехкомпонентная цветовая модель «Красный, Зеленый, Синий», что в английском варианте записывается RGB (Red, Green, Blue). Эта модель позволяет задавать любой цвет в виде трех компонент интенсивностей базовых цветов: красного, зеленого и синего. Интенсивность отраженного света точек пространственных объектов вычисляют отдельно для каждой их трех составляющих цветовых компонент, а затем объединяют в результирующую тройку цветов. Далее будем считать что примеры расчета интенсивностей отраженного света применяются к каждому их трех базовых цветов.
При расчете освещенности граней применяют следующие типы освещения и отражения света от поверхностей.
Рассеянное.
Диффузное.
Зеркальное.
Интенсивность освещения граней трехмерных объектов рассеянным светом считается постоянной в любой точке пространства. Она обусловлена множественными отражениями света от всех объектов в пространстве. При освещении трехмерного объекта рассеянным светом интенсивность отраженного света вычисляется как, где — интенсивность падающего света, — коэффициент рассеянного отражения, зависит от отражающих свойств материала грани.
Для расчета интенсивности диффузного отражения света может применяться закон косинусов Ламберта:, где — угол падения, рассчитывается как угол между направлением на источник света и нормалью к поверхности. Пусть направление на источник света представлено единичным вектором, а — единичный вектор нормали. Тогда — скалярное произведение векторов. Тогда, где — коэффициент диффузного отражения.
Вычисление зеркально отраженного света производится также с помощью различных эмпирических моделей, которые позволяют учитывать реальную шероховатость поверхностей. Например, в модели, предложенной Фонгом, интенсивность зеркально отраженного света рассчитывается в зависимости от степени отклонения от истинного значения вектора зеркально отраженного луча света. Пусть — вектор зеркально отраженного луча света, а — вектор, определяющий направление на наблюдателя. Тогда интенсивность зеркально отраженного света по модели Фонга рассчитывается так:, где — угол между векторами и. Константа n — может принимать значения от 1 до примерно 200, в зависимости от отражающей способности материала. Большим значениям n соответствует большая степень «гладкости» или «зеркальности» поверхности. Если векторы и — нормированы, то формула преобразуется к виду:
Интенсивность отраженного света уменьшается обратно пропорционально квадрату расстояния от источника до наблюдателя. Поэтому можно записать формулу расчета интенсивности отраженного луча света для трех составляющих: рассеянного, диффузного и зеркального отражения с учетом расстояния:
где — расстояние от точки отражения до наблюдателя, а — некоторая константа. Иногда, для ускорения вычислений, берут не вторую, а первую степень расстояния .
В системах компьютерной визуализации также учитываются такие свойства материалов отражающих поверхностей как прозрачность, преломление и свечение. Степень прозрачности материала грани может описываться с помощью константы, принимающей значение от нуля до единицы, причем значение 1 соответствует полной непрозрачности материала грани. Пусть интенсивности отраженного света двух перекрывающихся поверхностей равны и. Пусть первая поверхность находится ближе к наблюдателю и является полупрозрачной с коэффициентом прозрачности. Тогда суммарная интенсивность отраженного света может быть вычислена как взвешенное среднее: .
Модели для вычисления эффектов преломления и свечения здесь не рассматриваются.
Кубические сплайны
Рассмотрим задачу проведения гладких кривых по заданным граничным точкам, или задачу интерполяции. Поскольку через две точки можно провести сколь угодно много гладких кривых, то для решения этой задачи необходимо ограничить класс функций, которые будут определять искомую кривую. Математическими сплайнами называют функции, используемые для аппроксимации кривых. Важным их свойством является простота вычислений. На практике часто используют сплайны вида полиномов третьей степени. С их помощью довольно удобно проводить кривые, которые интуитивно соответствуют человеческому субъективному понятию гладкости. Термин «сплайн» происходит от английского spline — что означает гибкую полоску стали, которую применяли чертежники для проведения плавных кривых, например, для построения обводов кораблей или самолетов.
Рассмотрим в начале сплайновую функцию для построения графика функции одной переменной. Пусть на плоскости задана последовательность точек, причем. Определим искомую функцию, причем поставим два условия:
Функция должна проходить через все заданные точки:, .
Функция должна быть дважды непрерывно дифференцируема, то есть иметь непрерывную вторую производную на всем отрезке .
На каждом из отрезков, будем искать нашу функцию в виде полинома третьей степени:
Задача построения полинома сводится к нахождению коэффициентов. Поскольку для каждого из отрезков необходимо найти 4 коэффициента, то всего количество искомых коэффициентов будет. Для нахождения всех коэффициентов определим соответствующее количество уравнений. Первые уравнений получаем из условий совпадения значений функции во внутренних узлах ,. Следующие уравнений получаем аналогично из условий совпадения значений первых и вторых производных во внутренних узлах. Вместе с первым условием получаем уравнений. Недостающие два уравнения можно получить заданием значений первых производных в концевых точках отрезка. Так могут быть заданы граничные условия.
Перейдем к более сложному случаю — заданию кривых в трехмерном пространстве. В случае функционального задания кривой возможны многозначности в случае самопересечений и неудобства при значениях производных равных. Ввиду этого будем искать функцию в параметрическом виде. Пусть — независимый параметр, такой что. Кубическим параметрическим сплайном назовем следующую систему уравнений:
Координаты точек на кривой описываются вектором, а три производные задают координаты соответствующего касательного вектора в точке. Например, для координаты :
Одним из способов задания параметрического кубического сплайна является указание координат начальной и конечной точек, а также векторов касательных в них. Такой способ задания называется формой Эрмита. Обозначим концевые точки и, а касательные векторы в них и. Индексы выбраны таким образом с учетом дальнейшего изложения.
Будем решать задачу нахождения четверки коэффициентов, так как для оставшихся двух уравнений коэффициенты находятся аналогично. Запишем условие для построения сплайна:
, , (*).
Перепишем выражение для в векторном виде:
.
Обозначим вектор строку и вектор столбец коэффициентов, тогда .
Из (*) следует, что,. Для касательных ,.
.
. Отсюда получаем векторно-матричное уравнение:
Эта система решается относительно нахождением обратной матрицы размером .
Здесь — эрмитова матрица, — геометрический вектор Эрмита. Подставим выражение для нахождения:. Аналогично для остальных координат:, .
Выпишем в явном виде формулы для вычисления координат точек сплайна. Так как, то умножая справа на, получаем:
Четыре функции в скобках называются функциями сопряжения.
Форму кривой, заданной в форме Эрмита, легко изменять если учитывать, что направление вектора касательной задает начальное направление, а модуль вектора касательной задает степень вытянутости кривой в направлении этого вектора, как показано на рис. 41.
Рассмотрим форму Безье, которая отличается от формы Эрмита способом задания граничных условий, а именно, вместо векторов и вводятся точки (и соответствующие им радиус векторы) и, как показано на рис. 42, такие что выполняются условия: и.
Переход от формы Эрмита к форме Безье осуществляется преобразованием:
(*).
где — геометрический вектор Безье. Подставляя это в выражение для, получаем.
.
Полезным свойством сплайнов в форме Безье является то что кривая всегда лежит внутри выпуклой оболочки, образованной четырехугольником. Это свойство можно доказать, пользуясь тем, что в выражении (*) коэффициенты принимают значения от 0 до 1 и их сумма равна единице.
Заметим, что матрица вида.
— называется матрицей Безье.