Графический процессор

Материал из ПИЭ.Wiki

Перейти к: навигация, поиск

В начале 90-х годов повсеместная доступность интерактивной трехмерной графики казалось чем-то из области фантастики. Однако уже к концу десятилетия почти все новые компьютеры оснащались графическим процессором (Graphics Processing Unit, GPU), предназначенным для выполнения визуально ярких интерактивных операций, требующих высокой вычислительной производительности.

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

Графический конвейер

Задача любой системы обработки трехмерной графики состоит в том, чтобы синтезировать изображение из описания сцены для графических приложений, выполняющихся в режиме реального времени; скажем, в видеоиграх на экран должно выводиться 60 кадров в секунду. Сцена включает в себя отображаемые графические примитивы, а также описание характера освещения, то есть способа отражения света каждым из объектов с учетом положения и пространственной ориентации зрителя.

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

На входе конвейера

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

Преобразования модели

Графический процессор может задавать любой логический объект сцены в своей собственной локальной системе координат. Такой подход удобен для объектов, которые, как правило, задаются иерархически. Но за удобство приходится платить: перед рендерингом графический процессор должен преобразовать все объекты в общую систему координат. Чтобы предотвратить деформацию или скручивание треугольников, все преобразования должны ограничиваться простыми аффинными операциями вращения, сдвига, масштабирования и т.д.

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

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

Просмотры
Инструменты

Besucherzahler russian mail order brides
счетчик посещений
Rambler's Top100
Лингафонные кабинеты  Интерактивные доски  Интерактивная приставка Mimio Teach