Блок наложения текстуры - Texture mapping unit

Блок наложения текстуры (TMU) - это компонент современных графических процессоров (GPU). Исторически это был отдельный физический процессор. TMU может вращать, изменять размер и искажать растровое изображение (выполняя выборку текстуры ), чтобы поместить его на произвольную плоскость данной 3D-модели в качестве текстуры. Этот процесс называется наложением текстуры . В современных видеокартах он реализован как отдельный этап графического конвейера , тогда как при первом представлении он был реализован как отдельный процессор, например, как это видно на видеокарте Voodoo2 .

Предпосылки и история

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

В 2013 году TMU являются частью конвейера шейдеров и отделены от конвейеров вывода визуализации (ROP). Например, в графическом процессоре AMD Cypress каждый конвейер шейдеров (их 20) имеет четыре TMU, что дает графическому процессору 80 TMU. Это делается разработчиками микросхем, чтобы тесно связать шейдеры и текстурные движки, с которыми они будут работать.

Геометрия

3D-сцены обычно состоят из двух частей: 3D-геометрии и текстур, покрывающих эту геометрию. Блоки текстуры в видеокарте берут текстуру и «сопоставляют» ее с частью геометрии. То есть они оборачивают текстуру вокруг геометрии и создают текстурированные пиксели, которые затем могут быть записаны на экран. Текстуры могут быть фактическим изображением, картой освещения или даже картами нормалей для расширенных эффектов освещения поверхности.

Скорость заполнения текстуры

Чтобы визуализировать 3D-сцену, текстуры накладываются поверх полигональных сеток . Это называется наложением текстуры и выполняется блоками наложения текстуры (TMU) на видеокарте. Скорость заполнения текстуры - это мера скорости, с которой конкретная карта может выполнять наложение текстуры.

Хотя обработка пиксельных шейдеров становится все более важной, это число все еще имеет определенный вес. Лучшим примером этого является X1600 XT. Эта карта имеет соотношение процессоров пиксельных шейдеров / блоков отображения текстуры 3: 1. В результате X1600 XT обеспечивает более низкую производительность по сравнению с другими графическими процессорами той же эпохи и класса (такими как 7600GT от nVidia). В среднем диапазоне отображение текстуры все еще может быть узким местом. Тем не менее, на высоком уровне X1900 XTX имеет такое же соотношение 3: 1, но работает отлично, потому что разрешения экрана максимальны, и у него более чем достаточно возможностей наложения текстур для обработки любого дисплея.

Подробности

Блоки наложения текстур (TMU)

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

Трубопроводы

Конвейер - это архитектура видеокарты, которая дает в целом точное представление о вычислительной мощности графического процессора.

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

ATI Radeon 9700 была первой, кто сломал этот шаблон, разместив ряд механизмов вершинных шейдеров, независимых от пиксельных шейдеров. Графический процессор R300, используемый в Radeon 9700, имел четыре глобальных вершинных шейдера, но разделял остальную часть конвейера рендеринга пополам (так сказать, двухъядерный), каждую половину, называемый четырехъядерным, имел четыре пиксельных шейдера, четыре TMU и четыре ROP.

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

Вершинный шейдер давно не был связан, начиная с R300, но пиксельный шейдер было не так просто сделать, поскольку для работы требовались данные о цвете (например, образцы текстуры), и, следовательно, требовалось тесное соединение с TMU.

Упомянутая связь сохраняется и по сей день, где механизм шейдера, состоящий из блоков, способных обрабатывать данные вершин или пикселей, тесно связан с TMU, но имеет диспетчер перекрестных полос между его выходом и банком ROP.

Конвейеры вывода рендеринга (ROP)

Конвейер вывода рендеринга - это унаследованный термин, который чаще называется блоком вывода рендеринга . Его задача - управлять выборкой пикселей (каждый пиксель является безразмерной точкой), поэтому он управляет сглаживанием , когда более одной выборки объединяется в один пиксель. Все визуализированные данные должны пройти через ROP для записи в буфер кадра , откуда они могут быть переданы на дисплей.

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

Использование в GPGPU

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

Смотрите также

Рекомендации

внешняя ссылка