Наверх
Меню
Новости
Статьи
twitter
Software
24 ноября 2006
4303
  Я работаю с Windows Vista. Часть VII: знакомимся с DirectX 10  
 
Я работаю с Windows Vista. Часть I: подробно о системных требованиях
Я работаю с Windows Vista. Часть II: мультимедиа и интерактив - объять необъятное
Я работаю с Windows Vista. Часть III: установка, производительность, лицензия
Я работаю с Windows Vista. Часть IV: новая платформа для бизнеса
Я работаю с Windows Vista. Часть V: горячие события и ближайшие перспективы
Я работаю с Windows Vista. Часть VI: пользовательский интерфейс и настройки

Сегодня придётся обойтись без текущих новостей и различного рода отступлений, поскольку поднимаемая тема очень важна и отвлекаться не будем. До сегодняшнего дня в цикле публикаций о Windows Vista мы фактически обходили стороной ключевые программно-аппаратные изменения новой платформы, который действительно очень важны в 3D играх и которые действительно недоступны на платформах с предыдущими версиями Windows.

Действительно, минимальные требования Windows Vista, предъявляемые к аппаратной части ПК для запуска Aero, включают в себя определённый объём памяти, процессор, и среди прочего – видеокарту с поддержкой DirectX 9.0. Разумеется, Windows Vista будет работать и с видеосистемой без поддержки DirectX 9.0 в привычном 2D режиме, но всё это, так сказать, бюджетные варианты, и сегодня речь не об этом. Фактически, сегодня мы попытаемся выяснить, что же необходимо для создания действительно производительного ПК, способного реализовать всё заложенное в современном "железе" и в Windows Vista, и как это будет работать.

На деле же, для реализации максимума возможностей игрового плана системами под управлением Windows Vista потребуется как минимум, три основных компонента: видеокарты совершенно нового типа – вроде NVIDIA GeForce 8000, операционная система Windows Vista, плюс совершенно новые игры. Только когда станут доступны все три эти слагаемых с поддержкой DirectX 10, мы сможем на практике оценить производительность, графические эффекты и прочие игровые достоинства платформ нового поколения.

Увеличить картинку


Определение DirectX 10 и краткая предыстория его появления

Мы вплотную приблизились к тому, чтобы дать определение DirectX 10 и ряду сопутствующих терминов. Классическое определение представляет DirectX как совокупность интерфейсов прикладного программирования - Application Programming Interface, API, для удобного программирования приложений под операционные системы Microsoft Windows, главным образом, для программирования игр. Говоря проще, разнообразные библиотеки–API из комплекта DirectX, представляют собой готовые наборы функций для облегчения труда программистов. Теперь им не нужно каждый раз создавать ряд типичных процессов для работы со звуком, видео и т.п., для этого в комплекте DirectX имеется ряд стандартных "кубиков" и инструментов для создания мультимедийных приложений и игрушек под Windows.

Между прочим, до появления DirectX так всё и было: разработчики новых программ и игр каждый раз были вынуждены учитывать в своём коде неисчислимое количество разнообразных видеокарт, звуковых плат, устройств ввода. Ситуация облегчилась после того как в 1995 году появилась первая версия Microsoft DirectX, представляющего собой набор мультимедийных API для работы с 2D и 3D графикой, аудио, устройствами ввода, и программисты получили возможность использовать все возможности новых "железяк" без непосредственного программирования под каждую. Надо ли говорить, насколько это ускорило процесс выпуска новых игр и приложений.

На самом деле историю появления DirectX стоит начинать с 1992 года, когда, согласно историческим справкам, компания RenderMorphics начала разработку 3D графического API под названием Reality Lab для медицинского оборудования и приложений CAD. Компания RenderMorphics была куплена Microsoft в феврале 1995 года, уже после появления двух успешных версий API, в результате чего первая версия 3D графического API - Direct3D, была представлена в пакетах DirectX 2.0 и DirectX 3.0 под Windows 95. Хронология DirectX в общих чертах представлена таблицей ниже.

Увеличить картинку


