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




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

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

Технологии построений, выполняемых 3B-акселераторами, постоянно совер­шенствуются, и описать все применяемые приемы в данной главе просто невоз­можно. Все новшества нацелены на достижение фотореалистических изображе­ний игровых сцен с большой скоростью смены кадров (до 100 кадров/с), на эк­ранах с большим разрешением (до 2048 х 1536) и в полноцветном режиме (True Color, 32 бита на пиксел). Конечно же, эти цели достигаются не ускорением «че­стных» расчетов для каждого элемента модели, а разными «обманными» при­емами вроде текстур. Новинки технологий, применяемых в акселераторах, будут давать видимый (в прямом смысле) эффект, если их будут знать и использовать соответствующие приложения (игры) и поддерживать драйверы, через которые приложения взаимодействуют с аппаратными средствами графической карты. Именно драйверы отвечают за распределение обязанностей между центральным процессором и графическим процессором акселератора, и их корректность опре­деляет качественные и количественные параметры графического конвейера. Мно­го интересных подробностей работы 3B-акселераторов можно узнать на сайте iXBT.com, где публикуются обзоры новинок, а также статьи по теории трехмер­ных построений. Мощность акселератора определяется списком реализуемых функций рендеринга и качеством их выполнения, а также производительностью, измеряемой как по входу, так и по выходу. Поскольку на входе акселератор оперирует многоугольниками-тесселями, то интерес представляет их количество, обсчитываемое за единицу времени. Для определенности (и более внушительного абсолютного значения) берут параметр Mts (Mega Triangle per Second — миллионов треуголь­ников в секунду). По выходу определяют скорость формирования пикселов в видеопамяти Mps (Mega Pixel per Second — миллионов пикселов в секунду).

Для работы акселератору требуется довольно много памяти: это пара буфе­ров экрана (во время отображения одного буфера в другом строится новый кадр), Z-буфер, α-буфер (может вписываться в видеопамять), и память для хранения текстур (да еще и во многих экземплярах для MlPmap). Специализированный процессор акселератора, типовая разрядность которого 128 бит (а начинали с 32-64-битных), должен иметь доступ к памяти со скоростью, измеряемой единицами гигабайт в секунду. Такая производительность достижима для локаль­ной памяти, установленной на графическом адаптере, — ни шина PCI, ни порт AGP не предоставят акселератору регулярный доступ к системной памяти на столь высоких скоростях. Даже у AGP пиковая производительность составляет все­го 2,132 Гбайт/с в режиме 8х. Но это пиковая про­изводительность в середине пакета при условии отсутствия обращений к памяти со стороны центрального процессора (а ему тоже ведь надо работать). Порт AGP позволяет акселератору пользоваться системной памятью для хранения текстур, что тоже неплохо. При этом снимается ограничение на размер описания текстур, которые без AGP приходилось держать в ограниченном объеме видеопамяти. На решение проблемы «тесноты» в свое время была нацелена и архитектура одно­родной памяти UMA, но в AGP, в отличие от UMA, сохраняется локальный ви­деобуфер на графическом адаптере и расширение доступной памяти не отзыва­ется снижением производительности.

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-12-28 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: