Какая разница между материалом и текстурой? - PullRequest
25 голосов
/ 24 ноября 2010

В компьютерной графике, в чем разница между материалом и текстурой?

Ответы [ 4 ]

35 голосов
/ 24 ноября 2010

В OpenGL материал - это набор коэффициентов, которые определяют, как модель освещения взаимодействует с поверхностью. В частности, коэффициенты окружающего, рассеянного и зеркального отражения для каждого цветового компонента (R, G, B) определяются и применяются к поверхности и эффективно умножаются на количество света каждого вида / цвета, который падает на поверхность. Затем к каждому компоненту цвета добавляется окончательный коэффициент излучения, который позволяет объектам выглядеть светящимися, фактически не взаимодействуя с другими объектами.

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

В классической (с фиксированным конвейером) модели OpenGL текстуры и материалы несколько ортогональны. В новом мире программируемых шейдеров линия размыта совсем немного. Часто текстуры используются для влияния на освещение другими способами. Например, рельефные карты - это текстуры, которые используются для изменения нормалей поверхности для создания эффекта освещения, а не для непосредственного изменения цвета пикселя, как это делает обычная текстура «изображения».

17 голосов
/ 20 декабря 2011

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

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

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

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

Материал - это концепция освещения.Для конкретного источника света и точки на поверхности интенсивность (т.е. цвет) света, отраженного от этой поверхности в этой точке, регулируется уравнением освещения.Это уравнение является функцией многих параметров.Но эти параметры сгруппированы в две категории.

Одна категория параметров уравнения света - это параметры света.Они описывают характеристики источника света.Точечные светильники против направленного света против точечного освещения.Интенсивность света (опять же: цвет) является еще одним параметром.Поскольку сама интенсивность может варьироваться в зависимости от направления точки поверхности относительно света (например, фонари или прожекторы), интенсивность может быть получена из текстуры .Вот как много игр проецируют фонарики на темную комнату.

Другая категория параметров уравнения света описывает характеристики поверхности в этой точке.Они называются материальными параметрами.Параметры материала, или материал для краткости, описывают важные свойства поверхности в данном вопросе.Нормальное на тот момент является важным.Существует также диффузная отражательная способность (цвет), зеркальная отражательная способность, зеркальная блеск (показатель степени по Фонгу / Блинну-Фонгу) и различные другие параметры, в зависимости от того, насколько полно ваше уравнение освещения.

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

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

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

Наиболее распространенные текстуры, с которыми вы знакомы, «цветные текстуры», просто меняют диффузную отражательную способность поверхности.,Текстура обеспечивает диффузный цвет в каждой точке вдоль поверхности.

Это не только функция * текстур.Вы также можете легко изменять зеркальную блеск на поверхности.Или интенсивность света.Или что-нибудь еще.

Текстуры инструменты .Материалы - это просто группа параметров уравнения света.

12 голосов
/ 24 ноября 2010

Что я думаю об этих терминах:

Текстура - это изображение, которое отображается на трехмерном объекте.

Материал имитирует физический материал.Взять, к примеру, «стакан».Вы не можете создать эффект стекла с простой текстурной картой.У него есть такие параметры, как то, как он отражает и преломляет свет под разными углами.Материал также может быть простой текстурной картой, поэтому иногда термины означают одно и то же.

6 голосов
/ 24 ноября 2010

Хотя термины можно использовать взаимозаменяемо, обычно растровое изображение называют текстурой.

В то время как полностью определенная текстура со свойствами освещения, рельефным отображением и т. Д. Чаще упоминается какматериал.

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

...