На практике не всё пошло так гладко, как хотелось бы – первые версии DirectX были порой нестабильны, к тому же на первых порах Microsoft продвигала Direct3D конкурируя как с OpenGL, так и с API вроде 3Dfx Glide. Где-то с версии DirectX 7.0, которая впервые позволила перенести значимую часть обработки 3D процессов с центрального процессора на графический чип, разработчики игр стали охотно отдавать предпочтение DirectX.

Начиная с версий DirectX 8.0/8.0a, где впервые дебютировали программируемые пиксельные и вертексные шейдеры (Shader Model 1.0 и 1.1), DirectX окончательно стал индустриальным стандартом и даже поддерживался в игровой приставке Microsoft Xbox.

Появление DirectX 9.0 ознаменовало начало поддержки Shader Model 2.0 и DirectPlay, затем – и Shader Model 3.0. Ныне свежую обновлённую версию DirectX можно в любое время скачать с сайта Microsoft, а комплект разработчика - DirectX SDK, распространяется Microsoft на бесплатной основе.

Особенности DirectX 10

По словам разработчиков, DirectX10, или как его ещё частенько называют Direct3D 10 (D3D10) – по названию 3D API, нельзя оценивать как всего лишь следующую версию DirectX. В отличие от версии DirectX 9, которая являет собой эволюционное развитие, DX10 была полностью переработана, изменив процесс взаимодействия приложений и "железа", распределение нагрузки между центральным и графическим процессорами. На практике это означает, что графический процессор видеокарты с поддержкой DX10 становится мощнее не только в смысле способности более оперативного обсчёта ещё большего количества пикселей за то же время, но также позволяет работать с неведомыми ранее текстурами, объектами и явлениями. В то же время "избавленный" от необходимости обсчёта графических эффектов, центральный процессор может теперь посвятить свою мощь более быстрому обсчёту других задач.

Ещё раз подчеркну, что DirectX10 - явление, актуальное исключительно для платформы Windows Vista и не будет использоваться ни на какой другой платформе. На самом деле, такой "эксклюзив" – не прихоть разработчиков, а следствие того, что для Windows Vista реализована совершенно новая модель графического (дисплейного) драйвера - Windows Display Driver Model (WDDM), не менявшаяся до появления DirectX10 со времён Windows NT4, с этим связаны виртаулизационные и архитектурные нововведения WDDM, реализованные в API и основополагающей инфраструктуре DirectX10. Новая модель драйвера также отражает дальнейшую эволюцию видеокарт – от обработки 2D растровых операций и GDI приложений, 3D игр на графических картах с фиксированными функциями, к современным программируемым модулям обработки графики с широкой поддержкой графических приложений.

