Что такое текстуры и изображения?

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

Любая текстура может быть закодирована и сжиматься различными способами, которые являются ортогональными для типа данных, которые содержит текстура, или к размерности или "фигуре" текстуры. Тем не менее те или иные кодировки и методы сжатия могут быть более или менее эффективными для разных типов данных.

Редактор изображений можно использовать для создания и изменения текстур и изображений способами, которые похожи на другие редакторы изображений. Редактор изображений также предоставляет mipmapping и другие функции для использования с трехмерной графикой и поддерживает многие высоко сжатые форматы текстур с аппаратным ускорением, поддерживаемые DirectX.

Примечание.

Редактор изображений не поддерживает изображения с малым количеством цветов, такие как значки и курсоры. Для создания или редактирования таких изображений используйте Редактор изображений для значков (C++).

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

Карты текстур

Карты текстур содержат значения цвета, организованные в одно-, двух- или трехмерные матрицы. Они используются для предоставления сведений о цвете затронутого объекта. Цвета, как правило, кодируются с помощью каналов цветов RGB (красный, зеленый, синий) и могут включать четвертый канал, альфа-канал, который представляет прозрачность. Гораздо реже цвета кодируются в другой цветовой схеме или четвертый канал содержит данные, не относящиеся к прозрачности, например высоту.

Карты нормалей

Карты нормалей содержат нормали к поверхности. Они используются для предоставления сведений о освещении затронутого объекта. Нормали часто кодируются с помощью компонентов красного, зеленого и синего цвета для сохранения координат X, Y и Z вектора. Однако существуют и другие кодировки, например кодировки, основанные на полярных координатах.

Карты высоты

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

Кубические карты

Кубические текстуры (карты) могут содержать разные типы данных (например, цвета или нормали), однако они организованы как шесть текстур на гранях куба. Из-за этого карты кубов не выборки путем предоставления координат текстуры, а путем предоставления вектора, источник которого является центром куба; Образец выполняется в точке, в которой вектор пересекается с кубом. Кубические текстуры предоставляют приближенное представление среды, которое можно использовать для вычисления отражения (это называется наложением карты среды) или для предоставления текстуры для сферических объектов с меньшими искажениями по сравнению с базовыми, двумерными текстурами.

Следующие шаги

Узнайте, как использовать редактор изображений в Visual Studio для создания и изменения текстур и изображений. Редактор изображений поддерживает широкий диапазон форматов изображений и текстур, аналогичных тем, которые используются при разработке приложений DirectX.