Исследование методов текстурирования ландшафта со сложным рельефом
Изучение методов создания и наложения текстур ландшафта со сложным рельефом. Исследование существующих методики, их особенностей и областей применения. Определение преимуществ применения различных методов для текстурирования ландшафта со сложным рельефом.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 16.07.2018 |
Размер файла | 253,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Исследование методов текстурирования ландшафта со сложным рельефом
Абрамова Оксана Федоровна, доцент, доцент
Книжко Александр Владимирович, бакалавр, студент
Волгоградский государственный технический университет
В статье проведено исследование методов текстурирования ландшафта со сложным рельефом. Изучены все существующие методики, их особенности и области применения. Сделаны выводы о применимости различных методов для текстурирования ландшафта со сложным рельефом.
Процесс создания ландшафта и его качество в современной практике проектирования и создания виртуальных миров необычайно важен. С дизайнерской точки зрения, все элементы ландшафта должны составлять единую систему природных явлений и всех элементов и подчиняться определенному художественному замыслу. Степень и характер воздействия ландшафта на органы чувств человека трудно выразить словами. Однако всем прекрасно знакома разница в ощущениях, возникающих во время пребывания среди ландшафтов различного типа - в горах и долинах, в степи и пустыне, на лугу, в сосновом бору, в дубраве, в еловой тайге и т.д. Поэтому задача формирования реалистичного ландшафта является достаточно сложной, ресурсоемкой, и, в то же время, актуальной и востребованной.
В некоторых случаях при решении задач для реализации виртуального мира создание текстур в линейных редакторах изображений типа Photoshop или GIMP становится невозможным. Одной из таких задач является создание текстур ландшафтов. Текстуры позволяют увеличить детализацию изображения, не добавляя в сцену дополнительную геометрию, и поэтому широко распространены в трехмерной графике. Ключевой особенностью текстур ландшафтов являются их огромные размеры -- например, 8192*8192 пикселей. На рисование всех необходимых текстур ландшафта вручную при помощи графического планшета уйдут недели, а внесение хоть каких-то минимальных изменений будет отнимать дни. Всё это является совершенно необоснованным, если у проекта есть хоть какие-то временные ограничения, не говоря уже о неудобстве работы с текстурами таких размеров.
Рассмотрим подробнее методы создания и наложения текстур. В компьютерной графике выделяют следующие методы создания текстур:
· создание текстуры путем рисования в 2d редакторе;
· создание текстур в 3d пакетах для рисования;
· разработка текстуры на базе процедурных карт;
· комбинирование процедурных техник 2d и 3d формата.
Однако, в современной компьютерной графике при текстурировании ландшафта необходимо, помимо реализации процесса создания текстуры, выбрать методику наложения текстур для формирования плавного и последовательного ландшафта, учитывающего карту высот местности. Для этих целей используют следующие методы наложения текстур:
· MIP-текстурирование;
· Parallax mapping;
· Кубическая текстура;
· Мегатекстура;
· Bump mapping;
· Nornmal mapping;
· Процедурное текстурирование.
Рассмотрим данные методы подробнее.
Метод MIP-текстурирования
MIP-текстурирование - метод, использующий набор копий одной текстуры с разной детализацией. При этом каждое следующее изображение в наборе вдвое меньше предыдущего, начиная с размера, равного реальному размеру текстуры, и до размера 1х1 тексель (рис.1).
Рисунок 1. Пример Мип-карты
Основное назначение такого набора: предоставление возможности при текстурировании выбрать изображение с наиболее подходящим уровнем детализации с учетом степени приближения камеры к объекту.
Предположим, что на 3D модель наложена текстура размером 512х512. Модель расположен на достаточно удаленном расстоянии камеры и геометрические размеры на экране у нее малы. При отключенном мип-текстурировании видеокарте придётся выбирать, какой тексель из большой текстуры будет использован для расчёта цвета точки. При этом выбор точки для расчета может изменяться в зависимости от изменения ракурса камеры, что приведёт к мерцанию объектов и снижению качества всей сцены в целом. При включенном же мип-текстурировании видеокарта будет выбирать наиболее подходящий к размеру объекта размер текстуры, и только потом будет производить выборку из него, что избавит итоговое изображение от нежелательных эффектов.
Генерацию мип-уровней можно выполнить несколькими способами. Один из них - выполнять генерацию мипмапов с помощью указаний для видеокарты. Такой способ не очень хорошо, т.к. качество текстур будет низким из-за использования для генерации, простого фильтра. Другой способ - генерировать мипмапы самостоятельно, воспользовавшись пакетами для редактирования изображений, которые уже имеют нужную функциональность. При таком подходе можно выбирать фильтры и, соответственно, управлять качеством результирующего изображения.
К достоинствам применения данного метода можно отнести повышение быстродействия программной реализации за счет более эффективного использования текстурной кэш-памяти видеокарты и снижения объема данных, передаваемых по шине.
Метод интерполяции цветов
Интерполяция цветов - поиск промежуточных значений цвета по некоторым известным цветовым значениям рядом находящихся элементов. Данный процесс подразумевает использование специализированных алгоритмов, которые исследуют соседние пиксели изображения и рассчитывают новые таким образом, чтобы переход между ними был максимально сглажен. Обобщенно этот процесс можно представить следующим образом. Если на текстуре был черный пиксель, а рядом с ним -- белый, то при увеличении масштаба в два раза получится два черных пикселя и два белых пикселя. За счет интерполяции мы получим исходные черный и белый пиксели, плюс один темно-серый пиксель и один светло-серый пиксель между ними, как показано на рисунке 2.
Рисунок 2. Пример работы алгоритма интерполяции
При таком подходе не смотря на то, что любое RGB-изображение, сохраненное в RAW формате, может быть использовано в качестве карты цветов (каждый пиксель изображения описывается тремя байтами - значение Red, Green, Blue компонент цвета), важно помнить, что ширина и высота этих файлов должны быть равными размеру карты высот.
Bump mapping
Метод заключается в том, что отклонение каждого пикселя от нормали к поверхности просчитываемого объекта смотрится в карте высот (поле высот) и применяется перед обсчётом освещения. Этот метод позволяет без использования дополнительной детализации создавать иллюзию глубины на поверхности модели с помощью расчетов освещения.
Карты bump, являющиеся одним из старейших типов карт - это черно-белые 8-битные изображения. Назначение карт bump в том, чтобы сообщить 3D-редактору указания по поводу деформации геометрии вверх или вниз. Когда значения карты bump близки к 50% серого, с поверхностью, практически, ничего не происходит. Когда изображение ярче, ближе к белому, детали выдавливаются, а когда изображение темнее, ближе к черному, то детали вдавливаются в поверхность.
Не смотря на то, что данный метод является одним из старейших методов наложения текстур, карты bump отлично подходят для создания на поверхности модели мелкой детализации, например, волн песка или морщин на коже. Кроме того, их сравнительно легко создать в таком 2D-редакторе, как Photoshop, помня при этом, что работать нужно только с черно-белыми цветами. Недостатком метода можно считать то, что детализацию, созданную с их помощью, можно не увидеть, если посмотреть на объект с неверного ракурса. А так же то, что детализация не изменяет силуэт модели, поскольку карты bump создают ложную, а не реальную детализацию.
Nornmal mapping
В трёхмерной графике это один из самых эффективных способов создания реалистичных детализированных поверхностей без использования процедуры увеличения количества полигонов трёхмерной модели. Метод аналогичен ump mapping, но для хранения информации о рельефе используются текстуры, в которых кодируются данные не о высоте точек поверхности, а об отклонении нормалей поверхности.
Карты нормалей или normal-карты - это улучшенные карты bump, которые так же создают ложную детализацию, не добавляя дополнительных деталей геометрии в сцене, но эта иллюзия в корне отличается от той, которую создают карты bump. Normal-карты работают с RGB-информацией, которая соответствует X, Y и Z значениям в 3D-сцене и сообщает 3D-редактору точное направление нормалей к каждому полигону поверхности. Ориентация нормалей поверхности необходима 3D- редактору для выбора цвета полигона (рис. 3).
Рисунок 3. Normal-карта и результат ее применения
Normal-карты бывают трех типов:
· tangent space» - наиболее распространенный тип, используют координатное пространство текстур, сочетают в себе в большей мере оттенки синего цвета; подходят для мешей, которые должны деформироваться при анимации, для персонажей.
· object spaсe» - используют координатное пространство модели, окрашены в различные цвета, просчитываются немного быстрее карт типа «tangent space»; подходят для статичных объектов, не испытывающих деформаций.
· world spaсe» - похожи на object spaсe, но зависят от мировых координат; используются только для статичных объектов.
Карты нормалей создаются путём запекания на основе высокополигональных, высокодетализированных реалистичных трёхмерных моделей, после чего они накладываются в канал смещения Bump и начинают работать.
Parallax mapping
Parallax mapping - программная методика в трёхмерной компьютерной графике, также известная как displacement mapping. Основана на применении карт displacement, которые способны реализовать детализацию приближенную к реальной. Используется в случае необходимости создания дополнительной физической детализации объекта сцены. Для создания карт displacement объекту искусственно увеличивают количество полигонов, чтобы хватило разрешения для создания реалистичной геометрии. Т.е. карты влияют на общую геометрию и форму моделей, что в итоге дает достаточно высокую степень детализации объектов.
К достоинствам карт displacement можно отнетсти то, что их можно создать с высокополигонального объекта. Карты displacement, как и карты bump, работают с черно-белыми значениями цветов. При этом с легкостью можно использовать как 8-битные карты displacement, которые более подходят для двумерных сцен, так и 16- или 32-битные карт displacement. Однако, создание дополнительной детализации в режиме реального времени требует значительных дополнительных временных затрат. Кроме того, большинство 3D-редакторов просчитывают displacement уже при рендеринге. Поэтому, по сравнению с картами bump и normal, карты displacement могут серьезно сказаться на времени визуализации.
Кубическое текстурирование
Кубическая текстура - методика в трёхмерной компьютерной графике, которая принимает трёхмерную координату текстуры и возвращает тексел из данной кубической карты.
Суть методики -- в использовании кубической карты для отображения трёхмерной координаты текстуры в тексель при построении изображений отражения окружения в поверхности объекта. Кубическая карта представляет собой развёртку шести граней куба, каждая грань которого содержит текстуру. Каждая текстура отображает вид окружения, которое видно из одной точки зрения в шести направлениях. Текстурная координата является вектором, который определяет, как смотреть из центра куба, чтобы получить желаемый тексель. На основе данного метода текстурирования создаются SkyBox`ы, панорамы горизонтов.
Идея скайбокса в визуализации большого куба и размещения зрителя в центре. При движении камеры куб следует за ней, поэтому зритель никогда не достигнет “горизонта” сцены. Это похоже на реальный мир, где мы видим как облака “касаются” земли на горизонте, но когда мы движемся вперед, горизонт остается на том же расстоянии (в зависимости от рельефа).
Специальный вид текстур отображается на куб. Эта текстура создается таким образом, что если ее разрезать и правильно сложить, то ее границы совпадут по рисунку
друг с другом, и для того, кто внутри, будет ощущение, что текстура единая.
Рисунок 4. Пример кубической текстуры
текстурирование ландшафт сложный рельеф
Данное текстурирование аналогично двумерному текстурированию со скалярным произведением, но здесь вводятся два промежуточных скалярных произведения, три из этих полученных значения используются для доступа к кубической текстурной карте.
Технология мегатекстуры
Данный метод наложения текстур предоставляет возможность распределения текстур и облегчает визуализацию открытых уровней. При использовании данного метода весь ландшафт виртуального мира вместо множества мелких текстур покрывается одной текстурной картой - мегатекстурой. Хранится такая мегатекстура на жёстком диске и, при необходимости, подгружается в память видеокарты. Это позволяет создавать большое количество деталей и разновидностей ландшафта при сравнительно малых объемах используемой оперативной памяти.
Существует несколько версий мегатекстуры на разных уровнях детализации, на каждом из которых выполняется разделение текстуры на квадраты одинакового размера. Например, мегатекстура 32768Ч32768 пикселей, покрывающая участок в 640Ч640 метров, при максимальной детализации разделяется на 32Ч32 квадрата размером 1024Ч1024 пикселя (20Ч20 м). Первый уровень детализации состоит из 16Ч16 квадратов того же размера (1024Ч1024 px), но вдвое меньшего разрешения (то есть, размер каждого квадрата -- 40Ч40 метров), второй -- из 8Ч8 квадратов по 80 м каждый, и т. д.
Ближайшие к камере пиксели визуализируются с текстурой максимального качества, содержащей только небольшой участок мегатекстуры. Следующие пиксели визуализируются с текстурой меньшего качества, и меньшим разрешением. Самые дальние пиксели визуализируются с основной текстурой в малом разрешении.
Процедурное текстурирование
Процедурное текстурирование - это метод создания текстуры, при котором цвет каждого пикселя изображения формируется алгоритмически, что позволяет примененять различных математических функций, например, шум Перлина (Perlin oise), и реализовывать анимацию. При этом такой метод подразумевает неограниченный уровень детализации каждой текстуры, так как текстура генерируется сразу под необходимый для ее отображения размер.
Наиболее часто процедурные текстуры используются в тех случаях, когда возможно сравнительно просто описать объекты математически: разные виды шума (например, fractal noise), дерево, вода, лава, дым, мрамор, огонь и т.п..
По сравнению с традиционными методами процедурная генерация текстур обладает следующими преимуществами:
· Возможность вносить изменения в любой этап формирования изображения. Практически все приложения, использующие процедурное генерирование текстур, построены на блочной архитектуре, которая позволяет составлять логические цепочки любой сложности с помощью добавления элементарных блоков и создания связей между ними. Такой подход позволяет переходить в разные цветовые пространства на любом этапе (например, собирать/разбирать картинку на RGB или HSL компоненты).
· Возможность масштабирования текстур без потерь детализации. Так как процедурная генерация строится на математических функциях, а не на растровых изображениях, то какое бы разрешение для объектов мы в дальнейшем не выбрали, чёткость текстур от этого не ухудшится.
· Высокая скорость формирования новых материалов и подобных текстур на основе существующих путем их модифицирования и комбинирования.
· Быстрое изменение финальной текстуры путём изменения параметров генератора на любом этапе работы.
· Возможность использования процедурных генераторов для создания базовой текстуры с дальнейшей её растеризацией и обработкой уже в растровых редакторах изображений.
· Малый размер хранимых данных. В файл сохраняется только описание алгоритма, занимающее несколько килобайт, а не большие объемы растровых данных по 4 байта на пиксель. При этом одну и ту же текстуру можно использовать как входную сразу в нескольких обработчиках, а не копировать её каждый раз.
Помимо перечисленных преимуществ генераторы процедурных текстур, как правило, содержат алгоритмы автоматического тайлинга, которые позволяют убрать швы по краям формируемого изображения. Так же можно реализовать некий алгоритм обработки и применить его ко всем исходным изображениям.
Выводы
В современном текстурировании метод интерполяции цветов может применяться в случаях если необходимо быстро моделировать ландшафт, его рельеф с как можно малым временем для отображения результатов редактирования. Метод MIP-текстурирования можно применять лишь частично при создании ландшафта, основное его применение это создание текстур для моделей игроков, зданий, мобов.
Bump mapping как и normal mapping как индивидуальные методы более не применяются, на смену им пришел комплексный метод рельефного текстурирования parallax mapping, который использует три вида текстурных карт для создания реалистичного рельефа модели.
Кубическое текстурирование в наше время применяется крайне редко, на его основе создаются в основном SkyBox`ы, панорамы горизонтов.
Технология мегатекстуры активно применяется при создании объектов зданий, ландшафтов и других больших статичных объектов.
Процедурное текстурирование на данный момент очень быстро развивается и у него есть только один недостаток, сложность в математическом описании текстуры. Применяется оно для создания таких материалов как кора деревьев, фактуры мрамора и других материалов, рисунок которых можно сгенерировать математической формулой.
Список литературы
1. Яковлев, Д.С. Использование «мегатекстуры» для моделирования ландшафтных изображений / Д.С. Яковлев, М.Н. Фаворская // Автоматика. Вычислительная техника. - К.: Сибирский государственный аэрокосмический университет им. акад. М.Ф. Решетнева, 2010. С. 387-388.
2. Ian D. Visualization in Landscape and Environmental Planning: Technology and Applications, Taylor and Francis, MA: Boston, 2005. - 320p.
3. Применение процедурных генераторов в создании контента для real-time 3D приложений: Часть 1. Oil Rush. https://habrahabr.ru/company/unigine/blog/167075/
4. Применение процедурных генераторов в создании контента для real-time 3D приложений: Часть 2. Valley Benchmark https://habrahabr.ru/company/unigine/blog/184614/
5. Котов В. К вопросу об импорте 3D моделей в программы с использованием графической библиотеки OpenGL [Электронный ресурс] / В. Котов, О.Ф. Абрамова // Современная техника и технологии. - 2014. - № 1. - C. Режим доступа: http://technology.snauka.ru/2014/01/2965.
6. Трифанов А.И. Реализация собственного метода визуализации водной поверхности «скользящая текстура» / А.И. Трифанов, О.Ф. Абрамова // Современные наукоёмкие технологии. - 2013. - № 8 (ч. 1). - C. 96-97
7. Абрамова О.Ф., Книжко А.В. СОЗДАНИЕ РЕАЛИСТИЧНЫХ МОДЕЛЕЙ В ВЫСОКОНАГРУЖЕННЫХ ПРОЕКТАХ // NovaInfo.Ru (Электронный журнал.) - 2016 г. - № 44; URL: http://novainfo.ru/article/5573
Размещено на Allbest.ru
...Подобные документы
Изучение основных возможностей создания трехмерных объектов в программе OpenGL, методика наложения текстур. Механизм подключения библиотек. Создание поверхности ландшафта. Реализация ориентирования на поверхности. Изменение поверхности ландшафта.
курсовая работа [21,5 K], добавлен 29.11.2010Понятие фрактала, принципы создания изображения. Разработка алгоритма и режимов генерации ландшафта. Описание программы FracLandscapes.exe. в среде разработки Delphi 10. Примеры построения ландшафта с использованием различных режимов и количества изгибов.
курсовая работа [688,9 K], добавлен 04.05.2014Методы создания и наложения текстур (сделанных на основе полученных фотографий) в программах Autodesk 3ds MAX и Adobe Photoshop. Добавление карт нормалей и бликов в программе PixPlant для создания материалов. Создание развертки 3D-объекта в 3ds MAX.
дипломная работа [6,2 M], добавлен 15.06.2013Выбор, обоснование и описание используемых алгоритмов и понятий машинной графики. Типы, структуры данных и функции, использованные при реализации программного комплекса. Тип и структура файла для хранения ландшафта. Связи между модулями программы.
курсовая работа [2,8 M], добавлен 24.06.2009Устройства для создания примитивной анимации. История развития анимирования 70-х годов. Трехмерная система анимации фигур. Создание искусственного человека, неотличимого от настоящего. Достижения освещения и текстурирования. Деформация 2D и 3D объектов.
презентация [1,4 M], добавлен 06.02.2013Суть основных идей и методов, особенностей и областей применения программирования для численных методов и решения нелинейных уравнений. Методы итераций, дихотомии и хорд и их использование. Алгоритм метода Ньютона, создание программы и ее тестирование.
курсовая работа [423,0 K], добавлен 17.02.2010Математическое описание и аналитическое исследование методов оптимизации: Нелдера-Мида и градиентный с дроблением шага. Зависимость числа итераций от заданной точности. Решение задачи минимизации для каждого из методов и ее графическая интерпретация.
курсовая работа [472,8 K], добавлен 22.11.2009Обзор архитектуры СУБД SQL Server. Описание и анализ областей применения средств бизнес-аналитики, таких как многомерный анализ данных и интеллектуальный анализ данных. Обзор языковых средств, методов и экспериментальное применение полученных сведений.
дипломная работа [2,2 M], добавлен 09.07.2014Опытное исследование свойств методов Рунге-Кутты. Реализация численных методов приближенного интегрирования обыкновенных дифференциальных уравнений, наиболее часто применяющихся в практике моделирования и проектирования систем автоматизации и управления.
курсовая работа [311,5 K], добавлен 05.03.2009Изучение характеристик, классификации, функций и основных элементов экспертных систем. Исследование их структуры и отличительных особенностей от другого программного обеспечения. Описания методов проектирования и области применения экспертных систем.
реферат [38,1 K], добавлен 18.09.2013Исследование причин появления и особенностей проявления муара в изображении. Обзор вида муара при различных углах наложения двух растровых структур. Рекомендаций по предотвращению муара при четырехцветной печати. Анализ основных методов подавления муара.
курсовая работа [3,5 M], добавлен 27.10.2013Рассмотрение основных понятий защиты информации в сетях. Изучение видов существующих угроз, некоторых особенностей безопасности компьютерных сетей при реализации программных злоупотреблений. Анализ средств и методов программной защиты информации.
дипломная работа [1,5 M], добавлен 19.06.2015Методы вычисления определенных интегралов: метод трапеций и метод Симпсона (парабол). Примеры применения, блок-схемы методов трапеций и Симпсона. Разработка программы в объектно-ориентированной среде программирования Lazarus, конструирование интерфейса.
реферат [2,1 M], добавлен 18.04.2011Изучение основных видов угроз программного обеспечения. Выявление наиболее эффективных средств и методов защиты программного обеспечения. Анализ их достоинств и недостатков. Описания особенностей лицензирования и патентования программного обеспечения.
курсовая работа [67,9 K], добавлен 29.05.2013Рассмотрение методов прямоугольников и трапеций как способов вычисления определенных интегралов. Характеристика графика зависимости погрешности от числа разбиений N. Создание приложения по вычислению интеграла с помощью методов приближенного вычисления.
курсовая работа [1,6 M], добавлен 20.06.2012Анализ преимуществ и недостатков различных численных методов решения дифференциальных уравнений высших порядков. Обоснование выбора метода Рунге-Кутта четвертого порядка. Разработка программы, моделирующей физическое и математическое поведение маятника.
курсовая работа [1,6 M], добавлен 11.07.2012Исследование методов оптимизации программного кода на языке Си с помощью компилятора. Тестирование результатов утилитой optbench.c. Определение особенностей оптимизации компилятора на собственной программе. Удачные примеры быстроты и компактности кода.
лабораторная работа [26,5 K], добавлен 17.12.2012Принципы компьютерной стеганографии. Классификация методов сокрытия информации. Популярность метода замены наименьшего значащего бита. Сущность методов расширения палитры и блочного сокрытия. Применение методов в GIF изображениях. Реализация алгоритмов.
курсовая работа [589,7 K], добавлен 17.02.2013Понятие и основной принцип действия алгоритмов сортировки информации. Сравнительное исследование и анализ эффективности методов сортировки Шелла и Флойда в виде графиков зависимостей количества сравнений и числа перестановок элементов от объёма данных.
контрольная работа [573,6 K], добавлен 09.11.2010Ознакомление с особенностями применения функций в языке Си++. Рассмотрение понятия прототипа, определение областей его применения. Изучение сущности автоматических, статистических и регистровых переменных, их использование при составлении программ.
лабораторная работа [24,0 K], добавлен 15.07.2010