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

Анализ и разработка алгоритмов текстурирования в задаче повышения реалистичности синтезированной земной поверхности Текст научной статьи по специальности «Математика»

CC BY
46
8
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Наука Красноярья
ВАК
Область наук
Ключевые слова
ТЕКСТУРА / TEXTURE / ТРИАНГУЛИРОВАННАЯ СИНТЕЗИРО-ВАННАЯ ЗЕМНАЯ ПОВЕРХНОСТЬ / TRIANGULATED SYNTHESIZED LANDSCAPE / ИРРЕГУЛЯРНАЯ СЕТКА / IRREGULAR NET

Аннотация научной статьи по математике, автор научной работы — Мортин К.В., Карасёв О.Е.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ANALYSIS AND DEVELOPMENT OF ALGORITHMS OF TEXTURE IN THE TASK OF IMPROVING THE REALISM OF THE EARTH'S SURFACE SYNTHETIC

In this work new texturing method for triangulated synthesized landscape is presented. It uses texturing algorithm for dynamic irregular net and provides better results than known texturing methods.

Текст научной работы на тему «Анализ и разработка алгоритмов текстурирования в задаче повышения реалистичности синтезированной земной поверхности»

УДК 004.92

АНАЛИЗ И РАЗРАБОТКА АЛГОРИТМОВ ТЕКСТУРИРОВАНИЯ В ЗАДАЧЕ ПОВЫШЕНИЯ РЕАЛИСТИЧНОСТИ СИНТЕЗИРОВАННОЙ ЗЕМНОЙ ПОВЕРХНОСТИ

Мортин К.В.

Муромский техникум радиоэлектронного приборостроения, г. Муром, Россия, mortinkv@ya. ru Карасёв О.Е.

Муромский институт (филиал) ФГБОУ ВПО «Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых», г. Муром,

Россия

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

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

ANALYSIS AND DEVELOPMENT OF ALGORITHMS OF TEXTURE IN THE TASK OF IMPROVING THE REALISM OF THE EARTH'S SURFACE SYNTHETIC

Mortin K.V.

Vladimirskiy area Murom college of radio electronic instrument-making, Murom, Russia, mortinkv@ya. ru Karasev O.E.

Murom institute(branch) of "Vladimirskiy state university of the name Alexander Grigorievich andNikolay Grigorievich Stoletovyh",

Murom, Russia

In this work new texturing method for triangulated synthesized landscape is presented. It uses texturing algorithm for dynamic ir-

regular net and provides better results than known texturing methods.

Keywords: texture, triangulated synthesized landscape, irregular

net.

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

с12=(с1*а2+сз*а1)/(а1+а2)

С23 = (С2*Ь2+С3*Ь1)/(Ь1+Ь2) .С = (С23*Д2+С12*й1)/(й1+й2)

Ci

ai

I C3

Рис. 1. Процесс закраски треугольника.

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

тремя точками с тремя координатами А^,у^), B(x,y,z), C(x,y,z), которыми описывается каждая точка[3].

