Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аппаратные средства мультимедии.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.76 Mб
Скачать

6.3 Поколение DirectX 7 (1999-2002)

Видеосистема ПК

Третье поколение включает видеоускорители, оснащенные принципиально новым элементом — геометрическим процессором. Тем самым значительная часть расчетов геометрических преобразований и параметров освещения снимается «с плеч» центрального процессора компьютерной системы. Такое решение позволяет значительно ускорить обработку трехмерных сцен. Однако следует подчеркнуть, что разработчики программ должны специально предусмотреть поддержку новых возможностей в своих приложениях. Согласование параметров железа и программного кода стало возможным благодаря принятию типового API DirectX 7, разработанного компанией Microsoft. С тех пор поколения графических процессоров принято различать по способности аппаратно реализовать функции какой-либо версии DirectX.

6.4 Поколение DirectX 8

Видеосистема ПК

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

6.5 Поколение DirectX 9

Видеосистема ПК

Графические ускорители с полностью программируемым графическим процессором относятся к поколению DirectX 9. Благодаря их появлению разработчики программ получили возможность описывать способы обработки графики с помощью команд, похожих на операторы языков программирования высокого уровня, например C++. В частности, компания nVidia даже разработала язык Сg (С Graphics) для программирования своих графических процессоров. Поддержка программируемых графических процессоров предусмотрена в API DirectX версии 9 различных версий.

6.6 Поколение DirectX 10

Видеосистема ПК

После более четырех с лишним лет напряженной работы компания Microsoft представила наряду с ОС Windows Vista новую версию набора интерфейсов прикладного программирования, используемого главным образом для разработки игр. DirectX 10, как и его предшественники, обеспечивает связь между программами и железом. Большая часть нововведений приходится на интерфейс, отвечающий за обработку трехмерной графики — Direct3D 10.

Унифицированный шейдер: Главным нововведением в Direct3D 10 стало появление Shader Model 4.0. Ранее внутренние конвейеры видео процессора подразделялись на вершинные шейдеры, используемые для обсчета формы модели, и пиксельные шейдеры, предназначенные для расчета качественных характеристик поверхностей. Это приводило к тому, что в видеопроцессоре часто оставались незадействованными многие операционные блоки. В Direct3D 10 использована так называемая архитектура унифицированных шейдеров, которая в зависимости от потребностей в конкретный момент времени может решать самые разнообразные задачи. За счет подобного пересмотра конструкции видеопроцессора значительно разгружается аппаратная часть и появляется возможность переложить на GPU ряд дополнительных задач — например, простые расчеты физических явлений. Геометрический шейдер: Преимущества гибкого программирования DirectX 10 можно использовать уже сейчас: новые геометрические шейдеры обсчитывают, как и вершинные, крупные поверхности объектов. Однако дополнительно они могут изменять форму объекта за счет добавления треугольников. Это на первый взгляд не такое уж и сенсационное новшество позволило видеопроцессору напрямую влиять на элементы трехмерной сцены. Подобная возможность не только позволит обойтись без участия центрального процессора в изображении таких впечатляющих эффектов, как рост травы (за счет создания цепочек треугольников), но и передаст видеопроцессору обсчет физических процессов, например клубящийся туман или волны на воде. Разгрузка центрального процессора позволит получить достаточное количество свободных ресурсов для придания 3D-сценам большей реалистичности и точности в передаче мелких деталей.

Новый 3D-драйвер: Каждая новая версия DirectX требует и новых драйверов для видеоплат. В случае с DirectX 10 предстоит кардинальная смена: новая модель видеодрайвера, которая называется WDDM (Windows Display Driver Model), работает теперь в двух раздельных режимах. Операционная система работает одновременно в двух режимах — обеспечивающем базовую функциональность всей ОС (kernel mode) и пользовательском (user mode). В последнем случае работают приложения, а в базовом — драйверы. Каждый переход от одного режима к другому требует определенного количества ресурсов. До настоящего времени драйверы видеоплат работали только в режиме kernel mode, в то время как игры, да и DirectX как приложение были активны в user mode. Всякий раз, когда данные о трехмерной сцене пересылались на DirectX, они должны были по отдельности переправляться дальше на драйвер. Для каждого пересылаемого элемента происходило требующее определенного времени переключение драйвера из одного режима в другой. Данная проблема, известная как small batch problem, ликвидирована в Windows Vista и DirectX 10. Драйвер видеоплаты теперь разделен между двумя режимами. Та его часть, которая работает в пользовательском режиме, обеспечивает все графические запросы, собирает их и единым пакетом передает в другую часть, обеспечивающую базовый режим работы. Это позволяет резко сократить потери времени. Видеоплаты с поддержкой DirectX 10 обеспечивают и такое преимущество: после инсталляции драйвера Vista не требуется перезагрузка. Кроме того, ОС может распознавать возможные сбои в работе видеопроцессора и даже самостоятельно перезапускать драйвер.

Полный комплект: В отличие от предыдущей версии — DirectX 9 — разработчики видеоплат с поддержкой DirectX 10 уже не имеют «права выбора» и должны интегрировать в чип поддержку всего набора функций. Как известно, в DirectX 9 имелись «производительные биты» (capability bits), которые «делегировали» интерфейсу DirectX возможности графического процессора, что позволяло DirectX 9 эмулировать не поддерживаемые видеочипом функции. Что же касается DirectX 10, то все его функции обязательно должны быть реализованы на аппаратном уровне. Несмотря на это, совсем не обязательно иметь видеоплату с поддержкой DirectX 10: даже старое железо и программы выиграют от применения новой модели драйверов для DirectX 10.