рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Проективные текстуры

Проективные текстуры - Конспект Лекций, раздел Философия, Конспект лекций по дисциплине Компьютерная графика Рассмотрим Общий Случай, Когда Текстура Проецируется На Поверхность, Которая ...

Рассмотрим общий случай, когда текстура проецируется на поверхность, которая затем проецируется на 2-х мерный экран. Мы проецируем проектором некое изображение на поверхность, а затем смотрим на нее из произвольной точки (см. рис.1). Т.е. снова проецируем изображение, на этот раз уже с поверхности на наблюдателя. При построении изображения эта ситуация моделируется крайне просто - проекция примитивов поверхности на экран дело обычное, а роль второй проекции (проецирование изображения на поверхность) играет привязка соответствующего места текстуры с изображением на примитивы.

 

Рис5.1

 

 

Нам осталось лишь научиться правильно привязывать текстуру с исходным изображением к нашей поверхности.

Всего мы имеем дело с четырьмя координатными системами.

1. Наблюдательская система ("clip" или "projection") - является обычным для графики 4-х координатным представлением 3-х мерного (объемного) пространства. Координаты зовутся x, y, z, w. Начало этой координатной системы лежит в точке наблюдения.

2. Экранная система ("screen") - 2-х мерный экран, который и видит наблюдатель. Эти координаты получаются из наблюдательской системы путём деления x и y на w – x5 = x / w, y5 = y / w, (индекс "s" у получающихся координат обозначает экранную систему).

3. Система источника света ("light") - это вторая объемная система координат (xt, yt, zt и wt,). В начале этой системы координат находится источник света.

4. Текстурная система (texture) - координаты на плоскости проецируемой текстуры (тот слайд, сквозь который светит воображаемый источник света). Текстурные координаты получаются как xt = xt / wt, yt = yt / wt (также можно вычислить zt = zt / wt , если мы решили не ограничиваться плоской текстурой).

Наша задача: имея точку (x5, y5) на экране, нам необходимо найти соответствующую ей точку (xt, yt) на текстуре.


 

 


На рис. 5.2 показан сегмент линии в нашем трехмерном пространстве и его проекция на 2-х мерный экран. Этот сегмент - горизонтальная полоса сканирования на экране, расположенная между двумя рёбрами полигона. Координаты его концов в наблюдательской системе:

 

 

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

 

и решим относительно t . Для тех, кому интересно, приведем все рассуждения:


Вычисление t:

Зададим a и b, таким образом, что 1 – t5 = a / (a + b) и t5 = b / (a + b).

Зададим A и B так, что t = A / (A + B) и t = B / (A + B).

Тогда:

Легко проверить, что A = aw1 и B = bw2 удовлетворяют этому уравнению, позволяя нам получить искомый параметр t , и, далее, координаты Q.

Продолжим. У нас есть матрица M, переводящая координаты из системы источника в наблюдательскую:

 

 

Уравнение (6) выражает координаты на поверхности текстуры, соответствующие любой точке сегмента выбираемой (линейно интерполируемой) параметром в экранных координатах.

Для того, чтобы получить координаты, мы должны линейно интерполировать xt/w, yt/w, wt/w.

Для каждого пикселя:

Если wt постоянна на всём полигоне, то уравнение (7) приобретает вид

откуда мы имеем s = xt/wt, t = yt/wt. Здесь (s,t) - текстурные координаты, синонимы (xt, yt).

 

Уравнение (8) и определяет текстурные координаты, которые можно привязать к вершинам передаваемого на ускоритель полигона. В более общем сложном случае проективной текстуры, выражаемом уравнением (7), требуется деление на wt/w, а не на 1/w.


Туман

 

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

Туман можно разделить на полигонный и пиксельный. Полигонный метод линейно интерполирует уровень тумана по значениям в вершинах для получения уровня тумана в каждой точке полигона. Этот метод хорош только для маленьких полигонов. Пиксельный метод рассчитывает уровень тумана для каждого пиксела, и для больших полигонов дает более реалистичное изображение.

Мы рассмотрим пиксельный туман.

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

Расстояние до точки.

 

D – расстояние от наблюдателя (Р) до точки (или дистанция).

 

отсюда получаем

где

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

, где

 

V(D) – яркость в данной точке

dD – расстояние, на которое добавляем туман

V(D+dD) – яркость в точке с учетом добавленного тумана

Формула яркости в точке с учетом добавленного тумана.

,

где Vт – яркость тумана

s - плотность тумана

решим дифференциальное уравнение

отсюда получим

В нулевой точке, то есть в точке, где находится наблюдатель тумана нет, поэтому получаем:

, тогда получим:

, где Dт – дистанция тумана

Получаем уравнение вычисления тумана:

. На дистанции Dт туман увеличивается в раз.

