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

Нанесение узора на поверхность. Стохастическая текстура.

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

Для нанесения рисунка на поверхность необходимо:

отображение объектного пространства (ОП) в пространство изображения (ПИ);

преобразование из фактурного пространства (ФП) в ОП.

Реализует изложенный принцип алгоритм разбиения Кэтмула. Его основные шаги:

  1. Кусок поверхности разбивается на фрагменты до тех пор, пока фрагмент не будет покрывать центр только одного пиксела.

  2. Производится отображение параметрических значений центра фрагмента или пиксела в ФП.

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

Пример. (Исходные данные те же)

Узор задан на растре .

Рис. 13.20 Схема анесение стохастического узора на поверхность

Кусок поверхности разбивается на фрагменты. Для того, чтобы фрагмент покрывал центр только одного пиксела, надо 4 разбиения. В ПИ этот фрагмент имеет прямоугольную форму. Пределы изменения и в ОП:

С помощью функции обратного отображения из ОП в ФП :

,

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

, ,

, ,

, ,

, ,

В ФП это квадрат. На растре 64 64 часть1/16 соответствует 4 пикселам. Интенсивность пиксела в ПИ определяется путем усреднения интенсивностей пикселей в соответствующей части ФП. Кусок фрагмента 4 4 пиксела содержит 7 черных пикселей, поэтому в ПИ интенсивность равна .

Недостатком метода является поточечная выборка, которая приводит к сильному лестничному эффекту.

Нанесение стохастического узора на аппроксимированную поверхность тора (рис. 13.21) может быть выполнено по-разному. Рисунок, заданный на растре, может полностью наносится на каждую грань без учета ее размеров, а может определяться часть узора для некоторого полигонального многоугольника.

Рис. 13.21 Пример нанесения стохастического узора на поверхность

Если же добавить освещение объекта по рассмотренной ранее модели расчета интесивности света, то можно получить достаточно реалистичные изображения (рис. 13.22). На первом рисунке (а) показан шар, освещенный рассеянным светом, на втором (б) – с рассеянным светом и наложенным стохастическим рисунком, на третьем (в) – с рассеянным светом, зеркальным и диффузным отражением, на четвертом (г) - с рассеянным светом, зеркальным, диффузным отражением и наложенным стохастическим рисунком.

а б

в г

Рис. 13.22 Пример закраски а) с рассеянным светом ; б) с текстурированием и рассеянным светом; в) с диффузным, зеркальным отражением и рассеянным светом; г) с текстурированием, диффузным, зеркальным отражением и рассеянным светом

В качестве еще одного примера закраски ниже рассмотрен тор (рис. 13.23). На первом рисунке (а) на поверхность тора нанесен рисунок, на втором (б)– добавлено диффузное отражение, на третьем (в) – добавлено зеркальное отражение.

а) б) в)

Рис. 13.23. Пример закраски а) с рассеянным светом; б) с диффузным отражением и рассеянным светом; в) с диффузным, зеркальным отражением и рассеянным светом

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