Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

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


Графические процессоры с классическим конвейером и унифицированной архитектурой с концепцией потоковой обработки данных.

Графические процессоры с классическим конвейером и унифицированной архитектурой с концепцией потоковой обработки данных.

 Классический конвейер. 

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

  - создаются вершины, над которыми производятся преобразования, дополненные вершинными шейдерами - программы, добавляющие некоторые эффекты объектам, например – мех, волосы, водная гладь, блеск и так далее;

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

Вершинные шейдеры (см. рис. 1) позволяют гибко управлять ядром T&L, то есть дают разработчику широкие возможности по аппаратному ускорению обработки вершин полигонов (позволяют производить различные геометрические преобразования и вычисления). С помощью этих шейдеров можно получить объемный реалистичный туман, всевозможные деформации объектов, плавный морфинг, когда одно изображение "перетекает" в другое, эффект motion blur - размытие при движении, т.е. при очень быстром движении объекта, он начинает казаться нечетким, немного смазанным, доступны практически неограниченное количество источников света, и многое другое.
             Пиксельные шейдеры в свою очередь дают широкие возможности по обработке пикселей (экранных точек). Эти шейдеры позволяют программисту по шагам управлять процессом наложения текстур и вычисления цвета пикселей. Можно получить в играх реальное освещение т. к. с помощью этих шейдеров возможно делать освещение определенных пикселей. В арсенале разработчика появились микрополигоны, что позволяет создавать реалистичные эффекты взрыва, дождя, пыли, дыма, и т.п. Шейдеры дают точные тени даже от малейших неровностей поверхности. С помощью пиксельных шейдеров можно получить еще множество интересных эффектов, но главная суть пиксельных и вершинных шейдеров - это добиться максимальной реалистичности.

  - далее вершины собираются в примитивытреугольники, линии, точки,

  - после чего переходят в пиксельный блок, здесь определяются конечные пиксели, которые будут выведены на экран, и над ними проводятся операции освещения или затенения, текстурирования (этим занимается блок TMU – Texture Mapping Unit, который связан с пиксельным конвейером), присвоения цвета, добавляются эффекты от пиксельных шейдеров.

QIP Shot - Image: 2017-07-10 13:19:05 

Рис. 4. Классический конвейер.

(Vertex – Вершина; Triangle – треугольник; T&L - Трансформация и Освещение; Pixel - пиксель - элемент изображения, выводимого на экран; блок ROP - Raster Operations - Растровые Операции (blending - cмешивание, antialiasing - сглаживание); Memory – Память - кадровый буфер для последующей выборки и вывода на экран).

 

- далее в блоке ROP - Raster Operations - Растровые Операции (в терминологии NVIDIA блоки рендеринга - Render Output Pipeline - ROP) вычисляются координаты конкретного пикселя, чтобы отбросить те, которые будут скрыты другими объектами и не видны пользователю,  производится cмешивание -blending, и сглаживание - antialiasing;

- в следующем блоке фрагменты собираются в полигоны, состоящие из отдельных пикселей, и уже готовая картинка передаётся в память для последующей выборки и вывода на экран.

В характеристиках видеокарт, поддерживающих DirectX 9, всегда упоминается количество пиксельных, вершинных процессоров и текстурных блоков (например, в видеоадаптере GeForce 7600 GT есть 12 пиксельных и 5 вершинных процессора (ввиду меньшей нагрузки на вершинные конвейеры их количество – в пределах 2-8 шт. в зависимости от уровня графического процессора, и 12 TMU – по одному на пиксельный конвейер). Чем больше текстурных блоков, тем больше будет производительность видеокарты.

Компания ATI, начиная с серии Radeon X1000, отошла от привычной формулы «один TMU на один пиксельный конвейер», уменьшив общее количество «текстурников», которые теперь не связаны напрямую с пиксельными процессорами благодаря оптимизации архитектуры видеоядра. При этом количество пиксельных конвейеров в самой старшей модели видеокарты было увеличено до 48, а количество TMU осталось на уровне 16 шт. Такое решение – своего рода задел на будущее, так как в последние годы всё более заметно, что разработчики игр ориентируются не на грубую силу в виде огромного числа полигонов, а на тонкий расчёт, то есть использование сложных шейдеров, требующих математической вычислительной мощи.

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

 Унифицированная архитектура.

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

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

QIP Shot - Image: 2017-07-10 13:20:49 

Рис. 2. Унифицированная архитектура.

 

Если необходим просчёт «скелета» сцены, то для текстурирования и пиксельной работы выделяется необходимое число блоков, а остальное идёт на вершинные операции. Если же, например, необходимо воссоздать бушующее море, всё наоборот: все силы бросаются на пиксельную обработку, а для геометрии, естественно, только необходимое.

 Количество стрим-процессоров в новых ядрах достигает 128 шт. (NVIDIA) или 320 шт. (AMD), но напрямую их сравнивать нельзя из-за их особенностей (кстати, если говорить по всей строгости, процессоров у AMD R600 не 320, а 64, но каждый из них за один такт выполняет до 5 инструкций, что равняется 320 виртуальным процессорам).

Блоки TMU теперь не связаны напрямую с шейдерными, и их количество не сильно изменилось при переходе к унифицированной архитектуре.

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

 


Лицензия