Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
К_р_1_Ткач_вар 18.docx
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆

DirectX9 и DirectX10 в сравнении

В качестве иллюстраций можно привести сравнительные скриншоты DirectX9 и DirectX10.

Детализация

DirectX 9

DirectX 10

Детализация

DirectX 9

DirectX 10

Более насыщенные ландшафты с более сложной окружающей обстановкой

DirectX 9

DirectX 10

С самого начала типичным API, применявшимся для программирования графики, являлся Graphical Device Interface (GDI). Позднее были представлены DirectDraw и Direct3D как альтернативные API с поддержкой полноэкранных игр и 3D рендеринга с помощью существовавших на то время аппаратных решений, что добавило сложности совместной обработке элементов GDI и Direct3D. Версия модели видео драйвера (Windows Driver Model, WDM) для Windows XP - XPDM, чётко отражает последовательную природу обработки GDI и Direct3D.

Н овая модель драйвера - Windows Vista Display Driver Model (WDDM), меняет приоритеты и выводит на первый план графический процессор и Direct3D, придавая совершенно другой смысл 3D рендерингу картинки экрана за счёт программируемого GPU. Благодаря использованию WDDM всё графическое "железо" теперь управляется исключительно посредством Direct3D, и все остальные графические интерфейсы взаимодействуют с видеокартой только посредством Direct3D драйвера.

Рисунок 3 - Графические API под Windows Vista

Русунок 2 - Графические API под Windows XP

В ерсия DirectX 9, впервые представленная под Windows в 2002 году и далее неоднократно обновлявшаяся в 2003 – 2005 годах, представила более мощные по сравнению с предшественниками модели шейдерного программирования Direct3D. Версия Direct3D 9 является первичным графическим интерфейсом и для Windows Vista, оставаясь безупречным API для написания 3D игр и приложений, совместимых с многими поколениями видеокарт и выпусков Windows. Более того, для сохранения полной совместимости со старыми версиями Windows некоторые особенности старых моделей драйвера эмулируются даже новой моделью драйвера Windows Vista. Поэтому, несмотря на поддержку новых драйверов WDDM для ряда видеокарт, Windows Vista продолжает поддерживать возможность использования старых драйверов XPDM для апгрейдов и корпоративных версий. В системах со старыми драйверами поддерживается Direct3D 9 и более старые версии интерфейсов, при этом принцип их работы будет схож с работой под Windows XP. Для работы драйвера WDDM требуется Direct3D 9Ex, Direct3D 10 или последующие версии.

Что касается так называемого Direct3D 9Ex интерфейса, который является несколько усовершенствованной версией Direct3D 9 API, в нём имеется возможность виртуализации ресурсов и ряда других возможностей для работы под Windows Vista. Этот API работает только под Windows Vista и требует драйверов WDDM.

Использование Direct3D 9 подразумевает поддержку Windows XP или более ранних версий Windows. Использование Direct3D 9 с XPDM драйверами подразумевает поддержку Windows Vista для систем на базе "железа" без поддержки Direct3D 10. Использование Direct3D 10 позволит оценить все прелести нового поколения видеокарт под Windows Vista.

Новый Direct3D 10 полностью устраняет все узкие места прежних Direct3D API и позволяет значительным образом упростить программирование GPU и разгрузить ресурсы CPU. Теперь программируемая шейдерная модель унифицирована как для вертексных, так и для пиксельных шейдеров, с более чёткой вычислительной моделью и набором действий. Для обработки примитивов после стадии вертексных шейдеров добавлен новая стадия обработки геометрических шейдеров. В результате поток вертексной и геометрической стадий работы конвейера может быть выведен в видеопамять для повторного использования, позволяя организовать комплексные многопроходные операции GPU с минимальной загрузкой CPU, рассчитывая анимацию один раз, а отрисовывая по этим данным много раз, позволяя реализовать замещающее текстурирование (Displacement Mapping) и предоставляя интересные возможности по альтернативной интерпретации данных. Более того, такая "разгрузка" GPU позволяет использовать совершенно новые, более сложные и точные методы имитации кожи, ускорение морфинга, генерирование теней и экструзии, мельчайших деталей, физических и других эффектов.

Рисунок 4 - Замещающее текстурирование (Displacement Mapping)

Вот в этом, в сущности, и заключается основной "разлом" между нынешними поколениями графики и "железом" под Direct3D 10: в то время как Direct3D 9 может работать с картами эпохи DirectX7, Direct3D 10 работает только с новыми поколениями графических акселераторов, начиная с GeForce 8800.

Относительно поддержки OpenGL. Стоит отметить, что Windows Vista предоставляет ту же поддержку OpenGL, что и Windows XP, для этого потребуется инсталлируемый драйвер-клиент (Installable Client Driver, ICD) под OpenGL от производителя видеокарты. В большинстве случаев отсутствие новой версии ICD под Windows Vista обеспечит поддержку лишь уровня OpenGL v1.1.

В Windows Vista реализована поддержка тех же интерфейсов Direct3D и DirectDraw, как в Windows XP, начиная с DirectX 3, за исключением режима Retained Mode в Direct3D. Разве что можно отметить ограничение для полноценных 64-битных приложений Windows XP Professional x64 Edition, поддержка функций которых под Windows Vista ограничена Direct3D9, DirectDraw7 и более новыми версиями интерфейсов.