Область применения компьютерной графики


Параметрическое описание поверхностей



страница5/5
Дата19.05.2016
Размер1.35 Mb.
1   2   3   4   5

Параметрическое описание поверхностей

Для аналитического представления поверхности используется параметрическое описание или описание неявными функциями. Параметрическими поверхностями считаются поверхности, заданные в виде:

X=X(u,t)

Y=Y(u,t)


Z=Z(u,t) u и t – параметры, изменяющиеся в заданных пределах.

Для одной фиксированной пары (u t) можно вычислить положение только одной точки поверхности. Для полного представления всей поверхности нужно с определенным шагом перебрать множество пар (u t) из диапазона их значений, вычисляя каждый раз X,Y,Z.

Плоскость, проходящая через точку (x0,y0,z0) и векторы и , исходящие из этой точки определяется системой уравнений:

x=x0+u*n1x+t*n2x

y=y0+u*n1y+t*n2y

z=z0+u*n1z+t*n2z

nmx nmy nmz – проекции (m=1,2) на оси 0X0Y0Z.
Кубические сплайны

(параметрические кубические кривые)

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

Интерполяционным кубическим сплайном называется кусочно-определенная функция, которая обладает свойствами:

- она проходит через все узлы интерполяции;

- на каждом интервале интерполяции описывается кубическим (линия (pi(t)) или бикубическим (поверхность pij(t,τ)) полиномом;

- кусочные полиномы гладко сопрягаются друг с другом в узлах интерполяции.



Y=S(x)

x0 x1 x2 x3 x4 xi
Сплайновая функция

На рисунке показана сплайновая функция одной переменной, для построения которой на плоскости задается ряд точек.

Функция Si(x) ищется на каждом из отрезков [xi,xi+1] в виде полинома третьей степени:

Задача построения полинома сводится к нахождению коэффициентов aij.

Если кривые задаются в трехмерном пространстве, то функция ищется в параметрическом виде. Кубический полином, который описывает криволинейный сегмент записывается в виде:

Существует другой способ задания параметрического кубического сплайна. Им является указание координат начальной и конечной точек, а также векторов касательных в этих точках. Такой способ задания называется формулой Эрмита.



R1



Р2

Р1


R4

Параметрический сплайн в форме Эрмита. Вытянутость кривой вправо обеспечивается тем, что |R1|>|R4|. Кривые Эрмита просты в обработке с точки зрения визуализации.

Следующий способ задания– это задание параметрических сплайнов в форме Безье. Полезным свойством сплайнов в форме Безье является то, что кривая всегда лежит внутри выпуклой оболочки, образованной четырехугольником Р1 Р2 Р3 Р4. Точки Р1 Р2 Р3 Р4 называются контрольными точками, они используются для определения положения касательных векторов.

Р2 Р4

Р1

Р3
Параметрический сплайн в форме Безье
Каркасное изображение сплайновой поверхности из-за криволинейных каркасных линий является гладким. Этим она отличается от полигонального каркаса, построенного на тех же узловых точках. Возможность расчета любых промежуточных точек позволяет строить сплайновую поверхность с более мелкими ячейками без нового расчета параметров сплайнов. Сплайновое описание поверхности приходит на смену полигональному, оно широко применяется в промышленных САПР. Имея уравнение поверхности, мы получаем возможность доступа к любой ее точке, возможность преобразования, изображения в желаемой проекции, изготовления натурной модели, программирования станка с числовым управлением и т. д.

Конструктивное моделирование представляет собой объекты комбинацией простых плоских и объемных примитивов. Простота примитивов означает относительную простоту математических расчетов и удобство конструирования из них произвольных тел. Многообразие конструкций достигается аффинными преобразованиями примитивов.


Метод построения охватывающих оболочек

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

Назначение оболочек

1. Оболочки локализуют часть пространства, которое содержит объект.

2. Заменяют выполнение вычислений со сложной поверхностью объекта вычислениями с его простой оболочкой. Оболочки обновляются после каждого геометрического преобразования, приводящего к изменению модели. Модели оболочки добавляют к списку объектов моделей сцены.

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




Геометрические задачи визуализации

Главная геометрическая задача визуализации – это отсечение элементов, не попавших в область отображения сцены и удаление элементов, заслоненных другими элементами от наблюдателя.



Алгоритмы визуализации

Метод обратной трассировки лучей

Построение компьютерного изображения трехмерных объектов и сцен основано на методе обратной трассировки лучей. Этот метод моделирует процесс распространения световых лучей от момента их испускания до взаимодействия с объектами сцены и попадания в приемник. Основная идея метода сводится к повторению на ЭВМ всех геометрических преобразований, которые бы совершил световой луч на пути источник – объект – приемник (глаз наблюдателя). Обычно ограничиваются трассировкой выборочных лучей, достаточных для достижения желаемой реалистичности изображения сцены, т. е. совокупности объектов и окружающего их интерьера. Например, для изображения полностью видимого отрезка прямой линии необходимо два луча, проведенных через его концевые точки. Основная задача метода трассировки лучей состоит в определении освещенности произвольной точки поверхности и части световой энергии, которая содержится в отраженном и преломленных лучах. Освещенность создается первичной энергией источников света и вторичной энергией лучей, отраженных от других объектов сцены. Отсутствие освещенности означает затененность точки. Существование и интенсивность вторичной энергии определяются свойствами материалов: прозрачностью, цветом, шероховатостью и отражательной способностью поверхности. Для каждого луча решается задача пересечения с объектами сцены. Распространяясь прямолинейно, луч либо проходит мимо всех объектов и покидает сцену, либо пересекает первый встретившийся на его пути объект. В точке пересечения часть световой энергии поглощается материалом поверхности, а оставшаяся часть энергии первичного луча делится на вторичные лучи: отраженный и преломленный. Вторичные лучи при распространении со следующей поверхностью образуют третичные лучи и т. д. Любое взаимодействие с поверхностью уменьшает суммарную энергию отраженных и преломленных лучей. Через определенное число столкновений с поверхностью объектов интенсивность луча затухает. Достоинство метода обратной трассировки лучей в высоком реализме получаемого изображения, но метод требует большого объема вычислений.



Суть метода обратной трассировки лучей заключается в следующем.

  1. Из точки наблюдения сцены посылается в пространство виртуальный луч, по траектории которого должно прийти изображение в точку наблюдения

  2. Для определения параметров приходящего луча все объекты сцены проверяются на пересечение с траекторией наблюдения. Если пересечения не происходит, считается, что луч попал в фон сцены и приходящая информация определяется только параметрами фона. Если траектория пересекается с объектом, то в точке соприкосновения рассчитывается свет, уходящий в точку наблюдения в соответствии с параметрами материала.

  3. Сначала просчитывается преломленный и отраженный свет, затем проверяется видимость из точки пересечения всех источников света и интенсивность светового потока. Также вычисляется наличие, резкость и ширина бликов от каждого источника света.

  4. Полученные в результате итоговые значения света и интенсивности обрабатываются с учетом траектории луча и параметров атмосферы, и присваиваются точке объекта как значения визуализации для наблюдателя. Затем процесс повторяется для всех элементов сцены.

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

5. Построение реалистических изображений

Процесс создания реалистичного изображения сцены можно представить как графический конвейер, на который различные объекты ставят свои элементы – точки, отрезки, полигоны – для последующей обработки. Пройдя через участки геометрических преобразований в пространстве, они проецируются на картинную плоскость, отсекаются окном вывода, далее элементы поступают на этап удаления, где определяется их взаимное экранирование и степень видимости наблюдателем. В результате из видимых фрагментов формируется растр изображения в желаемой цветовой палитре: черно-белой или цветной. Далее рассчитывается цвет, освещение, тени, фактура и другие параметры, окончательно создающие реалистичное изображение. Процессы создания реалистических изображений используются при синтезе реалистичных изображений и при реалистичном оживлении синтезированных объектов. В расчетах учитывают следующие источники света: излучающие и отражающие источники; точечные источники; распределенные источники; рассеянный свет, в расчетах участвуют типы поверхностей: отражающие; поглощающие; полупрозрачные; рассеивающие.



5.2. Простая модель освещения

Световая энергия, падающая на поверхность, может быть поглощена, отражена или пропущена. Частично она поглощается и превращается в тепло, а частично отражается или пропускается. Объект можно увидеть, только если он отражает или пропускает свет; если же объект поглощает весь падающий свет, то он невидим и называется абсолютно черным телом. Количество поглощенной, отраженной или пропущенной энергии зависит от длины волны света. При освещении белым светом, в котором интенсивность всех длин волн снижена примерно одинаково, объект выглядит серым. Если поглощается почти весь свет, то объект кажется черным, а если только небольшая его часть - белым. Если поглощаются лишь определенные длины волн, то у света, исходящего от объекта, изменяется распределение энергии и объект выглядит цветным. Цвет объекта определяется поглощаемыми длинами волн.

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

При диффузном отражении пользуются законом Ламберта:

Падающий свет рассеивается во все стороны с одинаковой интенсивностью. Освещенность точки пропорциональна доле ее площади, видимой от источника.

Итак, свет точечного источника отражается от идеального рассеивателя по закону косинусов Ламберта: интенсивность отраженного света пропорциональна косинусу угла между направлением света и нормалью к поверхности, т. е.

I = Ilkdcosθ    0 <= θ <= π/2

где I - интенсивность отраженного света, Il - интенсивность точечного источника, kd - коэффициент диффузного отражения (0 <= kd <= 1), θ - угол между направлением света и нормалью к поверхности. Если θ > π/2, то источник света расположен за объектом. Коэффициент диффузного отражения kd зависит от материала и длины волны света, но в простых моделях освещения обычно считается постоянным.

Поверхность предметов, изображенных при помощи простой модели освещения с ламбертовым диффузным отражением, выглядит блеклой и матовой. Предполагается, что источник точечный, поэтому объекты, на которые не падает прямой свет, кажутся черными. Однако на объекты реальных сцен падает еще и рассеянный свет, отраженный от окружающей обстановки, например от стен комнаты. Рассеянному свету соответствует распределенный источник. Поскольку для расчета таких источников требуются большие вычислительные затраты, в машинной графике они заменяются на коэффициент рассеяния - константу, которая входит в формулу в линейной комбинации с членом Ламберта:

I = Iaka + Ilkdcosθ    0 <= θ <= π/2

где Ia - интенсивность рассеянного света, ka - коэффициент диффузного отражения рассеянного света (0 <= ka <= 1). Пусть даны два объекта, одинаково ориентированные относительно источника, но расположенные на разном расстоянии от него. Если найти их интенсивность по данной формуле, то она окажется одинаковой. Это значит, что, когда предметы перекрываются, их невозможно различить, хотя интенсивность света обратно пропорциональна квадрату расстояния от источника, и объект, лежащий дальше от него, должен быть темнее. Если предположить, что источник света находится в бесконечности, то диффузный член модели освещения обратится в нуль. В случае перспективного преобразования сцены в качестве коэффициента пропорциональности для диффузного члена можно взять расстояние d от центра проекции до объекта. Но если центр проекции лежит близко к объекту, то 1/d2 изменяется очень быстро, т. е. у объектов, лежащих примерно на одинаковом расстоянии от источника, разница интенсивностей чрезмерно велика. Как показывает опыт, большей реалистичности можно добиться при линейном затухании. В этом случае модель освещения выглядит так:

I = Iaka + (Ilkdcosθ)/(d + K)

где K - произвольная постоянная.

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

Интенсивность зеркально отраженного света зависит от угла падения, длины волны падающего света и свойств вещества. Зеркальное отражение света является направленным. Угол отражения от идеальной отражающей поверхности (зеркала) равен углу падения, в любом другом положении наблюдатель не видит зеркально отраженный свет. Если поверхность не идеальна, то количество света, достигающее наблюдателя, зависит от пространственного распределения зеркального отраженного света. У гладких поверхностей распределение узкое или сфокусированное, у шероховатых — более широкое.

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



Закраска объектов с гладкими формами

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



Flat- метод постоянного закрашивания

самый простой из всех методов.

Основная идея: каждая грань закрашивается одним цветом.

Рис. 3.2.1

Рассчитывается яркость в одной точке (например, в центре тяжести для выпуклых многоугольников) грани (по Ламберту) и производится заливка грани полученным цветом.

Метод закраски Гуро

Обеспечивает непрерывность освещенности. Основная идея: заливка осуществляется с учетом линейной интерполяции яркости, вычисляется яркость только для вершин многоугольника.



Рис. 3.2.2


Пусть задана плоская грань V1 V2 V3(рис 5.2.2). Найдем значение освещенности в каждой ее вершине. Обозначим получившиеся значения через I1, I2, I3. Рисуя грань V1 V2 V3 построчно (рис 5.2.3), находим значения освещенности в конце каждого горизонтального отрезка путем линейной интерполяции значений вдоль ребер. При рисовании очередного отрезка AB будем считать, интенсивность изменяется от I(A) до I(B) линейно.

V1

A B



P

V2
V3

Рис 3.2.3

Недостаток метода в том, что если источник света проецируется в плоскость многоугольника, то, после использования этого метода заливки, будет получен результат рис. 3.2.2 (1), хотя должно быть рис.3.2.2 (2).


Закраска по Фонгу


N=const
const, если прожектор

S= Var, если точечный источник света

N, S – для Ламберта




N, S, P – для Фонга

В основе метода лежит интерполяция векторов

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

Недостаток метода – большая сложность вычислений.



Моделирование освещения методом наложения текстуры

Используется только для Ламберта и точечного источника света

N=const

S=Var

P – не учитывается

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

Рис. 3.2.4


S-точечный источник света, в центре будет максимальная яркость

Рис. 3.2.5
Основная идея: в памяти рассчитывается текстура рис. 3.2.4, затем заливка объектов осуществляется с использованием полученной текстуры.


  • Расчет вспомогательной текстуры.

Для каждой точки текстуры рассчитывается яркость

Максимальная яркость будет в точке максимально приближенной к источнику света.

Итак, закраска поверхностей осуществляется методами Гуро или Фонга. В первом случае цвет примитива рассчитывается лишь в его вершинах, а затем линейно интерполируется по поверхности. Во втором случае строится нормаль к объекту в целом. Ее вектор интерполируется по поверхности составляющих примитивов и освещение рассчитывается для каждой точки. Свет, уходящий с поверхности в конкретной точке в сторону наблюдателя, представляет собой сумму компонентов, умноженных на коэффициент, связанный с материалом и цветом поверхности в данной точке. К таковым компонентам относятся:


  • свет, пришедший с обратной стороны поверхности, т.е. преломленный свет

  • свет, равномерно рассеиваемый поверхностью

  • зеркально отраженный свет

  • блики, т.е. отраженный свет источников

  • собственное свечение поверхности.



5.4. Тени

Если положения наблюдателя и источника света совпадают, то теней не видно, но они появляются, когда наблюдатель перемещается в любую другую точку. Изображение с построенными тенями выглядит гораздо реалистичнее, и, кроме того, тени очень важны для моделирования. Например, особо интересующий нас участок может оказаться невидимым из-за того, что он попадает в тень. В прикладных областях - строительстве, разработке космических аппаратов и др. - тени влияют на расчет падающей солнечной энергии, обогрев и кондиционирование воздуха.

Наблюдения показывают, что тень состоит из двух частей: полутени и полной тени. Полная тень - это центральная, темная, резко очерченная часть, а полутень - окружающая ее более светлая часть. В машинной графике обычно рассматриваются точечные источники, создающие только полную тень. Распределенные источники света конечного размера создают как тень, так и полутень: в полной тени свет вообще отсутствует, а полутень освещается частью распределенного источника. Из-за больших вычислительных затрат, как правило, рассматривается только полная тень, образуемая точечным источником света. Сложность и, следовательно, стоимость вычислений зависят и от положения источника. Легче всего, когда источник находится в бесконечности, и тени определяются с помощью ортогонального проецирования. Сложнее, если источник расположен на конечном расстоянии, но вне поля зрения; здесь необходима перспективная проекция. Самый трудный случай, когда источник находится в поле зрения. Тогда надо делить пространство на секторы и искать тени отдельно для каждого сектора.

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



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

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



5. Построение реалистических изображений

5.5. Фактура

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







Каталог: wp-content -> uploads -> 2012
2012 -> Система социальной помощи семье, воспитывающей ребенка с ограниченными возможностями здоровья, в учреждениях социального обслуживания семьи и детей
2012 -> Коалиция организаций ветеранов боевых действий Дальневосточного Федерального округа «Боевое братство дв»
2012 -> Стерлитамакский филиал
2012 -> Питання про виникнення людини хвилює людство здавна. У XIX ст
2012 -> Методические рекомендации по проведению занятий с применением интерактивных форм обучения
2012 -> Тема опыта
2012 -> Вопросы к экзамену Планирование и организация работы кадровой службы Современные концепции управления персоналом
2012 -> Танцевально двигательная
2012 -> Современной


Поделитесь с Вашими друзьями:
1   2   3   4   5


База данных защищена авторским правом ©dogmon.org 2019
обратиться к администрации

    Главная страница