![]() |
||
| Домой | ||
|
Меню:
Главная
AutoCAD
Исследования
МКЭ ANSYS
ANSYS (Басов К. А.)
Справочник AutoCAD
Взаимодействие фронтов
Проблемы охраны
Нелинейная динамика
Параметрический метод
Энерго информационная модель
Математическое моделирование
Институт теории образования
Коллапс волновой функции
Пенсионное обеспечение
Механосплавление металлов
Индуцированный распад
Фильтр
Электропроводность
Построение решения
Численное исследование
Об уравнениях
Нормирование
Фотолиз
Водородная связь
Концептуализация понятия
Термическая перегруппировка
Химическая поляризация
Многолетняя динамика
Индуцированное дефектообразование
Системы среднего
Морфология
Топологические дефекты
Правило Парето
Математическое моделирование
Метод уменьшения
Изменение
Содержание железа
Фауна
Алгоритм
Об идентификации
табличная модель
вероятности по частотам
Структурирование
Расчет
Анализ
Оценка
Частота
Закономерности
Клонируемые компьютеры
радионуклиды
манипуляция
Программная система
Тенденции
Физическая модель
|
[стр.-19] 3.Скрытие ребра гранью можно обнаружить, сравнивая диапазоны значений Z,, ребра и грани. Возможны три случая (рис. 3.25). В случае рис. 3.25, а все значения Z„ ребра меньше минимального значения Z,, грани, то есть грань находится перед ребром. В случае рис. 3.25, б значения Z„ ребра больше максимального значения Z„ грани, то есть грань находится за ребром. В случае рис. 3.25, в диапазоны значений Z,, грани и ребра перекрываются, то есть часть ребра находится за гранью, а другая часть - перед ней. Если ребро находится перед проверяемой гранью, из массива FACE-TABLE выбирается следующая грань и ребро сравнивается уже с ней. Если ребро оказывается за гранью, или проходит ее насквозь, приходится выполнять дополнительное действие. 4.Ребро и грань проецируются на экран, после чего производится проверка перекрытия проекций. Если перекрытия нет, из этого следует, что ребро не закрывает проверяемую грань. Из массива FACE-TABLE выбирается следующая грань и проверяется согласно пункту 3. Если проекции перекрываются, ребро делится на две части в той точке, где она проходит сквозь проверяемую грань (рис. 3.26). Закрытая часть ребра отбрасывается, а видимые части добавляются в список. Затем пункт 3 повторяется для новых элементов списка. Исходное ребро из списка удаляется. 5.Ребра, прошедшие проверку со всеми гранями из FACE-TABLE, считаются видимыми и выводятся на экран. ![]() Перед гранью аб Рис. 3.25. Три возможных положения грани и ребра Рис. 3.26. Разбиение ребра 3.8.4. Метод z-буфера Метод z-буфера основан на том же принципе, что и алгоритм сортировки по глубине: на любом участке экрана оказывается проекция элемента, расположенного ближе всех прочих к наблюдателю. Здесь под элементами понимаются точки, кривые или поверхности. Данный метод требует использования области памяти, называемрй z-буфером. В этом буфере для каждого пиксела хранится значение координаты Zp того элемента, проекция которого изображается данным пикселом. Как уже говорилось, значение Z,, (то есть координата z в наблюдательской системе) есть мера удаленности объекта от наблюдателя. Объем z-буфера опре- деляется количеством пикселов, для каждого из которых требуется сохранить вещественное число. Грани, векторы нормали которых направлены от наблюдателя, невидимы для него, поэтому на экран проецируются только те грани, векторы нормали которых направлены к наблюдателю. Однако в отличие от метода сортировки по глубине, в данном случае порядок проецирования значения не имеет. Причина станет очевидной, как только вы прочитаете приведенное ниже описание алгоритма. Сначала проецируется произвольно выбранная поверхность, и в ячейки памяти z-буфера, соответствующие пикселам проекции поверхности, записываются значения координат Z,, точек поверхности, являющихся прообразами данных пикселов. Пикселы окрашиваются в цвет первой поверхности. Затем проецируется следующая поверхность, и все неокрашенные пикселы, относящиеся к ее проекции, окрашиваются в цвет второй поверхности. Если пикселы уже были окрашены, соответствующие им значения Z,. сравниваются со значениями Z,, точек текущей поверхности. Если сохраненное значение Z,, какого-то пиксела оказывается больше текущего (то есть точка на предыдущей поверхности ближе к наблюдателю, чем точка на текущей поверхности), цвет пиксела не меняется. В противном случае пиксел окрашивается в цвет текущей поверхности. Изначально z-буфер инициализируется координатами Z,„ соответствующими дальней плоскости (см. рис. 3.11), поэтому пикселы проекции первой поверхности автоматически окрашиваются в ее цвет. Повторяя эту процедуру для всех имеющихся плоскостей, мы окрасим все пикселы экрана в цвета ближайших поверхностей (рис. 3.27). ![]() Пиксел имеет тот же цвет, что и ближайшая поверхность Рис. 3.27. Основы метода z-буфера Как следует из предшествующего описания, метод z-буфера предназначен главным образом для удаления скрытых поверхностей, как и метод сортировки по глубине. Однако метод z-буфера с небольшими изменениями позволяет реализовать и построение рисунков со скрытыми линиями. Сначала все поверхности проецируются на экран, причем пикселы окрашиваются в цвет фона (на экране ничего не появляется). При этом z-буфер заполняется правильными значениями Zv. Затем на экран проецируются ребра поверхностей. При этом значения Z„ ребер сравниваются со значениями Zv ближайших к наблюдателю поверхностей, уже найденными на предыдущем этапе. Окрашиваются только те пикселы, для которых новые значения Z, больше исходных. Таким образом, участки ребер, скрытые поверхностями, на экране не появляются. Эта процедура дает правильный рисунок без скрытых линий, но некоторые граничные линии могут оказаться слишком тонкими, потому что некоторые пикселы этих линий будут относиться к поверхностям, ограниченным соответствующими ребрами. Эту проблему легко решить, пододвинув весь объект поближе в момент проецирования ребер. 3.9. Визуализация Изображения без невидимых линий и поверхностей в большинстве случаев передают форму объекта достаточно хорошо. Однако для некоторых приложений желательно иметь возможность строить более реалистичные изображения. Особенно важную роль реалистичность играет в «виртуальной реальности» - относительно новой технологии, позволяющей имитировать на компьютере реальные ситуации. Например, вы можете занести в компьютер сведения о внутреннем и внешнем виде проектируемого здания, а затем пройтись по нему и вокруг него, чтобы прочувствовать, как оно будет выглядеть на самом деле. Это средство может оказаться очень полезным для принятия решения о вложении денег в постройку здания. Для имитации реальной сцены нужно воспроизвести эффекты, создаваемые светом, падающим на поверхности объектов. Этот процесс называется визуализацией или тонированием (rendering). Вообще говоря, все, что мы видим, - это отражение света от поверхностей, а по этому отраженному свету мы определяем форму, текстуру и цвет объекта. В усовершенствованных графических библиотеках обычно имеются некоторые средства визуализации. Для их применения достаточно задать фасетированную модель объекта, условия освещенности и свойства поверхностей (например, блестящие или тусклые). Однако для правильного использования технологий визуализации необходимо иметь представление об их основах. Даже задать правильные значения параметров функций визуализации без достаточно хорошего знания техники визуализации непросто. Поэтому в настоящем разделе мы коротко опишем две основные технологии визуализации: затушевывание (shading) и трассировка лучей (ray tracing). Подробное описание технологий визуализации можно найти в большинстве книг по компьютерной графике. 3.9.1. Затушевывание Процедура затушевывания аналогична удалению невидимых поверхностей с той разницей, что пикселы одной поверхности окрашиваются разными цветами в соответствии с цветом и интенсивностью отраженного света в точке, проектируемой Ra = Kdlu на этот пиксел. Таким образом, основной задачей становится расчет цвета и интенсивности света, отраженного от какой-либо точки объекта. Начнем с расчета интенсивности. Поверхность объекта может быть освещена светом, исходящим непосредственно от источников, то есть прямым светом (direct illumination), а также светом, отраженным от других поверхностей, дающим окружающее освещение (ambient illumination). Свет, отраженный данной точкой объекта, получается сложением отраженных лучей двух типов (рис. 3.28). ![]() Рис. 3.28. Прямое и окружающее освещение Отраженный от множества поверхностей сцены свет может считаться приходящим с бесчисленного множества направлений, поэтому отражение окружающего освещения считается равномерно распределенным во всех направлениях. Поэтому интенсивность отражения Ra записывается по формуле: Rn=KdI„.(3.17) Здесь 1и - интенсивность окружающего освещения, a Kd - коэффициент отражения поверхности. У белых поверхностей коэффициент отражения близок к единице, а у черных - к нулю. Наблюдатель будет воспринимать одну и ту же интенсивность отраженного окружающего освещения вне зависимости от своего положения, поскольку это освещение образуется благодаря отражению от всех поверхностей и распределяется равномерно по всем направлениям. Для описания прямого освещения достаточно рассмотреть лишь точечные источники света, поскольку линейные и поверхностные источники могут быть рассмотрены как совокупность точечных. Отражение света от точечного источника рассматривается как комбинация двух видов отражения: диффузного и зеркального. Диффузное отражение (diffuse reflection) состоит в том, что поверхность поглощает свет, а затем переизлучает его равномерно во всех направлениях (рис. 3.29). Интенсивность диффузного отражения (как и отражения окружающего освещения) не зависит от положения наблюдателя. Особенности структуры поверхности, такие как текстура и цвет, становятся видимыми именно благодаря диффузному отражению. Для грубых поверхностей отражение является преимущественно диффузным, а не зеркальным. Зеркальное отражение (specular reflection) - это прямое отражение света поверхностью. Данный тип отражения характерен для блестящих поверхностей, таких как зеркала. Блестящие поверхности отражают почти весь падающий свет и по- тому обладают повышенной яркостью (рис. 3.30). Интенсивность зеркального отражения воспринимается по-разному в зависимости от положения наблюдателя относительно сцены. ![]() Рис. 3.29. Диффузное отражение Рис. 3.30. Зеркальное отражение Опишем процедуру расчета ннтенсивностей диффузного и зеркального отражения. Когда мы сделаем это, интенсивность отражения света от точечного источника можно будет приближенно описать как сумму отражений указанных двух типов. Интенсивность диффузного отражения прямо пропорциональна косинусу угла падения. Углом падения в данной точке называется угол между вектором нормали к поверхности и вектором, направленным из точки к источнику света (рис. 3.31). Вектор нормали Падающий свет д ![]() Рис. 3.31. Определение угла падения Это соотношение называется законом косинусов Ламберта. Его легко проверить, представив падающий пучок в виде конечного числа параллельных линий, нахо-йящихся на одинаковом расстоянии друг от друга (рис. 3.32). Обратите внимание, что количество лучей, падающих на поверхность, уменьшается с ее наклоном, □тсюда следует, что интенсивность отраженного света с наклоном поверхности гакже будет падать. ![]() Рис. 3.32. Иллюстрация к закону Ламберта Математически закон косинусов Ламберта может быть выражен так. Интенсивность падающего света в интересующей нас точке 1р считается обратно пропорциональной квадрату расстояния до источника света £>;, поэтому для источника интенсивностью Ер она запишется так: /,(3.18) Обычно предполагается, что все источники света установлены достаточно далеко от поверхностей, так что D/ может считаться одинаковым для всех точек. Тогда закон Ламберта запишется независимо от D,\ Ra =KdEp(KL).(3.19) Здесь Rd - интенсивность диффузного отражения, Кл - коэффициент отражения (см. формулу (3.17)), N - единичный вектор нормали к поверхности в интересующей нас точке, L - единичный вектор, направленный от точки к источнику света, а N • L - косинус угла падения. Вектор L постоянен для всех точек, поскольку источник считается расположенным достаточно далеко. Используя формулу (3.19), можно столкнуться со следующей проблемой: две параллельные плоскости, частично перекрывающиеся на экране, будут казаться наблюдателю неразличимыми. Лучше, если бы плоскость, расположенная ближе, казалась более яркой, то есть имела большее значение Rd. Такого эффекта можно достичь, изменив формулу (3.19): К Е Rd ~(N-L).(3.20) D + D0 Здесь D - расстояние между интересующей нас точкой и точкой зрения наблюдателя, а постоянная D0 позволяет избежать деления на нуль. Теперь займемся расчетом интенсивности зеркального отражения. Было сделано множество попыток точно промоделировать зеркальное отражение. Мы рассмотрим одну типичную модель, которая носит название модели Фонга (Phong model). Большая часть отраженного света попадает в небольшой конический объем вокруг оси, угол которой совпадает с углом падения, но находится по другую сторону от нормали к поверхности (рис. 3.33). Эта ось на рисунке обозначена единичным вектором R. Интенсивность воспринимаемого наблюдателем света будет спадать по мере удаления вектора зрения (единичный вектор V на рис. 3.33) от вектора R. Фонг предложил следующую формулу для описания этого эффекта: R" =7Г7Г<УК>"-<3-21) D + D0 Здесь Ер, D и D0 имеют тот же смысл, что и в формуле (3.20), a Ks - константа, аналогичная Kd в той же формуле. Ks называется коэффициентом зеркального отражения. Формулу (3.21) можно интерпретировать так: интенсивность света, воспринимаемого наблюдателем, вектор зрения которого отклоняется от оси R на угол ф, пропорциональна (cos ф)". Таким образом, интенсивность отражения быстро спадает с удалением от угла отражения, если п много больше единицы, то есть отраженный свет распространяется плотным пучком вдоль оси R. Поэтому у блестящих поверхностей, например металлических, значение п должно быть большим. Например, для такой поверхности хорошо взять значение п |
Меню:
Стандартизация
Математика
Сапромат
Факторизация
Компьютерное моделирование
Обеспечение отказоустойчивости
Оптимизация доступа
Аномальный сдвиг
Экологические аспекты
Методические подходы
Возмущение ионосферы
основы
Инструментальное средство
Погрешность
Результаты
Изучение дефектов
Зависимость эндотелийзависимости
теплоперенос
Квантование
О дроблении
Экспериментальное изучение
Сравнительная оценка
пластинчатый теплообменник
экосистема
Моделирование
Многоэлектронные эффекты
Синтез
Распространение
Анализ видов
государство
Плотность состояний
Исследование
Квазитрехмерная модель
самшитовый биогеоценоз
временной ряд
вихревое поле
Эндотелийзависмый механизм
Теоретическое описание
коронирующий провод
построение модели
электрическое поле
формализм
Отклонения
Инновационное замещение
Динамика численности
сегрегация
среда обитания
специальный подход
инновационная деятельность
температура
Фоновая неоднородность
Цифровая обработка
Потенциалы
Связанность
|
|
|
||