Методы наложения текстуры. Текстуры

Текстуры

Текстуры

Текстура – это растровое изображение (множество цветовых точек), они придают 3d-моделям цвета, рельефность и другие осязаемые свойства поверхности. Текстуры накладываются на поверхность полигона. С помощью текстур можно создать шрамы на коже, складки на одежде, мелкие камни и прочие предметы на поверхности стен и почвы.
Качество поверхности текстуры определяется количеством пикселей на минимальную единицу текстуры. От качества текстуры, её разрешения во многом зависит итог работы над 3d- сценой.
Текстуры бывают разного формата, есть RGB, есть с альфа каналом (RGBA), монохромные и другие.

Создание текстур для трехмерной модели
В данный момент существует два основных способа создания текстур:
- производство текстур в редакторах растровой графики (Adobe Photoshop, Gimp, Painter и т.п.) с нуля или же используя готовые растровые изображения (фотографии, рисунки и т.п.).
- производство текстур в специализированных программа для рисования текстур сразу на поверхности трехмерной модели.
Оба способа сейчас активно используются. И одним, и вторым способом, можно получать качественные текстуры для моделей.
Примером программных решений, где сразу можно создавать текстуры, являются пакеты: MARI, Mudbox, Zbrush, 3DCoat, BodyPaint 3D. Эти программы решают проблему швов и дают возможность художнику полностью сосредоточиться на творческом процессе. Также плюсом является то, что эти программы не только позволяют создавать текстуры разных типов, но и мгновенно видеть как та или иная текстура оказывает влияние на модель.

Текстуры и геометрия
За исключением процедурных текстур все остальные варианты текстур (созданные самим 3d-специалистом или уже готовые) необходимо накладывать на объект, соблюдая определенные правила. Так же, как и виртуальные метки или ярлыки, текстуры накладываются на поверхность трехмерных моделей при помощи системы координат. Хотя сами двухмерные изображения основаны на системе координат XY, накладываются текстуры на объект, основанный на осях координат U (горизонталь) и V (вертикаль), обхватывающих поверхность объекта. Метод наложения текстур будет зависеть от типа геометрии вашего объекта.

Наложение(texture mapping) и проецирование
Наложение текстур позволяет детализировать самые простейшие объекты без излишнего усложнения геометрии модели.
Наложение текстур (texture mapping) определяет способ, которым при получении изображения текстура соединяется с поверхностью 3d – модели. Наложение зависит от положения объекта в пространстве. Нельзя просто наложить текстуру на поверхность, не учитывая расстояние до объекта и его ориентацию относительно зрителя. Такая сцена будет плохо выглядеть.
Самыми распространенными способами наложения являются следующие:
Плоскостное наложение - прямое проецирование текстуры с определенной точки в трехмерном пространстве. Данный метод широко применяется для наложения текстурных карт на плоские поверхности (книги, пол, стены);
Цилиндрическое наложение - текстура оборачивается вокруг геометрии модели примерно так же, как этикетка оборачивается вокруг консервной банки. Данный метод используется для текстурирования цилиндрических объектов
Сферическое наложение - в какой-то степени подобно цилиндрическому, но при этом сверху и снизу текстура замыкается, в некоторых случаях искажая изображение. Зачастую приходится прятать этот шов за неким вторичным объектом. Этот метод наиболее подходит для текстурирования лиц, шаров, мячей, планет и других подобных объектов;
Кубическое наложение - изображение проецируется на объект с шести разных направлений, каждое из которых соответствует плоскости симметрии. Данный метод подходит для текстурирования таких объектов, как здания, ящики или интерьер комнаты.

Мозаичное размещение(tiling)
Чтобы наложить на модель повторяющийся узор можно создать небольшое изображение, а затем наложить его при помощи мозаичного размещения. Этот способ намного проще и продуктивнее для создания большой текстуры для всей поверхности объекта. Более того, мозаичные изображения имеют небольшой размер, поскольку в памяти хранится только один элемент мозаики. Однако у мозаичного размещения есть и свои минусы. Получается так, что изображения выглядят слишком однородными, и созданная, например, таким образом трава больше напоминают ковровое покрытие. Кроме того, между элементами мозаики появятся швы, которые нужно чем-то закрывать. (Но этот минус может стать и плюсом, если вам, например, необходимо создать плитку на кухне.)
В таких случаях актуальным является применение так называемых бесшовных текстур. Они имеют рисунок с бесконечно повторяющимся узором, который совмещается без каких-либо дефектов даже если и дублируется множество раз.

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

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

Базовые генераторы текстур хороши, но не всеобъемлющи. Часто необходимо наложить на модель текстуру травы, кирпича, металла, ткани и т. п.

Все, что может быть сохранено как JPEG изображение, может использоваться в Blender в качестве текстуры.