Примем соглашение, что , так как отображать объекты, находящиеся на расстоянии больше, чем 3Dт, нет смысла (из-за тумана не будет видно).

 

Экспоненциальный туман.

Значение функции можно вычислять таблично:

h – по старшим разрядам, например, 6 разрядов

r – делим на зоны, r = r0…rmax , например, на 16 зон (4 разряда)

Итого, например, получаем 10-ти разрядную таблицу.


Тени

 

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

 

Тени бывают двух типов:

Первый:

 

Рис 2.1

 

На рисунке 2.1 представлены следующие обозначения, которые будут использоваться в дальнейшем:

s – точечный источник света.

p – положение наблюдателя.

Рис 2.2


S – вектор, направленный на S.

Наблюдатель увидит линию терминатора – границу раздела света и тени.

Если угол между S и N > 90, то источник света падает не на лицевую грань.

 


Второй:

Рис 2.3

 

Тень второго типа – тень, отбрасываемая одним объектом на другой.

 

 

Наблюдателя помещаем в S (некоторого вспомогательного наблюдателя).

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

Рис 2.4

 

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

1 Этап – построение Hs.

2 Этап – построение H,V.

Обработка каждой текущей точки будет производиться в соответствии со следующим алгоритмом. (когда мы идём по сканированной строке).

Нам известно: x, y – координаты в плоскости изображения.

U - яркость

U0 - яркость для точки в тени.

h - текущее значение параметра глубины.

Имеется HS , H , V.

Условие (**) проверяет - освещена точка или нет.

Если условие не выполняется, то точка не освещена, и имеет место тень второго типа.

 

 

Пересчет точек из одной системы координат в другую осуществляется следующим образом.

где:

Из первого уравнения найдем пространственные координаты.

Чтобы перейти в другую систему координат необходимо осуществить параллельный перенос

 

Перед этим из выражения (*) мы получаем SS через S

Для расчета коэффициентов применим следующие формулы:

 

 

В отличие от локального освещения, тени являются одним из эффектов глобального освещения. Т.к. основным местом использования алгоритмов теней в реальном времени являются компьютерные игры, то в дальнейшем, для удобства, будут приводиться примеры именно на них. Существует несколько основных подходов к построению теней, рассмотрим алгоритм «Преобразование модели "на землю" и отрисовка её как тени». Фактически, это первый алгоритм построения тени, который был применён в играх. (Turok II, Shogo, etc.). Он отличается простотой реализации и хорошим качеством получаемой тени. Этот алгоритм был впервые описан Джимом Блинном [BLIN88]. В своей статье он описал уравнения для проектирования полигона "на землю", т.е. на плоскость z=0, в направлении от источника света. Он рассмотрел два случая:


 

  1. Источник на бесконечности (параллельный направленный свет)
  2. Локальный источник (точечный источник недалеко от объекта)

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

 

 

  1. Источник на бесконечности

 

 

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

Общая постановка задачи:

Имея точку источника света (xS, yS, zS) и вершину объекта (xP, yP, zP) , мы хотим получить проекцию вершины объекта на плоскость z=0, т.е. точку тени (x5, y5, z5).

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

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

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

 

S = P - aL (3)

 

т.к. мы производим проекцию на плоскость z=0, то уравнение (3) можно переписать в следующем виде: 0 = zp - azs (4) или a = zp / zs (5)

решая (3) относительно x5 и y5, получаем:

 

Теперь имея координаты точки P в мировом координатном пространстве, можно получить её проекцию на плоскость z=0 просто путём умножения на матрицу М5: S = M5 * P (8)

 

 

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

 


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

 

Если L это точка расположения источника света, то (3) принимает вид: S = P + a(P - L) (9)

и снова нам необходимо произвести проекцию на плоскость z=0, т.ч.

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

-zs 0 xs 0

M5k = 0 -zs 0 0 (12)

0 0 -ys 0

0 0 1 -zs

 

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

 

Sk = M5k * P (13)

 

после чего провести гомогенизацию точки Sk для получения проекции точки P на плоскость z=0.

 

 

Существует несколько ситуаций, когда тени не нужны:

1. Когда нет источника света.

2. Когда совмещены наблюдатель и источник света.

3. Когда солнце в Зените.

 

 


Моделирование освещения.

 

– Конец работы –

Эта тема принадлежит разделу:

Конспект лекций по дисциплине Компьютерная графика

Кафедра Вычислительной Техники... Конспект лекций по дисциплине Компьютерная графика...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Проективные текстуры

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Алгоритмы растровой графики.
2.1. Растровые представления изображений. Цифровое изображение – набор точек (пикселей) изображения; каждая точка изображения характеризуется координатами x и y и ярко

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

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

Метод полутонов
  Сущность: каждый пиксель исходного изображения заменяется группой пикселей рис.2.8.2.