Среди ключевых нововведений, реализованных в DirectX10, любители новых игр по достоинству оценят следующие:

  • Более реалистичная анимация шерсти меха и растений
  • Более мягкие и более чёткие тени
  • Более насыщенные ландшафты с более сложной окружающей обстановкой
  • Значительно более тщательно прорисованный лес, более масштабные и детальные сцены баталий
  • Более динамичные и чаще меняющиеся по ходу событий сценарии игр
  • Больший реализм и уменьшение смазывания движущихся объектов
  • Объёмные эффекты
  • Уточнённый, более реалистичный дым и облака
  • Более реалистичные отражения и преломления на отражающих поверхностях – воде, автомобилях, стекле и др.
  • Снижение загрузки CPU, перераспределение обсчёта ряда процессов на GPU, снижение вероятности подтормаживания и зависания системы при сложном геймплее

    Увеличить картинку
    "Живой" мех


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

    Детализация

    Увеличить картинку
    DirectX9.0b - Halo: Combat Evolved


    Увеличить картинку
    DirectX10 - Crysis


    Детализация

    Увеличить картинку
    DirectX9


    Увеличить картинку
    DirectX10


    Детализация и реалистичность теней

    Увеличить картинку
    DirectX10


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

    Увеличить картинку
    Заставка Windows Vista, DirectX9 рендеринг


    Увеличить картинку
    Заставка Windows Vista, DirectX10 рендеринг


    Больший реализм и уменьшение смазывания движущихся объектов

    Увеличить картинку


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

    Увеличить картинку
    Графические API под Windows XP


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

    Увеличить картинку
    Графические API под Windows Vista


    Версия 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.

    Таким образом, выбирая API для графического приложения, следует помнить, что:

  • Использование 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 позволяет использовать совершенно новые, более сложные и точные методы имитации кожи, ускорение морфинга, генерирование теней и экструзии, мельчайших деталей, физических и других эффектов.

    Увеличить картинку
    Замещающее текстурирование (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.

    Со времён DirectX 8.0 в состав DirectX входили такие API как:

  • DirectDraw - 2D растровая графика
  • Direct3D - D3D, 3D графика
  • DirectInput - обработка данных клавиатуры, мышки, джойстика и других игровых контроллеров
  • DirectPlay - сетевые коммуникации в играх
  • DirectSound - запись и воспроизведение звука
  • DirectSound3D - DS3D, 3D звук
  • DirectMusic - воспроизведение саундтреков из DirectMusic Producer
  • DirectSetup - инсталляция компонентов, не реализованных в API DirectX
  • DirectX Media - сочетание DirectAnimation, DirectShow, DirectX Video Acceleration, Direct3D Retained Mode и DirectX Transform, соответственно, для анимации, воспроизведения мультимедиа и потоковых приложений, 3D и интерактива
  • DirectX Media Objects - поддержка объектов потоковой обработки - кодировщиков, декодеров, эффектов

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

    Таким образом, сегодня мы в общих чертах определились с терминологией, чуток "копнули" предысторию появления DirectX 10, ранее называвшегося Windows Graphics Foundation 2.0 и DirectX Next, а ныне через раз именуемого просто Direct3D 10; в самых общих чертах ознакомились с его возможностями. Полагаю, для первого раза достаточно.

    Увеличить картинку


    Следующая часть повествования о DirectX 10 будет посвящена более конкретным подробностям: унифицированной шейдерной архитектуре, впервые реализованной под DirectX 10 новой модели Shader Model 4.0; ресурсам, новым типам текстур, форматов HDR и режимов рендеринга DirectX 10, подробно разберём принцип работы конвейера DirectX 10 с поддержкой геометрических шейдеров и потоковым выводом. Впереди у нас также рзбор принципа работы замещающих текстур с тесселяцией, новых принципов рендеринга с использованием геометрических шейдеров и множество других тонкостей работы DirectX 10. Словом, считайте, что присказка закончена и самое интересное - впереди. До встречи.

    Увеличить картинку


  •   Источник: 3dnews.ru
     



    Поделиться с друзьями:


    Другие новости по теме
     
    Вы не авторизованный пользователь. Чтобы воспользоваться всеми возможностями сайта, зарегистрируйтесь.
     

    Комментарии

    Kriz 24 ноября 2006 20:40
    Убейте меня ап стенку, как я смогу жить без ДХ10 !??? sad
    /ме начал копить на GeForce 8800


    --------------------
    Конф.№1:P5KSE/EPU;e8400;4870;ddr2-800 2x2gb CL4;hdd 750gb
    Конф.№2:PentiumD2.68GHz;x1600pro256mb; ddr2-533 2x256MB;hdd 160gb
     
     
     

    ALEXonline 25 ноября 2006 11:15
    Я думаю тебе просто надо подзавезать до конца весны 2007 - тогда выйду G86 & G84 - и будет тебе щастье не по заоблачным ценам :) smile
     
     
     

    ALiX 6 декабря 2006 19:40
    Чего я не понял, так это где "Часть 6: пользовательский интерфейс и настройки"
    ?? smile
     
     
     

    opoffis 11 декабря 2006 00:25
    wassat че получается GeForce 8800 более старшая версия видеокарта выйдет ранише более низких верский G86 & G84 или это мат платы я чето не догнал?


    --------------------
    Моя Прелесть: Ноутбук ASUS G74, Huawei honor 6, Безлимитный 3G !
     
     
     

    Dmitro 19 марта 2007 02:15
    во беда,FarCry в висте не пашет,да и контра глючет,неговоря уж о COD2
     
     
     

    CrashMass 6 марта 2009 16:10
    да с фаркрая пора бы на кризис перейти Если виста с D X10
     
     
     
    Добавление комментария
    Ваше имя
    Ваш Email
    Код Включите эту картинку для отображения кода безопасности
    обновить код
    Введите код