Поддерживаются так же и многие другие графические форматы (png, targa, TIFF, bmp ). Если вы захотите разместить свою фотографию на объекте - вы сможете легко это сделать! Видео также может быть помещено на объект в качестве материала.

Для использования изображения в качестве текстуры наложите на объект материал, как мы делали это ранее, перейдите в раздел текстур (Texture ) и выберите в качестве Типа текстуры" Image or Movie " .

Установлены все нужные параметры, но текстура по прежнему не накладывается как нужно. В чем проблема?

 На текстуру могут влиять параметры поворота и масштабирования объекта.

Попробуйте нажать Ctrl - "A" для установки текущего угла поворота и масштаба как базовых значений.

Как пример использования изображения в качестве текстуры на иллюстрации приведены отрендеренные куб исфера с текстурой кирпича. Вы можете заметить, что по умолчанию текстура проецируется на верхнюю грань объекта и растягивается по боковым. Такой способ проекции называется" Flat " (плоский). Он может быть установлен на панели" Mapping " .

Другие варианты проекции проиллюстрированы ниже:

Допустим я хочу использовать проекцию текстуры типа " Cube " (кубическую). Но кирпичи выглядят слишком большими.

Исправить это можно в панели " Image Mapping " в блоке "Repeat " (повторение). Изображение, которое я использую, стыкуется очень хорошо, если ваше изображение образует швы при стыковке вы можете нажать кнопки

Mirror - X и Y .

Помните что настройки из разделовMaterial и Texture работают совместно . Кирпичи выглядят хорошо, но слишком блестящие и плоские.

Уменьшить интенсивность бликов можно в разделе Material на панелиSpecular , а для придания объема кирпичной кладке активируйте опцию" Normal " на панели" Influence " в разделеTexture . Это придаст кирпичам более реалистичный вид.

В данной статье объясняется, почему на определенном уровне визуализации появляются ошибки или артефакты, вызванные процессом наложения текстур на трехмерные объекты, а так же представляются концепции использования текстур с различными уровнями детализации (mip-mapping) и с применением трилинейной фильтрации (trilinear filtering), как панацеи от возникновения ошибок (артефактов) при визуализации. В статье также кратко рассказывается о существующем положении вещей в индустрии компьютерной графики с точки зрения поддержки мип-маппинга и трилинейной фильтрации, а так же оцениваются некоторые предлагаемые альтернативные решения.

Введение

Применяемая повсеместно в индустрии 3D графики, технология наложения текстур, используется для визуализации трехмерных сцен с высокой степенью детализации и имеет относительно невысокую стоимость для конечного пользователя. Технология заключается в проецировании изображения на трехмерную поверхность, таким образом, обеспечивается дополнительная детализация 3D объекта без усложнения его геометрии. Впрочем, когда изображение используется в качестве текстуры, накладываемой на 3D примитив, проявляется множество разнообразных ошибок визуализации, называемых артефактами. На протяжении нескольких лет было разработано множество различных технологий, которые уменьшают количество подобных артефактов визуализации, а самая распространенная из используемых сегодня технологий - это билинейная фильтрация (bilinear filtering).

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

Впрочем, существует целый класс артефактов визуализации, появляющихся в результате наложения текстур и известный под названием "depth aliasing" (депт-алиасинг, ошибки определения глубины сцены, другое название Z-aliasing), от которых билинейная фильтрация не избавляет и не может избавить.

Рис. 1A (Левый сверху): Треугольник в текстурном пространстве (2D).
Рис. 1B (Правый сверху): Треугольник в трехмерном пространстве (3D).

Треугольник формируется путем наложения текстурного изображения на трехмерную поверхность.

Ошибки "depth aliasing" возникаю в результате того факта, что объекты более отдаленные от точки наблюдения, выглядят более маленькими на экране. Если объект двигается и удаляется от точки наблюдения, текстурное изображение, наложенное на уменьшившийся в размерах объект становится все более и более сжатым. В конечном счете, текстурное изображение, наложенное на объект, становится настолько сжатым, что появляются ошибки визуализации. Эти ошибки визуализации особенно нежелательны в анимации, где такие артефакты во время движения становятся причиной мерцания и эффекта медленного движения в той части изображения, которая должна быть неподвижной и стабильной.

В качестве иллюстрации к описанному эффекту могут служить следующие прямоугольники с билинейным текстурированием:

Рис. 2A (Левый сверху): Прямоугольник состоит из двух треугольников, текстурированных изображением шахматной доски. Обратите внимание на то, как ширина и высота каждого квадрата уменьшается при движении от ближайшей стороны прямоугольника, которая ближе к точке наблюдения, до дальней стороны прямоугольника.

Рис. 2B (Правый сверху): На увеличенном изображении, сразу напротив серой стрелки, можно заметить, что состоящая из нескольких пикселов сторона квадратов по вертикали (высоты) уменьшаются и в итоге состоят всего лишь из одного или двух пикселей. Как только вертикальная сторона квадрата (высота) сокращается по длине до двух пикселей, напротив голубой стрелки, обратите внимание на появление артефактов "depth-aliasing" выражающихся в том, что несколько квадратов сливаются в один.