Алгоритм закраски областей, заданных списком вершин
(метод построчного сканирования)   Интерполяция яркости при закраске областей О линейной интерполяции яркости при закраски области можно гово

Алгоритм
1. Сформировать ТР и подготовить ТАР 2. Выбор первой координаты сканируемой строки: у = min {ymin}; 3. Если у = уmin, то перенос группы из ТР в ТАР.

Двумерные геометрические преобразования
Параллельный перенос   Параллельный перенос в плоском случае

Поворот вокруг фиксированной точки
    Р` = Р·М,

Трехмерные геометрические преобразования
  Далее при рассмотрении трехмерных преобразований, в основном, используется общепринятая в векторной алгебре правая система координат (рис. а). При этом, если смотреть со стороны пол

Композиция 3D изображений
P` = P·M; P = P`· М–1     Поворот вокруг произвольной оси, проходящей через начало координат:

Движение по рельефу
   

Движение над рельефом
  Надо учитывать, что при движении над рельефом наблюдатель приподнят на высоту h.  

Обработка h при непосредственном синтезе изображения.
1. Инициализируем поля V, H = 0. Очищаем поле V (например, делаем его черным). В H записыв

Процедурные текстуры
  Рассмотрим простой пример: есть домик с кирпичными стенами. Решить задачу описания грани домика достаточно сложно. Можно было бы описать стенку, но это тоже сложно, поэтому эту стен

Основные законы освещения
  1.2.Закон Ламберта (диффузного отражения)   Если есть некоторая поверхность и в некоторую точку этой поверхности, у которой есть нормаль

Рельефные текстуры.
  Рельефное текстурирование очень напоминает обычный процесс наложения текстуры на полигон. Только при обычном наложении текстуры мы работаем со цветом и изменяем его цветовое восприя

Синтез изображения с помощью Y-буфера.
Рассмотрим частный случай: Синтез каркасных изображений с удалением невидимых элементов этого

Синтез стереоизображений.
Методы наблюдения: 1) делим изображение на 2, одно для левого глаза другое для правого. Затем на экране синтезируются эти 2 изображения, в результате чего мы ви- дим стер

Представление пространственных форм.
  Пусть надо изобразить пространственную кривую:  

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

Итерационные способы вычисления полиномов.
Вычисление кубического уравнения для прямой:

Метод триангуляции Делоне.
Суть : Позволяет получать триангуляцию, все треугольники стремятся к правильной форме. В основе метода лежит круговой критерий: Если провести окружность вокруг 3-ч точек,

Представление рельефа с мультиразрешением.
Мультиразрешение –представление с различной степенью детализации.   Основная задача: Сортировка тачек по степени важности.  

Объекты.
В отличие от рельефа объект изображается с использованием одного разреше- ния. Как правило создаётся много моделей одного объекта.

Если к одной вершине присоединены несколько треугольников, то квадрик этой
вершины будет равен сумме всех квадриков прилегающих к этой вершине треу- гольников:

Механизм колабса ребра.
Цель: выбор ребра, от которого можно избавмться, но это избавление должно принести наименьшую ошибку. Рассмотрим пример:

Заключает в себе триангуляции всех уровней разрешения. Но выигрыш в её
применении, по сравнению с динамической триангуляцией, невелик.   Резюме: 1) Существуют: а) Рельеф: представляется с разным уровне

Z=-0.0828*R+0.0157*G+0.1786*B
  Y – яркостная компонента цветового восприятия.    

Вычитание цветов
 

Обработка изображений
  Обработка изображений – это деятельность над изображениями  

Амплитудные преобразования
  Координаты точек не меняются.

Частные случаи геометрических преобразований

Алгоритм ГП.
При осуществлении геометрических преобразований существует две схемы пересчета: 1. Схема прямого пересчета

Деформация изображения.
Имеется система , на вход которой подают изображение :   l =1….L ( пусть у нас l-текстовых точек).  

Кусочно – нелинейные АП
Результатом нелинейного преобразования является эквализация (выравнивание) гистограммы. В результате применения этого преобразования увеличивается контрастность, так как после линейных преобразован

Считаем среднее значение этих точек и в результирующем изображении в точку с координатами (x y) записываем исходную точку.
    1) Усреднённая маска (3*3) 2) Медианный фильтр (3*3) 3) 1. Вычисление среднего знач

Линейные преобразования
  F (n1, n2) – двумерная функция. Тогда F – её линейно

Обратное преобразование
  F(n1, n2) =

Частные случаи линейных преобразований
  1.) Разделимые линейные преобразования   A(n1, n2, m1, m2) = Ac(n1, m1) &#

Теорема Ферма-Эйлера –2
В кольце целых чисел по модулю Mвсегда найдутся числаa,Mтакие, что aN = 1 по mod M

Если n=2q , то число является простым
2n +1 = 2r +1 –числа Ферма. где r = 2q

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги