- Текстурирование ландшафтов в Max 3
- Текстура в ландшафтной композиции
- Исследование методов текстурирования ландшафта со сложным рельефом
- технические науки
- Похожие материалы
- Метод MIP-текстурирования
- Метод интерполяции цветов
- Bump mapping
- Nornmal mapping
- Parallax mapping
- Кубическое текстурирование
- Технология мегатекстуры
- Процедурное текстурирование
- Выводы
- Список литературы
- Завершение формирования электронного архива по направлению «Науки о Земле и энергетика»
- Создание электронного архива по направлению «Науки о Земле и энергетика»
Текстурирование ландшафтов в Max 3
Временами я испытываю сожаление, что прогресс не может постоять некоторое время на месте: едва достойно отшлифовав свой предыдущий урок по текстурированию ландшафтов, я получил в руки третью версию пакета 3D Studio MAX, где среди знакомого набора стандартных карт присутствует Gradient Ramp. Эта карта и заставила меня пересмотреть технологию текстурирования ландшафтов, потому что с ее помощью можно значительно облегчить процесс и полностью отказаться от ручного изготовления карт для Blend материалов. Загрузите сцену, которую я уже использовал ранее.
Для начала следует подготовить саму гору и наложить на нее модификатор UWV Map. Перейдите в режим sub-object, чтобы отрегулировать положение рамки. Зеленая линия обозначает правый край mapping’а и значит левая часть накладываемой маски будет внизу, правая наверху, а сама она будет раположен вертикально. Назначьте этому mapping’у первый канал:
Наложите второй модификатор UVW Map’а для текстур и присвойте ему второй канал:
Теперь осталось только немного поработать в Material Editor’е. Нижний ряд слотов содержит в себе Standart материалы, отображающие траву, камень и снег. Материал посередине — это финальный Blend материал, который вы наложите на гору. В верхнем ряде расположены три карты, которые сразу выдают себя квадратной формой (правда, только если в установках Material Editor’а отмечена опция Display Maps as 2D). Карта в правом верхнем углу является исходной Gradient Ramp картой:
Gradient Ramp состоит из плавного перехода красного цвета в зеленый, а затем в синий. Красный будет отвечать за траву, зеленый за камень, а синий за снег. Цвета выбраны далеко не случайно и не следует использовать другие цвета или оттенки, поскольку в дальнейшем могут возникнуть сложности:
Скопируйте готовую Gradient Ramp карту в верхний средний и верхний левый слоты, при копировании используя опцию Instance, чтобы изменения в одной из карт сразу же отображались в другой. Gradient Ramp карта будет служить маской для смешения материалов в Blend материале, поэтому следующим шагом будет разделение цветов. Для этой цели хорошо подходит карта RGB Tint. Измените тип карты с Gradient Ramp’а на RGB Tint в среднем слоте верхнего ряда, отметьте опцию Keep old material as sub-material. Теперь карта RGB Tint контролирует Gradient Ramp карту:
В параметрах RGB Tint карты значение красного (R) и синего (B) окошек следует загнать в черный цвет, таким образом красный и синий цвета RGB Tint карта заблокируют и пропустит только зелуный цвет. Дальше следует загнать в белое значение окошка (G), которое отвечает за зеленый цвет. В итоге получится черная карта с белой полосой посередине. Точно такую же операцию следует проделать с левым слотом в верхнем ряду, только в этом случае нужно загнать в белое слот (R), который отвечает за красный цвет, оставив два других слота черными. В этой карте после обработки белая полоса будет проходить слева. Попробуете изменить положение ползунков в исходной Gradient Ramp карте и вы заметите как меняются обе маски:
Обе маски готовы, материалы для травы, камня и снега тоже готовы. Осталось сделать последний шаг, скомпоновать материалы через маски в единый Blend материал. Зайдите в свободный слот и измените тип материала со Standart’а на Blend, в слот Mask положите маску с белой полосой по левому краю, используя опцию Instance, чтобы и в дальнейшем иметь возможность регулировать параметры. В слот Material 2 поместите материал травы. Зайдите в слот Material 1 и смените тип материала со Standart’а на Blend, в слот Mask положите вторую маску с белой полосой посередине через Instance, а в Material 1 и Material 2 положите материалы камня и снега соответственно. Что же получилось? Поскольку при копировании карт вы использовали опцию Instance, то теперь все маски полностью контролируются из правого слота верхнего ряда, где расположена исходная Gradient Ramp карта. Маски накладываются по первому каналу проецирования сбоку и делят гору на три зоны, где действует тот или иной материал. Материалы накладываются по второму каналу сверху. Чтобы границы соприкосновения материалов не выглядели слишком четкими, следует включить шум в параметрах карты Gradient Ramp:
Источник статьи: http://render.ru/ru/a.misharin/post/11721
Текстура в ландшафтной композиции
Текстура в ландшафтной композиции
Текстура – это признак поверхности, который может быть разделен на три категории: грубая, средняя и тонкая. Текстура в ландшафтной композиции используется для обеспечения разнообразия, интереса и контраста. Любой элемент растения имеет текстуру, будь то листва, цветы, кора, ствол или ветви. Размер и форма определяют фактуру растения.
Грубая текстура доминирует над тонкой, а также над цветом и формой. Тонкая же текстура находится в полном подчинении у других качеств. Крупно-текстурированные растения привлекают внимание и удерживают его благодаря игре света и тени. Тонкая текстура увеличивает пространство и дает ощущение открытости, легкости. Грубая текстура минимизирует расстояние: растения кажутся ближе, а пространство становится меньше.
Грубую текстуру имеют крупные листья, листья с зубчатыми краями, толстые сучья и ветви, шипы и колючки, кора в глубокими изломами. Тонкую текстуру определяют небольшие листья, высокие тонкие стебли, тонкая трава, густые и мелкие ветки, лозы, мелкие нежные цветы. Но большинство растений не может быть отнесено ни к обладателям грубой текстуры, ни к обладателям тонкой текстуры. Они характеризуются средними листьями с простыми формами и ровными краями, среднего размера ветвями (не густо расположенными), их форма обычно округлая или курганообразная. Такие средне-текстурированные растения обычно выступают в качестве фона для растений с грубой и тонкой текстурой.
Текстура растений и малых архитектурных форм влияет на восприятие расстояния и масштаба. Чтобы сделать пространство больше, нужно разместить растения с тонкой текстурой на заднем плане, перед ними расположить средне-текстурированные растения, а на передний план вынести растения с грубой текстурой. Тогда разряженность тонкой текстуры отступит назад, и пространство будет казаться большим. Чтобы сделать пространство меньше, растения с грубой текстурой должны будут занять место на внешнем периметре, а растения с тонкой текстурой нужно будет вынести на передний план. Визуально это сделает пространство композиции в ландшафтном дизайне меньше. Смелые цвета увеличивают контрастность и делают текстуру более грубой, в то время как приглушенные цвета могут сгладить текстуру ландшафтной композиции.
Посадочная ведомость
Таблица № 11 Ассортиментная ведомость.
Источник статьи: http://studopedia.ru/19_261624_tekstura-v-landshaftnoy-kompozitsii.html
Исследование методов текстурирования ландшафта со сложным рельефом
технические науки
- Абрамова Оксана Федоровна , доцент, доцент
- Волжский политехнический институт (филиал) Волгоградский государственный технический университет
- Книжко Александр Владимирович , бакалавр, студент
- Волгоградский государственный технический университет
- ЛАНДШАФТ
- СЛОЖНЫЙ РЕЛЬЕФ
- РЕЛЬЕФ
- РЕЛЬЕФНОЕ ТЕКСТУРИРОВАНИЕ
- КУБИЧЕСКОЕ ТЕКСТУРИРОВАНИЕ
- ПРОЦЕДУРНОЕ ТЕКСТУРИРОВАНИЕ
- ТЕКСТУРИРОВАНИЕ
Похожие материалы
Процесс создания ландшафта и его качество в современной практике проектирования и создания виртуальных миров необычайно важен. С дизайнерской точки зрения, все элементы ландшафта должны составлять единую систему природных явлений и всех элементов и подчиняться определенному художественному замыслу. Степень и характер воздействия ландшафта на органы чувств человека трудно выразить словами. Однако всем прекрасно знакома разница в ощущениях, возникающих во время пребывания среди ландшафтов различного типа — в горах и долинах, в степи и пустыне, на лугу, в сосновом бору, в дубраве, в еловой тайге и т.д. Поэтому задача формирования реалистичного ландшафта является достаточно сложной, ресурсоемкой, и, в то же время, актуальной и востребованной.
В некоторых случаях при решении задач для реализации виртуального мира создание текстур в линейных редакторах изображений типа 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`ы, панорамы горизонтов.
Идея скайбокса в визуализации большого куба и размещения зрителя в центре. При движении камеры куб следует за ней, поэтому зритель никогда не достигнет “горизонта” сцены. Это похоже на реальный мир, где мы видим как облака “касаются” земли на горизонте, но когда мы движемся вперед, горизонт остается на том же расстоянии (в зависимости от рельефа).
Специальный вид текстур отображается на куб. Эта текстура создается таким образом, что если ее разрезать и правильно сложить, то ее границы совпадут по рисунку друг с другом, и для того, кто внутри, будет ощущение, что текстура единая.
Данное текстурирование аналогично двумерному текстурированию со скалярным произведением, но здесь вводятся два промежуточных скалярных произведения, три из этих полученных значения используются для доступа к кубической текстурной карте.
Технология мегатекстуры
Данный метод наложения текстур предоставляет возможность распределения текстур и облегчает визуализацию открытых уровней. При использовании данного метода весь ландшафт виртуального мира вместо множества мелких текстур покрывается одной текстурной картой – мегатекстурой. Хранится такая мегатекстура на жёстком диске и, при необходимости, подгружается в память видеокарты. Это позволяет создавать большое количество деталей и разновидностей ландшафта при сравнительно малых объемах используемой оперативной памяти.
Существует несколько версий мегатекстуры на разных уровнях детализации, на каждом из которых выполняется разделение текстуры на квадраты одинакового размера. Например, мегатекстура 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`ы, панорамы горизонтов.
Технология мегатекстуры активно применяется при создании объектов зданий, ландшафтов и других больших статичных объектов.
Процедурное текстурирование на данный момент очень быстро развивается и у него есть только один недостаток, сложность в математическом описании текстуры. Применяется оно для создания таких материалов как кора деревьев, фактуры мрамора и других материалов, рисунок которых можно сгенерировать математической формулой.
Список литературы
- Яковлев, Д.С. Использование «мегатекстуры» для моделирования ландшафтных изображений / Д.С. Яковлев, М.Н. Фаворская // Автоматика. Вычислительная техника. – К.: Сибирский государственный аэрокосмический университет им. акад. М.Ф. Решетнева, 2010. С. 387-388.
- Ian D. Visualization in Landscape and Environmental Planning: Technology and Applications, Taylor and Francis, MA: Boston, 2005. – 320p.
- Применение процедурных генераторов в создании контента для real-time 3D приложений: Часть 1. Oil Rush. https://habrahabr.ru/company/unigine/blog/167075/
- Применение процедурных генераторов в создании контента для real-time 3D приложений: Часть 2. Valley Benchmark https://habrahabr.ru/company/unigine/blog/184614/
- Котов В. К вопросу об импорте 3D моделей в программы с использованием графической библиотеки OpenGL [Электронный ресурс] / В. Котов, О.Ф. Абрамова // Современная техника и технологии. — 2014. — № 1. — C. Режим доступа : http://technology.snauka.ru/2014/01/2965.
- Трифанов А.И. Реализация собственного метода визуализации водной поверхности «скользящая текстура» / А.И. Трифанов, О.Ф. Абрамова // Современные наукоёмкие технологии. — 2013. — № 8 (ч. 1). — C. 96-97
- Абрамова О.Ф., Книжко А.В. СОЗДАНИЕ РЕАЛИСТИЧНЫХ МОДЕЛЕЙ В ВЫСОКОНАГРУЖЕННЫХ ПРОЕКТАХ // NovaInfo.Ru (Электронный журнал.) – 2016 г. – № 44; URL: http://novainfo.ru/article/5573
Завершение формирования электронного архива по направлению «Науки о Земле и энергетика»
Создание электронного архива по направлению «Науки о Земле и энергетика»
Электронное периодическое издание зарегистрировано в Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), свидетельство о регистрации СМИ — ЭЛ № ФС77-41429 от 23.07.2010 г.
Соучредители СМИ: Долганов А.А., Майоров Е.В.
Источник статьи: http://novainfo.ru/article/8950