Mip-mapping и вычисления степени детализации

Для избежания ошибок "depth aliasing" и имитации того факта, что объекты на расстоянии выглядят менее детализированными, чем те, что находятся ближе к точке наблюдения, используется техника, известная как mip-mapping. Если говорить кратко, то mip-mapping - наложение текстур, имеющих разную степень или уровень детализации, когда в зависимости от расстояния до точки наблюдения выбирается текстура с необходимой детализацией.

Mip-текстура (mip-map) состоит из набора заранее отфильтрованных и масштабированных изображений. В изображении, связанном с уровнем mip-map, пиксель представляется в виде среднего четырех пикселей из предыдущего уровня с более высоким разрешением. Отсюда, изображение связанное с каждым уровнем mip-текстуры в четыре раза меньше по размеру предыдущего mip-map уровня.

Изображения, связанные с каждым mip-map уровнем волнообразной текстуры показаны ниже.


Рис. 3 (сверху): Слева направо мы имеем mip-map уровни 0, 1, 2 и т.д. Обратите внимание, что чем меньше становится изображение, тем больше теряется деталей, вплоть до приближения к концу, когда не видно ничего, кроме расплывающегося пятна из серых пикселей.

Степень или уровень детализации - Level of Detail или просто LOD, используются для определения, какой mip-map уровень (или какую степень детализации) следует выбрать для наложения текстуры на объект. LOD должен соответствовать числу текселей накладываемых на пиксель (т.е. какое количество элементов текстуры должно быть наложено на элемент выводимого на экран изображения). Например, если текстурирование происходит с соотношением близким к 1:1, то LOD будет 0, а значит и будет использоваться mip-map уровень с самым высоким разрешением. Если 4 текселя накладываются на один пиксель, то LOD будет 1 и будет использоваться следующий mip уровень с меньшим разрешением. Обычно, при удалении от точки наблюдения, объект, заслуживающий наибольшего внимания имеет более высокое значение LOD.

Ниже представлен прямоугольник, использовавшийся в первом примере, только теперь наложение текстур произведено с использованием техники mip-mapping. Обратите внимание, что ошибки визуализации "depth aliasing" исчезли и на расстоянии стороны прямоугольника выглядят размытыми, как и должно быть.

Рис. 4A (Левый сверху): Прямоугольник из первого примера. Обратите внимание отсутствие ошибок "depth aliasing".

Рис. 4B (Правый сверху): При увеличении удаленной части прямоугольника, хорошо заметна размытость.

Если для каждого пикселя в треугольнике вычисляется значение LOD для определения того, какая mip-текстура имеет нужный уровень фильтрации, то в результате предотвращается появление ошибок визуализации и излишней размытости. LOD должен вычисляться для каждого пикселя в треугольнике с целью избежания разрывов по краям треугольников. Этот метод называется per-pixel mip-mapping (попиксельное mip-текстурирование).

Если же LOD вычисляется всего лишь раз для всего треугольника, то следствием использование этого значения для всех пикселей треугольника становится появление странного эффекта растрескивания, когда некоторые треугольники, из которых состоит анимированный объект, вдруг внезапно становятся чрезмерно размытыми или с неровностями. Этот дешевый, менее эффективный метод mip-текстурирования известен как "per-polygon mip-mapping" (т.е. mip-текстурирование по каждому полигону).

Проблемы Mip-текстурирования

В то время, как mip-текстурирование решает проблему ошибок "depth-aliasing", его использование может стать причиной появления других артефактов. Для борьбы с этими артефактами используются различные техники фильтрации. При удалении объекта все дальше от точки наблюдения, происходит переход от низкого mip-map уровня (соответствующего изображению с высокой детализацией) к высокому mip-map уровню (соответствующего изображению с высокой степенью фильтрации и низкой детализацией). В момент нахождения объекта в переходном состоянии от одного mip-map уровня к другому, появляется особый тип ошибок визуализации, известных под названием "mip-banding" (мип-бендинг) - полосатость или слоеность, т.е. явно различимые границы перехода от одного mip-map уровня к другому.

"Mip-banding" имеет место, когда значение LOD округляется до целого и только один соответствующий уровень mip-текстуры используется для генерации пикселя. После перехода LOD к более высокому уровню состоящему из треугольников, соседние пиксели будут генериться с различными mip уровнями и будут иметь совершенно различное количество примененных к ним фильтров. Результатом является появление линии или нескольких линий проходящих через треугольник в местах, где происходит внезапный переход между mip уровнями. Это один из недостатков использования только билинейного или по-точечного mip-текстурирования.

