Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
07 Графический адаптер. Трехмерная графика.docx
Скачиваний:
2
Добавлен:
18.11.2019
Размер:
42.48 Кб
Скачать

Рендеринг

Слайд 8.

Под рендерингом понимают создание плоского изображения (картинки) по разработанной 3D-сцене. Изображение — это цифровое растровое изображение.

Рендеринг модели может производиться только поэле-ментно. Результатом тесселяции является набор многоугольников (обычно че-тырехугольников или треугольников, которыми манипулировать проще), ап-проксимирующих поверхности объектов. Плоское растровое представление должно формироваться с учетом взаимного расположения элементов (их по-верхностей) — те из них, что ближе к наблюдателю, естественно, будут пере-крывать изображение более удаленных элементов. Многоугольники, оставшиеся после удаления невидимых поверхностей, сортируются по глубине: реалистич-ную картину удобнее получать, начиная обработку с наиболее удаленных эле-ментов. Для учета взаимного расположения применяют так называемый Z-бу-фер, названный по имени координаты третьего измерения (Х и Y — координаты в плоскости экрана). Этот буфер представляет собой матрицу ячеек памяти, каж-дая из которых соответствует ячейке видеопамяти, хранящей цвет одного пиксела. В процессе рендеринга для очередного элемента формируется его рас-тровое изображение, и для каждого пиксела этого фрагмента вычисляется пара-метр глубины Z (координатой его можно назвать лишь условно). В видеопа-мять этот фрагмент поступает с учетом результата попиксельного сравнения информации из Z-буфера с его собственными значениями. Если глубина Z дан-ного пиксела фрагмента оказывается меньше величины Z той ячейки видеопа-мяти, куда должен попасть этот фрагмент, это означает, что выводимый эле-мент располагается ближе к наблюдателю, чем ранее обработанные элементы, отображение которых уже находится в видеопамяти. В этом случае выполняет-ся модификация пиксела видеопамяти, а в ячейку Z-буфера видеопамяти поме-щается новая величина, взятая от данного фрагмента. Если же результат сравнения иной, то теку-щий пиксел фрагмента оказывается перекрытым прежде сформированными элементами и его параметр глубины в Z-буфер не попадет. Однако цвет пиксела видеопамяти, возможно, все равно придется модифицировать, поскольку пере-крывающий элемент может оказаться прозрачным. Итак, Z-буфер позволяет определить взаимное расположение текущего и ранее сформированного пиксе-лов, которое учитывается при формировании нового значения пиксела в видео-памяти. От разрядности Z-буфера зависит разрешающая способность графиче-ского конвейера по глубине. При малой разрядности (например, 8 бит) для близко расположенных элементов рассчитанные значения Z могут совпасть, в результате картина перекрытий исказится. Большая разрядность буфера требу-ет большого объема памяти, доступного графическому процессору. По нынеш-ним меркам минимальная разрядность Z-буфера — 16 бит, профессиональные графические системы используют 32-битный Z-буфер.

Реализация трехмерной графики

Теперь примерим задачи трехмерной графики к возможностям рядового РС-со-вместимого компьютера. Реализация рендеринга требует значительного объема вычислений и оперирования большими объемами информации, причем конеч-ная цель потока обработанных данных — видеопамять графического адаптера. Еще с 2D-графикой стало ясно, что центральный процессор х86 (даже с расширением ММХ) не способен быстро формировать движущиеся изображения, а шина расширения (даже PCI) является «узким горлышком» для потоков дан-ных, участвующих в видеопостроениях. Решением проблемы вывода трехмерной графики, как и раньше, явилось усиление «интеллекта» графической карты – появились 3D-акселераторы, реализующие значительную часть графического конвейера. На долю центрального процессора (возможно, с графическим сопро-цессором) обычно выпадает начало конвейера (от трансформации до тесселя-ции), а его окончание (растеризация) выполняется акселератором графической карты.

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

Технологии построений, выполняемых 3D-акселераторами, постоянно совер-шенствуются, и описать все применяемые приемы просто невоз-можно. Все новшества нацелены на создание фотореалистичных изображений игровых сцен с большой скоростью смены кадров (до 100 кадров/с) на экранах с большим разрешением (до 2048 х 1536) и в полноцветном режиме (Тгие Color, 32 бита на пиксел). Конечно же, эти цели достигаются не ускорением «честных» расчетов для каждого элемента модели, а разными «обманными» приемами вроде текстур. Новинки технологий, применяемых в акселераторах, дадут видимый (в прямом смысле) эффект, если их будут знать и использовать соответствующие приложения (игры) и поддерживать драйверы, через которые приложения взаимодействуют с аппаратными средствами графической карты. Именно драйверы отвечают за распределение обязанностей между централь-ным процессором и графическим процессором акселератора, и их корректность определяет качественные и количественные параметры графического конвейе-ра.

