Тени

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

Рубрика Физика и энергетика
Вид реферат
Язык русский
Дата добавления 11.12.2010
Размер файла 4,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ТЕНИ

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

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

Рис. 5.28. Тени.

тень ортогональный грань источник плоскость

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

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

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

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

Рассмотрим этот метод на примере.

Пример 5.4. Тени

Рассмотрим параллелепипед на рис. 5.28, а. Он задан точками Р1 (1, 0, 3.5), Р2 (2, О, 3.5), Р3 (2, 0, 5), Р4 (1, 0, 5), Р5 (1, 3, 3.5), Р6 (2, 3, 3.5), Р7 (2, 3, 5), Р8 (1, 3, 5). Параллелепипед стоит на плоскости, заданной точками B1 (0, 0, 0), В2 (6, 0, 0), B3 (6, 0, 6), В4 (0, 0, 6). Источник света расположен в бесконечности на прямой, проходящей через Р2, и Р8. Точка наблюдения находится в бесконечности на положительной полуоси Y после поворота сцены сначала на --45° вокруг оси y и затем на 35° вокруг оси X.

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

где R, L, В, Т, H, Y обозначают правую, левую, нижнюю, верхнюю, ближнюю к дальнюю грани, если смотреть на преобразованный объект из бесконечности с положительной полуоси z. Вектор от источника к объекту в однородных координатах

Скалярное произведение вектора направления к источнику и нелицевых плоскостей дает

Знак минус означает, что при наблюдении из положения источника правая, нижняя и дальняя грани являются нелицевыми и, следовательно, находятся в собственной тени. Существует несколько способов нахождения проекционных теней. Один из них заключается в том, чтобы перенести и повернуть параллелепипед вместе с плоскостью его основания до совмещения вектора направления на источник с осью z. Источник находится в бесконечности, поэтому ортогональная проекция видимых граней на преобразованную плоскость основания дает проекционную грань. Значение z получается подстановкой X- и Y-координат вершин преобразованного параллелепипеда в уравнение преобразованной плоскости основания. Затем координаты проекционных теней приводятся к первоначальной ориентации.

Для совмещения вектора падающего из бесконечности вдоль прямой Р8 Р2 света с осью X необходимо:

перенести Р, в начало координат;

выполнить поворот на вокруг оси Y, чтобы P4 совпала с осью z;

выполнить поворот на вокруг оси X, чтобы P8 совпала с осью z;

Объединённое преобразование

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

Уравнение преобразованной плоскости основания найдем методом Ньюэлла:

z = -0.6Y.

Подставляя X- и Y-координаты вершин преобразованного параллелепипеда в уравнение плоскости, определим z, что дает проекцию тени на плоскость основания:

где штрих обозначает вершину проекционной тени.

Из положения источника видны только передняя, левая и верхняя грани; они и порождают проекционные тени:

передняя: P3P4P8P7->

левая: P1P4P8P5->

верхняя: P7P8P5P6->

Отметим, что ни одна видимая грань не содержит точку Р2; поэтому ее проекция не входит в видимые проекционные тени. Обратным преобразованием, т. е. , построенные проекционные тени переводятся в исходную ориентацию:

Проекциями теней на плоскость основания будут S3S4S8P7, S1S4S8S5, и S7S8S5S6, а общим контуром - S1S5S6S7S3S4.

На рис. 5.28, b показан результат после поворота на -45° вокруг оси Y и затем >° вокруг оси X. Точка наблюдения находится в бесконечности на положительной полуоси z. Правая грань видима, но находится в собственной тени, поэтому она выглядит почти черной. Проекционная тень тоже выглядит почти черной, причем при наблюдении из заданной точки часть ее оказывается невидимой.

Идея совмещения процессов построения теней и удаления невидимых поверхностей была впервые предложена Аппелем [5-16]. Им был разработан как метод трассировки лучей, так и метод построчного сканирования, усовершенствованный впоследствии Бук-найтом и Кели [5-17 - 5-19]. Включение теней в интервальный алгоритм построчного сканирования, например в алгоритм Уоткинса, осуществляется в два этапа.

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