Эта проблема проиллюстрирована на картинках ниже. Обратите внимание, что это тот же прямоугольник из предыдущего примера, но теперь текстурированный волнообразным изображением с использованием mip-текстурирования. Обратите внимание, как проявляется "mip-banding" в местах, обозначенных красными стрелками. На увеличенном изображении легко заметить, что эти ошибки визуализации проявляются как раз в тех местах, где происходит переход от одного уровня детализации к следующему.

Рис. 5A (левый сверху): Прямоугольная лента состоит из двух треугольников, текстурированных волнообразным изображением. Обратите внимание на "mip-banding" артефакты, обозначенные красными стрелками.

Рис. 5B (правый сверху): Увеличенная часть изображения в местах проявления ошибок "mip-banding".

Особенно остро проблема наличия ошибок "mip-banding" стоит в анимации, за счет того, что человеческий глаз очень чувствителен к смещениям и может легко заметить место резкого перехода между уровнями фильтрации при движении вокруг объекта.

Трилинейная фильтрация

Трилинейная фильтрация (trilinear filtering) представляет собой технику, которая удаляет артефакты "mip-banding", возникающие при использовании mip-текстурирования. При трилинейной фильтрации для определения цвета пикселя берется среднее значение цвета восьми текселей, по четыре из двух соседних текстур и в результате семи операций смешивания определяется цвет пикселя. При использовании трилинейной фильтрации возможен вывод на экран текстурированного объекта с плавно выполненными переходами от одного mip уровня к следующему, что достигается за счет определения LOD путем интерполяции двух соседних mip-map уровней. Таким образом решая большинство проблем, связанных с mip-текстурированием и ошибками из-за неправильного расчета глубины сцены ("depth aliasing").

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

Рис. 6A (левый сверху): Прямоугольник текстурированный волнообразным изображением, выведен на экран с использованием mip-текстурирования и трилинейной фильтрации.

Рис. 6B (правый сверху): Увеличим полученное изображение; обратите внимание на отсутствие артефактов визуализации.

Далее вы сможете посмотреть на другой пример, показывающий преимущества от использования трилинейной фильтрации. В качестве источника был взят тестовый пакет от Ziff-Davis. В первом случае трилинейная фильтрация не применялась и нетрудно заметить "mip-banding" там, где желтая разметка дороги достигает изгиба шоссе (см. рис. ниже). Заметим, что проблема встает более остро при анимационном изображении.

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

Текущее положение дел в области производства графических чипсетов

С момента появления, mip-текстурирование стало широко распространенным стандартом в области трехмерной графики. Графические чипсеты, поддерживающие mip-текстурирование, сегодня делают большинство производителей. Однако, широкое применение хорошо реализованной трилинейной фильтрации началось только в чипсетах, выпущенных на рынок в этом году. Несмотря на то, что некоторые производители заявляют о поддержке трилинейной фильтрации, зачастую это реализуется за счет двухпроходного рендеринга - кстати очень эффективного способа снижения значений fill rate почти в два раза, из-за того, что графический чипсет вынужден обрабатывать каждый пиксель дважды. Заметим, что вывод изображения в два приема означает, что при втором наложении текстуры должно происходить смешивание с уже наложенной текстурой за первый проход. В дополнение к сказанному, стоит заметить, что в некоторых чипсетах, реализациях трилинейной фильтрации выполнена так, что она не используется в комбинации с некоторыми другими трехмерными функциями.

Другой способ относительно корректной трилинейной фильтрации это размытие (dither) переменной LOD так, что только один mip уровень используется для отображения каждого пикселя. Не смотря на то, что до некоторой степени это снижает проблему ошибок "mip banding", этот способ имеет нежелательный эффект, выражающийся в появлении уродливо размытых узоров при использования некоторых mip-текстур.

Для снижения стоимости и сложности аппаратной части, связанной с корректной реализацией трилинейной фильтрации и вычислений LOD для каждого пикселя, некоторые производители графических чипсетов предлагают использовать дешевую альтернативу, известную под именем "per polygon mip-mapping" (mip-текстурирование каждого многоугольника). В этом решении используется одно значение LOD для всех пикселенй в каждом полигоне (обычно в качестве полигонов используются треугольники), что позволяет избавиться от ошибок "mip-banding" внутри полигона. Однако, это решение не избавляет от "mip-banding". Артефакты, вместо проявления внутри каждого полигона, теперь проявляются на границах полигонов. Следствием использования "per polygon mip-mapping" является появление странного эффекта растрескивания, когда некоторые полигоны, из которых состоит объект, при анимации неожиданно становятся расплывчатыми или ступенчатыми.

Другая проблема при использовании "per-polygon mip-mapping" состоит в том, что mip уровень некоторых полигонов может отличаться от нескольких уровней внутри самого полигона. Совершенно невозможно выбрать только один mip уровень для полигона, который бы сразу избавил от эффектов неровностей (aliasing) для всех пикселей внутри полигона без появления расплывчатости некоторых других пикселей. "Per-polygon mip-mapping" требует больше вычислений, но при этом результат получается далеким от идеального, так как данная техника не избавляет от обоих указанных проблем.

