Читайте также:
|
|
Изображение с построенными тенями выглядит гораздо реалистичнее, и, кроме того, тени очень важны для моделирования. Например, особо интересующий нас участок может оказаться невидимым из-за того, что он попадает в тень. А в строительстве, при разработке космических аппаратов тени влияют на расчет падающей солнечной энергии, обогрев и кондиционирование воздуха. Если положение наблюдателя и источника света совпадают, то теней не видно, но они появляются, когда наблюдатель перемещается в любую другую точку. Тень стоит из 2-ух частей: полутени и полной тени. Полная тень – центральная, темная, резко очерченная часть, а полутень – окружающая ее более светлая часть. Распределенные источники света создают как тень, так и полутень: в полной тени свет вообще отсутствует, а полутень освещается частью распределенного источника.
Точечные источники создают только полную тень. Из-за больших вычислительных затрат рассматривается только полная тень, образуемая точечным источником света.
Легче всего, когда источник находится в бесконечности, тогда тени определяются с помощью ортогонального проецирования. Если источник расположен на конечном расстоянии, то используется перспективная проекция.
Рассмотрим рисунок. В этом случае тени образуются двояко:
1) собственно тень на объекте;
2) проекционная тень.
Собственная тень получается тогда, когда сам объект препятствует попаданию света на некоторые его грани. Алгоритм затенения в этом случае идентичен алгоритму удаления скрытых поверхностей. В алгоритме удаления скрытых поверхностей определяются поверхности, которые можно увидеть из точки зрения, а в алгоритме затенения – поверхности, которые можно “увидеть” из источника света. Поверхности, видимые из источника света и из точки зрения, не лежат в тени. Поверхности, видимые из точки зрения, но невидимые из источника света, находятся в тени. Поэтому удобно использовать 1 алгоритм, последовательно применяя его к точке зрения и к каждому из точечных источников света.
Если один объект препятствует попаданию света на другой, то получается проекционной тень (горизонтальная плоскость на рис.). Чтобы найти такие тени, надо построить проекции граней на сцену. Центр проекции – в источнике света. Т.о. находятся теневые многоугольники для всех граней и заносятся в структуру данных. Чтобы не вносить в нее слишком много многоугольников, можно проецировать контур каждого объекта, а не отдельные грани.
Для создания различных видов из разных точек зрения не надо вычислять тени заново, т.к. они зависят только от положения источника
Рис. 13.14 света и не зависят от положения наблюдателя.
Источник на бесконечности
Рис. 13.15
В случае бесконечно удаленного источника света мы предполагаем, что лучи света, приходящие к объекту, полностью параллельны. Это позволит нам решить уравнение проекции только раз и применять полученное решение ко всем вершинам объекта.
Локальный источник
Уравнение (1.6) для бесконечно удаленного источника света может быть обобщено для случая, когда источник света находится на конечном расстоянии от объекта. В этом случае нам понадобятся дополнительные вычисления на каждую вершину, т.к. каждая вершина имеет, в общем случае, свое собственное направление на источник света. Тем не менее, в этом случае мы тоже можем перенести большую часть вычислений в матрицу .
Если L это точка расположения источника света, то (1.3) принимает вид:
(1.9)
И снова нам необходимо произвести проекцию на плоскость z=0, тогда.
(1.11)
Если использовать гомогенизацию после преобразования, то (1.11) можно записать в виде матрицы:
(1.12).
Опять, имея координаты точки P в мировом координатном пространстве, можно записать:
(1.13)
После чего провести гомогенизацию точки S для получения проекции точки P на плоскость z=0.
Дата добавления: 2015-07-14; просмотров: 87 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Модель освещения. | | | Mip-mapping. |