Мощность акселератора определяется списком реализуемых функций ренде-ринга и качеством их выполнения, а также производительностью, измеряемой как по входу, так и по выходу. Поскольку на входе акселератор оперирует мно-гоугольниками-тесселями, то интерес представляет их количество, обсчитывае-мое за единицу времени. Для определенности (и более внушительного абсолют-ного значения) берут параметр Mts (Mega Triangle per Second — миллионов треугольников в секунду). По выходу определяют скорость формирования пик-селов в видеопамяти Mps (Mega Pixel per Second — миллионов пикселов в се-кунду). Интересна и скорость формирования кадров, Fps (Frames per second кадров в секунду), правда, при ее указании нужно оговаривать сложность кадров.

Трехмерные акселераторы для компьютерных игр на РС первой внедрила фир-ма 3dfx, до того занимавшаяся игровыми приставками, и ее название (3dfx) ста-ло нарицательным именем 3D-акселератора. За несколько лет эта фирма вы-пустила серию акселераторов, большинство из которых называются Voodoo с различными номерами и добавлениями.

Сейчас основными производителями 3D-карт являются фирмы ATI (семейство карт Radeon) и NVIDIA (семейство карт GeForce). Карты вы-пускаются как для порта AGP (который уж еустарел), так и для PCI Express (на сегодняшний наибольшее применение имеет спецификация 2.0, хотя уже утверждена и 3.0). Порт AGP на системной плате только один, так что установить две мощные графиче-ские карты не удается. Поскольку слотов PCI Express может быть несколько , появляется возможность установки пары карт. Это позволяет повысить производительность графиче-ского конвейера путем распараллеливания задач между двумя акселераторами. Распараллеливание может идти несколькими путями:

Слайд 9.

  • Разбивка кадра на чередующиеся строки: один акселератор обрабатывает чет-ные строки, другой — нечетные.

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

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

  • Чередование кадров — каждый акселератор строит свой кадр целиком один: — четные кадры, другой — нечетные. Смена отображаемых кадров (по мере их готовности) выполняется под управлением центрального процессора, возможна неравномерность смены кадров.

Результаты параллельной обработки должны объединяться специальным блоком и выводиться на один монитор (через один интерфейс). Фирмы ATI и NVIDIA организуют объединение по-разному.

В технологии SLI (Scalable Link Interface) фирмы NVIDIA имеет место обмен данными между картами по магистрали (PCI-Е). В ведущей (master), или пер-вичной (primary), карте организуется буфер для сборки итогового изображе-ния. Для синхронизации используется специальный переходник — маленькая печатная плата, одеваемая на объединяемые карты. Распределение работы мо-жет вестись методом разбивки на зоны или чередованием кадров. Объединяе-мые карты должны быть идентичными.

Технология CrossFire фирмы ATI позволяет для параллельной работы использо-вать специальную видеокарту в паре с любой, в которой имеется цифровой вы-ход — интерфейс DVI. Распараллеливание может выполняться разными спосо-бами: разбивкой на зоны, чередованием полос и блоков, чередованием кадров. На специальной карте имеются блок Composing Engine, объединяющий резуль-таты работы акселераторов, и специфический разъем DMS, к которому подклю-чается специальный кросс-кабель. На входы объединяющего блока поступают цифровые потоки (сигналы Т.М.D.S.), представляющие информацию экранных буферов обоих акселераторов. Выходной поток этого блока, являющийся ре-зультатом объединения, через интерфейс Т.М.D.S. (для выхода DVI) и через интерфейс RAMDAC (для выхода VGA) поступает на разъем DMS. Кросс-ка-бель соединяет разъем DMS с вилкой DVI, подключаемой ко второй графиче-ской карте, и розеткой (DVI или VGA) для подключения кабеля монитора. На карте CrossFire присутствует и дополнительный выход (DVI, VGA, TV-Out), который может использоваться для вывода отдельного изображения (конечно, когда отключен режим параллельной работы). Также может быть доступен (если имеется) второй выход второго адаптера.