Следующие ниже примеры иллюстрируют недостатки "per-polygon mip-mapping". Изображение "А" иллюстрирует ситуацию, когда mip-map уровень в треугольниках слишком высок и очень много деталей теряются в области прямоугольной ленты ближней к точке наблюдения. Изображение "В" иллюстрирует ситуацию, когда mip-map уровень в треугольниках ниже, чем в предыдущем примере, что должно снизить расплывчатость и восстановить некоторые детали, однако появился другой отрицательный эффект - "depth aliasing", который можно заметить на дальней от точки наблюдения стороне прямоугольной ленты. В завершении, как компромисс, вы можете посмотреть на два треугольника (которые формируют прямоугольную ленту), имеющие различные mip-map уровни, на изображении "С". Теперь присутствует "mip-banding" артефакт, имеющий место на границе двух треугольников. Более того, на изображении "С" проблемы ошибки вычисления глубины сцены ("depth-aliasing") и потеря деталей все еще вполне очевидны.

Рис. 7A (левый верхний): Прямоугольник текстурированный изображением шахматной доски под воздействием "per-polygon mip-map" уровня фильтрации. "Per-polygon mip-map" уровень слишком высокий и произошла потеря деталей на ближней стороне прямоугольника.

Рис. 7B (правый верхний): Прямоугольник текстурированный изображением шахматной доски под воздействием "per-polygon mip-map" уровня фильтрации. В этом случае "per-polygon mip-map" уровень слишком низкий и сразу появляются ошибки вычисления глубины сцены - "depth-aliasing".

Рис. 7C (нижний): Прямоуголник текстурированный изображением шахматной доски под воздействием "per-polygon mip-map" уровня фильтрации. В этом случае "per-polygon mip-map" уровень выбран компромиссным между применявшимися в примерах "А" и "В" - а именно, один треугольник имеет высокий mip-map уровень, в то время как другой треугольник имеет низкий mip-map уровень. В этом случае проявляется "mip-banding" на границе между двумя треугольниками. Более того, все еще ясно различимо присутствие "depth-aliasing" и потеря деталей.

В лучшем случае, техника "per-polygon mip-mapping" представляет собой низкокачественную замену для попиксельного mip-текстурирования. В худшем случае, следствием применения "per-polygon mip-mapping" является появление нового набора ошибок визуализации без избавления при этом от проблем, присущих наложению текстур. Без аппаратной реализации поддержки вычислений LOD для каждого пикселя, не существует способа предотвратить появление "mip banding" используя трилинейную фильтрацию.

Одной из альтернатив трилинейной фильтрации является анизотропная фильтрация (anisotropic filtering). Анизотропная фильтрация представляет собой продвинутую технику, следствием применения которой, при корректной реализации, является появление лишь нескольких ошибок визуализации, по сравнению с использованием трилинейной фильтрации. Анизотропная фильтрация может быть реализована с помощью использования выборки по шаблонам (over-sampling или оверсемплинг), в качестве которых могут выступать тексели. Идея в том, что для наложении текстуры на пиксель используется больше текселей, причем количество используемых текселей зависит от применяемого алгоритма. Тем не менее, применение over-sampling серьезно влияет на производительность графического чипсета. Для примера, восьмикратный over-sampling (т.е. когда для наложения текстуры используется восемь текселей) может снизить частоту смены кадров в приложении в восемь раз или больше, по сравнению с тем, что было бы без использования over-sampling. Как следствие, пока не существует решения пригодного для использования анизотропной фильтрации в режиме реального времени. Тем не менее, этот тип фильтрации будет со временем использоваться в приложениях, таких, как например интерфейсы GDI2000 и Chrome от Microsoft. Но, скорее всего, случится это не раньше 2000, так как пока нет приложений, которые могут использовать преимущества анизотропной фильтрации.

Заключение

Пока быстрая, корректно реализованная трилинейная фильтрация была недоступна до недавнего времени, большинство приложений должны были использовать билинейную фильтрацию для обеспечения минимального качества изображения. Хорошая реализация попиксельного mip-текстурироваания тоже встречалась нечасто до недавнего времени. По этим причинам, использование трилинейного mip-текстурирования было довольно редким, но зато запоминающимся, явлением, благодаря легкости в использовании и стабильному изображению получавшегося в результате.

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

Дополнительную информацию по данной теме можно прочитать и .

Помощь в подготовке материала оказали: John Brothers, Paul Crossley, Konstantine Iourcha, Roger Swanson и Kelly Morris

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

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

Вот оригинал фотографии, которую мы будем обрабатывать:

А это текстура, которую мы будем на нее накладывать:

