Основы САПР (CAD,CAM,CAE) - (Кунву Ли)(2004) (951262), страница 17
Текст из файла (страница 17)
Эта процедура дает'правильный рисунок без скрытых линий, но некоторые граничные линии могут оказаться слишком тонкими, потому что некоторые пикселы этих линий будут относиться к поверхностям, ограниченным соответствующими ребрами. Эту проблему легко решить, пододвинув весь объект поближе в момент проецирования ребер. 3.9. Визуализация Изображения без невидимых линий и поверхностей в большинстве случаев передают форму объекта достаточно хорошо. Однако для некоторых приложений желательно иметь возможность строить более реалистичные изображения.
Особенно важную роль реалистичность играет в «виртуальной реальности» вЂ” относительно новой технологии, позволяющей имитировать на компьютере реальные ситуации. Например, вы можете занести в компьютер сведения о внутреннем и внешнем виде проектируемого здания, а затем пройтись по нему и вокруг него, чтобы прочувствовать, как оно будет выглядеть на самом деле. Это средство может оказаться очень полезным для принятия решения о вложении денег в постройку здания. Для имитации реальной сцены нужно воспроизвести эффекты, создаваемые светом, падающим на поверхности объектов. Этот процесс называется еимгализацией или пюпи)юеавием (генг(еппй).
Вообще говоря, все, что мы видим, — это отражение света от поверхностей, а по этому отраженному свету мы определяем форму, текстуру и цвет объекта. В усовершенствованных графических библиотеках обычно имеются некоторые средства визуализации. Для их применения достаточно задать фасетированную модель объекта, условия освевценности и свойства поверхностей (например, блестящие или тусклые). Однако для правильного использования технологий визуализации необходимо иметь представление об их основах. Даже задать правильные значения параметров функций визуализации без достаточно хорошего знания техники визуализации непросто. Поэтому в настоящем разделе мы коротко опишем две основные технологии визуализации: затушевывание (айаг(1пд) и трассщюека лучей (гау гтаппй).
Подробное описание технологий визуализации можно найти в большинстве книг по компьютерной графике. 3.9.1. Затушевывание Процедура затушевывания аналогична удалению невидимых поверхностей с той разницей, что пикселы одной поверхности окрашиваются разными цветами в соответствии с цветом и интенсивностью страже»нюте света в точке, проектируемой К„= К„1„на этот пиксел. Таким образом, основной задачей становится расчет цвета и интенсивности света, отраженного от какой-либо точки объекта. Начнем с расчета интенсивности.
. Пове хн ерхность объекта может быть освещена светом, исходящим непосредственно от источников, то есть прямьсм светом (гйгесг (йигппю6оп), а также светом, отра. женным от енным от других поверхностей, дающим окружающее осеещедие (атбып1 Н1ит1- япг1оп). Св ) вет, отраженныи даннои точкои объекта, получается сложением отра; женных лучей двух типов (рис. 3.28). Рис. 3.28. Прямое и окружающее освещение Отраженный от множества поверхностей сцены свет может считаться приходя-,: щим с бесчисленного множества направлений, поэтому отражение окружающего,'' ' освещения считается равномерно распределенным во всех направлениях.
Поэто; ":, му интенсивность отражения К» записывается по формуле: Л„= К„!„. (3.17) Здесь 1„— интенсивность окружающего освещения, а ʄ— коэффициент отраже« ' ння поверхности. У белых поверхностей коэффициент отражения близок к еди-'::.: нице, а у черных — к нулю. Наблюдатель будет воспринимать одну н ту же ин- ',- тенсивность отраженного окружающего освещения вне зависимости от своетб, положения, поскольку это освещение образуется благодаря отражению от всех:;; поверхностей и распределяется равномерно по всем направлениям. Для описания прямого освещения достаточно рассмотреть лишь точечные иг-. ' точники света, поскольку линейные и поверхностные источники могут быть рас-:1 ' смотрены как совокупность точечных. Отражение света от точечного источника ' ..
рассматривается как комбинация двух видов отражения: диффузного и зеркаль-:.'",", ного. Диффузное отрижение (гйоизе теЯесГ1оп) состоит в том, что поверхность погло-.':::.' щает свет, а затем псреизлучает его равномерно во всех направлениях (рис. 3.29)„.'."к Интенсивность диффузного отражения (как и отражения окружа1ощего освеще-.- ния) не зависит от положения наблюдателя. Особенности структуры поверхности,';,': такие как текстура и цвет, становятся видимыми именно благодаря диффузному' ". .', отражению. Для грубых поверхностей отражение является преимущественно .;:". диффузным, а не зеркальным. Зеркальное отражение (зреси(пг ге11есг1оп) — это прямое отражение света поверхностью.
Данный тип отражения характерен для блестящих поверхностей, таких как зеркала. Блестящие поверхности отражают почти весь падакнцнй свет и пО... ,' му обладают повышцйной яркостью (ряс. 3.30). интенсивность зеркального отражения восприннмвется по-разному в аависимости от положеньи наблюдатеотносительно сцены. Рно. 3.29. ДиФфузное отражение Рно.
3.30. Зеркальное отражение ишем процедуру расчета интенсивностей диффузного и зеркального отраже- ня. Когда мы сделаем зто, интенсивность о.граженпя света от точечного источ' ика можно будет приближенно описать как сумму отражений указанных двух пов. Интенсивность диффузного отражения прямо пропорциональна косннуу угла падения. Углом падения в данной точке называется угол между вектором 'ормали к поверхности и вектором, направленным из точки к источнику света рис.
3.31). Вектор нормали П Рно. 3.31. Определение угла падения то соотношение называется законом косинусов Ламберта. Бго легко проверить, редставив падающий пучок в виде конечного числа параллельных линий, нахо- шихся на одинаковом расстоянии друг от друга (рис. 3.32). Обратите внимаие, что количество лучей, падающих на поверхность, уменьшаегся с ее наклоном.
сюда следует, что интенсивность отраженного света с наклоном поверхности е будет падать. Рно. 3.32. Иллюстрация к закону Лампорта Математически закон косинусов Ламберта' может быль выражен так. Интенсив-. ность падаюшего света в интересуюшей нас точке 1„считается обратно пропор; циональной квадрату расстояния до источника света Рл поэтому для источника интенсивностью Е„она запишется так: 1л = — ',. Е, (3.13) Обычно предполагается, что все источники света установлены достаточно дале- ко от поверхностей, так что .Р, может считаться одинаковым для всех точек. То- гда закон Ламберта запишется независимо от Р;, Ртк = К Ел()к(.1.). (3.19) Здесь Лз — интенсивность диффузного отражения, Кз — коэффициент отраже- ния (см.
формулу (3.17)), 1ч — единичный вектор нормали к поверхности в инте- ресуккшей нас точке, 1. — единичный вектор, направленный от точки к источни- ку света, а Х ° 1. — косинус угла падения. Вектор 1. постоянен для всех точек, поскольку источник считается расположенным достаточно далеко. Используя формулу (3.19), можно столкнуться со следующей проблемой: две.. ' ', параллельные плоскости, частично перекрывающиеся на экране, будут казаться наблюдателю неразличимыми. Лучше, если бы плоскость, расположенная бли- же, казалась более яркой, то есть имела большее значение Лд. Такого аффекта можно достичь, изменив формулу (3.19): й„= ' " (Х 1.).
К„Ел (3.20) Р+ Р„ Здесь Р— расстояние между интересуюшей нас точкой и точкой зрения наблю- дателя, а постоянная Ре позволяет избежать деления на нуль. Теперь займемся расчетолт интенсивности зеркального отражения. Было сделано множество попыток точно промоделировать зеркальное отражение. Мы рассмот- ' ... рим одну типичную модель, которая носит название модели Фляга (РЬолй тот1е1).
Большая часть отраженного света попадает в небольшой конический объем во- . —.' ' круг оси, угол которой совпадает с углом падения, но находится по другую сто- рону от нормали к поверююсти (рис. 3.33) Зта ось на рисунке обозначена едит ничным вектором К. Интенсивность воспринимаемого наблюдателем света будет ",':- спадать по мере удаления вектора зрения (единичный вектор тг на рис. 3.33) от вектора кк. Фонт предложил следутошую формулу для описания этого эффекта: Яз = " К,.(У К)". Е„ (3.21) Р+Р Здесь Егл Р и Ре имеют тот же смысл, что и в формуле (3.20), а К, — константа,' .::.' ' аналогичная Кз в той же формуле. К, называется коэффициентом зеркального отражения.
Формулу (3 21) можно интерпретировать так: интенсивность света, воспринимаемого наблюдателем, вектор зрения которого отклоняется от оси кь", на угол ф, пропорциональна (соз гр)'. Таким образом, интенсивность отражения .;:-...' быстро спадает с удалением от угла отражения, если п много больше единицы, то есть отраженный свет распространяется плотным пучком вдоль осн К.
Поэто- му у блестящих поверхностей, например металлических, значение и должно быть большим. Например, для такой поверхности хорошо взять значение в,'...; Рис. 3.33. Векторы, используемые в модели Фонгв Теперь мы можем получить интенсивность отражения в данной точке, сложив выражения (3.17), (3.20) и (3.21): Е„ 1 =Кк1„+ ' '1КвЯ-Ь.)+К,(У К)" ]. Р+ Рь (3.22) Чтобы учесть цвет отраженною о света, достаточмо записать выражение (3.22) отдельно для каждого из основных цветов: красного,синегои зеленого. Таким образом, интенсивность отраженного света раскладывается на интенсивность красного (1,), зеленого (1,) и синего (1»,).
Источники света также описываются в трех цветах: 1 1 „1,ь для окружаюшего освещения и Е, Е, Е„ь для прямого освешения. Коэффициент отражения поверхности тоже записывается отдельно для каждого цвета: Кд„Квк и Кщ„Например, поверхность красного цвета будет иметь значение К„„= 1, К< — — О, К„» = О. Тогда выражение (3.22) можно разложить на три равенства Е„ 1, =Кв1„, + ' 1К,(Х.Е)+К,(У.11)']; + о Еьв 1в =Кь»1гв + ьв ~К,„(Х.Е)+К,(У.1()" ]; 11+ П, Еь Гь = Ккь1.»+ ]Ккь(1»] Е)+ К,(Ъ'В)" 1. ~+ Ею» Обратите внимание, что коэффициент зеркального отражения нс раскладывает- ся на отдельные цвета. Дело в том, что зерюсальмое отражение практически не влияет на цвет. Интенсивности, определяемые уравнениями (3.23), используют- ся для задания интенсивностей электронных пушек на цветных мониторах стан- дарта ЙСВ.
Мы в выяснили, как рассчитывается цвет и интенсивность отраженного света для одной точки объекта. Однако если нам нужно затушеванное изображение объек- та, выражения (3.23) необходимо вычислить для всех точек объекта. Очевидно, что эт эта задача требует огромных вычислительных затрат для своего решения. Одни д им из способов сократить вычисления является представление поверхно- стей в виде наборов треугольных граней.