С(*,у,/>

Рис. 2. Пример треугольника в пространстве. Определим площадь треугольника через вектор площади

" " : С' С (1)

Длина данного вектора равна площади треугольника, а направлен он по нормали к плоскости треугольника:

I I ¿г

*> I и,

1П , Г, . г, .

5 = - аВ - хА у В - у А гВ - г А

"2 I

I л"Г* —— V А 11 г/4 — % г Л тГ* —- ф

|ЛУ л*£% V и У Г% ¿мГя

5 = + + 5Ек

Где плоскости.

(2) (3)

-проекции треугольника на координатные

тА

у В — у А уС — у л

уА уВ уС

И как следствие площадь треугольника будет иметь вид

5 =

(4)

(5)

(6)

Текстура представляет собой изображение с собственной системой координат. Пиксели текстуры (тексели) являются узловыми точками с координатами (s,t) (рис. 3).

0

1 2

3

4

5 t

1 2 3 4 5 6 7

( у и злы ^КС соо .ТУ гвет РА ству дот

г [икс елям * )

Рис. 3. Битовая карта текстуры

Определим трёхмерную сцену в системе координат OXYZ (рис. 4). Ось OZ пересекает центр экрана в точке 2 = 1.

Z А

Область видИмости \ 2 \ \ \ ' \

ч

Рис. 4. Пример треугольника в системе координат наблюдателя

Для текстурирования поверхности необходимо задать соответствие координат t) текстуры координатам (х,у,г) поверхности.

Введём ортогональную систему координат (р^) с осями, параллельными сторонам экрана. Пикселями экрана будем счи-

тать квадраты между соседними четвёрками с целочисленными координатами р и q (рис. 5).

Координаты текселей на карте текстуры являются целочисленными величинами, а координаты (- вещественными, и текселю не соответствуют. Поэтому необходимо преобразовать вещественные координаты (s,t) в значение цвета экранного пикселя.

Р

1 2

giw

3 4

1 __т_А ж_^_А_ —-- _0_ф_

I Т^Л zbPr •3 Si • —■f-1 fx T —-V — —I— 1 1/ 2 7' A\ —•-•—

T X

-T-T-T- • 4 —#-•—

s

q

t

Рис. 5. Пиксель в координатах (p,q) и его образ в координатах (s,t) При наложении текстуры методом множественного отображения (MIP Mapping) необходимо определить подходящий уровень детализации (LOD, Level of Details) [1]. Уровень LOD должен быть таким, чтобы размер образа экранного пикселя на текстуре и размер текселя текстуры были максимально близки. Размер текселя заданного уровня LOD можно вычислить следующим образом.

Рассмотрим пиксель как квадрат. Его образ в координатах (s,t) - есть произвольный четырехугольник. Изменение координаты s вдоль образа горизонтальной стороны пикселя вычисляется по формуле

ds

— (в _ центре _ пикселягоризонтам ьный _ размер _ пикселя = др

ds

— (в _ центре _ dp

пикселя

>

Аналогично изменение координаты t вдоль образа горизонтальной стороны пикселя вычисляется через

дt ( )

— (в _ центре _ пикселя ). др

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

Используя аппроксимацию, можно применить следующие операции над пикселями:

(

BLUR : LOD = MAX

i

ds' dp

+

dt

dP "У

ds 2 dq

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

+ -

ct_2 dq

Л

мытое изображение;

f

SHARP: LOD = MIN

кое изображение;

ds2 dp

+

dt

dp

ds2 dq

+ -

К

dq

(

LOCHEED: LOD = MAX

1

ds2 dp

+

ds2

dq 1

dp

+-

dq

дает раз-

дает рез-

- явля-

ется объединением предыдущих двух методов.

Объединяя эти три операции, можно добиться хорошего качества изображения. Вычисление производных и координат t) в каждом пикселе производится также, как и в алгоритме быстрого отображения.

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

2

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

Пусть мы движемся вдоль заданного на экране отрезка [р1, р2]. Прообраз отрезка [р1, р2] - отрезок [Р1, Р2] в пространстве, координаты концов которого (х1, z1), (х2, z2) нам известны (рис. 6).

Восстановим по точке p = p1 +1 х (p2 - p1) = p1 + Ap её прообраз Р с координатами (х, 2) = (х1 + Ах, г1 + Аг).

А

Рис. 6. Система координат 0X2, отрезок [Р1, Р2], проекция на экран - отрезок [р1, р2], точка Р и её проекция р

Запишем уравнение прямой, содержащей отрезок [Р1, Р2]: Ах+Вг+С=0.

При проективном преобразовании экранная координата р

вычисляется как р = — , откуда х = рг. г

Подставляя выражение для х в уравнение отрезка [Р1, Р2],

С

получим (Ар + В)г + С = 0 или г =-.

Ар + В

х

Выразим из этого соотношения 2— = С

Ар 1 + В

21 + Д2 =

С

А( р1 + Др) + В

Введём вспомогательную величину 2 = — .

2

„ А В _ 4_ А, . ч В Для нее 2— = с?х + С' а 2— +Дг = С(Р— + С' ЧТ°

А

позволяет выразить Д2 следующим образом: Д2 = — Др .

Воспользовавшись последним соотношением, найдем координаты точки

' А

С

(х, г): ^ = г— + Д = 2 . (8)

2 = 2— + Д2 = 2— +— Др

х = х— + Дх = (р— + Др)(2— + Д) = р2

Если не исключать из модели оси OY и q, то в системе (8) добавилось бы уравнение

у = у— + Ду = (д— + Дд)(2— + Д) = д2 . (9)

Пользуясь соотношениями (8) и (9), можно реализовать эффект перспективы в алгоритме быстрого наложения текстуры. Сохраняя величину 2 вместо z, мы сокращаем число отрезков, образующих треугольник.

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

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

Во-первых, гладкая поверхность может быть покрыта каким-либо узором, и тогда при её изображении решается задача отображения этого узора на проекции фрагментов поверхности.

Во-вторых, поверхность может быть шероховатой, поэтому нужны специальные приёмы имитации такого микрорельефа при закрашивании.

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

Список литературы

1. Hoppe H. Smooth View-Dependent Level-of-Detail Control and its Application to Terrain Rendering // IEEE Visualization 1998 Conference. - P. 35-42.

2. Suen P, Healey G. The Analysis and Reconstruction of Real-World Textures in Three Dimensions // IEEE Transactions of Pattern Analysis and Machine Intelligence. - 2000. - Vol. 22. - No. 5. - P. 491-503.

3. О.Е. Карасев, К.В. Мортин. Особенности тектсурирования компьютерных ландшафтов. Н 34 Наука и образование в развитии промышленной, социальной и экономической сфер регионов России. IV Всероссийские научные Зворыкинские чтения: сб. тез. докл. IV Всероссийской межвузовской научной конференции. Муром, 3 февр. 2012 г.- Муром: Изд-полиграфический центр МИ ВлГУ, 2012.- 1022 с.: ил.- [Электронный ресурс]: 1 электрон. опт. диск (CD-ROM).

Рецензент:

Жизняков А.Л., доктор технических наук, профессор кафедры «Системы автоматизированного проектирования электронных средств», Муромский институт (филиал) ФГБОУ ВПО «Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых»

i Надоели баннеры? Вы всегда можете отключить рекламу.