Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_3D-mod.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
10.94 Mб
Скачать

Источник света в бесконечности

Ниже приведена схема вычисления тени, когда источник света находится в бесконечности (рис. 13.18).

Рис. 13.18 Источник света в бесконечности

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

Имея точку источника света и вершину объекта , необходимо получить проекцию вершины объекта на плоскость z=o, то есть точку тени .

Из подобных треугольников получаем:

(1.1)

Решая это уравнение относительно , получаем:

(1.2)

Если принять, что L - это вектор из точки P к источнику света, то точку S можно выразить как:

(1.3)

Так как проекцию производится на плоскость z=0, то уравнение (1.3) можно переписать в следующем виде:

(1.4)

или

(1.5).

Решая (1.3) относительно и , получаем

(1.6)

или в матричной форме:

(1.7)

Теперь имея координаты точки P в мировом координатном пространстве, можно получить ее проекцию на плоскость z=0 просто путем умножения на матрицу

(1.8).

Локальный источник

Уравнение (1.6) для бесконечно удаленного источника света может быть обобщено для случая, когда источник света находится на конечном расстоянии от объекта. В этом случае понадобятся дополнительные вычисления на каждую вершину, так как каждая вершина имеет, в общем случае, свое собственное направление на источник света. Тем не менее, в этом случае мы тоже можем перенести большую часть вычислений в матрицу .

Если L - это точка расположения источника света, то (1.3) принимает вид:

(1.9)

После проецирования на плоскость z=0:

(1.10)

и

(1.11)

Если использовать гомогенизацию после преобразования, то (1.11) можно записать в виде матрицы:

(1.12).

Имея координаты точки P в мировом координатном пространстве, можно записать:

(1.13)

13.5. Фактура. Нанесение узора.

В компьютерной графике фактурой называется детализация строения поверхности. Существует два вида детализации:

Нанесение заданного узора на гладкую поверхность (регулярная и стохастическая текстуры).

Создание неровностей на поверхности.

Нанесение узора на поверхность. Регулярная текстура.

Речь идет о рисунке, который чаще всего можно описать аналитически – клеточка, полосочка и т.д. Характерные точки узора из пространства текстуры (фактурное пространство (ФП)) переносятся в объектное пространство (ОП), затем в пространство изображения (ПИ) и определенным образом соединяются отрезками. Главным при этом является отображение, поэтому задача сводится к преобразованию систем координат.

Пусть рисунок узора задан в прямоугольной системе координат (u,w) (ФП), а поверхность – в другой прямоугольной системе координат (x,y) (ОП), то для нанесения узора на поверхность надо найти или задать функцию отображения одного пространства на другое:

,

или

, .

Обычно предполагается, что функция отображения линейна:

,

где коэффициенты A, B, C, D выводятся из соотношения между двумя известными точками в системах координат.

Пример.

Узор в виде клеточки (рис. 13.19, а) надо отобразить на кусок поверхности, заданный десятой частью сферы.

Рис. 13.19 Нанесение узора на поверхность

Параметрическое представление куска сферы:

Пусть функция отображения линейна и имеет вид:

, .

Углы узора переходят в углы куска следующим образом:

, при ,

, при ,

, при ,

, при ,

Отсюда , , , .

Функция отображения: ,

или обратное преобразование: , .

В таблице 13.1 приведено отображение одной линии узора из фактурного пространства (u-w) в объектное пространство , а затем в декартовы координаты (x,y,z).

Таблица 13.1 Значения параметров

u

w

x

y

z

¼

0

¼

½

¾

1

0,38

0,38

0,35

0,32

0,27

0,92

0,90

0,85

0,77

0,65

0

0,20

0,38

0,56

0,71

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]