Если сцена состоит из n многоугольников, то возможно n(n - 1) проекционных теней, поэтому важно найти эффективный способ получения матрицы. Букнайт и Кели проецируют сцену на сферу с центром в источнике света и применяют к спроецированным многоугольникам габаритные тесты с прямоугольной оболочкой для исключения большинства случаев. Можно воспользоваться также способом, описанным в примере 5.4, т. е. совместить вектор направления к источнику с осью z. Затем количество вариантов можно сильно сократить путем использования простых трехмерных габаритных тестов. Для еще большего сокращения числа вариантов можно применить более сложные методы сортировки, например приоритетную сортировку Ньюэла -- Ньюэла -- Санча. Рассмотрим для иллюстрации несложный пример.

Пример 5.5. Матрица теней

Для простой сцены на рис. 5.28 матрицу теней можно составить на основе непосредственного наблюдения. Результат приведен в табл. 5.2.

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

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

если нет ни одного теневого многоугольника, то видимый отрезок изображается;

если для многоугольника, содержащего видимый отрезок, имеются теневые многоугольники, но они не пересекают и не покрывают данный интервал, то видимый отрезок изображается; если интервал полностью покрывается одним или несколькими теневыми многоугольниками, то интенсивность изображаемого видимого отрезка определяется с учетом интенсивностей этих многоугольников и самого отрезка;

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

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

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

Можно изменить алгоритм, использующий z-буфер, так, чтобы он включал построение теней [5-20]. Модифицированный алгоритм состоит из двух шагов:

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

Для этого метода можно непосредственно использовать алгоритм построчного сканирования с z-буфером. В этом случае применяется буфер размером с одну сканирующую строку. Уильяме [5-20] модифицировал метод, чтобы строить криволинейные тени на изогнутых поверхностях. Сначала создается вид из точки наблюдения, а затем, как постпроцесс, выполняется поточечное линейное преобразование к виду из источника и построение теней. Уильяме отметил, что таким способом неправильно изображаются блики: в тени они просто становятся темнее, хотя ясно, что там их вообще не должно быть. Уильямсом также были исследованы эффекты квантования, возникающие в пространстве изображения в результате преобразования от одной точки наблюдения кдругой.

Азертон [5-21, 5-22] включил построение теней в алгоритм удаления невидимых поверхностей, основанный на методе отсечения Вейлера -- Азертона). Его преимущество состоит в том, что он работает в объектном пространстве и результаты годятся как для точных расчетов, так и для синтеза изображений. Процесс состоит из двух шагов.

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

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

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

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

Если источников несколько, то к базе данных добавляется несколько наборов освещенных граней. На цветной вклейке 3 приведен результат для двух источников.

Алгоритм выделения видимых поверхностей трассировкой лучей, описанный в разд. 4.13, также можно расширить, чтобы включить построение теней [5-16]. Процесс вновь делится на два этапа. На первом, как и в предыдущем случае, трассировкой луча от точки наблюдения через плоскость проекции определяются видимые точки сцены (если таковые есть).

На втором этапе вектор (луч) трассируется от видимой точки до источника света. Если между ними в сцене есть какой-нибудь объект, то свет от источника не попадает в данную точку, т. е. она оказывается в тени (рис. 5.30). Для того чтобы поиск вдоль локального вектора направления света был эффективнее, можно воспользоваться методами из разд. 4.13.

Кук [5-8] предложил довольно простой способ построения полутеней, хотя, как уже говорилось, обычно они не учитываются. В модели освещения Кука -- Торрэнса источнику конечного размера противолежит телесный угол (см. разд. 5.8), поэтому, закрывая часть источника, можно уменьшить телесный угол, а следовательно, и интенсивность падающего от источника света. При этом соответственно снижается и отраженная интенсивность.

Это показано на рис. 5.31 для прямого края четырехугольника и сферического источника.