Вот что мы получим в итоге. Мы сделали еще пару дополнительных поправок, о которых расскажем в конце урока:

Давайте начнем!

Шаг 1: Выбираем и копируем текстуру

Открыв в Photoshop и оригинальный снимок, и текстуру, перенесем ее в документ с фотографией. Самый простой вариант - копирование и вставка. Убедитесь, что окно, содержащее текстуру, активно, откройте меню Select в верхней части экрана, а затем All . Можно также нажать Ctrl + A (Win) / Command + A (Mac) на клавиатуре:

Таким образом, мы выделяем всю текстуру целиком. По ее периметру появляется контур выделения:

После этого необходимо открыть меню Edit, расположенное в верхней части экрана, а затем Copy, либо же нажать Ctrl + C (Win) / Command + C (Mac) на клавиатуре:

Шаг 2: Вставляем текстуру в документ, содержащий фотографию

Скопировав текстуру в буфер, переходим в окно с фотографией, снова заходим в меню Edit, но на этот раз выбираем Paste либо нажимаем Ctrl + V (Win) / Command + V (Mac) на клавиатуре:

Photoshop вставит текстуру в документ, точнее, в новый слой, который будет располагаться над фотографией. В зависимости от размера документа с текстурой она может полностью накрыть фотографию, но если посмотреть в панель слоев Layers Panel, видно, что оригинал сохранился в слое Background, а текстура оказалась выше, в новом слое с названием Layer 1:

Теперь фотография и текстура находятся в разных слоях одного и того же документа

Шаг 3: При необходимости меняем размер текстуры при помощи инструмента Free Transform

Если размеры снимка и текстуры не совпадают, возможно, вам захочется их выровнять. Photoshop позволяет нам сделать это при помощи команды Free Transform. Откройте меню Edit в верхней части экрана и выберите Free Transform либо же нажмите Ctrl + T (Win) / Command + T (Mac) для вызова той же команды с клавиатуры:

Photoshop поместит вокруг текстуры рамку с манипуляторами (это маленькие квадратики на ее границах). Если, как в нашем случае, площадь текстуры больше, чем фотография, возможно, лучше будет переключиться в один из режимов полноэкранного просмотра Photoshop. Для этого нужно нажать F на клавиатуре (когда закончите, можно вернуться обратно, еще пару раз нажав F ). Потяните за любой из манипуляторов и придайте текстуре нужный размер. Поскольку на этом изображении ничего, кроме самой текстуры, нет, искажение пропорций обычно не вредит, но если вам захочется их сохранить, необходимо при движении угловых манипуляторов удерживать клавишу Shift. Завершив работу, нажмите Enter (Win) / Return (Mac), чтобы принять изменения и выйти из Free Transform:

Меняем габариты текстуры с помощью Free Transform

Шаг 4: Выбираем инструмент Move Tool

Выбираем инструмент Move Tool, который расположен в верхней части панели инструментов Photoshop. Это же можно сделать нажатием клавиши V. По сути, мы не собираемся его использовать, но в данном случае этот шаг необходим, чтобы получить возможность быстро переключаться между режимами смешивания слоев: это позволит нам понять, какой из них обеспечит лучшие результаты для конкретного снимка и текстуры.

А причем тут инструмент Move Tool, спросите вы? Просто в зависимости от выбора инструмента горячие клавиши на клавиатуре могут не работать. При выборе инструмента Move Tool все работает как надо, а поскольку Move Tool находится в самой верхней части панели инструментов, проще всего воспользоваться именно им:

Шаг 5: Переключаемся между режимами смешивания слоев

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

Нажав на Normal , вы увидите список других вариантов - Multiply, Screen, Overlay и т. д. Значительно быстрее будет пролистать их с помощью горячих клавиш. Удерживая Shift + Alt (Win) / Shift + Option (Mac), нажимайте плюс (+) или минус (-). Плюс переводит на следующий режим в списке, а минус - на предыдущий. Например, если, удерживая Shift + Alt (Win) / Shift + Option (Mac), вы нажмете на плюс один раз, то переключитесь с Normal на Dissolve:

Возможно, эффект от смешивания в режиме Dissolve будет неинтересным, но какой-нибудь другой режим вам непременно понравится. Мы нажмем плюс еще несколько раз, все еще удерживая Shift + Alt (Win) / Shift + Option (Mac), чтобы добраться до режима Multiply:

При варианте Multiply получается интересное, хотя и темноватое, наложение:

Нажму плюс еще несколько раз, дойдя до режима Screen:

Сейчас выбран режим смешивания Screen

Результат тоже интересный, на этот раз получилось куда светлее, чем в режиме Multiply:

Нажав плюс еще несколько раз, я добираюсь до варианта Overlay:

Overlay тоже зачастую дает интересный результат при наложении текстуры; здесь сочетаются светлые и темные участки, и изображение в итоге получается более контрастным:

Как правило, наиболее интересные результаты при наложении текстуры достигаются именно с помощью режимов Multiply, Screen, Overlay, Soft Light, а также Hard Light; советуем обязательно попробовать их все, чтобы понять, какой из вариантов лучше подходит для достижения вашей цели. Мы в данной ситуации оптимальным считаю режим Screen , но вы можете выбрать и другой вариант.

Шаг 6: Снижение насыщенности цвета текстуры

В настоящий момент на фотографии проступает не только сама текстура, но и ее цвет. Возможно, именно это вам и нужно, поскольку смешивание цветов на разных слоях может дать интересный результат, но если вы хотите сохранить оригинальные цвета снимка, то цвет с текстуры придется удалить. Самый простой способ сделать это - понизить его насыщенность. В верхней части экрана выберите Image, затем Adjustments и, наконец, Desaturate . Также можно нажать Shift + Ctrl + U (Win) / Shift + Command + U (Mac) на клавиатуре:

Команда Desaturate немедленно убирает цвет из слоя, делая его, по сути, черно-белым. Для перевода фотографии в чб/ это не лучший вариант, но в данном случае ее вполне достаточно. Посмотрев на миниатюру слоя с текстурой (Layer 1) в панели слоев, мы увидим, что она потеряла цвет:

После удаления цвета лишь тональная яркость текстуры смешивается с нашей фотографией. Для сравнения еще раз посмотрим на изображение после установки режима смешивания Screen:

А вот как это выглядит после того, как мы убрали с текстуры цвет:

Шаг 7: Инвертирование текстуры

Прежде чем удовольствоваться результатом, можно попробовать инвертировать текстуру, поменяв яркость на противоположную. То, что было темным, станет светлым, и наоборот. В верхней части экрана выберите Image, затем Adjustments и, наконец, Invert. Также можно нажать Ctrl + I (Win) / Command + I (Mac) на клавиатуре:

Вот как выглядит наша фотография после инвертирования яркости текстуры. По мнению автора урока Стива Паттерсона, снимок стал казаться старым, выцветшим:

Шаг 8: Снижаем непрозрачность текстуры

Наконец, если текстура кажется слишком броской, можно уменьшить ее проявление, снизив непрозрачность слоя. Эта опция, Opacity, находится прямо напротив режимов смешивания в верхней части панели слоев. По умолчанию установлено значение Opacity 100 %, но чем больше его понижать, тем больше будет проступать оригинальное фото. Мы уменьшим значение Opacity до 50 %:

Текстура теперь выглядит более деликатно:

Поскольку в нашем случае текстура придает фотографии более старый и блеклый вид, можно сделать еще кое-что для того, чтобы усилить этот эффект. Во-первых, можно немного размыть изображение. Для этого выбираем в панели слоев Background, затем быстро создаем дубликат слоя, нажав Ctrl + J (Win) / Command + J (Mac). Таким образом, мы получаем копии фотографии, с которой будем работать, не повреждая оригинала:

Теперь я размываю слой Background copy с помощью фильтра Gaussian Blur . В меню Filter в верхней части экрана я выбираю Blur , затем Gaussian Blur:

Откроется диалоговое окно Gaussian Blur. Нам нужно лишь небольшое размытие, так что устанавливаем радиус в районе 1,5 пикселей:

Нажимаем OK, диалоговое окно закрывается, и в этот момент Photoshop производит легкое размытие:

И наконец, создаем новый слой для снижения цветовой насыщенности снимка. Нажимаем на иконку New Adjustment Layer в нижней части панели слоев:

Из появившегося списка выбираем Hue/Saturation:

В Photoshop CS4 и более поздних версиях (в данном уроке использован CS5) опции для регулирования Hue/Saturation появятся на панели Adjustments. В более ранних версиях они открываются в отдельном диалоговом окне. Для снижения цветовой насыщенности нужно понизить значение Saturation примерно до -50, сдвигая ползунок влево:

Сместите ползунок Saturation влево - это снизит насыщенность цветов на снимке

Если бы у нас был Photoshop CS3 или более ранняя версия, надо было бы нажать OK, чтобы закрыть диалоговое окно (закрывать панель Adjustments в CS4 или более поздней версии не требуется). Теперь мы видим итоговый результат после снижения цветовой насыщенности:

Конечный результат

Вот и все! Теперь вы знакомы с основами наложения текстуры в Photoshop с помощью режимов смешивания!

Источник - photoshopessentials.com

Методы наложения текстуры

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

void glTexParameter (GLenum target, GLenum pname, GLenum param)

void glTexParameterv (GLenum target, GLenum pname, GLenum *params)

При этом target имеет аналогичный смысл, что и раньше, pname определяет, какое свойство будем менять,а с помощью param или params устанавливается новое значение. Возможные значения pname:

