stringtranslate.com

Блок текстурирования

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

Предыстория и история

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

В 2013 году TMU являются частью конвейера шейдеров и отделены от конвейеров вывода рендеринга (ROP). Например, в графическом процессоре Cypress от AMD каждый шейдерный конвейер (всего их 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 и четыре РОП.

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

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

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

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

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

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

Использование в ГПГПУ

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

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

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

  1. ^ «Аппаратное обеспечение для разработчиков — графический конвейер» . Архивировано из оригинала 28 мая 2006 г. Проверено 11 мая 2006 г.

Внешние ссылки