Средняя линия полутени рассчитывается в предположили, что точечный источник находится в центре сферы. С помощью подобных треугольников найдем проекцию половины ширины полутени r на направление L (рис. 5.31):

где d - расстояние от точки, отбрасывающей тень, до соответствующей точки на средней линии полутени; D ~ расстояние от точки, отбрасывающей тень, до центра сферического источника; R -- радиус сферического источника.

Если смотреть от многоугольника, отбрасывающего тень то телесный угол источника есть

поэтому половина ширины полутени равна

Это означает, что если телесный угол источника меньше, то он создает более резкую тень (т. е. с меньшим r). У точечного источника r=0 поэтому полутени нет вообще. При сближении затеняемой и затеняющей поверхности d и r уменьшаются, и тень становится резче.

Интенсивность точек полутени определяется видимой частью источника. Для сферического источника, частично видимого от --R до a, эта доля составляет

Результаты показывают, что на одном краю полутень получается более четкой. Кук рекомендует хранить эти данные в таблице цветов. Однако проще рассчитывать линейную аппроксимацию которая дает погрешность меньше 7%.

Размещено на Allbest.ru


Подобные документы

  • Определение длительности витка и тени на расчетном витке. Расчет количества фотопреобразователей в секции. Определение размеров и вольтамперных характеристик батареи. Расчет системы электропитания для спутника, предназначенного для наблюдения за Солнцем.

    курсовая работа [2,1 M], добавлен 21.05.2015

  • Исследование распределения интенсивности света на экране с целью получения информации о свойствах световой волны. Основные виды дифракции. Объяснение проникновения световых волн в область геометрической тени с помощью принципа Гюйгенса. Метод фон Френеля.

    презентация [146,9 K], добавлен 24.09.2013

  • Определение сверхсветовой скорости материальной точки, принцип причинности. Солнечный зайчик, тени, ножницы. Сверхсветовое движение в среде. Теория относительности: расширение Вселенной, двигатель Алькубьерре. Сверхсветовые частицы, эффект Шарнхорста.

    курсовая работа [2,9 M], добавлен 27.08.2012

  • Исследование дифракции, явлений отклонения света от прямолинейного направления распространения при прохождении вблизи препятствий. Характеристика огибания световыми волнами границ непрозрачных тел и проникновения света в область геометрической тени.

    презентация [1,4 M], добавлен 07.06.2011

  • Строение и ядерная модель атома. Атомный номер элемента. Волновые свойства электрона. Звуковые волны и их свойства. Строение и анатомия уха человека. Свет и световые явления, процесс образования тени и полутени. Закон преломления света, его сущность.

    реферат [1,1 M], добавлен 18.05.2012

  • Система обозначения граней и направлений. Индексы граней и ребер кристаллов. Символы ребер. Основные кристаллографические соотношения. Углы между двумя направлениями, между направлением и плоскостью. Межплоскостное расстояние и индексы плоскости.

    лабораторная работа [29,4 K], добавлен 20.03.2007

  • Применение расчетных формул для определения собственных частот и форм колебаний стержня (одномерное волновое уравнение) и колебаний балки с двумя шарнирными заделками. Использование теоретических значений первых восьми собственных частот колебаний.

    контрольная работа [2,6 M], добавлен 05.07.2014

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

    презентация [74,0 K], добавлен 08.04.2015

  • Требования к выполнению расчетно-графических работ. Примеры типовых задач: система сходящихся сил в плоскости; равновесие тела в плоскости; определение реакций двухопорной балки; равновесие системы тел в плоскости; равновесие пространственной системы сил.

    методичка [204,4 K], добавлен 22.03.2010

  • Основное преимущество метода фазовой плоскости. Элементы фазового портрета. Анализ траекторий в окрестности особых точек. Исследование системы с переменной структурой. Построение временного процесса по фазовой траектории. Сущность метода припасовывания.

    контрольная работа [1,4 M], добавлен 24.08.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.