GL_TEXTURE_MIN_FILTER параметр param определяет функцию, которая будет использоваться для сжатия текстуры. При значении GL_NEAREST будет использоваться один (ближайший), а при значении GL_LINEAR четыре ближайших элемента текстуры.

GL_TEXTURE_MAG_FILTER параметр param определяет функцию, которая будет использоваться для увеличения (растяжения) текстуры. При значении GL_NEAREST будет использоваться один (ближайший), а при значении GL_LINEAR четыре ближайших элемента текстуры.

Значение по умолчанию: GL_LINEAR.

GL_TEXTURE_WRAP_S параметр param устанавливает значение координаты s, если оно не входит в отрезок . При значении GL_REPEAT целая часть s отбрасывается, и в результате изображение размножается по поверхности. При значении GL_CLAMP используются краевые значения: 0 или 1, что удобно использовать, если на объект накладывается один образ.

Значение по умолчанию: GL_REPEAT.

GL_TEXTURE_WRAP_T аналогично предыдущему значению, только для координаты t.

Использование режима GL_NEAREST значительно повышает скорость наложения текстуры, однако при этом снижается качество, так как в отличие от GL_LINEAR интерполяция не производится.

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

void glTexEnv (GLenum target, GLenum pname, GLtype param)

void glTexEnvv (GLenum target, GLenum pname, GLtype *params)

Параметр target должен быть равен GL_TEXTURE_ENV, а в качестве pname рассмотрим только одно значение GL_TEXTURE_ENV_MODE, которое наиболее часто применяется. Параметр если param может быть равен:

GL_MODULATE конечный цвет находится как произведение цвета точки на поверхности и цвета соответствующей ей точки на текстуре.

GL_REPLACE в качестве конечного цвета используется цвет точки на текстуре.

GL_BLEND конечный цвет находится как сумма цвета точки на поверхности и цвета соответствующей ей точки на текстуре с учетом их яркости.

Из книги AutoCAD 2009 автора Орлов Андрей Александрович

Способы наложения карт Возможны следующие четыре типа проектирования картинки на объект, которые можно выбрать в зависимости от основной формы объекта: Box (Параллелепипед) – тип проектирования, используемый по умолчанию; Planar (Плоский) – картинка проектируется без

Из книги Введение в OpenGL автора Компьютеры Автор неизвестен -

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

Из книги ArchiCAD 11 автора Днепров Александр Г

Подготовка текстуры Принятый в OpenGL формат хранения изображений отличается от стандартного формата Windows DIB только тем, что компоненты (R,G,B) для каждой точки хранятся в прямом порядке, а не в обратном и выравнивание задается программистом. Считывание графических данных из

Из книги Photoshop. Мультимедийный курс автора Мединов Олег

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

Из книги 3ds Max 2008 для дизайна интерьеров автора Семак Рита

Текстуры Для создания трехмерного изображения объекта проектирования в ArchiCAD имеется достаточно большое количество инструментов. Одним из таких инструментов является создание и использование текстур – объектов, имитирующих структуру поверхности материалов.Текстуры

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

Режимы наложения По умолчанию слой, наложенный на другой, непрозрачными участками полностью перекрывает изображение нижележащего слоя. Данный режим наложения называется Нормальный. Однако программа Adobe Photoshop предлагает несколько различных режимов наложения, при

Из книги Приемы создания интерьеров различных стилей автора Тимофеев С. М.

Координаты наложения карт текстур. Модификатор UVW Map (UVW-проекция текстуры) Достаточно часто бывает так, что после применения материала при попытке визуализировать объект программа выдает сообщение об ошибке (рис. 7.18). Рис. 7.18. Окно Missing Map Coordinates (Потеряны проекционные

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

Способы наложения карт Возможны следующие четыре типа наложения картинки на объект, которые можно выбрать в зависимости от основной формы объекта: Box (Параллелепипед) – тип проецирования, используемый по умолчанию; Planar (Плоское) – картинка проецируется без

Из книги Как заработать на фотографии в Интернете автора Зьомко Ольга

Понятие текстуры Бытует мнение, что текстура - это изображение, накладываемое на трехмерную модель. Данное утверждение совершенно не верно. Изображение, накладываемое на модель в рамках текстуры, называется картой (Map), понятие же текстуры - шире.Текстура в 3ds Max

Из книги Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода автора Larsson Thomas

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

Из книги Все секреты Minecraft автора Миллер Меган

Текстуры mental ray Существует несколько типов текстур, которые хорошо подходят при работе с mental ray. В частности, тип Arch & Design (mi) очень удобен при создании большинства материалов, используемых при текстурировании интерьеров и архитектуры. Именно с ним мы и будем

Из книги автора

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

Из книги автора

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

Из книги автора

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

Из книги автора

Из книги автора

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

КАТЕГОРИИ

ПОПУЛЯРНЫЕ СТАТЬИ

© 2024 «kingad.ru» — УЗИ исследование органов человека